Visual Studio:IIS中的项目层次结构与网站层次结构

时间:2014-04-07 00:01:47

标签: c# asp.net visual-studio iis project

我们的网站已经变得非常庞大,并且是Visual Studio中的管理噩梦,我们需要将它分解为单独的项目。目前在一个主项目中有数百个页面,我们希望通过功能区域将其分开,每个功能区域位于IIS中根网站下的自己的虚拟目录下。我们想象的是:

http://mainsite/
  http://mainsite/accounts/
  http://mainsite/requests/
  http://mainsite/approvals/
  http://mainsite/applications/

等等,每个虚拟目录映射到自己的项目:accounts.csproj等。根网站将处理登录和登录页面,但仅此而已。

今天,单个项目和共享库的布局类似(可能看起来很奇怪,因为我将一些项目排除在外):

Solution 'MainWebsite' (20 projects)
  + Common
      Common.csproj
      CommonThings.cs

  + Packages
      UserPackage.csproj      // Used by requests, approvals, and user mgmt alike
      AccountPackage.csproj   // Also used by more than just the accounts sub-site

  + Website
      MainWebsite.csproj      // Maps to the root in IIS 
        + CSS
            (Common CSS files)
        + ErrorPages
            (Common Error pages)
        + Accounts
            AccountMgmt.aspx
            Web.config
        + Applications
            AppMgmt.aspx
            Web.config
        + Approvals
            Approvals.aspx
            Web.config
        + Requests
            Requests.aspx
            Web.config
        -----------     
        Main.master
        Default.aspx
        Web.config

在分享公共元素(CSS文件,错误页面等)的同时拆分主项目网站的好方法是什么?田园诗般的要求包括:

  • 很好地使用TFS
  • 使用内置的Visual Studio开发服务器(不是http://localhost/
  • 允许单个项目共享当前位于主项目中的公共文件夹中的页面(这里的母版页也是一个问题,但我至少已经看到了通过这个方法来跳过这个问题的方法 - 更好的解决方案欢迎)
  • 保留继承web.config设置的能力,同时通过独立项目web.configs
  • 最小化它们
  • 让root网站处理所有子站点的登录(当前是身份验证)
  • 我们所有人都可以独立部署各个站点(每个站点都有自己的/bin/目录,我们不关心每个站点是否有相同的DLL副本 - 不是问题)

我不认为这是一件不合理的事情,但也没有共享母版页:(建议?

0 个答案:

没有答案