Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 从2层体系结构过渡到3层体系结构的方法?_Asp.net_Architecture - Fatal编程技术网

Asp.net 从2层体系结构过渡到3层体系结构的方法?

Asp.net 从2层体系结构过渡到3层体系结构的方法?,asp.net,architecture,Asp.net,Architecture,我目前正在一个asp.net站点上工作,该站点具有两层体系结构。UI和DAL。这是一个在触发器中有很多逻辑,在UI中显然有大部分逻辑的站点。我想添加第三层,这是一个业务层,以便能够允许重用代码,能够进行单元测试等 有没有人这样做过,从2层架构转移到3层架构,如果有,你是如何实现的。您是否刚开始编写任何具有3层结构的新代码,并将其余部分等保留下来?我也会考虑MVC等,但我认为这可能是太多的工作。 谢谢 尼尔有两种方法: 从头重写 抽象接口和抽象类背后的丑陋,并使用工厂或DI 例如,当微软设计ASP

我目前正在一个asp.net站点上工作,该站点具有两层体系结构。UI和DAL。这是一个在触发器中有很多逻辑,在UI中显然有大部分逻辑的站点。我想添加第三层,这是一个业务层,以便能够允许重用代码,能够进行单元测试等

有没有人这样做过,从2层架构转移到3层架构,如果有,你是如何实现的。您是否刚开始编写任何具有3层结构的新代码,并将其余部分等保留下来?我也会考虑MVC等,但我认为这可能是太多的工作。 谢谢
尼尔

有两种方法:

  • 从头重写
  • 抽象接口和抽象类背后的丑陋,并使用工厂或DI
  • 例如,当微软设计ASP.NETMVC框架时,他们选择了第二种方法:他们引入了HttpContextBase、HttpRequestBase等抽象


    因此,如果您没有时间从头重写所有内容,您可以从思考服务层的外观开始,开始设计POCO和接口,这些接口将定义这些POCO的操作。然后UI层将只知道服务层。在该服务层的实现中,您可以使用表示实体CRUD操作的存储库,在这些存储库的实现中,您将拥有当前拥有的数据访问代码。

    有两种方法:

  • 从头重写
  • 抽象接口和抽象类背后的丑陋,并使用工厂或DI
  • 例如,当微软设计ASP.NETMVC框架时,他们选择了第二种方法:他们引入了HttpContextBase、HttpRequestBase等抽象

    因此,如果您没有时间从头重写所有内容,您可以从思考服务层的外观开始,开始设计POCO和接口,这些接口将定义这些POCO的操作。然后UI层将只知道服务层。在该服务层的实现中,您可以使用表示实体CRUD操作的存储库,在这些存储库的实现中,您可以使用当前拥有的数据访问代码