FluentData 轻量级.NET ORM持久化技术详解(C#4.5/Linq/Lambda,事务/储存过程,开源框架)

  • 课程讲师:风舞烟
  • 课程分类:.NET框架
  • 适合人群:初级
  • 课时数量:19课时
  • 更新程度:完成
  • 服务类型:C类(普通服务类课程)
  • 用到技术:FluentData
  • 涉及项目:FluentData轻量级

需要更多相关资料可以联系 Q2748165793

课程介绍

3.1 关于ORM

一、什么是ORM

ORM,即Object-Relational
Mapping(对象关系映射),它的作用是在关系型数据库和业务实体对象之间作一个映射,这样,我们在具体的操作业务对象的时候,就不需要再去和复杂的SQL语句打交道,只需简单的操作对象的属性和方法。

二、使用ORM的优势 

优势一、
隐藏了数据访问细节,“封闭”的通用数据库交互,ORM的核心。他使得我们的通用数据库交互变得简单易行,并且完全不用考虑该死的SQL语句。快速开发,由此而来。

优势二、ORM使我们构造固化数据结构变得简单易行

在ORM年表的史前时代,我们需要将我们的对象模型转化为一条一条的SQL语句,通过直连或是DB
helper在关系数据库构造我们的数据库体系。而现在,基本上所有的ORM框架都提供了通过对象模型构造关系数据库结构的功能。这,相当不错。

三、使用ORM的缺点 

第一:无可避免的,自动化意味着映射和关联管理,代价是牺牲性能(早期,这是所有不喜欢ORM人的共同点)。现在的各种ORM框架都在尝试使用各种方法来减轻这块(LazyLoad,Cache),效果还是很显著的。

第二:面向对象的查询语言(X-QL)作为一种数据库与对象之间的过渡,虽然隐藏了数据层面的业务抽象,但并不能完全的屏蔽掉数据库层的设计,并且无疑将增加学习成本.

第三:对于复杂
查询,ORM仍然力不从心。虽然可以实现,但是不值的。视图可以解决大部分calculated column,case
,group,having,order by, exists,但是查询条件(a and b and not c and (d or
d))。。。。。。

世上没有驴是不吃草的(又想好又想巧,买个老驴不吃草),任何优势的背后都隐藏着缺点,这是不可避免的。问题在于,我们是否能容忍缺点

3.2、几种常见的ORM框架的比较 

几种常用框架的比较

以上就是市面上比较常见的.net
ORM框架。其实比较完美的ORM框架应该是满足:

1.对象与数据库的映射

2.对象缓存

3.可视化设计和代码生成工具

4.支持多数据库

5.动态查询

6.延迟加载

7.非侵入式持久化

8.性能优良

9.支持存储过程和事务

10.多面向对象框架支持

ORM框架确实很方便,但发现也有其不足之处,比如多表联合查询,对视图和存储过程的处理不理想。整体性能低于面向SQL语句。

以上几种框架比较常用的应该是NHibernate,微软的EF及MyBatis.NET和FluentData。

上述几个框架各有优缺点

如:NHibernate
师出名门,大名鼎鼎的Hibernate厂商出品的专门针对.NET的ORM框架,优点是:功能强大,资料齐全,缺点是配置复杂,学习成本高

微软的EF自然 是在VS开发中首推的,优点是和VS
IDE集成很好,缺点是性能较NHiberte低,据说6.0后,性能明显加强,甚至于超过NHibernate,但本人未测,另外,对其他数据库的支持
需要安装第三方插件,还有个人感觉也过于宠大,使用起来,不够灵活。MyBatic.NET功能和易用性介于NHibernate与EF之间。

相比较而言,我们更推荐使用FluentData,一个轻量级开源的.NET
ORM数据持久化框架

3.3、什么是FluentData? 

FluentData:一种使用Fluent
API的新型轻量级ORM模型

FluentData 是微型 ORM(micro-ORM)家族的一名新成员,旨在比大型
ORM(full ORM)更加易用。FluentData 于本月推出,它使用 fluent API 并支持 SQL
Server、SQL Azure、Oracle 和
MYSQL。

FluentData 的设计者 Lars-Erik Kindblad
谈到:

当前市面上的 ORM 框架,如 Entity Framework 和
NHibernate,都过于复杂而且难于学习。此外,由于这些框架自身抽象的查询语言以及从数据库到 .NET
对象的映射太过麻烦,导致它们生成的 SQL 都很低效。

FluentData 另辟蹊径,它是一个轻量级框架,拥有简单的 fluent API
并且很容易学会。

与其他微型 ORM(如 Dapper 和 Massive)类似,FluentData
关注性能和易用性。它允许开发人员拥有对 SQL 较多的控制,而不是依赖 ORM 进行自动生成。它不仅可以使用 SQL
来执行查询、增添和更新操作,还可以支持使用存储过程和事务。根据文档描述,FluentData
可以在不改动已有结构的情况下,与任何业务对象一同工作。

 以下是 FluentData
的一些其他特性:

·
多结果集(Multiple Result
Set):在一次数据库操作下返回多个数据集;

·
开发人员可使用强类型对象或动态对象;

·
可为创建时需要特殊处理的复杂对象自定义实体工厂(Custom Entity
Factory);

·
具有添加其他数据库支持的能力。

FluentData 需要 .NET 4.0,并支持 SQL Server、SQL
Azure、SQL Server Compact 以及使用 .NET 驱动的 Oracle 和 MySQL。
想要了解进一步信息,如代码示例和免费下载,请访问CodePlex 站点上的
FluentData。(http://fluentdata.codeplex.com/)

3.4、课程培训目标:

1.
全面了解C# 4.5 语法新特性

2.全面深入了解什么是FluentData,以及如何使用FluentData结合.NET进行数据库应用开发

3.通过实例融会贯通FluentData
API语法,特性以及最佳开发实践

3.5、适合学员

1.能够熟练使用C#语法开发简单数据库应用。

2.了解SQL语句,SQL
Server或MySQL,Oracle中任一种即可

时间: 2024-10-10 04:51:13

FluentData 轻量级.NET ORM持久化技术详解(C#4.5/Linq/Lambda,事务/储存过程,开源框架)的相关文章

FluentData 轻量级.NET ORM持久化技术详解

FluentData 轻量级.NET ORM持久化技术详解(C#4.5/Linq/Lambda,事务/储存过程,开源框架) 课程讲师:风舞烟 课程分类:.NET框架 适合人群:初级 课时数量:19课时 用到技术:FluentData 涉及项目:FluentData轻量级 咨询qq:1840215592 本课程系<基于ASP.NET MVC 4 +Knockout.JS+Web API+FluentData+EasyUI 技术实现Web通用商业开发框架>中的一个单品课程,北风产品总监"

FluentData - 轻量级.NET ORM持久化技术解决方案

目录: 一.什么是ORM? 二.使用ORM的优势 三.使用ORM的缺点 四.NET下的ORM框架有哪些? 五.几种常用框架的比较 六.什么是FluentData? 七.快速上手如何使用FluentData? 八.提供资源下载 内容: 一.什么是ORM?  ORM,即Object-Relational Mapping(对象关系映射),它的作用是在关系型数据库和业务实体对象之间作一个映射,这样,我们在具体的操作业务对象的时候,就不需要再去和复杂的SQL语句打交道,只需简单的操作对象的属性和方法. 二

FluentData - 轻量级.NET ORM持久化技术解决方式

文件夹: 一.什么是ORM? 二.使用ORM的优势 三.使用ORM的缺点 四.NET下的ORM框架有哪些? 五.几种经常使用框架的比較 六.什么是FluentData? 七.高速上手怎样使用FluentData? 八.提供资源下载 内容: 一.什么是ORM?  ORM,即Object-Relational Mapping(对象关系映射),它的作用是在关系型数据库和业务实体对象之间作一个映射.这样,我们在详细的操作业务对象的时候,就不须要再去和复杂的SQL语句打交道,仅仅需简单的操作对象的属性和方

《精通Hibernate:Java对象持久化技术详解》目录

图书信息:孙卫琴 电子工业出版社 第1章 Java应用分层架构及软件模型: 1.1 应用程序的分层体系结构 1.1.1 区分物理层和逻辑层 1.1.2 软件层的特征 1.1.3 软件分层的优点 1.1.4 软件分层的缺点 1.1.5 Java应用的持久化层 1.2 软件的模型 1.2.1 概念模型 1.2.2 关系数据模型 1.2.3 域模型 1.2.4 域对象 1.2.5 域对象之间的关系 1.2.6 域对象的持久化概念 1.3 小结 1.4 思考题第2章 Java对象持久化技术概述: 2.1

J2EE学习篇之--JQuery技术详解

前面我们讲解了的J2EE的技术都是服务端的技术,下面我们来看一下前端的一些开发技术,这一篇我们来看一下jQuery技术 简介: jQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多 javascript高手加入其team. jQuery是继prototype之后又一个优秀的Javascript框架.其宗旨是--WRITE LESS,DO MORE,写更少的代码,做更多的事情. 它是轻量级的js库(压缩后只有21k) ,这是其它的js库所不及的,它兼容CSS3,还兼容各种浏

Comet技术详解:基于HTTP长连接的Web端实时通信技术

前言 一般来说,Web端即时通讯技术因受限于浏览器的设计限制,一直以来实现起来并不容易,主流的Web端即时通讯方案大致有4种:传统Ajax短轮询.Comet技术.WebSocket技术.SSE(Server-sent Events). 关于这4种技术方式的优缺点,请参考<Web端即时通讯技术盘点:短轮询.Comet.Websocket.SSE>.本文将专门讲解Comet技术.(本文同步发布于:http://www.52im.net/thread-334-1-1.html) 学习交流 - 即时通

SSE技术详解:一种全新的HTML5服务器推送事件技术

前言 一般来说,Web端即时通讯技术因受限于浏览器的设计限制,一直以来实现起来并不容易,主流的Web端即时通讯方案大致有4种:传统Ajax短轮询.Comet技术.WebSocket技术.SSE(Server-sent Events).关于这4种技术方式的优缺点,请参考<Web端即时通讯技术盘点:短轮询.Comet.Websocket.SSE>.本文将专门讲解SSE技术. 服务器推送事件(Server-sent Events),简称SSE,是 HTML 5 规范中的一个组成部分,可以用来从服务端

实现高性能纠删码引擎 | 纠删码技术详解(下)

作者介绍: 徐祥曦,七牛云工程师,独立开发了多套高性能纠删码/再生码编码引擎.柳青,华中科技大学博士,研究方向为基于纠删码的分布式存储系统. 前言: 在上篇<如何选择纠删码编码引擎>中,我们简单了解了 Reed-Solomon Codes(RS 码)的编/解码过程,以及编码引擎的评判标准.但并没有就具体实现进行展开,本篇作为<纠删码技术详解>的下篇,我们将主要探讨工程实现的问题. 这里先简单提炼一下实现高性能纠删码引擎的要点:首先,根据编码理论将矩阵以及有限域的运算工程化,接下来主

Linux磁盘阵列技术详解(二)--raid 1创建

我在Linux磁盘阵列技术详解(一)里已经详细介绍了几种RAID磁盘阵列方式,原理以及创建raid 0 的详细步骤.那么这篇文档就着重讲解如何创建raid 1的技术: 步骤如下: ① 分区 同样我们还是以一块硬盘的不同分区为例,实际工作中应该是不同的硬盘才对. 具体分区步骤不再赘述! 分区后结果如下图所示: ② 创建raid 1 mdadm -C -v /dev/md1 -l 1 -n 2 -x 1 /dev/sdc1 /dev/sdc2 /dev/sdc3 或者 mdadm -C -v /de