从一个ASP.NET代码库运行多个站点并转移到ASP.NET MVC

我有一个相当大的工作项目,我继承了.它是一个ASP.NET 2005网站项目和两个用于数据访问和一些业务逻辑的C#库项目.该代码实际运行6个不同的数据库驱动的网站它根据检查URL的逻辑显示每个站点的不同图像和文本,并使用一系列Web.config值和switch语句.

我们现在有几个新网站将遵循与这6个相同的模式和框架,因此管理层决定我们不应该重新发明轮子,我们应该继续扩展现有代码.虽然我从他们的角度理解了这个决定,但是考虑使用更多的Web.config值以及更多的switch语句扩展这些代码的想法都是错误的.似乎应该有一种更好的方法来管理这种特殊形式的复杂性,但我没有处理更好的方法应该是什么.

与此同时,我一直在寻找一个开始学习ASP.NET MVC的项目,我一直倾向于在我自己的时间用它来重新开发这个项目,因为它很复杂,但是需求在代码中.我希望通过将它移动到MVC获得3件事:1)能够测试应用程序及其所有版本以及所有它甚至还不知道存在的黑暗角落,2)希望找到一种方法来制作在单个代码库上管理大约12个站点,可管理和3)学习MVC.

漫游后,这里有一些具体的问题:

MVC实际上会为我提供更好的方法来管理1个代码库问题中的12个站点吗?在没有更深入的MVC知识的情况下,我有点难以讲述.

是否有一个模板模式或框架,我可以应用(在WebForms或MVC中)适用于具有类似内容和结构并从相同代码库运行的类似这样的网站?

有没有比检查URL更好的方法来决定查看哪个网站以及每个网站应显示的图像和文本?

谢谢你的时间.我很感激!

最佳答案 ASP.Net MVC可能在这里有一些真正的优势.你不会再手动检查URL了,因为MVC的路由功能会为你做 – 所以在某种程度上,它是一种“更好的方式”.这有一些优点:

> URL路由是一种区分服务网站的简单方法,如果您正确构建路由,则“我是哪个站点”参数将自动传递给每个Controller(以及随后的每个View).
> URL路由可以双向工作,因此为所有站点定义单个视图会相对简单,这些站点生成适当的图像和脚本引用到您需要的任何站点目录.
>部分视图是在角落情况下切换特定于站点的内容的好方法,其中每个站点的模板不完全相同.

只要每个站点的逻辑相似,ASP.Net MVC 1.0就可以解决这个问题.如果每个站点需要不同的控制器逻辑,即将发布的ASP.Net MVC具有“区域”的概念,这将允许您在同一个应用程序中实现不同的站点,这些站点都有自己的Controller,Model和View目录 – 但他们的路线有所区别.

点赞