DIY.NETORM框架——总体分析

一、故事

近些年一直开发MIS系统,用过PB,VB,C#  。如今学了半年的java,早先听人说,.NET和
java一直就是互相借鉴。一起升级。都是为了让程序开发趋于简单,高校,而这不可避免就肯定用到框架,对java中非常多框架的实现原理。我也比較感兴趣,在本系列的博客正,咱们将一起实现一个简单的.NET版
ORM框架。

有人会有疑问。网上有非常多成熟的ORM框架,为什么不直接用。偏偏要自己做一个呢?

对于这个答案。是仁者见仁的问题,就好似建造大厦,假设他停留在会照着图纸建房子,他肯定是个工人,而假设他能了解图纸上的原理。那么他必定是一个管理者。当他了解原理且能自己画出一份图纸的时候。他就是设计师!

二,技术了解

1.什么是ORM?

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

2.ORM 优缺点

展开说说

长处:

(1),隐藏了数据訪问细节。

“封闭”的通用数据库交互。ORM的核心。

他使得我们的通用数据库交互变得简单易行。而且全然不用考虑该死的SQL语句。

高速开发,由此而来。

(2),ORM使我们构造固化数据结构变得简单易行。

回忆我们没有ORM的年代。我们要为每一个表编写形形色色的sql语句,我们拿到的数据内容。要自己转换为对象。我们为了某个字段值写错的bug彻夜不眠。而如今,基本上全部的ORM框架都提供了通过对象模型构造关系数据库结构的功能。而这,“太好了!。!”。

缺点:

(1)牺牲性能:

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

(2)查询语言:

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

(3)复杂查询:

对于复杂查询。ORM仍然力不从心。尽管能够实现,可是不值的。

视图能够解决大部分calculatedcolumn。case ,group,having,order by, exists。可是查询条件(a
and b and not c and (d ord))我们有些也要谨慎考虑和又一次编写sql语句!

总结:世上不论什么事情是完美的。不论什么优势的背后都隐藏着缺点。这是必定的。问题在于,我们是怎样平衡他们的额。在简答业务的场合下,简单三成可能就是最佳选择,而在某些业务逻辑复杂,开发团队庞大的项目中,ORM却又是个不得不考虑的问题,详细怎么办?就看你怎么衡量,没人说用了ORM就不让底层人员写sql语句了…………

三。模块设计构想

四、本篇总结

本次简单讲述了ORM实现的基本思路分析及ORM框架使用的优缺点及在项目中怎样合理的分析与应用。

我们用ORM框架是来解决这个问题。可是。不是什么问题都是一种框架能够解决的。数据库的封装。ORM仅仅是做了当中的工作。也不要认为这个东西是多么的高深,随着我们代码的不断推进。我们设计的不断完好。事实上我们能够发现。全部的代码都是基本技术的组合,仅仅是我们对于他的组合形式不熟悉,相信自己。框架我们也是能够写出来的!

附件(系列博客链接):

1,DIY.NETORM框架——总体分析

时间: 2024-10-25 22:59:29

DIY.NETORM框架——总体分析的相关文章

DIY.NETORM框架——技术储备(1)Attribute

1.他是什么 ? 首先,我们肯定Attribute是一个类,下面是msdn文档对它的描述: 公共语言运行时允许你添加类似关键字的描述声明,叫做attributes, 它对程序中的元素进行标注,如类型.字段.方法和属性等.Attributes和Microsoft .NET Framework文件的元数据保存在一起,可以用来向运行时描述你的代码,或者在程序运行的时候影响应用程序的行为. 其实特别简单:Attribute就是一种"附着物",就像超市商品上贴的标签.这些附着物的作用是为它们的附

DIY.NETORM框架——整体分析

一.故事 近些年一直开发MIS系统,用过PB,VB,C#  ,现在学了半年的java,早先听人说,.NET和 java一直就是互相借鉴,一起升级,都是为了让程序开发趋于简单,高校,而这不可避免就肯定用到框架,对java中很多框架的实现原理,我也比较感兴趣,在本系列的博客正,咱们将一起实现一个简单的.NET版 ORM框架. 有人会有疑问,网上有很多成熟的ORM框架,为什么不直接用,偏偏要自己做一个呢? 对于这个答案,是仁者见仁的问题,就好似建造大厦,如果他停留在会照着图纸建房子,他肯定是个工人,而

