Visual Studio解决方案中的多个Web应用程序项目

时间:2012-05-31 21:37:56

标签: asp.net visual-studio-2010 webforms

我目前正在使用ASP.Net Webforms开始开发新网站。为了给这个项目一个正确的开始,我正在研究应用程序的可视化工作室解决方案设置,我希望我的应用程序包含大小相等的易于识别的组件(代码行)。

由于项目尚未实际开始,我已经在标准的三层设置(数据,业务逻辑和演示)中构建了解决方案。这个设置在项目开始时很好,但随着项目的发展,三层很快就会变得很大并且导航并且找到代码会变得更难以破坏可维护性和整体质量感。

所以在项目期间,我想转换到一个新的设置,在那里我形成了每个都有自己的三层设置的功能组件。例如:该网站有一个购物车和用于创建和管理用户帐户的选项。还应该有跨多个组件使用的stull组件,我将在本例中称之为常用组件。这将导致以下设置:

常见文件:

  • Project.Common.Data
  • Project.Common.Business
  • Project.Common.Presentations

购物车:

  • Project.Shoppingcart.Data
  • Project.Shoppingcart.Business
  • Project.Shoppingcart.Presentations

帐户管理:

  • Project.Account.Data
  • Project.Account.Business
  • Project.Account.Presentations

网站:

  • Project.Website.Data
  • Project.Website.Business
  • Project.Website.Presentations

上面的示例包含三个组件,每个组件包含三个项目。每个组件都有一个Web应用程序项目,其中包含Web文件(页面,控件,前端代码)。我以前的所有.Net项目都有一个简单的Web应用程序项目,因此这个设置对我来说是一种全新的体验。

我仍然希望解决方案感觉像一个应用程序,能够轻松地调试网站和组件。为实现这一点,我假设“Project.Web.Presentation”Web应用程序项目应该是主要的Web应用程序项目。我目前正在调查是否有可能以这种方式设置解决方案,我已经尝试了几种方法,但到目前为止还没有很好的方法:

  • 单独运行所有的Web应用程序项目,这个工作正常,但我必须单独运行所有应用程序,我不能在调试时可怕的同一个端口下运行它们。

  • 将其他演示文稿项目中的文件添加为“Project.Web.Presentation”项目的链接,并将该项目设置为启动项目。这不起作用,因为在调试时文件不存在,在构建部署包时似乎工作正常。我不想复制文件,因为我必须以某种方式防止这些重复文件在版本控制中结束。

到目前为止,我还没有找到一个很好的方法来处理我想到的设置。我愿意接受建议,提前感谢您的提示!

1 个答案:

答案 0 :(得分:2)

我正在做类似的事情,并决定使用NuGet推出所有常见部分:

Multi-Project Nuget Issues

Updating Files in Existing Nuget Package

Visual Studio Multi-Project Solution Options

执行此操作的唯一方法涉及嵌套母版页和后期构建脚本 - 凌乱。