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

以太网

我有一个非常大的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的数据层项目/存储库。

我的问题是:

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

谢谢你的时间。

费利克斯

我们在此过程中已经进行了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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将客户端Blazor添加到现有的ASP.NET MVC5应用程序

使用 .Net 4 将 MVC 项目添加到现有的 Web 应用程序

如何将Web API添加到现有的ASP.NET MVC(5)Web应用程序项目中?

如何将Web API添加到现有的ASP.NET MVC 4 Web应用程序项目中?

如何将Azure AD身份验证添加到现有的ASP.NET MVC应用程序中?

如何将Web API控制器添加到现有的ASP.NET Core MVC?

如何将Vue.js添加到现有的ASP .NET Core 2.0 MVC项目中?

如何将引导程序添加到空的asp.net core 2模板应用程序?

如何将现有的asp.net MVC应用程序与IdentityServer集成在一起?

如何将Angular4应用程序嵌入ASP.NET MVC视图中?

将现有的Web窗体应用程序迁移到ASP.Net MVC单页应用程序

如何将LiveView添加到现有的Elixir / Phoenix应用程序?

如何将 React 添加到现有的 Electron 应用程序中?

使用 Webpack 将 JavaScript 模块添加到 ASP.NET MVC 应用程序

将WCF服务添加到ASP.NET Core MVC应用程序

将特定于视图的 JavaScript 添加到 Asp.Net Core 2 MVC 应用程序的首选方法是什么?

将新表添加到带有标识的 ASP .NET Core MVC 应用程序中

将Angular添加到现有的ASP.NET Web窗体项目中?

如何将datagrid添加到ASP.net Web应用程序?

如何将ProcessModel添加到asp.net核心Web应用程序

如何将.NET Core 2 MVC Web应用程序编译为EXE?

尝试将 @ionic/angular 添加到现有的 angular 12 应用程序失败

在ASP.NET MVC项目中托管多个Angular 2应用程序

如何将ASP.NET Core身份添加到现有Core mvc项目中?

将vueJS添加到现有的angular应用程序中

如何将IdentityServer3添加到现有的基于ASP.Net Identity的项目中?

将服务器端Blazor添加到现有的MVC Core应用程序

如何使用OWIN将Ninject Controller Factory添加到ASP.NET MVC应用程序?

如何将ReactJS添加到现有的node.js后端应用程序