C#-五层架构开发(一)

嗯嗯~我找到实习了。
???你不是学Java的吗?
谁说学Java不可以去学C#了,多元化投资好不好,不要让你手头上的资金空闲着。咳咳~先口奶茶……额~饱了。

转行还是需要重新学习的。实习了半个月,一直在学新知识,不过学一门语言,换汤不换药。

又来了一波屁话~抱歉~


C#五层架构开发


5层架构的构建体系

不学C#的也可以看看,其实我觉得微软在很多应用层面是后来居上的,以维护在开发圈的竞争地位。所以很多模型架构都跟Java后其他语言又沾边的,一边对比一边学,我觉得而已。

就好像微软IDE(VS系列)中的IIS服务,我们可以用Apache与其比较;又或者可以用VS中WCF服务与Web Service或RMI对比等。

so~ 直接上架构图:

C#-五层架构开发(一)_第1张图片

五层框架包括表现层、服务层、业务层、数据访问层和公共基础设施层。

概述
表现层: 使用MVC框架搭建,控制器调用web服务,通过服务层的接口来获取底层的数据。
服务层: 将业务逻辑方法打包成可调用的Web服务供表现层调用(开发过程中,我们常说:写接口,写完这些接口通过服务发布的,供团队成员调用)。
业务层: 主要是业务逻辑和DTO映射,实现接口的方法就在这里面。
数据访问层: 用于定义实体类,加上框架自带的AutoMapper类就可以实现自动生成数据库了。
公共基础设施层: 该层被以上四层调用,可以放一些通用的东西,如日志、异常模块、配置模块和第三方组件等。

这里要注意的是DTO,我当时看到这个东西的时候第一反应是这个跟DAO有什么区别

名称 概述
DAO: Data access object数据访问对象 主要用来封装对数据库的访问。通过它可以把POJO持久化为PO,用PO组装出来VO、DTO
DTO: Data Transfer Object数据传输对象 主要用于远程调用等需要大量传输对象的地方。客户端用Web Service或WCF来获取数据,没有必要把整个PO对象传递到客户端,以隐藏后台表结构。

其他字段就不一一解释了,有些开发技术我也没用过,我也是刚学,不喜欢不懂装懂。


各层是如何实现关联的

Level 1:
表现层,使用MVC框架搭建,控制器调用web(WCF)服务,通过服务层的接口来获取底层的数据。前面说过了。

|
|/

Level 2:
发布业务逻辑层接口服务(调用第三层提供的业务逻辑接口供第一层控制器调用,不同业务分不同类型)。

|
|/

Level 3:
* 创建DTO数据传输对象(前有解析)
* 定义业务逻辑接口(供第2层WCF业务层发布接口调用)
* 实现业务接口
* 实现 赋予Entity具有LINQ to Object操作功能 的接口

|
|/

Level 4:
* 建立仓储接口(该接口与实体Entity对应,供第五层调用并实现该接口,赋予Entity具有LINQ to Object 操作功能后,供第三层调用)
* 建立实体Entity(供第五层实现,目的映射字段以自动创建或修改数据表)

|
|/

Level 5:
* 实现仓储接口(赋予Entity具有LINQ to Object 操作功能)
* 通过Entity 映射,建立数据表。
* 注册Entity 绑定数据表(get/set )建立ORM。


学到这里,发现不需要写SQL,而是通过LINQ操作所获取的数据,哈哈,感觉Entity Framework (EF)和Hibernate差不多,毕竟都是ORM框架。当然,微软好像还有一个叫NHibernate什么来着,以后再探究一下。

今天只是对5层EF的表层实现原理进行总结,其内部如何建立数据库连接,如何通过LINQ转化SQL等方面还没深入探究,过后补上。

碎觉~~。。。

你可能感兴趣的:(c#)