迁移ASP.NET Web窗体应用程序:ASP.NET MVC还是Angular?

时间:2018-07-22 16:32:33

标签: asp.net-mvc angular asp.net-web-api web-applications architecture

我需要一个建议:我目前有一个ASP.NET Web表单应用程序(相当大的规模),该应用程序具有三层体系结构和ado.net用于数据库通信。

应用程序结构为

Web > BLL > DAL > BO, 

用于使用ado.net(存储过程)进行业务逻辑的BLL和用于数据库交互的DAL。

还有其他4个与BLL连接的应用程序,使应用程序紧密耦合。现在,我必须重新设计一个应用程序,因此我们决定更改基础技术。

我目前有几种选择:

  1. 更改前端层并将完整的应用程序重写为Angular,并在BLL上具有API层(我猜这是最耗时且最复杂的解决方案)
  2. 将字体结尾更改为ASP.NET MVC,并直接从控制器调用BLL(我们可以重用现有的html,但是应用将保持紧密耦合,并且仍然是整体的)
  3. 将前端更改为ASP.NET MVC,并在BLL上编写API层,并通过API将控制器连接到BLL(为每个服务器呼叫客户端>控制器(服务器)> API(服务器)添加额外的http请求不是一个好主意。 。

请提出其他替代方法。将ASP.NET MVC的完整复杂应用程序重写为Angular的这个好选择吗?

1 个答案:

答案 0 :(得分:0)

我建议您使用ASPT.NET CORE WebAPP和一个或多个ASP.NET CORE Web API,REST,微服务,因此您无需在网络上公开您的服务,并且最好将其维护并用于大量系统。在Web API中,使用带有CQRS模式的EF内核是一个很好的选择,因此您可以在其上实现BLL。尝试使用已经内置IOC容器的SOLID原理(主要是D)的倒置依赖性,因此您可以在其上应用注入的依赖性。不要忘记通过授权和身份验证来保护系统。 OAuth 2是一个不错的选择!