你是否有一个单独的项目用于单元测试,一个项目用于类库代码,一个项目用于用户界面?
或者你只是将所有这些分成不同的文件夹?
我认为按项目来分离它们更容易,因为你的核心代码库集中在一个地方,没有直接引用用户界面(没有WinForms依赖)或单元测试。
你有什么看法吗?
我参与的最近几个项目 - 我们最终采用了以下结构(所有WPF Prism项目):
对于使用WCF的项目,添加:
这些都在一个解决方案中(我们忍受着长时间的编译时间...)。将其分成单独的解决方案会在重构时引入太多问题。到目前为止,这对我们非常有效。
在一个解决方案中,我的项目通常包括以下几个部分:
Administration(管理)-- 一般是文档资料,许可证的主副本等。我通常还会将其编译成一个小型的命令行“自述文件”应用程序,以显示许可证、版本修订说明等。
Data(数据)-- 一般是像 XML 等的数据,没有可编译代码。
Library1... LibraryN(库1…库N)-- 一个或多个库(通常是 1-3 个:工具库、核心库、扩展代码库)。
Application1... ApplicationN(应用程序1…应用程序N)-- 应用程序(通常只有一个)。
Test1... TestN(测试1…测试N)-- 测试。
在每个项目中,我将每个命名空间的文件保存在单独的文件夹中,子命名空间则保存在子文件夹中,依此类推。像文档资料、库或应用程序特定的数据、嵌入式许可证文本等常见类型的内容,我会在具有相同名称的子文件夹中保存,无论该文件夹属于哪个项目。
-Neil
我按照您所描述的组装类型来分解项目。至少要有一个可执行的主项目(如果是应用程序)和一个或多个类库。如果是Windows应用程序,一定要尽可能地将UI与代码分离。WPF应用程序在实现这一点方面做得非常好。
除此之外,我可以提供的另一个建议是,当代码重用很明显或明显时,一定要收集一些第三方类库并编写自己的类库。