source:http://www.cnblogs.com/ubestim/archive/2008/11/26/1341677.html
用Asp.net + NHibernate开发网上书店(附源码)
我正在学习NH和asp.net,最近在开发一个网上书店,算是实验。
用面向对象的方法(UML进行分析建模),用的是powerdesigner 12.5,建了一些用例图,活动图,和一个大的类图,
然后生成了物理数据模型图,进而针对sql server 2005生成数据脚本(我用的是Express 版 + sql server management studio express)
powerdesigner 针对NHibernate有支持,可以自动根据类图生成代码(CS code),映射文件(O/R mapping)和数据访问层(DAL)。 生成的结构和效果相当棒。 我对映射文件进行了简单的修改 由于PD(powerdesigner)支持的是NH 1.0 所以有些东西要改, 并且由于对象之间的关联比较复杂比如牵涉到继承的时候,生成的mapping 多少有些不足,一些 One to Many ,many to many关联生成的不是很好,但One to One 和 one to many 生成的很好。
现在是 Domain model ,映射文件,数据库(数据库中有一个关系图 ,各字段在标定一种可以查看说明),数据访问层 都有了, 就缺具体的应用了,我用visual web developer 2008 express edtion 建立的solution。
这几天我对生成的代码进行了简单的修改(在NHibernateDALBase.cs中填加了几个方法)并添加了业务逻辑层 (BookStoreBLL 工程),进行了简单的测试: 用datagridView + objectDataSource + 业务层代码, 效果不错,可以实现查询,和修改,但删除没有实现。
现在我将真个数据库和源代码都上传到了我的博客园空间上了,下载地址:
http://files.cnblogs.com/ubestim/BookStoreWebSolution.zip
欢迎大家下载,我们可以共同学习这些技术,共同探讨如何使用,如何构造一个比较棒的项目。
一个solution , 中间有几个工程文件。它们的依赖关系是这样的
DommainModelModel 包含 Domain model 和映射文件
ModelIDAL 和 ModelNHibernateDAL 引用 DomainModel (所以Domain Model 不能引用数据访问层了 不让会造成循环引用)
IDAL 是数据层的接口
DALFactory 从字面上理解是 构造共厂,其作用就是 构造DomainModel 和DAL
IBLL 是业务逻辑层的接口,没什么东西,只是一个 BusinessException 把它独立出来 是为了 让 业务逻辑层 和 DomainModel 都可以引用它
BookStoreBLL 是业务逻辑层 引用 数据层(DAL),域对象(DomainModel) 和业务层接口(IBLL)
WebSolution 是网站, 引用BLL 和 DomainModel
网站下面 Admin 文件夹下准备存放后台管理页面 ,现在有一个Manage.aspx 我放了几个Ajax toolkit
中的控件,玩玩看,呵呵。
Default.aspx 是对现在的底层代码的测试,用了一个用datagridView 和 objectDataSource 测试的是CategoryBLL中的业务方法。
代码注释由于习惯关系,用的是英文。 后续上传的代码会改成中文注释。
好了, 希望感兴趣的朋友,多多支持,能多多讨论。有意共同开发的朋友,请给我发邮件(ubestim@gmail.com)或者留言。
posted on 2008-11-26 17:56 sunmoonone 阅读(218) 评论(6) 编辑 收藏 网摘 所属分类: asp.net 、OO过程
评论
#1楼 2008-11-26 18:17 上不了岸的鱼{ttzhang}
沙发,dandan动作挺快啊,支持下 回复 引用 查看
#2楼 2008-11-26 18:24 侯垒
板凳,支持. 回复 引用 查看
#3楼 2008-11-26 19:00 temptation
感谢博主分享 ! 不过, VS2008打开解决方案,编译有些错,IDAL没引用到BookStoreDomainModelDALFactory类库中... 回复 引用 查看
#4楼 [楼主] 2008-11-26 19:07 sunmoonone
出于上传文件的限制,我将好几个项目的debug下的dll都删掉了
在运行项目前请逐个编译一遍。 回复 引用 查看
#5楼 [楼主] 2008-11-26 19:13 sunmoonone
如果在今天下载了项目,请在BookStoreDomainModelDALFactory中添加对IDAL项目的引用,然后在编译。 该回复发表后我会重新上传文件 回复 引用 查看
#6楼 2008-11-26 19:16 上不了岸的鱼{ttzhang}
把没有用的文件全删了吧,留着源代码不就OK了 回复 引用 查看