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

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

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

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

    最佳答案

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

    您所建议的实际上是我们最近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可以很容易地移植到移动设备上(如果以您知道自己可能会移动的方式编写)
  • 使用Cordova
  • 您有一个可以选择使用其他服务/应用程序轻松访问的API ...另外,API很酷(与传统访问机制相比)
  • AngularJS允许使用功能强大且结构化的客户端代码(不是没有Angular就无法做到这一点,但以我的经验,如果您正确地遵循它们,框架将实现更好的实践)
  • 听起来像是一个破记录,但是众所周知,AngularJS是 super 可测试的
  • 如果您害怕NodeJS和grunt/gulp之类的东西,可以使用.Net bundling
  • 并不是您一定要害怕它(但要熟悉>不熟悉)
  • 只要确保以Minsafe方式编写客户端代码
  • 实际上,Visual Studio的开发非常酷,尤其是因为它们最近都将重点放在对开源的支持上。 AngularJSNode(您可能会在某个时候使用)和ASP.Net MVC
  • 的许多集成点

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


  • 也。值得一读:
  • Pros And Cons Of Restful Architecture
  • Restful WebAPI vs Regular Controllers (A previous question I asked when it came to designing / understanding WebAPI & REST designs)
  • 10-04 21:31
    查看更多