它们之间数据层都差不多,倒没有想的
在中间层它们差别还是比较大,在web site高级编程中,看过的应该都知道,定义的类一般都是私有成员对应相应表的字段,然后就是方法访问成员,在这里实体类用的很少,在petshop中好像都是以实体类为核心一样,在表示层做好实体类,然后一层一层向下到数据层,返回值也是一层一层向上到表示层,中间层的类好像没什么用一样,只是从中间过趟路而已,我现在晕了,看了一下Duwamish,一样,中间层连一个私有成员变量都没有,还有没web site高级编程那么oo,中间层到底应该怎么写呢?
上面两种情况就应该怎么选择呢?希望高手给一些建议,实体类来自于数据库表的应射,我觉得它们之间应该有一对一和一对多关系,或者多对多关系,定义它们的关系难道就像petshop那样,在一个实体类中定义另一个实体类的数组吗?
希望高手给一些指教,刚到一家新公司,要做的项目既有web site高级编程的影子又有petshop的影子,看的头都是晕的
在中间层它们差别还是比较大,在web site高级编程中,看过的应该都知道,定义的类一般都是私有成员对应相应表的字段,然后就是方法访问成员,在这里实体类用的很少,在petshop中好像都是以实体类为核心一样,在表示层做好实体类,然后一层一层向下到数据层,返回值也是一层一层向上到表示层,中间层的类好像没什么用一样,只是从中间过趟路而已,我现在晕了,看了一下Duwamish,一样,中间层连一个私有成员变量都没有,还有没web site高级编程那么oo,中间层到底应该怎么写呢?
上面两种情况就应该怎么选择呢?希望高手给一些建议,实体类来自于数据库表的应射,我觉得它们之间应该有一对一和一对多关系,或者多对多关系,定义它们的关系难道就像petshop那样,在一个实体类中定义另一个实体类的数组吗?
希望高手给一些指教,刚到一家新公司,要做的项目既有web site高级编程的影子又有petshop的影子,看的头都是晕的
解决方案 »
- 请问SET @sql = N'' 中的“N''”表示什么?
- 使用jmail组件时,邮件主题为中英文混合字串发送失败
- 动态添加LinkButto为ID赋值问题(同名)
- 写了半年的程序想知道一些问题
- 返回的DataSet怎么才能绑定到DataGrid控件
- 前俩天去富士康面试.NET程序员,得到以下些题目,请各位过目
- 有专门讲web控件的书吗,最好有具体例子的
- 大家看看这个怎么解决
- SQL数据库连接的问题!急,在线等!分不够再开贴!
- 关于web开发中,net内置callback函数的问题
- 请教一下,为什么代码中linkbutton的click事件不执行
- 如何将DATAGRID里面的选定的数据读到一个DATASET中???
你要是写一个企业应用建议参考Duwamish。中间层连一个私有成员变量都没有
------------------------------
这个你指的是?
本来分层的意思就是明确逻辑,而像duwamish这样的范例把数据库操作全部封装到存储过程,
当然中间层只是过路了。这样的一个明显好处就是易维护,我们公司已经开发了几个系统,现在想想Duwamish的结构真是不错。
难道大家做系统都是这样中间层只是用来过趟路用的吗?
作者:Youther
通过前面的文章,我们对.NET Petshop的整个结构有了一个大致的了解,也清楚的知道了数据库的设计模式和实现的细节,尤其值得一提的是通过存储过程访问数据库。在接下来的这篇文章里,我将和大家一起来探究一下.NET Petshop的中间层。根据三层结构的设计原则,中间层封装的是业务逻辑和规则,在这个网络宠物商店的例子中,购物处理,订单处理,帐号管理,产品查询等等都是具体的业务逻辑,至于与用户交互并不是中间层要处理的问题。它处理是与具体的用户界面和交互无关,而仅仅是核心的商业规则和逻辑。.NET Petshop的中间层业务逻辑被封装为一个.NET 组件,它的命名空间为Pet Shop.Components(编译后在bin的文件夹里面有一个petshop.dll的文件)。图1是.NET Petshop解决方案中间层的类视图和文件视图。
图1:.NET Petshop解决方案中间层的类视图和文件视图 接下来,我们模拟顾客到百货超市采购日常用品的过程来说明运作的流程以及抽象出重要的概念(实际上User case,我们在领域分析的时候会这么做,并且是很重要的一步,从这里可以初步的发现在我们实施的系统中将要涉及到的逻辑实体,进而可以为数据库建模设计以及类设计提供参考)。购物用例的业务分析:1 客户有购买商品的意愿;2 客户到登陆管理员处登记,且成功登记;3 在登记处推一个购物车;4 在超市内查找所购商品类别存放的货架;5 在具体的货架上查找某一具体品牌的商品;6 将符合意愿的商品放入自己的购物车;7 重复4-6;8 购物完毕;9 到付款处计算总价格并付款;10 打印购物清单;11 退还购物车;12 取走购物,购物完毕; 备注:在这个用例中,我们做了一些前提和假设,为的是方便.NET Petshop的分析,比如说在实际生活中根本就不需要第二步。 通过这个用例的分析,我们至少可以抽象出一下几个重要概念,并且能在应用程序里面找到对应的类:客户对应Customer、商品对应Product、购物车对应ShoppingCart、商品类别对应Category、具体商品对应Item、清单对应Order。正如我前面说过的,这几个概念对于我们的业务建模和系统建模是非常有用的。正是通过这样的分析,在.NET Petshop的业务逻辑里面共有9个核心类和5个轻量级的数据结构类。同样的方式,我在这里列出这些类,并加以说明(见表1)。 类名称
说明
BasketItem
代表购物车ShoppingCart里的一项购物商品。
Customer
用于帐号管理和登陆验证。
CustomerDetails
用户帐号的详细信息。
CustomerAddress
用户帐号的地址信息。
Error
用于登陆出错的帮助功能。
Item
代表某类产品中的具体一项商品。
ItemResults
搜索Item的结果集。
Order
购物完毕后的购物清单和订单。
Product
大类别里面的某类产品。
ProductResults
搜索产品的结果集。
Profile
用户的配置。
ShoppingCart
购物车,用于购物的整个过程,直到下订单。
Database
通过ADO.NET访问数据库,封装了具体的访问方法。
SearchResults
模糊搜索的结果集。
数据载体:实体类,DataSet
数据访问:SQL语句,存储过程二者的中间层都是进行数据的有效性验证,在多层开发中,数据安全性是非常重要的,对于关键数据应当在多个层次中进行验证,就相当于有多道“防火墙”一样。并非如你所说,没有作用。使用PetShop的实体类进行操作,不需要ADO.NET方面的知识,编程比较简单,但在数据读取的时候比较烦琐,而且其必须关联数据库的字段类型,不能有一个出错。而是Duwamish的DataSet进行操作,其会自动关联数据类型,在数据库变动后,维护修改,调试方面可操作性较强。在企业级开发中,推荐使用Duwamish。