CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

三层架构里,数据层,逻辑层,表示层,一般先,后设计哪个层?

楼主jackwofe()2006-08-01 22:39:41 在 .NET技术 / ASP.NET 提问

刚刚开始学习开发个系统,这三层都大概规划出来了,但不知道从哪层开始做?  
  望有经验的指导。 问题点数: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

相关问题

关键词

得分解答快速导航

  • 帖主:jackwofe
  • Ivony
  • shalen520
  • zouyulin
  • pray1997

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo