摘要: 热衷于开源框架探索的我发现ASP.NET MVC与jQuery easyUI的组合很给力。由于原先一直受Ext JS框架的licence所苦恼,于是痛下决心寻找一个完全免费的js框架——easyUI。它有完整的demo和强大AIP手册,使我在开发过程中得心应手。以下是这篇博文Demo程序的演示效果:  解决方案如图1所示图1  Domain:领域模型  Dao:持久层  Service:服务层  ...阅读全文
posted @ 2011-08-19 01:53 刘冬.NET 阅读(40176) | 评论 (150) 编辑
摘要: 内容摘要 单向多对多关联映射 双向多对多关联映射 一、单向多对多关联映射 1.1 多对多关联映射描述 众所周知,持久化类的有三种对应关系:“一对一”、“一对多(多对一)”和“多对多”。在项目开发过程中,我们接触过权限系统。而权限系统中,“用户”和“角色”的对应关系往往就是“多对多”。 让我们看一下“多对多”的数据,如图1.1.1所示:图1.1.1 从数据中,我们能够观察到:多个用户(User)对应多个角色(Role)。构造“多对多”的关联关系,我们不仅需要用户(User)表和角色(Role)表,还需要用户和角色的关系表。通过这三张表的关系构造了“多对多”的关联关系。 让我们看一下代码: pu.阅读全文
posted @ 2011-03-04 00:26 刘冬.NET 阅读(8042) | 评论 (32) 编辑
摘要: 内容摘要 单向关联映射 双向关联映射 一、单向关联映射 1.1 单向关联映射的描述 让我们回顾一下之前讲的《多对一关联映射》,如图1.1.1所示,其实“一对多”关联映射就是“多对一”关联映射相反的映射。 图1.1.1 至于“一对多”单向关联映射的代码如下:publicclassStudent{publicvirtualint?ID{get;set;}publicvirtualstringName{get;set;}}publicclassClass{publicvirtualint?ID{get;set;}publicvirtualstringName{get;set;}publicvirt.阅读全文
posted @ 2011-03-03 15:36 刘冬.NET 阅读(6675) | 评论 (7) 编辑
摘要: 内容摘要 单向主键关联映射 双向主键关联映射 唯一外键关联映射 NHibernate的一对一关联映射有三种,单向主键关联映射、双向主键关联映射、唯一外键关联映射。 一、单向主键关联映射 我们模拟一个现实情况:学生(Student)和家庭(Family)的关系。在中国,目前实行计划生育,一个家庭只有一个孩子,孩子上学后就成为了学生。学生和家庭的关系可以认为是一对一的。 让我们看一下“一对一”的表结构,如图1.1所示:图1.1 让我们看一下“一对一”的实体类和映射文件: publicclassStudent{publicvirtualint?ID{get;set;}publicvirtualst.阅读全文
posted @ 2011-02-25 01:02 刘冬.NET 阅读(8068) | 评论 (21) 编辑
摘要: 内容摘要 多对一关联映射概括 多对一关联映射插入和查询 多对一关联映配置介绍 一、多对一关联映射概括 关联关系是实体类与实体类之间的结构关系,分别为“多对一”、“一对一”、“多对多”。然而“多对一”是怎样描述的呢?让我们参考图1.1所示: 图1.1 学生表“T_Student”有两条记录,它们分别对应了班级表“T_Class”的主键值为“1”的同一条记录。所以这就是“多对一”的使用情景。 让我们看一下“多对一”持久化类的结构: publicclassClass{publicvirtualint?ID{get;set;}publicvirtualstringName{get;set;}}pub.阅读全文
posted @ 2011-02-24 11:12 刘冬.NET 阅读(7974) | 评论 (18) 编辑
摘要: 内容摘要 映射定义概括 基本映射常用标签 NHibernate的类型 一、映射定义概括 1.1 映射定义(Mapping declaration) 对象和关系数据库之间的映射是用一个XML文档(XML document)来定义的。这个映射文档被设计为易读的,并且可以手工修改。映射语言是以对象为中心的, 意味着映射是按照持久化类的定义来创建的,而非表的定义。 让我们打开上节课的映射例子: Product.hbm.xml Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlight.阅读全文
posted @ 2011-02-24 00:21 刘冬.NET 阅读(7725) | 评论 (14) 编辑
摘要: 内容摘要    持久化类    持久化生命周期中的回调    合法性验证回调    一、持久化类(Persistent Classes)      1.1 什么是持久化类  回答这个问题之前先回答什么是持久化。所谓的持久化就是把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。然而持久化类就是持久化数据的载体,在应用程序中,用来实现业务问题实体的(如,在电子商务应用程序中的Customer和Order) 类就是持久化类。不能认为所有的持久化类的实例都是持久的状态——一个实例的状态也可能 是瞬时的或脱管的。 如果这些持久化类遵循一些简单的规则,NHiberna阅读全文
posted @ 2011-02-18 02:30 刘冬.NET 阅读(6670) | 评论 (21) 编辑
摘要: 内容摘要    持久对象的状态的概念    持久对象的状态Demo  一、持久对象的状态的概念    在NHibernate中有三种状态,对它的深入理解,才能更好的理解NHibernate的运行机理,刚开始不太注意这些概念,后来发现它是重要的。对于NHibernate和SQL的关系有更好的理解;对于理解需要持久化的.NET对象,在它的生命周期中三种状态之间的互相转化有很大帮助。如图1.1所示图1....阅读全文
posted @ 2011-02-17 01:18 刘冬.NET 阅读(8774) | 评论 (27) 编辑
摘要: 内容摘要    准备工作    开发流程    程序开发  一、准备工作    1.1开发环境       开发工具:VS2008以上,我使用的是VS2010      数据库:任意关系型数据库,我使用的是SQL Server 2005 Express    1.2测试环境      nunit 2.5.7  二、开发流程  NHibernate程序的开发流程是:    (1).编写领域类与映射文...阅读全文
posted @ 2011-02-16 00:21 刘冬.NET 阅读(15940) | 评论 (68) 编辑
摘要: 内容摘要    NHibernate的开发环境    NHibernate的结构体系      NHibernate的配置  一、NHibernate的开发环境  NHibernate的英文官方网站为:http://nhforge.org/  NHibernate目前最新的版本是3.0.0.GA,其下载地址是:http://sourceforge.net/projects/nhibernate/f...阅读全文
posted @ 2011-02-15 00:23 刘冬.NET 阅读(12115) | 评论 (13) 编辑
摘要: 内容摘要    NHibernate简介    ORM简介      NHibernate优缺点  一、NHibernate简介  什么是?NHibernate?NHibernate是一个面向.NET环境的对象/关系数据库映射工具。对象/关系数据库映射(object/relational mapping,ORM)这个术语表示一种技术,用来把对象模型表示的对象映射到基于SQL的关系模型数据结构中去。...阅读全文
posted @ 2011-02-14 02:04 刘冬.NET 阅读(15313) | 评论 (26) 编辑
摘要: 最近由于工作忙的原因,博客更新的比较慢,在此给园子里的朋友说声抱歉。于是,我利用周末的时间写了一份Spring.NET架构的综合应用,希望这样的实用型架构能受到大家的欢迎。  一、概括  此Demo使用的开发工具是:VS2010,数据库任意,Silvelright版本是4.0。Demo分为三层(Tier),数据库,服务器端,客户端。其中,服务器端又分为三层(Layer),持久层,服务层,门面层。WCF以Windows服务作为宿主,客户端使用Silverlight运行浏览器之外。图1  图1是解决方案中包含的项目。其中,Server文件夹下是服务器端的代码,Host文件夹下是服务器端的Windo阅读全文
posted @ 2010-10-16 14:03 刘冬.NET 阅读(16567) | 评论 (57) 编辑
摘要: 之前实现的NHibernate分布式事务,在WCF环境下遇到的一个难点,是NHibernate的Session管理。然而在我查看log4net生成的调试日志时候惊奇的发现,原来NHibernate的Session不一定需要SessionScope来管理。在遇到事务的时候能自动创建一个Session,在事务关闭的时候能自动关闭Session。SessionScope仅仅是把自动创建的Session合...阅读全文
posted @ 2010-08-12 13:45 刘冬.NET 阅读(4680) | 评论 (10) 编辑
摘要: 上篇,我们已实现了在同一应用程序下的分布式事务——即多Dao层+同Service层,每个Dao对应一个数据库,一个Service调用多个Dao。但是在一些特定的子系统较多的项目中,开发人员是无法访问到某个子系统的数据库,这就意味着不能通过增加Dao层来实现分布式事务。正如一个银行的软件系统,记录了客户的账户信息和存款金额,北京的分公司和上海的分公司分别有自己的数据库和软件系...阅读全文
posted @ 2010-07-30 14:44 刘冬.NET 阅读(4022) | 评论 (8) 编辑
摘要: 在使用NHibernate作为持久层框架时,多数据库操作是一个比较难解决的问题。并且很多网友在给我发的eamil中经常谈到此问题。由于NHibernate是一种框架,不能像ADO.NET那样直接用SQL语句操作数据库,在动态改变DbConnection时比较麻烦,而且NHibernate目前并不完全支持多数据库,所以实现多数据库的操作是个棘手的问题。  回想一下,在使用ADO.NET实现多数据库的...阅读全文
posted @ 2010-07-29 03:09 刘冬.NET 阅读(5514) | 评论 (16) 编辑
摘要: 什么是持久层?先解释什么是持久,英文persistence,将内存中的数据固化,保持在物理储存设备中。然而在企业应用中,往往通过关系型数据库来完成这一过程。那么持久层的定义是:相对于三层架构中的表示层、业务层而言,专门负责持久化数据的独立领域。设计模式中的“单一职责”原则确定了分层的目的,说白了,持久层就是专门与数据库打交道的。如图1所示图1  在PetShop4.0中的D...阅读全文
posted @ 2010-06-19 22:08 刘冬.NET 阅读(6271) | 评论 (15) 编辑
摘要: 什么是领域模型?领域模型是对领域内的概念类或现实世界中对象的可视化表示。又称概念模型、领域对象模型、分析对象模型。它专注于分析问题领域本身,发掘重要的业务领域概念,并建立业务领域概念之间的关系。  当我们不再对一个新系统进行数据库提炼时,取而代之的时面向对象的模型提炼。我们必须大刀阔斧地对业务领域进行细分,将一个复杂的业务领域划分为多个小的子领域,同时还必须分清重点和次要部分,抓住核心领域概念,实...阅读全文
posted @ 2010-06-18 01:41 刘冬.NET 阅读(5986) | 评论 (10) 编辑
摘要: PetShop4.0是微软针对.NET企业系统推出的一个范例。业界有许多.NET与J2EE之争,许多数据是从微软的PetShop和Sun的PetStore而来。这种争论不可避免带有浓厚的商业色彩,对于我们开发人员而言,没有必要过多关注。然而PetShop随着版本的不断更新,至现在基于.Net 2.0的PetShop4.0为止,整个设计逐渐变得成熟而优雅,而且有很多可以借鉴之处。PetShop是一个...阅读全文
posted @ 2010-06-17 12:42 刘冬.NET 阅读(11204) | 评论 (49) 编辑
摘要: 针对大型系统,往往采用Oracle数据库。这是因为在大数据量的情况下Oracle的优势比较明显,而且能够部署到非Windows环境下,从而弥补.NET程序跨平台的缺点。但是使用NHibernate访问Oracle和访问SQL Server相比来说要略微复杂。  在使用NHibernate访问Oracle的过程中,我们需要以下几个步骤:  1.下载并安装Oracle客户端http://www.ora...阅读全文
posted @ 2010-05-25 21:21 刘冬.NET 阅读(6252) | 评论 (15) 编辑
摘要: 什么是二级缓存?  NHibernate的Session提供了一级缓存。每个Session,对同一个id进行两次Load,不会发送两条SQL语句给数据库,但是Session一但关闭,一级缓存也就失效了。   与Session相对的是,SessionFactory也提供了相应的缓存机制。  SessionFactory缓存可以依据功能和目的的不同而划分为内置缓存和外置缓存。  SessionFact...阅读全文
posted @ 2010-05-19 03:46 刘冬.NET 阅读(3205) | 评论 (9) 编辑
摘要: 目录  前言  Spring.NET学习笔记——前言    第一阶段:控制反转与依赖注入IoC&DI  Spring.NET学习笔记1——控制反转(基础篇) Level 200  Spring.NET学习笔记2——环境搭建(基础篇) Level 200  Spring.NET学习笔记3——实现一...阅读全文
posted @ 2009-11-20 12:36 刘冬.NET 阅读(41762) | 评论 (43) 编辑
摘要: ASP.NET MVC Framework是微软官方提供的MVC模式编写ASP.NET Web应用程序的一个框架。MVC(Model-View-Controller)用于表示一种软件架构模式.它把软件系统分为三个基本部分:模型(Model),视图(View)和控制器(Controller)。  今天带给大家的就是期待以久的ASP.NET MVC与Spring.NET和NHibernate的组合,视...阅读全文
posted @ 2009-11-19 05:09 刘冬.NET 阅读(9923) | 评论 (43) 编辑
摘要: NHibernate是一个基于.Net的针对关系型数据库的对象持久化(ORM)类库。NHibernate来源于非常优秀的基于Java的NHibernate关系型持久化工具。从数据库底NHibernate来持久化你的.Net 对象到关系型数据库。NHibernate为你处理这些,远胜于你不得不写SQL去从数据库存取对象。你的代码仅仅和对象关联,NHibernate自动产生SQL语句,并确保对象提交到...阅读全文
posted @ 2009-11-18 04:36 刘冬.NET 阅读(15565) | 评论 (39) 编辑
摘要: 今晚看了几篇项目应用的博客感受很深,晚上怎么都睡不着觉。于是乎,下面的博客诞生了 ^-^。  我在想是不是要把我熟悉的Spring.NET框架与别的框架或技术结合起来。由于心血来潮,斗胆在园子里这么多大牛的面前班门弄斧了。长话短说,下面是我项目中用到的技术(图1):1.JQuery的FlexiGrid插件2.ASP.NET MVC3.NVelocity目前没有与MVC结合,只是用来简单的替换模板4...阅读全文
posted @ 2009-11-10 07:28 刘冬.NET 阅读(20863) | 评论 (52) 编辑
摘要: 有人问过我一个问题,既然用了NHibernate还有必要用Linq吗?就这个问题,我回答下列几点:  1.Linq to NHibernate有VS的IDE提示,编译器可以帮助我提示出错误。  2.Linq to NHibernate最大限度的帮我们优化SQL语句,尤其是匿名类的查询语句和聚合函数的查询。  3.可以结合Linq加NHibernate各自的延迟加载特性,帮我们在必要的时候生成特定的...阅读全文
posted @ 2009-10-18 23:48 刘冬.NET 阅读(6264) | 评论 (9) 编辑
摘要: 在微软发布C# 3.0后, LINQ在项目中发挥了重要作用。作为3.0语言身份的象征之一,学习LINQ有为重要。而NHibernate作为运用最广的ORM框架之一,在大型项目中广受开发人员的青睐。前不久,NHibernate Forge宣布NHiberante Linq 1.0正式发布了(参考)。Linq to NHibernate有机的在NHibernate结合了Linq的查询功能,良好的把LI...阅读全文
posted @ 2009-10-16 02:16 刘冬.NET 阅读(7374) | 评论 (38) 编辑

最新文章

  1. 【LeetCode OJ】Binary Tree Zigzag Level Order Traversal
  2. findViewById返回null
  3. php 数组二分法查找函数
  4. Android中Context详解 ---- 你所不知道的Context
  5. 2014 ACM/ICPC 鞍山赛区现场赛 D&I 解题报告
  6. Android ListView 全面优化
  7. Oracle trunc函数
  8. ceph之Placement Group
  9. Filter和FilterChain具体的使用说明
  10. 分页。php 引用代码
  11. STL中的容器介绍
  12. vue2.0 之事件处理器
  13. 企业项目开发--cookie(1)
  14. UIView的alpha、hidden和opaque属性之间的关系和区别
  15. kafka知识点整理总结
  16. SQL Server2016 配置管理器
  17. nodeJs的npm报错问题
  18. ipa 发布到stroe
  19. 关于.NET Core 2.0.2升级到2.1.1版本相关问题
  20. mysql 简单介绍

热门文章

  1. php 修改上传文件大小
  2. modelsim使用命令
  3. Linux下源码安装Nginx服务
  4. 验证码 jsp生成
  5. Android Dev
  6. Android Socket编程基础
  7. android 64 sd卡读写的操作
  8. RFC 文档(中文与英文)
  9. delegate和event
  10. C# StringExt 字符串扩展