繁体   English   中英

如何将Angular 2.0添加到现有的ASP.NET MVC应用程序中

[英]How to add Angular 2.0 to an existing ASP.NET MVC app

我有一个非常大的asp.net MVC 4.0应用程序,我想开始使用asp.net 5.0和Angular 2.0迁移到Web API。

主要原因是开始未来打样并将一些新组件设置为更现代的SPA架构。

我的计划是将现有站点的一小部分路由到显示一个Angular SPA应用程序,调用Web API来获取数据,而不是MVC控制器和函数。 对于本节,我不打算使用ASP.NET MVC功能,例如共享布局页面,捆绑,路由等,而是选择将其保留为角度。

我现有的MVC和新的Web api项目都将使用使用EF的数据层项目/存储库。

我的问题是:

  1. 这听起来怎么样? 我找不到很多关于如何将角度引入现有应用程序的文献
  2. 我应该在访问同一个数据库的新域上使用单独的项目,还是整个单独的解决方案? 即,而不是迁移,在ASP.NET 5.0上启动新的解决方案
  3. 如何处理身份验证和授权? 我正在使用Identity v2.0,我可以混合使用,以便访问MVC站点上的页面的用户使用基于标准表单的身份验证,但是当访问Angular / API部分时,他们使用令牌吗?

谢谢你的时间。

过去6个月我们一直在这个过程中(唯一的区别是Angular,而不是Angular 2)。 这是我的意见......

现有站点的一小部分,当路由到显示一个Angular SPA应用程序调用Web API进行数据时,而不是MVC控制器和函数

非常困难,如果不是不可能的话,因为ASP.NET Core从根本上与MVC 4非常不同。我建议有一个运行Core和Angular的独立站点(在不同的端口上)。

我不打算使用ASP.NET MVC功能,例如共享布局页面,捆绑,路由等,而宁愿将其保留为角度。

这是我们的第一种方法,但为了实现它,我们需要预先加载大量的Javascript库,或者做动态加载的智能事物。 在Angular2中更容易(SystemJS允许动态加载内置于基础结构中)。 相反,我们将应用程序拆分为大约六个功能。 每个功能都有一个.NET控制器和一个视图(Index.cshtml)。 在该功能中,我们使用Angular功能进行路由,视图等。这种方法也帮助我们获得强类型视图。

我应该在访问同一个数据库的新域上使用单独的项目,还是整个单独的解决方案?

实体框架也有很大不同。 在我们的旧(非常旧)解决方案中,我们根本没有使用EF,所以这是一个更容易的决定。 但是,即使在当前的解决方案使用EF,EF核心也是不同的动物,包括它的迁移方式。 我们更容易干净利落。

如何处理身份验证和授权?

我们的旧系统使用的是成员资格框架,我们团队中没有任何人熟悉OAuth。 因此,在等待IdentityServer 4(目前几乎没有文档)时,我建议您考虑使用StormPath或Auth0等SaaS解决方案(我们喜欢StormPath)。 如果您有使用IdentityServer的经验,则可以跳转到IdentityServer 4.由于我们使用的是MVC,因此我们的身份验证非常简单; 但我认为基于AJAX的身份验证不会那么困难。

希望有所帮助。 所以不喜欢“基于意见”的问题 - 但我认为有很多团队正在努力应对这种类型的过渡,希望这个问题和答案是合适的:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM