【发布时间】:2010-08-28 15:09:32
【问题描述】:
我想知道何时将代码和项目的组件划分为单独的项目。我正在创建一个 MVC .NET Web 项目,其中有很多目录/子目录,我什至还没有开始进入一些需要更多空间的后台进程。
我只是在努力组织项目和内部代码。
您应该什么时候开始将代码分成不同的项目?你也可以举个例子吗?
谢谢
【问题讨论】:
标签: .net project-management projects-and-solutions code-organization
我想知道何时将代码和项目的组件划分为单独的项目。我正在创建一个 MVC .NET Web 项目,其中有很多目录/子目录,我什至还没有开始进入一些需要更多空间的后台进程。
我只是在努力组织项目和内部代码。
您应该什么时候开始将代码分成不同的项目?你也可以举个例子吗?
谢谢
【问题讨论】:
标签: .net project-management projects-and-solutions code-organization
我经常看到以下方面的变化:
获得想法的一种方法是搜索 asp.net MVC 开源项目,看看他们是如何做到的。
您可以查看CodeCampServer。他们使用Onion Architecture 来布局他们的项目。
洋葱架构与上面列出的不同,他们有一个很棒的explanation of why(网络广播)。
图片取自上述网页。
洋葱架构的主要原则:
•该应用程序是围绕一个 独立对象模型•内部 层定义接口。外 层实现接口 •耦合方向朝向 center •所有应用核心代码都可以 被编译和运行分开 基础设施
带有开源示例的 Onion Architecture 链接为您提供了何时/为什么的推理,以及一个具体的示例,看看您是否喜欢它。
【讨论】:
在我的应用程序中,将代码分离到不同项目中的目的通常是为了实现代码重用。确实没有什么硬性规定,但这里有一些我尝试遵循的原则。
对于代码重用,我会考虑我编写的类是否可以在不同的上下文中使用。例如,如果我有一个与数据库通信的 ASP.NET 网站,则数据访问代码可能会在基于 Windows 的应用程序中重用,因此将其纳入自己的库是一个很好的候选。
我创建扩展方法以方便地操作字符串、流或其他常见事物。这些,我考虑到一个库中,供所有应用程序共同使用。
总之,尽量将您的项目组织成相关类的高度内聚集合,并避免创建无所不能的项目。您会发现高度内聚的项目更有可能被重用,从而节省您的时间和您的雇主的资金。
【讨论】: