【问题标题】:Opinion on creating Business layer on migration of legacy sytem关于创建业务层迁移遗留系统的意见
【发布时间】:2013-08-22 05:12:28
【问题描述】:

我想要技术专家的意见,

我们正在使用 Oracle 8i 迁移 Oracle 表单中的旧系统构建 数据库。客户希望在 Web 中重新开发这个遗留系统 应用所以我们选择MVC3框架。客户希望我们重新使用所有 遗留系统的存储过程,其中包含业务逻辑 应用。

如果每个业务逻辑都是用存储过程编写的,那么我认为我们 在我们的系统中不需要业务层。

所以我创建了三层-:

接口层 -> MVC 3 应用程序

数据层 -> 用于从存储过程中获取信息

DTO 层 -> 用于将数据从接口层传输到数据层。

我没有创建业务对象或业务层,因为所有 业务逻辑在存储过程中。我不喜欢创作 业务层,只是将请求从接口层转发到数据 层,并且其中没有任何业务层。

这种做法正确吗?

【问题讨论】:

  • 我假设业务层您的意思是 MVC 的控制器?虽然 SP 可能有一些逻辑,但在 Controller 中会更好地处理验证、导航等内容。如果您选择 Spring MVC、Struts、StripesFramework 等框架,您将需要使用该层。我希望这就是您要问的。
  • 不,业务层是我们放置所有业务逻辑的地方,我们从未将业务逻辑放在控制器中。业务层是单独的项目
  • 对不起,业务逻辑对不同的人可能意味着不同的东西。例如,验证是我称之为业务逻辑的东西。有时我把它放在 Javascript 中,有时放在 servlet 中,有时放在数据库中

标签: c# java c++ asp.net asp.net-mvc-3


【解决方案1】:

业务层是独立的项目

如果业务层是一个单独的项目,我会专注于项目的一部分。在服务器端应用程序中拥有一个具有最少业务逻辑(通常是验证逻辑)的接口层是完全合理的。您可能希望客户端中的业务逻辑最少,以使其更具响应性,即它不会一直返回数据库来验证输入。

您可以在数据库中拥有业务层(不是我会做这样的事情),或者在服务器端 Java 中,或者在客户端中的一些(我不建议在很大程度上这样做)

【讨论】:

    【解决方案2】:

    我建议您仍然创建一个业务层,即使它只是将所有操作转发到作为数据层一部分的存储过程。

    由于客户希望您重用其中包含业务逻辑的所有存储过程,因此他不希望您修改或添加更多存储过程听起来也很合理。可能会发生需要您以不同方式实现它们或更改业务逻辑顺序的事件,然后您可以将其放入业务层。也许您可能需要一个不以数据为中心的业务逻辑 - 这意味着将其放在存储过程中听起来不合理,例如发送电子邮件或与第三方系统协调。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-13
      • 2015-07-22
      • 2010-09-22
      相关资源
      最近更新 更多