【问题标题】:Asp.Net Core + Angularjs2, together or separately?Asp.Net Core + Angularjs2,一起还是分开?
【发布时间】:2016-09-28 21:02:52
【问题描述】:

我将开始开发一个新项目,我想使用 Asp .NET core 和 angular.js,但我有一个问题,更好的方法是一起使用还是单独使用 asp.net 和 angular?

我以这种形式定义了我的架构

Cliente1(Angular)->RestApi->BussinessLogic->DataAccess->DB

是的,我看到我的架构说我需要分别管理 asp .NET 和 angular js,但我想听听任何建议。

更新:

谢谢你的回答,最后他们各有利弊,我想和你分享这篇文章:

合:http://proudmonkey.azurewebsites.net/asp-net-core-getting-started-with-angularjs-2/

分别: 第一部:https://chsakell.com/2016/06/23/rest-apis-using-asp-net-core-and-entity-framework-core/

第二部分:chsakell.com/2016/06/27/angular-2-crud-modals-animations-pagination-datetimepicker/

【问题讨论】:

  • 将它们分开,这样如果你想为不同的客户端框架切换 Angular 或为不同的后端切换 DotNet Core,你可以!此外,如果您决定支持移动应用等其他客户端,您的后端将更有能力这样做。

标签: javascript c# asp.net angularjs


【解决方案1】:

将它们分开,您的 MVC 部分将主要是 REST API,与 Angular 项目中的 JavaScript、HTML 和 CSS 无关,此外,如果您想构建另一个客户端 EX:Mobile,那么它将具有它自己的项目也是如此,这样您的解决方案就会有一个干净的结构。

所以,你应该有以下几点:

  1. YourProject.REST
  2. YourProject.Angular
  3. YourProject.MobileClient

此外,分离将使从事项目的团队更容易,从事前端工作的人不必担心与他的任务无关的任何其他代码,对于开发人员来说也是如此在 API 上,每个项目都可以根据其技术的最佳实践来构建。

【讨论】:

    【解决方案2】:

    一般来说,在编程中你应该尽可能地分离你的逻辑。

    出于多种原因,您可能希望将这两个项目分开:

    • 您现在有一个网络应用程序(角度),但也许在不久的将来您将需要一个移动应用程序(混合或本机)
    • 您可以不止一个人参与该项目,例如,您可能需要一些设计师/集成商来开发应用程序,并且您不想与他分享您的后端,如果您有后端也同样适用终结者。
    • 两个项目可能意味着两个源代码控制存储库,意味着对分支、版本、回滚的更多控制...
    • 等等...

    我希望这会有所帮助。

    如果我看到其他好处,请更新此答案。

    【讨论】:

      【解决方案3】:

      你的问题是基于观点而不是事实,所以这是我的观点。

      我用 ASP.Net MVC、Web API 和 AngularJS 完成了一些项目。 它们都留在一个 Web 应用程序项目中注意:我几乎没有用于强类型 Angular Helpers、业务逻辑和数据访问的类库。

      以下是优点

      我使用 Owin 中间件 对用户进行身份验证,然后重定向到 Angular。主要优点是我不必在 Angular 内显式维护 Bearer Token 或 Authentication Cookie。

      其次,我使用 csthml 作为强类型的 Angular 视图,而不是普通的 html。这是两全其美的。

      最后但同样重要的是,您可以轻松调试它而不是同时启动两个项目,这样我就可以节省开发机器上的资源。每个人都知道 Visual Studio 是一个需要大量内存的 IDE。

      【讨论】: