Asp.Net大型项目实践(2)-新建项目及分层(附源码)

  1. 开发环境准备...
    Microsoft Visual Studio 2008
    Microsoft Visual Studio 2008 Sp1(补丁)
    Microsoft ASP.NET MVC 1.0
  2. 新建解决方案
    2009122416505951.jpg
    新建空白解决方案 HISDemo
  3. 新建解决方案文件夹
    2009122416543844.jpg
    对于大型项目而言,模块和代码众多,我们可以通过“解决方案文件夹”来对项目进行合理的管理,如下图:
    2009122416551142.jpg
    lib文件夹用来存放项目中引用的第三方dll(这样有个好处,你可以把DLL拖进去,这样当你项目绑定VSS后,这些DLL大家就可以通过VSS获取了)
    Presentation(展示层)用来存放UI层相关代码
    因为项目模块众多,我们可以按照粗粒度的模块进行划分如Infrastructure(基础数据设置模块),住院模块,门诊挂号模块....
    注:解决方案文件夹可以用中文,你也可以按照你的习惯和具体项目情况进行划分,总的原则就是方便管理和查看
  4. 基本分层思想
    时间关系图花的比较糙,有些术语也不是很规范,能理解意思就行,如图:
    2009122416572568.jpg
    数据访问层Repositories:主要用NHibernate访问数据库,但也有可能去访问其他模块或系统的WebService,也有可能用Linq去访问一些缓存(内存中的)数据,也有可能访问XML,文本文件等等....
    业务领域层Core:系统的核心层,所有与数据访问无关的业务逻辑都应该内聚在这里,业务领域对象理论上应该是充血的,内聚自己的业务逻辑。但有一些业务逻辑在设计的时候涉及到了多个业务领域对象 ,我们很难决定放在哪个具体的业务对象里,所以我们有一个Service层来放这种业务逻辑。
    装饰层Facade:把数据访问接口,业务领域对象的业务逻辑,Service接口简单的封装一下成为Facade层接口供展示层UI或SOA层调用,这个层需要注意的是它只是简单的封装,免得UI层调太多层的接口,这层不应含有业务逻辑。
    SOA层:因为系统比较庞大 模块很多,且业务上要求各大模块间需要一定解耦,所以这一层作用是作为各大粗粒度模块间调用以及给其他系统调用,比如有基础数据管理大模块和门诊挂号大模块,他们之间的调用是必须要通过SOA层的,而不能直接走Facade层,传输的对象应该新建DTO数据传输对象,而不应该直接传递业务领域对象,从而通过SOA层我们把各个粗粒度模块完全隔离开。这个层取名为SOA也许不大恰当,大家也不必深究...计划是采用WCF 这样可以灵活的配置通讯方式
    表现层Presentation:由Asp.net MVC的Action给ExtJs传输数据 ,Controler只需调用Facade接口
    公共类库FrameWork:整个项目框架的公用代码,相当于公共类库,也许叫FrameWork不大恰当 呵呵
  5. 新建分层项目
    新建3个类库项目如图:
    2009122419011388.jpg
    注意修改一下项目的命名空间,如Demo.HIS.Infrastructure.Core [公司名].[项目名].[大模块名].[分层名]....在实际项目中合理的命名空间是很重要的
     
    再在Presentation文件夹下新建2个项目Demo.HIS.MVC(项目类型:类库)和DemoHisSite(项目类型:Asp.net MVC Web Appliction),如图:
    2009122419133324.jpg
    最后在解决方案根目录下新建一个类库Demo.HIS.FrameWork作为我们的公共类库就完成了,最后的项目结构是这样的:
     2009122419164717.jpg

这样我们整个系统所需的项目就建立完成了

源码:HISDemo-1.rar

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值