博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
又一篇,讲解Wcf、Silverlight3.0与Nhibernate的集成方案
阅读量:4548 次
发布时间:2019-06-08

本文共 1475 字,大约阅读时间需要 4 分钟。

           (一)、对此篇博文还是从简单的架构入手:

                  简单的作几点说明--

                  1.Silverlight的数据访问采用Wcf提供数据源

                  2.Wcf的数据层采用NHibernate、SqlServer2005(同样适用于Oracle等其他的关系型数据库)

                  3.理解Wcf对实例上下文的管理,引用N人写IglooCommons类库对NHibernate作为WCF数据层的支持,

                     我自己对其对WcfNHibernate进行了抽取,编译为类库文件WcfNHibernate.dll

                     (后面会提供IglooCommons类库及其源码的下载)

                  附架构图:

 

(二)、简要说明结构的各个类库中的内容:

      1. Domain类库中主要是对NHibernate持久层的编写

      2. DataAccess类库文件对数据访问层的编写(这里引入了一个关键的类库WcfNHibernate.dll)

      3. WcfService服务部分(此部分是我介绍的核心部分)

          附结构图:

   3.1:需要引入WcfNHibernate.dll类库文件,并且在Global.asax文件中的Application_Start中添加NHibernateFactory.Initialize();

          代码来初始化NHibernate作为ORM对数据库的访问.

                     3.2:在AuthorService.svc.cs文件中的class类的上面添加属性引用NHibernateContext与ServiceBehavior

           (InstanceContextMode = InstanceContextMode.PerCall),注意:这里的上下文实例必须设置为单调模式

  3.3:hibernate.cfg.xml文件是对NHibernate的一些配置,注意:必要把属性"始终复制"改为"始终复制"

  3.4:ClientAccessPolicy.xml与CrossDomain.xml是Silverlight解决跨域访问Wcf

  4.解析类库文件WcfNhibernate.dll中源码的作用----

     附源代码图:

4.1:NHibernateFactory文件是对NHibernate的初始化与Session的管理类

4.2:NHibernateContextInitializer文件是对Wcf实例上下文初始化扩展对NHibernate的支持

4.3:NHibernateContextExtension文件是对Wcf支持NHibernate中Session管理的扩展

4.4:NHibernateContext文件是对Wcf操作上下文对NHibernate的Session的调用

4.5:NHibernateContextAttribute文件是Wcf属性标记的,与契约行为,NHibernate的Session的管理

5.IglooCommons类库文件的完整展示:

   附图说明:

   

 作几点简要的说明:

 5.1:提供了对AOP的支持(AOP--Aspect-Oriented Programming及面向方面编程)

 5.2:提供了日志的接入点

 5.3:提供了对事件的支持

 5.4:提供了对WcfNHibernate的支持

    (三)、NHibernate类库文件引入

           (四)、感谢各位博友,有幸自己成为一名年轻的程序员

           

                      (五)、源代码提供下载:

                     1.WcfNHibernate类库下载

                       地址:

                        

                        

                        

                         

          

转载于:https://www.cnblogs.com/quincyNO1/archive/2011/10/26/2225119.html

你可能感兴趣的文章
ASP.NET的URL过滤
查看>>
自己写的Web服务器
查看>>
自定义定时组件
查看>>
2-素数打比表
查看>>
性能测试
查看>>
浅谈 Python 的 with 语句
查看>>
使用koa+angular+mysql 完成了一个企业站
查看>>
SQL使用范例
查看>>
转 SQL集合函数中利用case when then 技巧
查看>>
WEB ICON 的探讨
查看>>
[内核编程] 键盘过滤第一个例子ctrl2cap(4.1~4.4)汇总,测试
查看>>
Java读书笔记05 类与对象
查看>>
正则表达式语法 2
查看>>
c# winform 应用程序根据条件阻止窗口关闭
查看>>
转载:简单的php写入数据库类
查看>>
垂直居中的几种实现方法
查看>>
UILabel标签文字过长时的显示方式
查看>>
H5离线缓存机制-manifest
查看>>
比较:I/O成员函数getline() 与 get()(第二种用法)的用法异同
查看>>
201671010118 2016-2017-2《Java程序设计》 第十一周学习心得
查看>>