个人觉得多层就是牺牲效率来换取灵活性,可维护和可复用,到头来还是要自己作取舍
http://www.microsoft.com/china/msdn/library/dndotnet/html/DesignNetApp.asp

解决方案 »

  1.   

    .net 企业应用高级编程, 上面有个有源码的 数据层生成器, 据书上介绍数据层的80%,可以由它生成。包括属性类、存储过程调用类,等等,它是由数据库的扫描而生成代码的。
      

  2.   

    2:关于三层开发的效率问题,我认为会增加系统的负担,商务层要生成一个类,调用数据层,又要重新生成一个类,这样会不会对系统的速度产生影响?如果不用三曾结构,而是采用面向过程的开发,直接调用存储过程,这样速度应该会快很多的。因为每个类在生成时都要产生很多的属性、方法等,而且不一定所有的属性和方法都要在一个操作中用到的
    -=--->>web服务器+应用服务器+数据库服务器与你的单个服务器比哪个性能会更好呢!??(当然在一定请求量的基础上)==================================
    弯弯的月亮小小的船,小小的船,两头尖,我在小小的船里坐,只看见闪闪的
    星星蓝蓝的天.
      

  3.   

    实际上我觉得三层开发或者说是多层开发,对于团队来说是十分重要的,分工合作的重要性就体现在这上面。  但是多层开发对于独立开发者来说真是一件头大的事情,自己明显觉得代码多了许多。就是多层次开发来说,我认为在有了分工合作的可能性的基础上,也增加了很多额外的工作量,但是这是保证开发质量和协同开发的必然结果。  个人观点,小型项目,独立开发。code-behind的结构已经非常清晰了,我想我们很多人觉得多层开发浪费时间和效率就是由于这个原因。  大型项目,严格的策划过程,命名空间、类名……可惜俺一直没有机会参与团队开发。:(
      

  4.   

    大家不妨想一下,微软自带的例子,都是分三层,四层的,这意味着什么?好处肯定是有的,否则就不会带这个DEMO给全世界用.NET的IT人员参考啦,就不会放在MSDN中!
      

  5.   

    三层的好处:
    结构不是清晰多了吗?以后维护方便吧?
    结构不是分化了吗?多人开发不是方便多了吗?
    结构偶合度不是降低了吗?SQL SERVER向ORACLE移植不会太难了吧?修改的代码不会多吧,做得好的几乎就不用改程序代码,只改存储过程就可以了,前提是更换数据层为FOR ORACLE的
      

  6.   

    第一个问题,不是所有的东西都是多层的,需要多层的自然就应该设计成多层的,比如duwamish,是所有的数据都流经web页面-外观层-逻辑层-数据访问层吗?不是的,可以肯定的说:有些东西是一定要分层的,有些东西却不一定非要这么做.这主要根据业务需要!!!
       系统设计更多的是先从逻辑上区分业务系统,三层结构只是更好的实现业务系统所以有些东西甚至要4层,五层
      另外一般来说,低层总是为高层提供公共的服务,比如说,一个服务类的功能可能不止一个web页面进行调用,所以你总不能为了实现同样的一个功能在每个页面都写一遍吧?
      嘿嘿,都写一遍也行,就是当你要修改时每个页面时都得改一遍;
    再说一下第二个问题,效率,实际上低层组件化一点也不降低效率,如果想你说的那样做才是噩梦,如果系统有一点变化,你的系统就会动荡不安,比如给客户的折扣算法要改变,客户的分类方法要改变,嘿嘿,你的系统可能就要伤筋动股了.
     还有一个更重要的原因就是系统的承载能力问题,有时后是需要多机部署的.比如有一项业务需要大量的运算,同时web服务器有大量的并发访问,这时组件服务器旧有了用武之地(好贵的呀,要花很多钱的),还有数据库服务器.这就是多机部署第三个问题,这就需要一种有效的机制来进行优化,比如用令牌,如果你只看到问题,也知道可以优化他,而不积极的思考,那么旧不是三层结构的问题,因为这些问题你用不用三层结构都是存在的,  建议,思考一些大的系统应用,如公安系统-警力调度-指纹识别(不要也写进web页)....
      

  7.   

    表示层 业务逻辑 数据层关键还在于设计方面。各层之间分界不用很清楚,表示层可以直接调用数据层的东西。主要作到了显示和数据的分离,比如你的数据来源从数据库改到了XML,这样只需要修改数据访问的部分。知道的也很浅显,具体做的还是少。