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

送分了[关于项目架构的N多问题.不弄清楚不罢休]

楼主lxm174(眯眯)2006-12-26 17:59:17 在 .NET技术 / 分析与设计 提问

Table   Module与ADO.NET中的类型化的DataSet有什么联系?  
  如果我的一个项目的数据访问层用Table   Module(强类型的DataSet)来做,那我应该如何做?如何加入事务控制?这与面向接口编程相违背吗?这样暴露了数据结构,会有什么影响?那应该如何解决?  
  在分层的项目中应该如何确定是用DomainModel还是TableModule  
  来表示业务逻辑?  
  业务逻辑到底是放在数据层(存储过程)还是Business中? 问题点数:100、回复次数:48Top

1 楼lxm174(眯眯)回复于 2006-12-26 18:00:28 得分 0

自己顶.今晚10点之前都在.Top

2 楼Zine_Alone(☆小飞☆)回复于 2006-12-26 18:05:23 得分 0

 
      具体结合实际来考虑好些.  
   
      1.确定你为什么要建立这么一个框架.  
      2.结合现状,权衡该框架的大小,复杂度,效率,性能..(强类型DataSet效率较低)  
       
  Top

3 楼lxm174(眯眯)回复于 2006-12-26 18:15:40 得分 0

谢谢二楼  
  继续顶.Top

4 楼lxm174(眯眯)回复于 2006-12-26 18:22:53 得分 0

现在基于.NET   的ORM框架有没得用Table   Module的?  
  能不能详细地说说在.NET中Table   Module应该怎么样来设计?  
  我看了ASP.NET   Starter   Kit中的smallbusiness这个项目,  
  他里面的DAL层完全是用类型化的DataSet来做的.  
  我感觉这样太紧密了,如果自己想实现一些其它的东西,很难下手.比如上面说的事务控制.还有这样使得数据访问层与表示层是紧偶合的.  
  如果用这种方式来做,那还有比较好的方案吗?  
  Top

5 楼Zine_Alone(☆小飞☆)回复于 2006-12-26 18:28:59 得分 0

个人比较喜欢用反射的机制.仅供参考.  
                                                                                                                                  |  
      DALBase(including   Transaction,base   Access....)                                 |                 Web  
        ||                                                                                                                       |====================  
      SubDALBase(project   level)                                                           <=======|                 ||  
        ||                                     ||                             ||                                               |               BLL  
        BusinessDAL                 BusinessDAL               BusinessDAL                           |  
        ||                                         ||                                   ||  
  ------------------------------------------------------|  
                                            class---table                                         |  
                                            attribute--column                                 |  
                                              Customer   method                                   |  
  Top

6 楼Zine_Alone(☆小飞☆)回复于 2006-12-26 18:30:34 得分 0

倒,画歪了.....  
          大致还是一样   Web--BLL--DAL(dal部分和上图纵向所示一致)Top

7 楼lxm174(眯眯)回复于 2006-12-26 18:48:36 得分 0

我想我在概念上这方面的东西还没理解透.  
  DomainModel,对应的是业务实体,如PetShop中的Model  
  TableModule,涉及到ORM,如果自已去写,那很麻烦.强类型的DataSet,郊率?,可扩展性?可是他可以减少工作量.用现成的框架?我看了一下Websharp,可是看得不太明白.  
  Zine_Alone这位朋友说的模型是DomainModel吧Top

8 楼Zine_Alone(☆小飞☆)回复于 2006-12-26 19:02:48 得分 0

和DomainModel类似,具体看BLL如何处理.Top

9 楼lxm174(眯眯)回复于 2006-12-26 19:09:30 得分 0

我现在的感觉和开始还是一样,迷糊Top

10 楼lxm174(眯眯)回复于 2006-12-26 19:12:20 得分 0

我是想把自定义类与类型化的数据集相结合,各发挥各的优势.  
  非常感谢Zine_Alone朋友的支持Top

11 楼mail_ricklee(NickLee)回复于 2006-12-26 19:59:52 得分 0

NickLee.ODRM  
  http://www.cnblogs.com/mail-ricklee/archive/2006/12/25/602555.html  
  自定义类,数据集,Hashtable互相结合Top

12 楼lxm174(眯眯)回复于 2006-12-26 20:06:56 得分 0

