三层架构里,数据层,逻辑层,表示层,一般先,后设计哪个层?
刚刚开始学习开发个系统,这三层都大概规划出来了,但不知道从哪层开始做?
望有经验的指导。
问题点数:30、回复次数:74Top
1 楼crazyren()回复于 2006-08-01 23:10:26 得分 0
从底到上
先SQL.再BLL最后.WEBTop
2 楼fcuandy(了此残生.)回复于 2006-08-01 23:23:08 得分 0
最简单的三层结构示例.刚刚写的.
http://www.idotnet.org/#sid.25/page.1/Top
3 楼popunionxy(闭关修练)回复于 2006-08-01 23:38:00 得分 0
Sql==>规划web需求==>BLL==>WebUITop
4 楼Ivony(授人以鱼不如授人以渔,上海谋生)回复于 2006-08-02 00:41:33 得分 5
一般来说初学小项目可以先构建数据层,这样比较思考问题比较方便。
但实际上真正的项目中其实是需求定UI,表现定数据的。也就是最先规划的是表现层原型,这是因为客户的所有需求都是表现层的。Top
5 楼iamdavid0123(努力会有回报吧)回复于 2006-08-02 00:46:37 得分 0
实际上很多项目是ui先做给客户看Top
6 楼feifeiyaqi(yaqi)回复于 2006-08-02 00:59:17 得分 0
sql==web==webui==bllTop
7 楼Sunmast(速马@Redmond, WA)回复于 2006-08-02 01:26:19 得分 0
I think it is definitely dependes on which design paradigm you choose, data driven or business driven. While UI-first design is suitable for project prototype, it is a good way for XP practise.Top
8 楼szc21(卖炭翁)回复于 2006-08-02 06:52:53 得分 0
先sqlTop
9 楼RoninBlade(RoninBlade)回复于 2006-08-02 07:14:39 得分 0
我们分头作...Top
10 楼song1148()回复于 2006-08-02 08:33:14 得分 0
WebUI==>Sql==>BLL
其实都规划好了就可以一起做的(分开)
Top
11 楼kmxinqing(憨狗①只)回复于 2006-08-02 08:52:41 得分 0
各弄各的Top
12 楼gngnandgngn(仗义执言 )回复于 2006-08-02 08:57:30 得分 0
一般都是先做界面的, 因为要和客户确认, 然后才是其他Top
13 楼henryfan1(http://henryfan.cnblogs.com)回复于 2006-08-02 08:58:48 得分 0
我一般的做法是。
业务逻辑然后数据访问 最后才表示层。Top
14 楼fcuandy(了此残生.)回复于 2006-08-02 08:59:44 得分 0
先 Design(db)->Model->DAL->BLL
至于 View层可以从设计DB时就开始. 上下两段是可以并行的.Top
15 楼jackwofe()回复于 2006-08-02 09:19:48 得分 0
由于是三层的,头都搞昏了,参数不停的传,
出可点问题都不知道是哪一层出了问题,Top
16 楼fcuandy(了此残生.)回复于 2006-08-02 09:24:59 得分 0
那可能是因为你对三层不太熟. 其实找错还是比较容易的.
我喜欢在开发期内不写 try catch语句, 很容易找到错误.Top
17 楼buer(基础训练)回复于 2006-08-02 09:31:39 得分 0
我一般的做法,先做业务层,就是定义业务实体、定义业务逻辑、然后再做数据层,最好做表示层。Top
18 楼hanchi8008(寒池)回复于 2006-08-02 09:55:29 得分 0
先建数据库,每个表基本就是一个对象实例,这样你就知道我要对那些数据进行怎样的操作了,
再写数据层,然后表现层,最后业务层.Top
19 楼shalen520(Love will keep us alive)回复于 2006-08-02 09:56:16 得分 5
数据库驱动的设计是从数据层往上
业务驱动的设计是从UI往下,数据库持久化是应该放到最后来考虑的Top
20 楼zhf777(八步)回复于 2006-08-02 10:03:59 得分 0
mark
学习ing...Top
21 楼xiaocaonet(小草.NET)回复于 2006-08-02 10:06:59 得分 0
楼上都说了,顶一下
策群网络学院
www.cequn.com
源码下载 电脑教程Top
22 楼greki(锐╃→)回复于 2006-08-02 10:08:28 得分 0
SQL-->Bll<---webUITop
23 楼wkcode()回复于 2006-08-02 10:17:03 得分 0
我一般都是:SQL——BLL(此处先对通用部分进行简单编码)——WEB&进一步BLLTop
24 楼Samen168(Code to coding)回复于 2006-08-02 10:21:39 得分 0
看具体项目
UI原型给客户 - 分析后产生业务实体 - 数据库 - 数据访问层(很弱,因为可以用工具生成) - 业务逻辑层 - UI后台代码
有时也有 先逻辑后数据库Top
25 楼yzhiwu(蓝色海洋)回复于 2006-08-02 10:34:02 得分 0
关注Top
26 楼gmsboss2020()回复于 2006-08-02 10:42:59 得分 0
先做DAL,方便后面使用;
然后UBL,定制表示层;
最后BLL,处理请求;Top
27 楼liuhui810(小苹果)回复于 2006-08-02 10:55:37 得分 0
做一个系统,你首先要从哪个方面入手分析?当然是业务逻辑。
业务逻辑是核心,其他的都是围绕他展开的,或者说是辅助他的。
所以正确的思维方式是先构建业务层。Top
28 楼dingrong(荣)回复于 2006-08-02 11:00:59 得分 0
根据项目不同,先后次序也不同的,关键是选择哪一种适合当前项目,没有固定的顺序.
不管从哪一种开始都有它的优势和劣势.小项目就无所谓哪个先后。中型的和大型的根据情况不一样,也会有不同的顺序.Top
29 楼zouyulin()回复于 2006-08-02 11:05:59 得分 10
根据以往的经验,设计上我的理解应该是这样的:数据层-〉业务逻辑层-〉表现层
[1]数据层:设计好数据字典,在PowerDesigner这样的工具中进行建模,生成Script,进而到数据库管理
系统中生成数据库;
[2]业务逻辑层:这一层主要负责按照业务规则执行业务操作,封装调用对数据库的访问存取操作,处理
用户请求,返回相应结果;
[3]表现层:目前包括Web2.0和AJAX等在内的以富客户端为主的各项技术向用户提供良好的访问界面,接
收用户请求,并作前端简单处理,提交给逻辑层。
以上三个层说完了,但是:还应该在数据层和业务逻辑层之间加一个数据访问层,主要负责对底层数据的
操作,一方面方便业务逻辑层对这一层进行调用,一方面使得业务逻辑层更加专一的负责实现各种业务逻
辑,也使得数据访问和业务操作相分离。
拿.NET开发的SQLServer应用举例来说:
数据访问层逻辑上跨越了逻辑层和数据层,这一层既包括SQLServer存储结构、自定义函数,又包括
在.NET程序集中对这些存储结构、自定义函数的封装调用。
当然,根据需要和更好的面向对象设计原则,不少框架还加入了ORM层,即对象关系映射。
最后谈一点:开发顺序上,原则上说是1、2、3不假,其实只要数据结构和接口设计的完善,协同并行开发是绝对有可能的,这个不是绝对意义上的1不做完2、3就开始不了,2没开始,就不能先做3。
自己的一点拙见,欢迎大家拍砖。Top
30 楼dapanda()回复于 2006-08-02 11:12:49 得分 0
到网上找一些代码生成工具
生成代码,你只要写web层和bll就可以了Top
31 楼jacklondon(jacklondon)回复于 2006-08-02 11:46:18 得分 0
表示层==>DB 设计==>逻辑层==>数据层Top
32 楼linfuguo(林子)回复于 2006-08-02 12:21:15 得分 0
当然先设计好,数据访问层了!
业务服务层,UI层都是针对项目来的,你设计好一个架构后,其它项目都可以用啊!
Top
33 楼cime63(流浪的孩子)回复于 2006-08-02 12:32:10 得分 0
由内而外
很多代码可由程序来生成
Top
34 楼Nowish(看我能忍耐多久)回复于 2006-08-02 13:08:51 得分 0
mark~Top
35 楼jobs002(Oh! Office)回复于 2006-08-15 08:04:33 得分 0
同时进行Top
36 楼fattycat(最爱胖猫)回复于 2006-08-15 08:19:11 得分 0
markTop
37 楼jyk(今天由我来写的代码,明天就让程序自己完成!喜欢编程。和气生财。共同提高。共同进步!)回复于 2006-08-15 08:33:24 得分 0
先设计数据库
http://community.csdn.net/Expert/topic/4949/4949724.xml?temp=5.312747E-02
我的帖子,希望能对您有所启发。
Top
38 楼doitnow2000(大海)回复于 2006-08-15 08:59:49 得分 0
数据访问---业务逻辑--ui,这个其实可能会有迭代Top
39 楼longxin123(龙的心)回复于 2006-08-15 09:25:26 得分 0
最简单的三层结构示例.刚刚写的.
http://www.idotnet.org/#sid.25/page.1/
Top
40 楼sea_way(狒狒)回复于 2006-08-16 09:10:29 得分 0
一般情况我们是 业务分析-UI定义-UML建模-业务接口定义-业务接口实现与测试-UI实现与测试
持久层一般要么用ORM要么自动生成固定代码以及测试代码,一般不需要人为干涉,因此不在项目设计反问之内,应在开放构架的范畴中。Top
41 楼sea_way(狒狒)回复于 2006-08-16 09:12:24 得分 0
以后就是直接用UML2+MDA,其他都不用管了。Top
42 楼francsescoli(我爱世界杯)回复于 2006-08-16 11:51:02 得分 0
先设计哪个都一样,难的是文档,难的是需求变化了,用什么方法和工具修改各层和文档,保证一致性。Top
43 楼New919(LonePraogrammer)回复于 2006-08-16 11:55:19 得分 0
先数据库 在逻辑 灾表示Top
44 楼ycl(原材料)回复于 2006-08-16 14:57:54 得分 0
从面向对象的角度来讲
---------------------------------------------------------------------
buer(基础训练) ( ) 信誉:28 “我一般的做法,先做业务层,就是定义业务实体、定义业务逻辑、然后再做数据层,最好做表示层。”
----------------------------------------------------------------------
我觉得是正确的,但目前大家更熟悉的是以数据驱动的方式,可能是大家受以前asp的影响。
Top
45 楼simonzone(马叉虫)回复于 2006-08-16 15:38:11 得分 0
前提:需求阶段提供了use cases.
1。分析业务模型,对主要职责进行划分。
2。实现业务逻辑层。
Top
46 楼qizhenggang()回复于 2006-08-16 15:45:28 得分 0
各人作各人的
不过一般大点的项目都是先做UI层的。Top
47 楼resen_tu(夜鹰)回复于 2006-08-16 15:53:17 得分 0
从底到上
先SQL.再BLL最后.WEB
Top
48 楼ericfine(埃里克)回复于 2006-08-16 15:59:58 得分 0
如果做高性能的项目, DAL肯定要最后做的.Top
49 楼sea_way(狒狒)回复于 2006-08-16 16:42:11 得分 0
MDA是目前这方面的发展目标Top
50 楼chongachong(虫虫)回复于 2006-08-16 16:43:37 得分 0
废话,当然是先设计数据层了。
不过在设计数据层以前,先考虑一下如何接收表示层的参数,如何与表示层和业务层功能分离。
Top
51 楼codehunter008(马里奥)回复于 2006-08-16 17:17:50 得分 0
这个当然是先设计业务层了!不然要UML干什么!
其实这里不仅仅是先设计那个层的问题了,与软件工程有密切的关系。
一般来说,先与客户沟通,然后写出《需求分析文档》,然后根据《需求分析文档》用VISIO来画界面,在然后就是用UML来设计业务对象与接口,接下来就是根据业务对象设计出数据库(这个步骤很容易,甚至可以自动生成)。所以这个顺序应该是 业务逻辑层->表示层->数据层。显然,我的这个做法是属于 业务驱动的!!!而业务驱动、面向对象的设计系统更利于系统的扩展与维护。Top
52 楼codehunter008(马里奥)回复于 2006-08-16 17:21:39 得分 0
francsescoli(我爱世界杯) ( ) 信誉:100 2006-8-16 11:51:02 得分: 0
先设计哪个都一样,难的是文档,难的是需求变化了,用什么方法和工具修改各层和文档,保证一致性。
------------------------------
我一直也没有解决这个问题,不过我最近想,这个问题其实很好解决,想保证一致吗?
那就经常的去更新您的文档,不要先把代码改了在去改文档!!!Top
53 楼zsz2005(农妇,山泉,有点田...)回复于 2006-08-16 17:26:59 得分 0
我的习惯:静态网页(模版)>数据库>写代码Top
54 楼zzzl(不拉拉链)回复于 2006-08-17 08:37:42 得分 0
三层同时设计Top
55 楼brumal(冬瓜)回复于 2006-08-17 08:44:31 得分 0
收藏Top
56 楼job_2006(初学.net)回复于 2006-08-17 08:50:26 得分 0
呵呵,不是三层的话,也是先设计数据库啥 ,汗
先数据访问层,然后业务逻辑层,再是web层调用逻辑层,逻辑层调用数据访问层,搞定
当然没有什么复杂逻辑的,一般在web层直接调用数据访问层了Top
57 楼sea_way(狒狒)回复于 2006-08-17 10:10:24 得分 0
第一步.画UML图
第二步.点击“生成软件”按钮
第三步.点击“全面测试”按钮
第四步.做必要的修改
第五步.交货收钱Top
58 楼blackhero(黑侠客)回复于 2006-08-17 10:23:26 得分 0
从后往前Top
59 楼lovelygce()回复于 2006-08-17 11:10:50 得分 0
先数据访问层,然后业务逻辑层,再是web层调用逻辑层,逻辑层调用数据访问层,它们是一层一层调用的所以顺序还是比较重要的...
Top
60 楼ideasky(ideasky)回复于 2006-08-17 11:14:32 得分 0
确定数据库字段 -> 建立Model层 -> 建立DAL层 -> 建立BLL层 ->根据美工设计的静态页面设计UI层Top
61 楼ht8326(SSUN)回复于 2006-08-17 11:21:19 得分 0
我是从数据层开始的。。。。。Top
62 楼pray1997(pray1997)回复于 2006-08-17 12:30:24 得分 10
从面向对象的角度来讲
---------------------------------------------------------------------
buer(基础训练) ( ) 信誉:28 “我一般的做法,先做业务层,就是定义业务实体、定义业务逻辑、然后再做数据层,最好做表示层。”
----------------------------------------------------------------------
我觉得是正确的,但目前大家更熟悉的是以数据驱动的方式,可能是大家受以前asp的影响。
虽然我很赞同这个观点,但在具体的项目开发中,用户对于UI的要求是千变万化甚至是变态的。业务可能在项目需求确认阶段就大概定下来了,以后改变的可能不大,即便改也是不怎么改动接口定义的,但UI的变更就不同,相当的频繁而且有时候甚至会影响到业务层和数据库。所以我觉得要看具体的情况,不一定非要把表示层放到最后做。否则一旦真的出现较大改动,那么从数据库开始向上每层都可能要发生变动。Top
63 楼jyk(今天由我来写的代码,明天就让程序自己完成!喜欢编程。和气生财。共同提高。共同进步!)回复于 2006-08-17 21:16:21 得分 0
邀请各位高手到这里继续讨论!
http://community.csdn.net/Expert/TopicView3.asp?id=4957543
邀请高手参加 —— 麻烦您结合实例讲解一下您是如何分层的(或者说如何写程序的)。Top
64 楼jijl2001(jijl2001)回复于 2006-08-17 21:24:30 得分 0
业务逻辑然后数据访问 最后才表示层。Top
65 楼wzhjs(Flower)回复于 2006-08-18 00:53:05 得分 0
个人做法:
先ui(static),确认功能
然后同时设计bll和dal
实现bll和dal(同步)
实现ui(动态)Top
66 楼bensharp()回复于 2006-08-18 12:59:39 得分 0
同意马里奥的方案~~
先与客户沟通,然后写出《需求分析文档》,然后根据《需求分析文档》用VISIO来画界面(用例图),在然后就是用UML来设计业务对象与接口(抽象出类图),接下来就是根据业务对象设计出数据库(ER图)(这个步骤很容易,甚至可以自动生成)。所以这个顺序应该是 业务逻辑层->表示层->数据层。显然,我的这个做法是属于 业务驱动的!!!而业务驱动、面向对象的设计系统更利于系统的扩展与维护。~~~
我也正学着~~~Top
67 楼cho__cho(业精于勤,慌于嘻!行成于思,毁于随!)回复于 2006-08-18 14:26:19 得分 0
markTop
68 楼caobob(我是虾米儿的fans,她的笑容很熟悉。)回复于 2006-08-18 14:36:17 得分 0
其实在跌代法的思维下,先做哪层无所谓.因为每层进行修改时都会不断去修改完善其他层.问题的关键是三层是不是清楚独立.我就见过,有的人把业务逻辑层设计的非常好,以至于数据层里基本就没什么逻辑,就是简单地新增,更新,删除.所以问题都被逻辑层封装好了.Top
69 楼mxch815(记住Amao这个名字,对你将来有好处)回复于 2006-08-18 14:44:34 得分 0
从底向上Top
70 楼jarryandtom()回复于 2006-08-18 15:20:39 得分 0
有没有个权威的说法阿。
Top
71 楼doitnow2000(大海)回复于 2006-08-18 15:43:15 得分 0
总觉得多层设计是个迭代的过程,用户总是在change
先做数据库设计,然后访问层、业备层,最终UI,如果做网页的话,我觉得最好把UI层放在最后,因为用户会出提出不一样的东东。Top
72 楼boxigroup()回复于 2006-08-19 14:04:27 得分 0
欢迎光监点石成金网 http://www.boxigroup.com 网站提供web开发(j2ee .net asp php javascript、c#等) c/s开发(delphi、vb、vc、pb、cb等) 数据库开发(oracle、sqlserver、db2、access、mysql、Postgresql、informix)等学习资料,希望能为你解决燃眉之急 ,请把本网站加入收藏夹,以备不时查询之需 bs+cs讨论群(9638134)Top
73 楼xiaoliangwh(!!!)回复于 2006-09-03 19:17:04 得分 0
学习了一下!!Top
74 楼hanchi8008(寒池)回复于 2006-09-04 08:53:55 得分 0
mark!Top




