我有一个非常大的asp.net MVC 4.0应用程序,我想开始使用asp.net 5.0和Angular 2.0迁移到Web API。
主要原因是要开始进行将来的验证,并在更现代的SPA架构中设置一些新组件。
我的计划是在现有站点的一小部分,将其路由到显示一个调用Web API来获取数据的Angular SPA应用程序,而不是MVC控制器和功能。对于本节,我不打算使用ASP.NET MVC功能(例如共享布局页面,捆绑,路由等),而是希望将其保留为成角度。
我现有的MVC和新的Web api项目都将使用使用EF的数据层项目/存储库。
我的问题是:
谢谢你的时间。
我们在此过程中已经进行了6个月了(唯一的区别是Angular,而不是Angular 2)。这是我的意见...
现有站点的一小部分,当路由到该站点时,将显示一个调用Web API进行数据访问的Angular SPA应用程序,而不是MVC控制器和功能
极其困难,即使不是不可能,因为ASP.NET Core从根本上与MVC 4完全不同。我建议在运行Core和Angular的站点上(在不同的端口上)建立一个单独的站点。
我不打算使用ASP.NET MVC功能(例如共享布局页面,捆绑,路由等),而是希望将其保留为有角度的。
那是我们的第一种方法,但是要实现它,我们需要预先加载很多Javascript库,或者做一些动态加载的聪明事。在Angular2中更容易(将允许动态加载的SystemJS内置在基础结构中)。相反,我们将应用程序分成了大约六个功能。每个功能都有一个.NET控制器和一个视图(Index.cshtml)。在该功能中,我们使用Angular功能进行路由,视图等。这种方法还帮助我们获得了强类型的视图。
我应该在访问同一数据库的新域上使用单独的项目,还是使用整个解决方案?
实体框架也有很大不同。在旧的(非常旧的)解决方案中,我们根本没有使用EF,因此这是一个更容易的决定。但是,即使您在当前解决方案中确实使用了EF,EF Core还是一个不同的动物,包括它进行迁移的方式。对我们来说,进行清晰的切割要容易得多。
如何处理身份验证和授权?
我们的旧系统使用的是成员资格框架,并且团队中没有人熟悉OAuth。因此,在等待IdentityServer 4(目前几乎没有文档)时,建议您考虑使用SaaS解决方案,例如StormPath或Auth0(我们喜欢StormPath)。如果您有使用IdentityServer的经验,则可以跳入IdentityServer4。由于我们使用的是MVC,因此身份验证非常简单;但是我认为基于AJAX的身份验证不会那么困难。
希望能有所帮助。所以不喜欢“基于观点”的问题-但我认为很多团队都在为这种过渡而苦苦挣扎,希望这个问题和答案是合适的:)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句