RPC调用框架比较分析--转载

原文地址:http://itindex.net/detail/52530-rpc-%E6%A1%86%E6%9E%B6-%E5%88%86%E6%9E%90 什么是RPC: RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议. 简言之,RPC使得程序能够像访问本地系统资源一样,去访问远端系统资源. 比较关键的一些方面包括,通讯协议,序列化,资源(接口)描述,服务框架,性能,语言支持

cocos2d-x-3.3-023-仿微信飞机大战-总体分析和建模

原文同步发布于我的wiki,查看原文或更新请移步:点击打开链接 总体分析 一开始得想明白了的问题 游戏里面的可见元素,采用is-a精灵,还是采用has-a精灵好: 直接继承精灵使用于相对简单的情形:而对于复杂的UI构成采用组合策略, 这时候用继承Node,并采用has-a精灵的关系是不错的选择. 子弹发射这个动作的思考(包括产生敌机,英雄出场,补给出场等都适用这个问题),cocos提供的导演和场景是用于流程控制的:层是画布:而精灵则是画布上的元素,故在发射或者创建一个子弹时要指定他所属于的画布.

spi驱动框架全面分析,从master驱动到设备驱动

内核版本:linux2.6.32.2 硬件资源:s3c2440 参考:  韦东山SPI视频教程 内容概括: 1.I2C 驱动框架回顾 2.SPI 框架简单介绍 3.master 驱动框架 3.1 驱动侧 3.2 设备侧 4.SPI 设备驱动框架 4.1 设备册 4.2 驱动侧 5.设备驱动程序实例 1.I2C 驱动框架回顾 在前面学习 I2C 驱动程序的时候我们知道,I2C 驱动框架分为两层,一层是控制器驱动程序 i2c_adapter,它一般是由芯片厂商写好的,主要提供一个 algorithm

(转)dubbo框架基本分析

原文地址: https://my.oschina.net/zhengweishan/blog/698591 Dubbo架构基本分析 1. dubbo简单介绍 1.1 dubbo是什么 dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案. 其核心部分包含: 远程通讯: 提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及"请求-响应"模式的信息交换方式. 集群容错: 提供基于接口方法的透明远程过程调用,包括多协议支

游戏服务器框架概括分析

这篇blog题目涉及的范围真大!以至于在这里需要先写一篇前言把范围缩小.选择写这样一个系列的文章,主要是想给工作了两年的自己一个交代,或者说是一个阶段性的总结.两年时间里,房价依然再涨,工资依然跑不赢CPI,某人依然在仰望星空.期间很多梦碎了,很多还在坚持着,生活过得波澜不惊.而我也从刚毕业是的青涩逐步蜕变为"老油条".不知道是一种悲哀.还是一种悲哀.还是一种悲哀....... 庆幸的是梦还在继续,一颗倔强的心还在坚持.希望明天的明天被束缚的心能回到梦开始的地方! ==========

基于MVC4+EasyUI的Web开发框架形成之旅--框架总体界面介绍

在前面介绍了一些关于最新基于MVC4+EasyUI的Web开发框架文章,虽然Web开发框架的相关技术文章会随着技术的探讨一直写下去,不过这个系列的文章,到这里做一个总结,展示一下整体基于MVC4+EasyUI的界面效果,让大家对这款Web开发框架有一个形象的了解,界面设计以及相关思路可以借鉴提高,也可以对相关的内容进行相互探讨,共同提高. 技术特点:整个Web开发框架,界面部分采用较新的技术,包括MVC4,最新版本的EasyUI,以及zTree树形控件.Uploadify文件上传组件等模块,另外

基于MVC4+EasyUI的Web开发框架形成之旅(5)--框架总体界面介绍

在前面介绍了一些关于最新基于MVC4+EasyUI的Web开发框架文章,虽然Web开发框架的相关技术文章会随着技术的探讨一直写下去,不过这个系列的文章,到这里做一个总结,展示一下整体基于MVC4+EasyUI的界面效果,让大家对这款Web开发框架有一个形象的了解,界面设计以及相关思路可以借鉴提高,也可以对相关的内容进行相互探讨,共同提高. 技术特点:整个Web开发框架,界面部分采用较新的技术,包括MVC4,最新版本的EasyUI,以及zTree树形控件.Uploadify文件上传组件等模块,另外