我有一个哲学问题,这也需要考虑性能的影响。.NET项目架构
我们正在设计一个新的系统,它有许多不相互关联的子服务,但也有一些可能会互相使用(我们正在使用统一来避免任何解耦)。
我的主要问题是:
- 我们应该打破他们到不同的DLL的,其中每个服务都有自己的DLL(如product.services.serice1.dll,product.services.serice2.dll等。 ),或者我们应该将所有这些服务整合到一个具有不同名称空间的DLL中以在它们之间分离。 它的表现,两者有什么区别?此外,社区(和微软)认可的最“可接受”标准是什么?
感谢
嗨,大家好,感谢所有的输入;但不是你真的在寻找多个(超过20个)不同dll需要加载的效果,而不是一个单一的大dll。我想知道,除了延迟加载的优点(并且我们现在忽略部署困难),是否有加载大量DLL的风险?谢谢! – 2009-12-03 20:03:43
第一次访问时会加载一个dll。所以如果系统在启动时有一个初始化阶段,可以调用dll来强制它们加载。这将避免在“运行时间”的性能滞后。 20 dlls == dll地狱。如果可能,我会进行整合。 – Paul 2009-12-03 20:12:41
他们只有*不同*性能特点。一个大型组件花费的总时间较少,但它会一次性发生,因此用户(或客户端系统,如果它们对时间敏感的话)更有可能感受到它。多组件方法需要更多的总时间来加载(如果全部加载它们),但是这个时间是分布式的 - 因此每个加载事件都不太可能产生显着的影响。 – 2009-12-03 20:18:28