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

使用ASP.NET和多个项目保持干燥,asp.net,asp.net-mvc,asp.net-mvc-3,webforms,Asp.net,Asp.net Mvc,Asp.net Mvc 3,Webforms,使用ASP.NET和多个项目保持干燥。 在我为之工作的公司,我们正在为我们的大型intranet站点从经典ASP迁移到ASP.NET 目前有两名开发人员正在使用此intranet站点,我们目前不使用任何形式的源代码管理,只是相互交流我们当前正在处理的项目。我不确定我们是否会得到批准使用Team Foundation Server或其他任何源代码控制系统。 我们的网站目前由单一静态内容和单一动态内容页面组成 此外,还有大约50种不同的web应用程序,全部由公司各个部门使用。从单页表单到具有不同级别

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

在我为之工作的公司,我们正在为我们的大型intranet站点从经典ASP迁移到ASP.NET

目前有两名开发人员正在使用此intranet站点,我们目前不使用任何形式的源代码管理,只是相互交流我们当前正在处理的项目。我不确定我们是否会得到批准使用Team Foundation Server或其他任何源代码控制系统。 我们的网站目前由单一静态内容和单一动态内容页面组成

此外,还有大约50种不同的web应用程序,全部由公司各个部门使用。从单页表单到具有不同级别的报表生成功能的非常复杂的多页应用程序,这些应用程序的复杂程度都不尽相同

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

我的猜测是,我们最终将混合使用HTML、经典ASP、.NETWebForms和.NETMVC应用程序,它们都位于同一个域名下的一台服务器上

目标:

  • 母版页/\u Layout.cshtml-在各种Web表单和/或MVC应用程序之间共享一个母版页和一个MVC布局页。我不介意为Webforms维护一个母版页,为MVC维护一个布局页
  • 页眉、页脚、侧边栏-如果我无法轻松共享Master/\u布局页面。我想在所有不同的页面中至少共享页眉、页脚和侧边栏,以便在站点范围内轻松更新它们
  • 发布单个应用程序的更改-我不希望每次更改其中一个应用程序时都必须发布整个网站和所有不同的应用程序。是否有办法保留此功能并仍然实现目标1和/或2
  • 如果您可以为几乎没有ASP.NET Webforms、MVC和C#使用经验的人量身定制答案。我已经完成了一些教程,但仍处于学习过程的开始阶段


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

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

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


    将所有其他MVC应用程序也放在单独的项目中(您仍然可以将它们放在一个解决方案中),因此,您可以分别构建和部署它们。

    如果我将所有项目都放在一个解决方案中,如果没有源代码管理,我是否还可以让多个开发人员在不同的部分上工作?此外,如果我必须将它们拆分为单独的解决方案,我是否仍然可以共享已编译的dll?您的项目是否在同一个解决方案中并不重要。只要您的开发人员在解决方案的不同部分(或同一项目的不同部分)上工作,就不会有任何重大问题。但是,我仍然建议使用某种源代码管理(TFS),因为它确实有助于在发生冲突时合并代码。如果您最终在单独的解决方案中拆分项目,那么具有通用布局的dll文件仍然可以被所有人引用。当我输入typeof(LogOnModel)时,我得到了一个构建错误,我似乎无法确定应该在那里引用什么。有什么建议吗?第12步,共13步。。。很接近,伙计:)你可能没有包括对你编译的新引用的使用。当光标位于
    LogOnModel
    上时,尝试按Alt+Shift+F10。那应该会弹出一个菜单,上面有可用的用法。选择一个
    预编译视图。如果按下该组合时没有弹出任何内容,请尝试在最上面手动编写using:
    @using[WhateveryourMVCSolutionName]。预编译视图为什么源代码管理需要“批准”?有很多免费的源代码管理工具可以使用。Subversion、Git、Mercurial等。我在一个公司环境中,虽然我们已经拥有TFS的许可证,但我们可能无法获得分配的服务器空间来运行源代码管理系统。我正在努力推行源代码管理,因为我确实看到了它的好处,但这是我无法直接控制的几层官僚主义。