日期:2014-05-20  浏览次数:20870 次

C#里说的三层框架是不是这个意思
就是界面的部分就直接在窗体里设置
然后新建一个文件专门是保存逻辑部分的,同理,新建一个文件专门是保存数据库操作的
最后,如果窗体里要调用什么的话,就直接调用那2个文件里的函数?

------解决方案--------------------
  三层结构的程序不是说把项目分成DAL, BLL, WebUI三个模块就叫三层了, 下面几个问题在你的项目里面:
  1. UILayer里面只有少量(或者没有)的SQL语句或者存储过程调用, 并且这些语句保证不会修改数据?
  2. 如果把UILayer拿掉, 你的项目还能在Interface/API的层次上提供所有功能吗?
  3. 你的DAL可以移植到其他类似环境的项目吗? 
  4. 三个模块, 可以分别运行于不同的服务器吗? 
  如果不是所有答案都为YES, 那么你的项目还不能算是严格意义上的三层程序. 三层程序有一些需要约定遵守的规则:
  1. 最关键的, UI层只能作为一个外壳, 不能包含任何BizLogic的处理过程
  2. 设计时应该从BLL出发, 而不是UI出发. BLL层在API上应该实现所有BizLogic, 以面向对象的方式
  3. 不管数据层是一个简单的SqlHelper也好, 还是带有Mapping过的Classes也好, 应该在一定的抽象程度上做到系统无关
  4. 不管使用COM+(Enterprise Service), 还是Remoting, 还是WebService之类的远程对象技术, 不管部署的时候是不是真的分别部署到不同的服务器上, 最起码在设计的时候要做这样的考虑, 更远的, 还得考虑多台服务器通过负载均衡作集群
  所以考虑一个项目是不是应该应用三层/多层设计时, 先得考虑下是不是真的需要? 实际上大部分程序就开个WebApplication就足够了, 完全没必要作的这么复杂. 而多层结构, 是用于解决真正复杂的项目需求的。
------解决方案--------------------

DataBase 数据访问层
Business业务逻辑层
Module业务实体层
表示层 窗体显示数据

数据访问层职责是扩展数据类型支持,关键点是数据连接对象的唯一性.而业务逻辑层是根据具体的业务逻辑处理数据,关键点是根据业务操作数据并把数据反映到数据库中,在业务逻辑层中可以封装一些方法象字符串操作,文件的操作xml的操作等,当然也可以把这部分代码单独分层.而表示层主要是初始化业务实体和服务端数据检测.在三层框架中Moduel层负责各个层之间传递数据. 
参考
------解决方案--------------------
表现层 
业务逻辑层 
数据访问层 
||加上实体层

他们要通过引用来建立关系,在不同层用的时候还要引用另一层的命名空间。 

他们之间是通过dataset或实体来传递数据的。
------解决方案--------------------
6-9 14楼都说得满完整了。

三层架构,便于后续搞搞补丁,以及便于程序重用。
但是人力耗费肯定比简单架构来得多。
特别是要写文档,软件说明的时候。

MVC是被广泛认同的一种三层架构方式,蛮经典的。有兴趣可以多看看相关资料。

有时候小项目用三层模式也是一种累赘。
------解决方案--------------------
我谈谈我的看法吧: 

首先,提出架构思想的目的是为了有更清晰的思路,在开发的时候效率更高。 

你把UI,BLL,DAL都编译放一个程序中,也是三层架构啊。三层架构的意思是说,把一个项目分成三个同的层次,每层的职能不同,有利于开发和维护。真正的三层架构在表示层和业务逻辑层是不可能见到sql语句的。 

楼主不要混淆了:实施模型、架构选择、设计模式。 
实施模型是你实现项目的解决方案,比如过c/s,b/s结构。它是从整体上去设计项目的样式。它并不会去关注里面的细节。 
架构选择,就是具体实施项目时总体上的设计。使其一个庞大的项目分成小的项目,并且力使它们之间低耦合,这个更容易分工和维护。 
设计模式是从解决一个问题的角度出发来设计项目,常见如工厂模式。 

现在比较多的一种是采用 Model + IDAL + DAL + DALFactroy + BLL + Web 的设计,其实这也是三层架构。它融入了抽象工厂设计模式。其中model是是贯穿于整个系统的
------解决方案--------------------
对,我的理解跟LZ一样,其实这也跟其他人的一样的,只不过LZ具体化了,一般就是建立几个文件夹如 BLL(业务逻辑) DAL(数据访问) MODEL(实体类) 一般如果窗体里要调用什么的话,就直接调用BLL文件里的函数,然后BLL调用DAL里面的函数。
------解决方案--------------------
看过一个三层架构的视频教程
讲的挺不错的
估计楼主看完了也就会了哈
http://www.xiaoyanque.com
------解决方案--------------------
作为一个初学者,LZ的说法能够接受,其实很多人都是这么摸索过来的。
建议先做成一般的,把所以的代码写到一个文件里。随着时间和代码量的积累,你会发现在阅读、修改和共享代码时会有很多不方便之处,到这个时候你再进行分层设计,搞出来的东东会有用得多。需求才是动力。
三层设计就是为了便于维护和共享。例如,现在的软件是通过访问ACCESS或XML来实现的,需求变了,要改成SQL,怎么办?如果不分层,可能在程序的很多地方进行修改,找代码的时间不比修改的时间少。如果进行了分层,我们只需要把DA层进行修改或重写即可。