一尘不染

ASP.NET MVC和Angularjs一起+ ASP.NET Web API

angularjs

我想知道使用这两个世界的优点和缺点:

  • ASP.NET MVC和Angularjs一起使用(无需剃须刀,Angularjs即可完成工作)。
  • AngularJS(前端)+ ASP.NET Web API(后端)。

我们专注于具有大量服务器端业务规则和计算的大中型企业项目的SPA / Mini-SPA。我也关注安全性。

优缺点意见将帮助我在脑海中找到这个问题的答案:

一起使用ASP.NET Web API(后端),ASP.NET MVC和Angularjs是明智的决定吗?


阅读 270

收藏
2020-07-04

共1个答案

一尘不染

是的,将两者结合起来是明智的。显然,根据具体项目,您需要调整最终解决方案中的某些变量。

您所建议的实际上是我们最近2或3个项目的堆栈,根据特定要求在此处和此处有一些变体。我们已经使用了WebAPI + DurandalJS,WebAPI +
Knockout …一切都很好:) AngularJS似乎使用了最长的时间,在我们公司内部以及在社区的其他地方都越来越受欢迎(这是决定性的)对我来说)

当前技术堆栈。

                            +------------------------------------+
                            |               Usage                |
  +-------------------------+------------------------------------+
  | AngularJS               | The client app web, or mobile      |
  +-------------------------+------------------------------------+    
  | WebAPI                  | For all your data access needs     |
  +-------------------------+------------------------------------+
  | OAuth & Bearer Tokens   | For Authentication & Authorization |
  +-------------------------+------------------------------------+
  | SQL Server & EF / any   |  Persistence                       |
  | any other noSQL variant |  & Storage                         |
  +-------------------------+------------------------------------+
  | Angular-UI /            |                                    |
  | Angular-Material        | Base UI components                 |
  +-------------------------+------------------------------------+
  | Katana                  | Collection of projects for         |
  |                         | supporting OWIN on MS-Stack        |
  +-------------------------+------------------------------------+
  | CORS                    | Standard for implementing          |
  |                         | cross domain requests              |
  +-------------------------+------------------------------------+

优点:

  • Web App可以很容易地移植到移动设备上(如果您以可能会移动的方式编写)

    • 使用科尔多瓦
    • 您拥有一个可以轻松选择使用其他服务/应用程序访问的API。此外,API很酷(与传统访问机制相比)
  • AngularJS允许使用功能强大且结构化的客户端代码(不是没有Angular就无法做到这一点,但以我的经验,如果您正确地遵循它们,框架将实施更好的实践)

  • 开始听起来像是破记录,但是众所周知,AngularJS可以进行超级测试

  • 如果您害怕NodeJS和grunt / gulp之类的东西,可以使用.Net捆绑

    • 并不是您一定要害怕它(而是熟悉>不熟悉)
    • 只要确保以Minsafe方式编写客户端代码
    • 实际上,Visual Studio的开发非常酷,特别是因为它们最近都将重点放在对开源的支持上。AngularJSNode(有时可能会用到)和ASP.Net MVC的许多集成点

缺点:

  • 如果您不熟悉Angular,学习曲线会很不错

  • 可能重复验证

    • 为了减少往返行程/回调,显然最好在第一次执行时就发送正确的数据。因此,在少数(或大多数)实例中,我们需要复制JavaScript中的某些数据级别验证
    • 尽管它可能不适用,并且有点远…我去过一个客户那里,他们严格地希望使用MS的一切,因为开源是“不太安全的”,因为人们可以访问框架代码。 .. 去搞清楚。因此,请确保他们愿意使用开放源代码的SPA框架(这可能适用于任何其他框架或工具)(及其附带的所有内容)
  • 安全性重复。您需要确保保护API和应用程序的安全。(由于两层之间存在断开连接)

  • 您需要学习CORS的工作原理,以及如何正确隐含CORS,因为您的API和Web应用可能不在同一个域/源上

2020-07-04