当前位置:  开发笔记 > 编程语言 > 正文

我可以将每个类的一个大dll分成1个dll吗?

如何解决《我可以将每个类的一个大dll分成1个dll吗?》经验,为你挑选了2个好方法。

从我可以在Visual Studio 2008中从C#项目构建2个或更多dll吗?,我有另一个想法,只创建一个大项目.之后,我通过使用post-build事件来调用Win app项目(对于单独的一个大dll),将每个类的项目dll(包含许多类.)分成1个dll.这该怎么做?

而且,我还需要在一个大dll中管理附件.

更新 我发现一些技巧可以指导我通过自定义构建解决这个问题?而且,我认为我可以创建自定义处理程序,通过使用单独的模块文件和al.exe生成动态程序集文件.但是这个功能超出了我的期望和不确定性(源代码很少改变).

多文件程序集:什么和如何

如何:构建多文件程序集

POCO自定义多文件组件和ReSharper

谢谢,



1> Marc Gravell..:

只是......为什么?拥有大量dll会对应用启动产生性能影响(由于"融合").它也会立即遭受循环引用,这是一件坏事.

由于.NET代码(默认情况下)在首次使用时会获得JIT,因此在dll中使用未在该应用程序中使用的额外类会产生巨大的影响.他们只是静静地坐在那里,对任何人都没有打扰.

每个类具有dll的纯粹管理成本将使部署等难以忍受.

总而言之,我无法想到这样做的合理理由......



2> Jon Limjap..:

你将在这里得到的答案与另一个问题的答案没有什么不同:为每个单独的dll单独设置一个项目.

我想问你的是你对"阶级"定义的理解是什么.每个DLL一个类可能意味着您不太熟悉程序集,命名空间和类的工作方式.

告诉我们,您真正希望能做什么?因为你认为你应该做的就是解决这个问题(例如,每个类创建一个DLL)是不切实际的.

更新

考虑到您的需求的上下文(例如,Silverlight Web应用程序),我的结论是将类拆分为多个DLL不会导致 ASP.NET网页的性能提升,因为:

DLL仅由服务器使用,不会通过HTTP下载到您的浏览器

一旦Web应用程序加载了DLL,它就不会再次加载它 - 无论有多少用户同时使用您的站点.每个服务器一个DLL实例.

当您启动Web应用程序时,它将加载它所依赖的所有 DLL进行编译,无论您是否将使用它.

因此,考虑到带宽限制,根据您的要求,最好不要将Silverlight用于您的应用程序.您可以探索的途径是:

学习AJAX技术,特别是JSON,(可能不是ASP.NET AJAX及其易于滥用的UpdatePanel)

学习jQuery以查找将在JavaScript中实现使用Silverlight要执行的操作的控件


换句话说,"你一直在问这个问题.我认为这并不意味着你的意思!" :)
推荐阅读
低调pasta_730
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有