mail_ricklee(NickLee这位朋友,NickLee.ODRM我今天下午刚下载下来,可是太麻烦,得发些时间来研究  
  能说说思路吗?Top

13 楼lxm174(眯眯)回复于 2006-12-26 21:57:37 得分 0

今晚上休息了,明天继续顶.Top

14 楼lxm174(眯眯)回复于 2006-12-27 10:40:46 得分 0

刚起来继续顶.Top

15 楼truecoffeefox(咖啡狐)回复于 2006-12-27 11:35:06 得分 0

根据自己的项目要求情况进行分解  
  不要为了设计而进行设计  
  orm框架是很方便,但是很沉重,对于一些轻量级的业务不实用  
  我做的和petshop差不多  
  DBUtility负责数据库存取,用的就是微软的那个Data   Applicatuon   Bolck  
  DAL拼凑字符串给DBUtility,它通过IDAL暴露给调用者,通过一个工厂实例化  
  BLL层由于逻辑简单到没有逻辑,就没有再对他进行抽象,直接同UI层耦合Top

16 楼truecoffeefox(咖啡狐)回复于 2006-12-27 16:29:25 得分 0

……这个问题不是很好?没人感兴趣Top

17 楼lxm174(眯眯)回复于 2006-12-27 20:02:49 得分 0

谢谢truecoffeefox这位朋友.  
  我继续顶起Top

18 楼midymidy()回复于 2006-12-28 15:51:08 得分 0

支持Top

19 楼midymidy()回复于 2006-12-28 15:51:17 得分 0

帮顶Top

20 楼midymidy()回复于 2006-12-28 15:51:22 得分 0

upTop

21 楼lxm174(眯眯)回复于 2006-12-28 19:09:35 得分 0

谢谢.楼上的,今天出去了,继续顶Top

22 楼lxm174(眯眯)回复于 2006-12-29 10:24:36 得分 0

继续顶Top

23 楼wuhuabucai(混乱)回复于 2006-12-29 11:11:56 得分 0

继续顶Top

24 楼midymidy()回复于 2006-12-29 13:33:26 得分 0

支持Top

25 楼midymidy()回复于 2006-12-29 13:33:39 得分 0

帮顶Top

26 楼midymidy()回复于 2006-12-29 13:33:48 得分 0

upTop

27 楼jonescheng(小块头无大智慧)回复于 2006-12-29 14:03:20 得分 0

建议自己打开源代码比如DUWAMISH或者PETSHOP自己调试,,,  
  多弄几遍了在看概念Top

28 楼lxm174(眯眯)回复于 2006-12-29 20:32:04 得分 0

谢谢各位,该看的我都看了.可还是有点迷糊  
  在顶Top

29 楼honkerhero(做事先做人)回复于 2006-12-30 10:32:30 得分 0

类型化DataSet其实就是一个类,他的CS文件是自动生成的一个可序列化的类  
  事务是跟数据库连接相关的,和用不用DataSet没有任何关系  
   
  conn.BeginTran..()//这是起事务,它返回一个事务对像  
  你只要在更新不同表的,把这个连接传下去就可以了,全部更新完以后再提交或回滚,他们就在一个事务里了  
  Top

30 楼honkerhero(做事先做人)回复于 2006-12-30 10:35:08 得分 0

数据层你可以封装的,业务逻辑是跟表相关的,可以单做,参考一个微软的标准7层,你可能会更清楚一点,层次不是固定,看你的设计了Top

31 楼midymidy()回复于 2006-12-31 08:54:49 得分 0

很多高人Top

32 楼midymidy()回复于 2006-12-31 08:54:56 得分 0

帮顶Top

33 楼midymidy()回复于 2006-12-31 08:55:07 得分 0

多多学习Top

34 楼lxm174(眯眯)回复于 2006-12-31 23:58:52 得分 0

先谢谢各位的指点.并祝大家元旦快乐,  
  类型化的DataSet只不过是用工具自动生成了CS文件代码,这确实是,我前几天也看了.  
  如果数据访问层是用他做成的,那基本上是不用写操作数据的代码了.可这样的话,我不知道如何加入自己的代码,比如说上面说的事务控制,当操作数据的时候,只要实例化一个相关的表适配器后,调用相关的方法就可以了.例如:  
                  //Northwind是一个强类型的DataSet,  
                  //ProductsTableAdapter是Northwind中的一个表适配器  
                  ProductsTableAdapter   productsAdapter   =   new   ProductsTableAdapter();  
                  //ProductsRow1   是ProductsTable的行的集合,是一个类  
                  productsAdapter.Update(ProductsRow1);  
                  //GridView1.DataSource   =   productsAdapter.GetProductsByCategoryID(1);  
                  //GridView1.DataBind();  
  这样的话根本就无法实现自己的代码.他内部的Connection都是私有的.  
  这样应该怎么办呢?Top

35 楼lxm174(眯眯)回复于 2007-01-01 00:12:36 得分 0

今天睡觉去了,明年天继续Top

36 楼lxm174(眯眯)回复于 2007-01-02 11:22:18 得分 0

继续顶Top

37 楼zuo_hy(2007--my year)回复于 2007-01-03 09:54:24 得分 0

帮你顶....8错的小伙子..Top

38 楼zuo_hy(2007--my year)回复于 2007-01-03 09:55:08 得分 0

msxml3.dll   错误   '8007000e'    
   
  存储空间不足,无法完成此操作。    
   
  /Expert/function/Topic_Node_Reply.asp,行   25  
  -------------------------------------------------------------------------------------  
  妈D,贴都回不了....Top

39 楼zuo_hy(2007--my year)回复于 2007-01-03 09:55:29 得分 0

msxml3.dll   错误   '8007000e'    
   
  存储空间不足,无法完成此操作。    
   
  /Expert/function/Topic_Node_Reply.asp,行   25  
  Top

40 楼lxm174(眯眯)回复于 2007-01-03 17:54:37 得分 0

郁闷.继续顶Top

41 楼midymidy()回复于 2007-01-04 10:20:02 得分 0

帮顶Top

42 楼midymidy()回复于 2007-01-04 10:20:08 得分 0

支持Top

43 楼midymidy()回复于 2007-01-04 10:20:15 得分 0

学习Top

44 楼honkerhero(做事先做人)回复于 2007-01-04 12:21:16 得分 0

你的dataadapter在构造的时候不需要CONN?  
  dataadapter.select(insert,update,delete)command.connection也可以取到连接啊Top

45 楼midymidy()回复于 2007-01-04 13:15:41 得分 0

谢谢接分Top

46 楼midymidy()回复于 2007-01-04 13:15:51 得分 0

再次支持Top

47 楼midymidy()回复于 2007-01-04 13:15:58 得分 0

帮顶Top

48 楼lxm174(眯眯)回复于 2007-02-12 14:44:21 得分 0

最近不在学校了。上网不方便了。继续顶Top

相关问题

关键词

得分解答快速导航

  • 帖主:lxm174

相关链接

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

广告也精彩

反馈

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