我在生产环境中运行了一个现有的ASP.NET MVC应用程序。现在,我的客户提出了一个新的需求/增强,他希望使用ASP.NET核心MVC进行开发。新的增强功能将是一个新的独立模块。在开发完成后,他希望将其与现有的ASP.NET MVC应用程序集成。
我想知道,有没有可能集成这两个应用程序,因为ASP.NET核心是完全不同的框架,从头开始重写,而旧的应用程序使用.NET Framework4.6.x。
任何帮助或任何种类的链接,指导我这将是非常感谢。
提前谢谢。
阿南德·尼玛
发布于 2019-05-07 01:10:44
你的问题实际上相当宽泛,因为“集成”是一个宽泛的话题。它涵盖了应用程序的许多不同方面,确切的方法取决于对这些应用程序的深入了解。
也就是说,一般来说,ASP.NET MVC和ASP.NET核心是完全不同的平台。您不能将它们“集成”在一起,因为您可以在同一个ASP.NET项目中同时运行Web Forms和MVC代码。它们将是两个独立的应用程序,需要独立部署。
您可以“共享”连接字符串,也就是说,您可以共享数据库,但您需要在这方面做出许多决定。例如,如果当前的MVC项目使用EF6,您还需要在核心项目中使用EF6,以便共享相同的实体类。这意味着,就目前而言,目标是.NET框架,而不是.NET核心。然而,.NET Core3.0承诺在本地运行EF6。或者,您可以使用EF Core,并将数据库视为实体中的现有框架。这将导致一些代码重复,但根据环境的不同,这可能是一个可接受的折衷方案。
会话、cookie和身份验证等内容可以共享,但可能需要对ASP.NET MVC项目进行根本性的更改。也就是说,ASP.NET核心使用数据保护提供程序进行加密和解密,而不是ASP.NET的机器密钥方法。但是,通过其对OWIN的支持,ASP.NET MVC5还可以支持数据保护提供程序进行加密/解密。因此,如果你切换到在那里使用数据保护,并在两个应用程序之间共享密钥环,那么每个应用程序都可以解密对方加密的东西。但是,如果您还没有在MVC应用程序中使用数据保护,那么更改可能会有些痛苦。
如果您只关心共享身份验证,也可以通过集中式身份验证提供程序(如Identity Server )来实现。这将允许这两个应用程序独立运行,但仍然共享一个共同的用户/角色存储并支持SSO。然而,这也可能需要对现有的MVC应用程序进行一些实质性的更改。这一切都是权衡。
https://stackoverflow.com/questions/55999216
复制相似问题