以前都一直用b/s写程序,所以没这个问题,现在想用c/s写一个较大的项目,不知道要如何组织程序文件,主要有下面这些问题,还望不吝赐教:在我的认识中,在vs c# 2005中新建一个项目,编译后就是生成一个可执行文件,如果我有很多的窗体,那最后这个生成的可执行文件不就很大很大。Q:你们的项目都是怎么处理这种情况下?以前听说把一些窗体写在dll中用来调用,这样也可以减少可执行程序的大小,可是在我认识中,如果调用dll中的窗体好像很麻烦,而且功能上也有限制,如果窗体有上千个,那不是极大降低开发效率。Q:请问你们平时是否这样做的?Q:请问你们的公司对于这些大项目都是怎样让可执行程序变小,麻烦请稍微举例说下。在这先谢谢大家了!!!

解决方案 »

  1.   

    我是这样做(相对通用的模块都单独建为一个类库工程,aspx页面也包含其中)
     最方便的是,如果该模块要移植,只需把该模块的Dll和页面COpy走即可
      不过vs2005好像不太支持这样做
      

  2.   

    > 在我认识中,如果调用dll中的窗体好像很麻烦
    在C++中有限制,在C#中,则是很方便很自然的。
      

  3.   

    我们的一般做法是用DLL,开发效率没有你想象的那么差。
    你做做看就知道了
    祝成功
      

  4.   

    在我的认识中,在vs c# 2005中新建一个项目,编译后就是生成一个可执行文件,如果我有很多的窗体,那最后这个生成的可执行文件不就很大很大。
    -----------------------------
    .net生成的可执行文件都非常小!多几个窗体也不会变大,倒是Framework比较大!
      

  5.   

    Mark
      
    *****************************************************************************
    http://www.poge.com.cn
      

  6.   

    把逻辑写到n个project中,以生成n个dll(exe),窗体上没有商业逻辑的痕迹,它不会太大的,再说了。
    因为一般来讲,窗体本身需要被移植的可能性还是非常小的。
      

  7.   

    c/s结构和b/s结构是两种不同的应用。
    c/s结构中调用dll是很正常的事情,如果有上千个窗体,不一定就会有上千个dll,可以把类似的窗体合并到一个模块中,利用.net 2005中的TabControl实现类似窗体的切换,这样维护起来也很容易控制。本人觉得c/s比b/s简单,也许我做b/s的项目时间不长。只是发表鄙人的一些薄浅之言。
      

  8.   

    相比之下cs比bs的程序大多了.没办法的
      

  9.   

    学习ERP中有几千个窗体?
    SAP的也没这么多吧?
    楼主可以考虑将类似的窗体进行合并,在进入不同模块时,只是控制窗体上显示不同的控件
      

  10.   

    比如,订单输入,采购单输入这两个界面类似,只是LABEL不同,楼主只要改改LABLE就行,不用的将其隐藏,如果做得细,这样会少好多窗体
      

  11.   

    .Net中的DLL只是打包的程序集,和Win32不一样。其实可以认为是拆开的不同源码文件而已,感觉用起来没什么麻烦的
      

  12.   

    对于比较大的程序,个人感觉还是应该把窗体和功能剥离,分类抽象后封装DLL
    主程序只是引导