我正在设计一个应用程序。我发现为了使它更加模块化,dll的数量会增加。拥有更多数量的dll是更好的设计吗?
此致 ArunDhaJ
答案 0 :(得分:4)
这是一个常见但棘手的问题。就个人而言,我不喜欢过于分散的dll,因为它使跟踪和部署非常困难(IMO)。我更喜欢数量有限的更大块的dll。
除了项目/ dll管理之外,这还减少了“Fusion”在加载东西时必须完成的工作量。
你显然应该针对可重用的组件,但不要生气,使它们太粒度 - 例如,考虑“System.Windows.Forms.dll”;在那里相当多!
垂直地,显而易见的是UI /存储库/逻辑问题;横向我倾向于每个逻辑区域有一列dll - 但你仍然可以用命名空间来划分它,所以你不必将一个dll保存到只是一件事
答案 1 :(得分:0)
目标不是拥有一定数量的装配,而是要有一个有意义的分离。某些建筑模型表明某种结构,例如3层应用程序可能具有用于数据访问,业务逻辑和前端的单独程序集(请记住,程序集之间的依赖关系理想地形成树)。
答案 2 :(得分:0)
我认为这个问题是主观的,因为它取决于每个人的个人意见。
在我看来,项目应该需要与模块一样多的dll,不包括数据和业务层的dll。
通常,属于一起的组件的组件当然应该保持在一起。 Marc Gravell的System.Windows.Forms的例子是一个很好的恕我直言。
答案 3 :(得分:0)
这是一个非常普遍的问题......只要dll不相互依赖,我就不明白为什么不这样做。
答案 4 :(得分:0)
每个加载的dll都会增加一些开销(操作系统需要跟踪它,更多的dllmain来调用每个线程的开始/结束。
但实际上,除非dll数量巨大(数百),否则这些开销可能并不显着。
许多dll更需要安装(和更新),并且意味着需要在开发中构建更多项目。
但模块化与较低开销之间的平衡总是高度主观的,并且只能在具体情况下真正回答。
答案 5 :(得分:0)
这取决于但我会说是,
将它们用于将来的项目会更容易,也可以编译您正在使用的项目,这可以减少编译时间,具体取决于项目/其他dll的大小。
答案 6 :(得分:0)
拥有更多 dll 是更好的设计吗? = 拥有更多设计是更好的设计吗?的模块强>
所以,如果这取决于你的应用程序逻辑,它有多大,它使用了多少逻辑“层”。
由应用程序架构师(最终是你)来划分这些层。
肯定最好有更多的小功能,但这个规则不适用于应用程序模块(解决方案项目)......答案 7 :(得分:0)
你的问题没有正确/错误的答案,这只是一个偏好问题。我会说,作为一般的经验法则,尽量将您的DLL保持在最低限度,因为它更容易管理。
类需要值得拥有自己的DLL,所以如果你觉得你有很多与特定功能区域相关的类(比如DAL,BLL),通常会将这些类移到自己的程序集中。
如果您只有几个可能与特定区域相关的类,您可以使用单独的命名空间(如Mark建议的那样)将它们分开。