我们有一个拥有大量动态业务应用程序页面的企业网站(例如购物车,服务台,产品/服务管理,报表等)。该网站的构建为ASP.Net Web Application Project(WAP)。多年来,我们的系统已经发展到使用.NET 4.5和各种自定义业务逻辑DLL(用C#和VB.NET混合编写)。但是,该网站本身仍在使用VB.NET Web窗体。我们现在已经使用Razor/C#在MVC 4中完成了一些项目,我们希望将这个框架用于未来主要企业网站上的新页面。最简单的方法是什么?如何将新的MVC C#项目与现有的Web窗体VB.NET Web应用程序项目集成?
- 我发现这个不错的清单steps to integrate MVC 4 into an existing Web Forms app。问题是,因为我们现有的应用程序是一个VB.NET WAP,它编译成一个DLL,并且每个DLL只允许一种语言。该网站对我们来说太大了,无法一次性将其转换为C#(是的,我已经看过转换工具,它们很好,但即使99%的准确性也会给我们带来大量的清理工作。 )
- 我曾考虑过将现有的WAP转换为网站项目(WSP)which does allow mixing languages,然后按照上述步骤进行操作,但在几页Google搜索结果后,我找不到任何将WAP转换为WSP的步骤。 (很多站点都提供了相反的步骤:将WSP转换为WAP。)
- 我的另一个想法是创建一个完全独立的MVC项目,然后将它们一起挤压到相同的文件夹结构中,在那里他们将共享bin文件夹,但编译来分离DLL的。我不知道这是否可能,因为某些文件会碰撞(例如Global.asax,web.config等)
- 最后,我可以想象一个妥协解决方案,我们将所有MVC的东西保存在它自己的独立应用程序中在主要解决方案的子文件夹下。我们已经使用了我们自己的自定义会话状态解决方案,因此在旧网站和新网页之间传递数据并不困难。
您认为以上哪个想法对我们最有意义?有没有另一种解决方案,我错过了?
我想,你煮熟了。首先,将WAP转换为WSP是最糟糕的想法。是的,您可以在同一个项目中使用“WebForms”和“MVC”。当然不是,而是一般。您创建proj作为WAP,然后引用MVC库。然后转到'proj'文件并添加模板ID。这样你就拥有了MVC项目的全部功能。但在你的情况下,你使用2种不同的语言。您可以将这些作为亲子应用程序运行。谷歌关于如何设置父子asp.net应用程序。在父母 - 孩子中,他们可以拥有两种不同的语言,但共享相同的安全等。 –
有了父母子女,您也可以运行不同版本的.net。只需要一些额外的配置。阅读ASP.NET 4子应用程序无法在ASP.NET 2.0或ASP.NET 3.5应用程序下启动时:http://www.asp.net/whitepapers/aspnet4/breaking-changes –
这听起来基本上就像我列出的第4个选项。对我们来说可能是最痛苦的。谢谢,我会阅读儿童申请。 –