ASP.NET Web应用程序:使用1个或多个虚拟目录

时间:2010-05-01 19:09:14

标签: asp.net

我正在开发一个(大)内部Web应用程序,它有多个模块(安全性,执行,功能,报告等)。应用程序中的所有页面共享导航,CSS,JS,控件等。我想创建一个“Web应用程序”项目,其中包含应用程序的所有页面,然后引用将具有数据库和业务逻辑的各种项目在他们中。但是,项目中的一些人希望为每个模块的页面分别开展项目。

为了使这一点更清楚,这就是我所倡导的项目。

/WebInterface*
/SecurityLib
/ExecutionLib
etc...

以下是他们所倡导的内容:

/SecurityInterface*
/SecutiryLib
/ExecutionInterface*
/ExecutionLib
etc...

*项目将发布到IIS的虚拟目录

基本上我正在寻找的是两种方法的优点。这是我到目前为止所能想到的:

单个虚拟目录

赞成

  1. 模块可以共享一个MasterPage
  2. 模块可以共享UserControls(这很常见)
  3. 指向其他模块的链接位于同一个虚拟目录中,因此无需完全限定。
  4. 将不兼容的模块版本放在一起的可能性较小。
  5. 多个虚拟目录

    赞成

    1. 可以在不中断其他模块的情况下发布单个模块的新版本
    2. 模块更划分。更改不太可能破坏其他模块。
    3. 我不买这些论点 首先,使用负载平衡服务器(我们将拥有),我们应该能够在没有中断数据库更改的情况下,在零停机时间内发布项目的新版本。 第二,如果某些东西“破坏”另一个模块,那么当开发人员复制UserControl,MasterPage或dll的最新版本时,存在不正确的依赖关系或者最终会在其他模块中显示中断。

      作为参考,该项目约有10名开发人员约有50%的时间。最初的开发时间约为9个月。

1 个答案:

答案 0 :(得分:0)

我认为没有太多理由使用多个虚拟文件夹。

将功能分成单独的模块是一个好主意。但这与虚拟文件夹无关。模块可以是分离的库项目,并使用单独的程序集发布。然后,它们可以单独进行单元测试并单独部署。这就是我一般自己做的事情。