各位老大,我做了个管理系统,创建了60多个form,另外引用了一些控件,最后编制成EXE,文件有13M 各位老大,我做了个管理系统,创建了60多个form,另外引用了一些控件,最后编制成EXE,文件有15M,有没有办法减小文件,加快启动速度?或者能否象PB一样,做成多个PBD,这样可以减轻开始时的启动速度。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 60个FORM?那一定是比较烂的开发方式。60个FORM几乎可以做一个大型的软件了。不仅仅是要使用面对对象开发方式那么简单,更深层次的原因是没有好的架构,其实许多界面是通过配置就可以复用的。 晕,我的软件有100个Form也只有10MB大小呀 把一些FORM做成DLL,运行过程中需要时才加载。 分写成几层,尽量把重复的代码写到程序的基类里,主项目只要放软件必备的几个form就行了,其他可以规划到应用层 可视化继承、分层、公用资源文件 简单扼要,说的好!!!楼主觉得太抽象??其实说简单点是把很多个form中都用到的东西(一般你60多个里总有长的像的窗体)把这些Form按相似分出几组来,长的像的放一组,寻找它们的相似点,把这些相似点作成一个form并编译成dll,其他窗体直接继承这个可以十分明显地减少代码(也就减少了体积)。你也可以在一个解决方案里用多个项目,那样只有启动项目编译成exe,其他是dll,或者换句话说把一个文件分成了多个,这样也可以减少代码重复。另外代码中注意重复的东西尽量提出来重用,不要复制好几次,如果是相似的东西,也考虑可以不要写2次。每个form有自己的资源(如图标,图案等),虽然可能60个的资源中都有大部分一样的,不过每个都保留了60份可是不小的开销。另外,类名、方法名,变量名,等等,如果都很长的话也会加大体积,VS.net自带的dotfucator工具可以把你所有类、名称空间,方法,变量全部改成一个字母(当然是在生成的exe和dll中改,并不影响你自己的代码文件可读性)体积也可以大大压缩(WinForm这点比ASP.NET要好的多也明显的多). 另外楼主提到启动太慢,注意.net里有个工具是用来生成本地映像的,生成以后只要没改到程序,开始运行的时候会直接读编译好的本地映像,并不重新编译,速度可以非常明显提升。 syeerzy(快乐永远*先天下之乐而乐*后天下之忧而忧*) 讲得很好!还有一个设置:项目属性 >> 配置属性 >> 代化 >> 启用优化 = 指示编译器优化输出,使其变得更小、更快或者更有效。 把每个Form单独编译成一个 .netmodule, 然后再把所有的 .netmodule链接起来做成一个程序,这样可以保证主程序很小而且只有当需要Form时才从.netmodule中装载 我的900K ,5个form ,60个user control 13M的程序多半是图片资源太多,否则如果全部是代码写 13M 要写死人的,要知道MS 的System包也才 1M多点 项目属性 >> 配置属性 >> 代化 >> 启用优化 = 指示编译器优化输出,使其变得更小、更快或者更有效。good idea 搞C#就搞ASP.NET几百个form都正常 一般不用太多的Form 在一个工程文件.但这与启动无关.关键是你启动的时候做了些什么? 同意把重复代码写成类...或DLL 谢谢各位,数据维护方面我尽量减少了代码,增加了公共的模块,二百多个报表我现在只用一个FORM来做,总体上还是可以的。 dotnetskin的bug,求助 VS操作问题 把textbox text以excel file的形式保存 c# 如何先启动一个窗体再启动另外一个窗体?第一个窗体的启动主要是为了掩盖住让第二个窗体初始化 一个简单的C#小技巧问题 页面跳转问题,急用! 如何对WEB程序进行压力测试 在C#怎么锁定键盘和鼠标~~~ 类的成员函数调用问题 C# CSV 导入数据库 100分大放松!!如何让listview中任意一个单元格中都能获得焦点?并且能修改其中得数据? 请教取字符串问题,谢谢了
60个FORM几乎可以做一个大型的软件了。不仅仅是要使用面对对象开发方式那么简单,
更深层次的原因是没有好的架构,其实许多
界面是通过配置就可以复用的。
你也可以在一个解决方案里用多个项目,那样只有启动项目编译成exe,其他是dll,或者换句话说把一个文件分成了多个,这样也可以减少代码重复。另外代码中注意重复的东西尽量提出来重用,不要复制好几次,如果是相似的东西,也考虑可以不要写2次。
每个form有自己的资源(如图标,图案等),虽然可能60个的资源中都有大部分一样的,不过每个都保留了60份可是不小的开销。
另外,类名、方法名,变量名,等等,如果都很长的话也会加大体积,VS.net自带的dotfucator工具可以把你所有类、名称空间,方法,变量全部改成一个字母(当然是在生成的exe和dll中改,并不影响你自己的代码文件可读性)体积也可以大大压缩(WinForm这点比ASP.NET要好的多也明显的多).
还有一个设置:
项目属性 >> 配置属性 >> 代化 >> 启用优化 = 指示编译器优化输出,使其变得更小、更快或者更有效。
几百个form都正常
但这与启动无关.
关键是你启动的时候做了些什么?