......如果有这样的事情。 这里的两大技术途径为在.NET应用程序构建的DLL /参考图像: http://www.experts-exchange.com/images/t80668/compArch.png 。 该应用程序可以是一个网站(这是在这种情况下)或WinForm的。 每个方块代表一个DLL。 对于winform应用程序,只需更换“器WebControls”与“winformcomponents”。
第一个(顶部)图像正是我喜欢的。 您可能要扩展基本Web控件的“一些”,并直接使用他人。 第2图像让你通过接口扩展任何Web控件。 对我来说,这似乎矫枉过正,因为你可能想简单地用的是已经有不加修饰。 哪个更好,有什么优势/劣势?
第一图像把最低的共同构建体(例外,FILEIO,常量等)成common.dll。 第2图像使应用程序的业务逻辑,共同为一个DLL。 哪个是更好的,什么是每个apporach的优势/劣势?
有大量文献的通常是不好的,因为加载DLL的具有非negligble成本。 这不是优雅也许是,但有更少的模块提高你的表现。 正如经常出现在我们的工艺,你必须要找到总模块化的优雅和性能的残酷现实之间的平衡。 同时,我们的工艺往常一样,你不知道什么平衡,直到你开始剖析来衡量你的应用程序的性能。
我觉得这是一个非常下降到程序员的偏好。
这一切都归结为依赖真的。 在一个DLL更多的事情意味着它自然会在该DLL创造更多depentdents。
我个人倾向于沿着类似的路线到MS结构遵循,原因如下:
- 这使得它更容易为新人定制的“框架”中找到自己想要的东西(如
CompName.Web.UI
和CompName.Data
。 - 它有助于减少依赖于“明显”的选择。 我不是太热衷
CompName.Common
型DLL的,因为它没有明确指出可能的家属,而CompName.Web.UI
表明,它很可能通过任何Web应用程序中使用。 - 明显的尺寸缩小,因为DLL的内容将更加“相关”。
DLL的一个应用程序内层是有意义的,中的类型应该只由商业模式所需要的那些类型,其他对象(如公用事业,数据访问等)应在自己的图书馆。