使用ASP.NET和多个项目保持DRY

时间:2012-07-12 17:15:54

标签: asp.net asp.net-mvc asp.net-mvc-3 webforms

使用ASP.NET和多个项目保持DRY。

在我工作的公司,我们正在为我们的大型内部网站点从经典ASP转移到ASP.NET。

目前有两个开发人员正在使用此Intranet站点,我们目前不使用任何形式的源代码控制,除了相互通信我们正在处理的项目。我不确定我们是否会批准使用Team Foundation Server或任何其他源控制系统。

我们的网站目前由单一静态内容和单一动态内容页面组成。

此外,整个公司的各部门都使用了大约50种不同的Web应用程序。这些都是复杂的,从单页表单到非常复杂的多页面应用程序,具有各种级别的报表生成功能。

所有这些网页都共享一个共同的布局,基本的javascript,css,页眉,页脚和侧边栏。我想尽可能地遵循DRY原则来帮助重新设计或更改共享的页眉,页脚和侧边栏。

我的猜测是,我们最终将混合使用HTML,Classic ASP,.NET Webforms和.NET MVC应用程序,这些应用程序都位于同一域名下的一台服务器上。

目标:

  1. 母版页/ _Layout.cshtml - 在各种网页表单和/或MVC应用程序中共享单个母版页和MVC版面页。我不介意为Webforms维护一个母版页和为MVC维护一个布局页面。
  2. 页眉,页脚,侧栏 - 如果我无法轻松共享Master / _Layout页面。我想在所有各种页面中至少分享页眉,页脚和侧边栏,以便在全站点轻松更新。
  3. 发布单个应用程序的更改每次我对其中一个应用程序进行更改时,我不必发布整个站点和所有各种应用程序。有没有办法保留此功能并仍然实现目标1和/或2?
  4. 如果你能为那些几乎没有使用ASP.NET Webforms,MVC和C#经验的人量身定制你的答案。我已经完成了几个教程,但仍然处于学习过程的开始阶段。

    感谢您提供的任何帮助,非常感谢。

1 个答案:

答案 0 :(得分:1)

要实现所有这三个要求,您必须将您的布局放在一个单独的项目中,这对所有其他项目都是通用的。

看看这个article,它解释了如何将视图编译成dll。 完成后,您将能够在其余应用程序之间共享此dll文件,从而共享布局页面,其中包含页眉,页脚和侧边栏。

将所有其他MVC应用程序放在单独的项目中(您仍然可以将它们全部保存在单个解决方案中),以便您可以单独构建和部署它们。