2

我目前正在开始使用 ASP.Net Webforms 开发一个新网站。为了让这个项目有一个正确的开始,我正在研究应用程序的 Visual Studio 解决方案设置,我希望我的应用程序由大小相等(代码行)的易于识别的组件组成。

由于该项目还没有真正开始,我已经在标准的三层设置(数据、业务逻辑和表示)中构建了解决方案。这种设置在项目开始时很好,但随着项目的增长,三层很快就会开始变大,导航和查找代码将变得更加困难,这将损害可维护性和整体质量感。

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

常用文件:

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

购物车:

  • 项目.购物车.数据
  • 项目.购物车.业务
  • 项目.Shoppingcart.Presentations

账户管理:

  • 项目.账户.数据
  • 项目.账户.业务
  • 项目.帐户.演示文稿

网站:

  • 项目.网站.数据
  • 项目.网站.业务
  • 项目.网站.演示文稿

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

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

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

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

到目前为止,我还没有找到一种很好的方法来使用我想到的设置。我愿意接受建议,在此先感谢您的提示!

4

1 回答 1

2

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

多项目 Nuget 问题

更新现有 Nuget 包中的文件

Visual Studio 多项目解决方案选项

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

于 2012-05-31T21:46:00.957 回答