Architecture 对许多程序集来说是坏的吗?

Architecture 对许多程序集来说是坏的吗?,architecture,project,.net-assembly,Architecture,Project,.net Assembly,我有一个小问题。在许多软件体系结构中,例如多层或类似企业库的东西,我在外部程序集中扩展了一些代码。有时,我的项目每个解决方案包含20多个程序集。现在我很困惑。。。20个组件是多少?如果是的话,我可以在一个具有不同逻辑“部分”的大型项目中做什么?如果我实现企业库,我通常至少有5个程序集。20个程序集离问题还有很长很长的路要走。只是为了进行比较,当我现在查看VisualStudio时,我看到它加载了249个程序集。我的机器上的VS没有什么特别麻烦的地方,它没有占用很多内存(现在是283MB),只需一

我有一个小问题。在许多软件体系结构中,例如多层或类似企业库的东西,我在外部程序集中扩展了一些代码。有时,我的项目每个解决方案包含20多个程序集。现在我很困惑。。。20个组件是多少?如果是的话,我可以在一个具有不同逻辑“部分”的大型项目中做什么?如果我实现企业库,我通常至少有5个程序集。

20个程序集离问题还有很长很长的路要走。只是为了进行比较,当我现在查看VisualStudio时,我看到它加载了249个程序集。我的机器上的VS没有什么特别麻烦的地方,它没有占用很多内存(现在是283MB),只需一两秒钟就可以启动


CLR通常不会花费大量资源来跟踪程序集。拥有很多这样的软件的唯一可能的缺点是它会影响程序的冷启动。如果你的程序初始化没有得到很好的优化(VS的优化程度很高),如果你需要在慢速主轴驱动下运行,那么这20个组件可能会花费你第二次足部攻丝。当然,只有互动节目才重要。ILMerge将是一个解决办法。

这可能是基于意见的,但IMO有20个组件不应该引起关注。如果您有数百个程序集,您的启动时间可能会受到影响-否则我看不到太多不利因素。ILMerge的另一种替代方法是嵌入程序集并使用
AppDomain.CurrentDomain.AssemblyResolve
()。引用ILMerge的作者Mike Barnett的话,“我认为这太棒了!如果我知道这一点,我就永远不会写ILMerge了。”