您的位置:首页 > 运维架构 > 网站架构

底层架构的搭建

2015-06-29 22:01 471 查看
ITOO3.0服务端框架
 
WCF->B->D->Model(EF)
 
WCF的结构实现,接口(这里指所谓的契约),svc
当我们通过右键新建一个wcf服务的时候,,我们可以看到现有项目中同时增加了三个文件如下图,IService中定义的是我们常用的契约,



Service1.svc.cs定义的是契约的实现,



 Service1.svc中定义的是服务的位置。
 
右击Service.svc,选择打开方式中的带编码的web服务器编辑器。可以看到



codeBehind定义的实现位置
我们将IService放到另一个项目中,将实现分离处理,就得到了我们见到的服务端的WCF



 
接下来,我们谈谈,WCF层,调用B层,B层调用D层,中的调用机制的改变。
上一层调用下一层的时候必须声明下一层的具体对象,我们之前采用的方法是利用工厂+反射,现在利用的是AOP+反射。相比之前简单了很多。
 
B层:  publicclass BaseService<T>:CoreBaseService<T> where T:class,new()
这句话的意思是泛型,泛型必须是一个类,而且必须具有构造函数。
B层和D层都利用了大量的泛型来写具体的类)
WCF调用B层:通过AOP+反射,成功声明B层具体的对象,然后进行方法调用。
 ITeacherBll teacherBll =SpringHelper.GetObject<ITeacherBll>("TeacherBll");
 
 
B层调用D层的方法,底层框架的更新,使得我们可以不用利用工厂声明具体的D层的类了,
通过配置文件获得dbsession中定义的dbsession类,
为每个B层实现类,声明具体的D层对象获得dbSession类中已定义的类
调用D层具体对象的方法。
 
D层并没有具体的实现方法,而是使用已有的EF中的方法。
 
 
说说我们的web.config文件中是怎样使得SpringHelper.GetObject<ITeacherBll>("TeacherBll")成功声明对象的。
  <spring>
<context>
<resourceuri="config://spring/objects"/>
</context>
<objectsxmlns="http://www.springframework.net">
<!--Model层的注解-->
<object id="ITOOHREntities"type="ITOO.BasicHR.Model.ITOOHREntities,ITOO.BasicHR.Model"singleton="false"></object>
<!--DbSession层的注解-->
<object id="DBSession"type="ITOO.BasicHR.DAL.DbSession,ITOO.BasicHR.DAL"singleton="false">
<!--加入属性注入,指向D层的注入-->
<propertyname="TeacherDal" ref="TeacherDal"/>
<property name="JobDal"ref="JobDal"/>
<property name="TitleDal"ref="TitleDal"/>
</object>

<!--D层的注解-->
<object id="TeacherDal"type="ITOO.BasicHR.DAL.TeacherDal,ITOO.BasicHR.DAL" singleton="false"/>
<object id="JobDal"type="ITOO.BasicHR.DAL.JobDal,ITOO.BasicHR.DAL" singleton="false"/>
<object id="TitleDal"type="ITOO.BasicHR.DAL.TitleDal,ITOO.BasicHR.DAL" singleton="false"/>

<!--D层的注解-->

<!--B层的注解-->
<object id="TeacherBll"type="ITOO.BasicHR.BLL.TeacherBll,ITOO.BasicHR.BLL" singleton="false"/>
<object id="JobBll"type="ITOO.BasicHR.BLL.JobBll,ITOO.BasicHR.BLL" singleton="false"/>
<object id="TitleBll"type="ITOO.BasicHR.BLL.TitleBll,ITOO.BasicHR.BLL" singleton="false"/>

<!--B层的注解-->

</objects>
</spring>
type定义类型(连上命名空间)和程序集(也就是dll)
 
 
 
框架搭起来后,总感觉,B,DWCF层都空空的,只有我们不知道的EF层很充实。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  架构 框架