【问题标题】:Migrating ASP.NET web forms application: ASP.NET MVC or Angular?迁移 ASP.NET Web 表单应用程序:ASP.NET MVC 还是 Angular?
【发布时间】:2018-12-30 05:12:05
【问题描述】:

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

应用结构是

Web > BLL > DAL > BO, 

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

还有其他 4 个应用程序与 BLL 连接,使应用程序紧密耦合。现在我必须重新设计一个应用程序,所以我们决定改变底层技术。

而我目前只有几个选择:

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

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

【问题讨论】:

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


    【解决方案1】:

    我建议使用 ASPT.NET CORE WebAPP 和一个或多个 ASP.NET CORE Web API、REST、微服务,这样您就不需要在 Web 上公开您的服务,最好维护它并进行大规模系统。使用带有 CQRS 模式的 EF 核心是您的 WEB API 中一个非常好的选择,因此您可以在其上实现您的 BLL。尝试使用 SOLID 原则,主要是 D,反转的依赖,它已经有一个内置的 IOC 容器,所以你在它上面应用注入的依赖。不要忘记使用授权和身份验证来保护系统。 OAuth 2 是一个不错的选择!

    【讨论】:

    • ASP.NET CORE Web API、REST、微服务,所以你不需要在网络上公开你的服务:所以我必须在解决方案中添加 BLL 引用?
    • 当然,如果你愿意的话,你将把它应用到你的 Web API 而不是 WebAPP 并且通过实体框架而不是 ADO.NET。
    • 不,这意味着您需要具有服务层的 Web 应用程序(可以调用 restfull api 服务)这就是您的客户端应用程序。另一端(服务端)根据需要使用带有 n 层的 web api 或 asp.net core webapi。
    • 在开发时将两个项目添加到一个解决方案中的另一件事,这将在编码和开发时为您提供帮助。完成后,您可以根据项目范围将后端和前端托管在不同的服务器上。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-21
    相关资源
    最近更新 更多