ASP.NET 解决方案的典型结构?

Posted

技术标签:

【中文标题】ASP.NET 解决方案的典型结构?【英文标题】:Typical structure of an ASP.NET solution? 【发布时间】:2010-10-16 23:03:15 【问题描述】:

正如标题所说,我很想知道您通常如何构建 ASP.NET 解决方案。

我对 ASP.NET 网站 解决方案特别感兴趣,但与其他类型(WebApplication、MVC)相关的信息也可能很有趣。

一些具体问题:

解决方案包含什么/多少项目/程序集 你如何命名你的类库项目 您通常拥有哪些命名空间 每个项目/程序集是否有多个命名空间,或者是否有严格的 1:1 关系 等

谢谢

【问题讨论】:

【参考方案1】:

我的一个项目如下所示:

Sln Sln.Core Sln.Core.Test Sln.数据 Sln.Data.Test Sln.Web Sln.Web.Test

核心是域模型和域服务,只要它们可以在不涉及持久性的情况下完成。数据是持久层,基本上就是FluentNHibernate定义和Core中定义的接口的具体实现。 Web是前端层。

【讨论】:

【参考方案2】:

我做过类似正义的事情。但是项目更少(编译时间更快)

Sln

Project.Core Project.Web 项目测试

Project.Core 将如下所示

存储库 域 演讲者 服务 查看 常见

我并没有真正从多个(超过 3 个)项目中受益。您无法获得可测试性,而且您的编译时间会变得更长。

另外,当我获得一个网站项目时,我做的第一件事就是将它转换为一个 Web 应用程序。但总的来说,当我在网站和 Web 应用程序之间切换时,我的项目并没有改变。

【讨论】:

【参考方案3】:

我通常使用应用程序的名称作为解决方案名称(使用通用的“解决方案”项目类型),然后将 SolutionName.Site、SolutionName.Domain、SolutionName.Persistence 等用于它包含的项目。似乎更容易处理所有引用。

不过,我想看看其他人的答案。虽然这是我发现的最好方法,但我无法摆脱可能会有更好的方法的感觉。

【讨论】:

以上是关于ASP.NET 解决方案的典型结构?的主要内容,如果未能解决你的问题,请参考以下文章

《ASP.NET MVC 5 破境之道》:第一境 ASP.Net MVC5项目初探 — 第二节:MVC5项目结构

在 ASP.NET MVC 中构造视图层次结构的最佳方法是啥?

ASP.NET MVC 3 文件夹结构

添加对 ASP.NET Web API 服务的服务引用

asp.net core 系列6 实战之 一个项目的完整结构

是否有适用于 Azure 的 c#/asp.net mvc3 文件图像选择器/上传器控件