关于三层架构,不得再说一说解决办法
发布时间:2011-06-23 20:36:54 文章来源:www.iduyao.cn 采编人员:星星草
关于三层架构,不得再说一说
今天搜索一个问题,偶然看到论坛中一篇老文,讨论得很激烈:
不显示删除回复显示所有回复显示星级回复显示得分回复 一个关于三层里的数据层的疑惑——SQL语句算不算业务逻辑?[
http://topic.csdn.net/u/20070430/08/da7d50dc-9c7f-43a2-89a7-7a3fda613b69.html
看了之后,不得不再说一说,有很多初学的同学都存在误解,困惑,这里说一下我的总结:
1,SQL语句,只应该放到DAL层,也就是数据访问层;
SqlHelper等等对数据进行CRUD的东西,应该算作系统框架层的东西,不是三层架构中的数据访问层,可以算作“数据持久化层”
数据库,这个应该叫做“数据存储层”
2,业务层,不能有任何SQL语句出现,它是处理领域对象的,或者说是领域模型的加工厂;
3,Model,严格来说不能算作一个层,它是一个横跨UI,BLL,DAL层的东西,或者说是数据容器,BLL通过DAL将数据装进Model,然后将Model送给 UI;
4,UI,这个不用多说了,你懂的。
使用PDF.NET数据开发框架,可以很自然的理解上面的层次结构:
1,在UI层,使用Model对象和框架提供的UI控件;
2,在BLL层,使用OQL来查询Model,并进一步加工;
3,在DAL层,使用SQL-MAP来存储所有的复杂SQL查询,并提供代码工具将它映射为SqlMapDAL层代码。
------解决方案--------------------
goon
------解决方案--------------------
三层可以这样理解,但可根据实际情况可以灵活运用,比如SQL语句的条件字符串可以在业务层拼接后传入
------解决方案--------------------
学习了
------解决方案--------------------
我觉得你不需刻意的关注那一层应该具体有什么,你只要能做到隔离关注点,使得你通过业务分析出来的不同的东西能不互相影响。你就刻意任意的分层。只要做到层间耦合度低,层内聚合度高就刻意了。我觉得没有必要刻意的去说。
------解决方案--------------------
我个人的理解还是和LZ很相同的
------解决方案--------------------
model那是业务层的吧,一般认为业务层不应该和具体数据源耦合,在里面写sql明显就是不可取的...
------解决方案--------------------
个人理解
Model仅是一些实体对象 一些容器
在BLL层可以利用Model的某些实体将UI内的一些数据处理成DAL层所需要的数据形式
反过来BLL也可以通过DAL操作数据库后利用Model来将数据传给BLL BLL处理成UI所需要显示的数据 再将实体传给UI
当然这里的Model BLL DAL 都是泛指 广义上的
你也可以给各个层再细化分 比如DTO等等
------解决方案--------------------
好久木有用了,如果数据库很大的话,编译起来太慢。
------解决方案--------------------
说得不错!!
------解决方案--------------------
MVC吧 来顶一下贴
------解决方案--------------------
------解决方案--------------------
有些人恨不得搞个10层,其实许多部分根本没有必要一定去分层。
比如你可以使用Adapter去访问数据库,别人使用ado.net的命令方式直接去访问又有什么不可以的呢?根本没有必要对这些细节也搞什么编程“标准”。
------解决方案--------------------
pdf.net 宣传的真够厉害的,楼主觉得能干过 ef 和 nh?
------解决方案--------------------
------解决方案--------------------
以前也比较纠结Model层到底该划归哪去
后来的看法也慢慢就和楼主一致了
它可以让开发BLL层的不需要了解DAL的具体结构就能从容地处理业务,然后将结果送给UI
当然这中间为了这种方便(其实远不止方便而已),或多或少会有一些代价
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
(VS2005)VB有关继承封装在DLL里窗体
公司里有一套自己的架构并把它封装在叫MFW的DLL里,再学习使用时发现了很多不明白的地方。例如:现...
-
如何让treeview点击结点不刷新页面?
如何让treeview点击结点不刷新页面?
------解决方案--------------------
帮你顶
------解决...
-
单薄的业务层
相信开发WEB信息的人都用到过三层架构
表示层--》业务层--》数据访问层
以前一直开发CS结构最近一年一直在开发...
-
类爆炸问题,对维护也是恶梦?
原意在ERP项目中有设计一个工序类用來描述工序:
public Process
{
public string ProcessNo
{
...
-
怎么实现随意变换网页字体?
想做个艺术签名的网站
字体也找了几个
就是在用户输入“名字”后
把“名字”转换成几个字体显示出来
...
-
关于政府部门网站数据库设计
今天上面安排让我做个政府有关部门的网站,我看了下不是很复杂。可到了设计数据库表时候碰到了些问题...
-
如何自动为录入的人员信息分配用户权限
我这里有两类人,一类是教师,一类是学生,要解决的问题是,在用管理员身份录入教师和学生信息时,...
-
Ext.Net 和ExtJS
现在在做一个项目,用到了EXT.NET 但是有个缺点就是EXT.NET里的时间选择器dateField不能选择时分秒,现在想到用EXTJ...
-
谁手里有现成的提示框样式啊,急用
谁手里有现成的提示框样式或者皮肤啊 还有弹出div层的好看一点的样式 给我个呗 我这急用呢 ...
-
求两个样式的例子...
一个是点击修改弹出修改表单表格 出现在列表上 要特别好看的那种 最好是悬浮的
一个 要弹出的确...