asp.net - 从一个 ASP.NET 代码库运行多个站点并迁移到 ASP.NET MVC

标签 asp.net asp.net-mvc architecture

我继承了一个相当大的工作项目。它是一个 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 的路由功能会为您做这件事 - 所以在某种程度上,这是一种“更好的方法”。以下是一些优点:

  1. URL 路由是区分正在服务的站点的简单方法,如果您正确构建路由,您的“我是哪个站点”参数将自动传递给每个 Controller (以及随后的每个 View ) .

  2. URL 路由是双向工作的,因此您可以相对简单地为所有站点定义一个 View ,以生成对您需要的任何站点目录的正确图像和脚本引用。

  3. 部分 View 是在每个网站的模板不完全相同的极端情况下切换特定于网站的内容的好方法。

只要每个站点的逻辑相当相似,ASP.Net MVC 1.0 就可以处理这个问题。如果您需要为每个站点使用不同的 Controller 逻辑,即将发布的 ASP.Net MVC 具有“区域”的概念,这将允许您在同一个应用程序中实现不同的站点,这些站点都有自己的 Controller 、模型和 View 目录 -但它们的路线有所不同。

关于asp.net - 从一个 ASP.NET 代码库运行多个站点并迁移到 ASP.NET MVC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1247755/

相关文章:

c# - 如何创建 .NET 4 MVC 3 作业/队列系统?

.net - 不使用 MSMQ 的 NServiceBus 的替代方案

asp.net - HTML.ActionLink() 生成不正确的 URL

c# - 如何在 web.config 中添加一个 xml?

c# - WebApi 500 内部服务器错误

javascript - 保存成功后启用按钮

asp.net-mvc - Html.ListBox() 和 MultiselectList

api - 谁与 API (REST) 对话? Web 客户端与服务器?

c# - C# 中的 Windows 桌面监视器应用程序的体系结构

asp.net - 在 webMethod 上使用 FormsAuthentication