自己用过Winform写过小东西,也看过很多别人写的软件的代码
发现逻辑处理都是直接与UI层结合在一起的,这样的话软件的可重用性岂不是很低
可是又没有发现有什么特别好的方法将逻辑处理与UI层分开(或者说提高软件的代码的重用性)例如那个简单的三层模式吧,表示层(UI)、逻辑层、数据处理,各位在实际做项目的时候其实是怎样具体
地实现这个模型的,各层之间怎样处理、怎样交互的。
如果可以把,就说具体一点吧,谢谢啦~~~~

解决方案 »

  1.   

    并非分层或者隔离PL和BLL就一定是好的。给你一个原则就是,重复的代码出现第二次的时候重构它。另一个经验就是,那些变动的东西,需要和其他部分隔绝起来,便于修改。经验表明,计划重用的东西到后来从来不用。到底是用户界面需要重用,还是业务逻辑需要重用,要具体情况具体分析。
      

  2.   

    可是如果不隔离分层的话,软件进行更新或者升级时会不会很困难啊,如果分层了,可以把不同的模块的做成DLL,这样升级时是不是就没那么麻烦了
      

  3.   

    不利于加密混淆,不利于加壳。单个EXE文件,加壳最方便,多个dll,即便是混淆都可能会出现问题。
      

  4.   


    这个观点和用C#不利于代码加密,或者用C#还需要带什么框架库,所以C#不如C++的论调是差不多的。只有开发非常低端的软件,接触劣质客户,才需要防贼一样防着他们。如果一个开发者想得不是开发最卓越的软件,而是编写软件给一个版权意识都没有的傻瓜用,那他可能真的就是在制造垃圾。
      

  5.   

    .Net Winform程序不适合UI和业务逻辑分开的架构,
      

  6.   

    核心思想就是职责分离,我对层次理解的post,供你参考
    http://nonocast.cn/?p=1845
    http://nonocast.cn/?p=1870May it helps.
      

  7.   

    一些人跑题万里了。
    想分层和快速开发,我一般用CodeSmith或动软三层代码生成器
    直接根据数据库的表生成多个项目,自己再根据需要改改UI层就得了
      

  8.   

    可重用的一般是登录页、MdiForm、用户管理、角色管理、权限管理这些页面
      

  9.   

    楼上所说的成本也太高了,呵呵。
    楼主可以试下我和朋友刚开发出的一款.Net平台代码生成系统,支持多表关联,界面设计与预览,生成出的三层架构就有你所说的WinForm下如何做分层的示例。http://blog.csdn.net/cwbugs/article/details/7268267
      

  10.   

    这才是比较务实的分层,大部分人整天嚷着分层,根本不理解分层的思想,只是为了分层而分层,最终导致形式上的分层。
    另外一个经验和实事就是,完全分层的程序不存在,对于大型程序,分层的程度越高,代价(如人员投入,时间投入等成本)越大,而且那种以为程序修改时替换个dll就可以的想法也是很天真的,试问,你替换一个dll和替换exe区别很大吗?
    分层的思想本质上是依赖倒置和单一职责等思想的一个综合体,本身并没有具体套路,更不是什么DAL,BLL,UI之类的东西