我正在计划一些工作,将依赖注入引入当前的大型单片库,试图使库更容易进行单元测试,更容易理解,并可能更灵活地作为奖励.
我决定使用NInject,我真的很喜欢Nate的"做一件事,做得好"(转述)的座右铭,而且它似乎在DI的背景下特别好.
我现在想知道的是,我是否应该将当前单个大型装配拆分为具有不相交特征集的多个较小装配.这些较小的程序集中的一些将具有相互依赖性,但远非所有这些程序集,因为代码的体系结构已经非常松散地耦合.
请注意,这些功能集不是微不足道的,也不是很小......它包含客户端/服务器通信,序列化,自定义集合类型,文件IO抽象,常用例程库,线程库,标准日志记录等.
我看到前一个问题:什么是更好的,许多小型装配,或一个大装配?有点解决这个问题,但是看起来更精细的粒度,这让我想知道那里的答案是否仍适用于这种情况?
此外,在接近这个主题的各种问题中,一个常见的答案是,"太多"集会导致了未指明的"痛苦"和"问题".我真的想要具体了解这种方法可能存在的缺点.
我同意在仅需要1个之前添加8个组件是"有点痛苦",但是必须为每个应用程序包含一个大的单片库也不是完全理想的...加上8个组件只是你做的事情曾经,所以我对这个论点很少有同情心(即使我最初可能会和其他人一起抱怨).
附录:
到目前为止,我已经看到没有针对小型装配的任何理由,所以我想我现在将继续进行,好像这是一个非问题.如果有人能够用可验证的事实来考虑好的可靠理由来支持它们,我仍然会非常有兴趣了解它们.(我会尽快增加赏金以提高知名度)
编辑:将性能分析和结果移到单独的答案中(见下文).
我们开始开发新的应用程序,其中包括大约30个开发人员使用C#在MS Visual Studio中开发的30-50个项目.
我正在致力于组件化应用程序模块,以支持体系结构并实现并行工作.
我们争辩说:我们应该有多少解决方案?
有人声称我们应该有1-2个解决方案,每个解决方案有15-30个项目 有些人声称我们需要每个组件的解决方案,这意味着大约10-12个解决方案,每个解决方案大约3-6个
我很乐意听到每个方向(或其他方向)的优点/缺点和经验
谢谢
这个问题涉及到其他一些相关的问题,我只想让他们每一个都随意回答其中一个或多个问题.
我问这个问题是因为我有这么多不同类的这个大解决方案,因为现在我需要分离一些接口,它们都崩溃了(循环依赖问题)现在我需要创建多个DLL,我只是想一定要这次以正确的方式做到这一点.
在Visual Studio中卸载项目时,任何引用项目都会在对已卸载项目的引用上获得警告三角形.我自己写了一个宏来做聪明的事情(检测添加/删除项目并将任何引用转换为文件/项目依赖项),但我不能相信我没有错过更简单的东西.如果我必须手动更改引用(并打破'个人解决方案/共享项目'团队开发范例),卸载功能如何可以使用.
(这个问题与关于在Visual Studio中构建大型解决方案的问题的答案有关 - 一些答案提到了包含大量项目的解决方案,但是"卸载"未使用的项目以提高性能.)
嘿.我有一个非常大的C#解决方案,许多项目在我的计算机的许多位置都很混乱.我想将解决方案发送给朋友.是否有任何工具可以将解决方案复制到新目录,其中包含所有项目,清理和组织?
谢谢.