.net开发之我见,or实现 最简 优化法。knock out type convert 与我之简化orm的实现原理及实现细则,最简化开发法

现在的.net or构架,大家认同的各种大大小小,ef,subsonic,nhibernate,甚至小一些的petapoco这种,但用过的人我想他们考虑的是比较多。

小一些的Petapoco也有几千行的代码。

而有一些或是配置困难,或是脱离不了一些sql,

而我一直在寻找一种更简便的方法简化自己的开发,使自己更容易的操作数据。

由于最近在用mysql,而mysql使用myism引擎和innodb引擎时,由于Innodb引擎支持更广泛些,事务等,虽然在字符索引上可能较myism差些,不过用是必须可以的。

自己就着手写了一个小型的or类型。

具体的实现思想是 Knock out converter.

上一篇中,我个人认为软件OO的思想在于最小化输入配置,而最优化OO方法的精简与重构。

大家都知道在开发中,接收到数据往往是string类型的,若用webservice,wcf,remoting等远端接口,远程调用的方法自然直接是实体,但在与数据库的协作时往往需要将MODEL的类型在parameter 中指定为数据库对应的类型,.net framework其实是有一个infertype的,也就是在操作数据的时候,不指定数据库类型,只是添加prametername 与value,那么,在操作库时,就可以直接进行操作了,而将数据类型的验证放到了库的操作上下文中,也就省掉了程序上类型上的麻烦,当然这是一个取巧的方法,但是这种方法却是最简单明了和易于操作的。

这也是我自己写的or工具中的核心部分。

思想仍旧是 “约定大于配置”,假定表中默认含有id主键,自动增长,单表名与实体名小写相对,那么,我们就可以根据这些约定构造出相应的库表操作语句。

而对于sql注入方面,大家都知道parameter往往是对参数进行重新编码 可以一定程度上防注入,那么,这样我们也可以构造出对应的SQLPARAMETER,通过工厂和抽象的sqlhelper,将具体的sqlhelper注入到操作类中实现各种库的统一操作。这样就可以实现一个单表的Orm.

而对于字符长度等等可以按ef,subsonic的实现,添加特性,限定字符长度,设定主键列,如果没有keycolumn,则采用默认约定用id列

我个人认为,若是在实体中添加上字符长度,数据类型和regular expression等的验证,就可以实体直接的sql直接生成,那么这样就可以实现code first,但 db first往往是我们更多用的方式,所以,扩展上可以那么实现,而且原理就是这个了,orm也基本这么个思想。

.net开发之我见,or实现 最简 优化法。knock out type convert 与我之简化orm的实现原理及实现细则,最简化开发法

时间: 2024-10-09 06:41:47

.net开发之我见,or实现 最简 优化法。knock out type convert 与我之简化orm的实现原理及实现细则,最简化开发法的相关文章

ios开发小技巧-用宏化简代码

在IOS开发中,要做字典转模型一般情况如下: 1 /** 2 * 声明方法 3 */ 4 - (instancetype) initWithDictionary:(NSDictionary *)dict; 5 + (instancetype) carWithDictionary:(NSDictionary *)dict; 6 7 /** 8 * 实现方法 9 */ 10 - (instancetype)initWithDictionary:(NSDictionary *)dict 11 { 12

unity3d游戏开发之我见

游戏引擎想必大家都有所耳闻吧,比如当你在喝着可乐,盯着电脑屏幕,看到游戏场景内的角色在自己键盘鼠标的控制之下,享受着这种游戏的操作感,这种感觉之所以爽快,是因为他满足了你自己的思维(我想干什么就可以干什么),慢着,今天我们不谈论游戏心理,我们今天谈的是到底是什么让我们如此吸引而引人入胜呢?--游戏引擎 众所周知,游戏引擎对于游戏来说,那真的像跑车的引擎一样,是游戏表现的核心,现在为止,一些大型的游戏公司都有自己开发或收购的游戏引擎,比如Unreal(虚幻),暴雪自家的魔兽引擎,还有保守争议的显卡

【转】C++后台开发之我见

工作也快两年了,偶然看到自己以前写过的一些技术博客,发现自己自毕业后一直没有更新过自己的技术博客,趁现在是刚过完春节快要回公司工作之际,谈谈我个人对后台开发的一些个人见解,希望能够对在校的学生或者刚刚接触C++后台开发的童鞋有点帮助. 还记得自己在学校的时候,一直都比较注重的是:编程语言+数据结构与算法.没错,对于一个在校的计算机专业的学生,这是很重要的方面.但是,这往往不够,或许是因为毕业前一直没有进入企业实习,以至于自己在毕业之前,对自己未来的职业规划做得很不够,不知道自己以后会做什么方向,

Chrom浏览器开发DELPHI源码谷歌内核简装版本界面需要自己搞

演示地址:链接: https://pan.baidu.com/s/1vfHhslV5breCankc3s1lOQ 密码: 9njm Delphi源码,付款后自动网盘链接 : QQ群:621816328 原文地址:https://www.cnblogs.com/plug/p/8665212.html

vuejs开发笔记—IDE选择和WebStorm性能优化、框架特性和数据调用、路由的配置以及原理

一.IDE的选择: VsCode和WebStorm都是不错的选择,两者运行调试都非常的方便都可以使用快捷键运行和停止,就打开项目的速度和对电脑配置的要求来说,vscode要比webstorm要出色很多,如果电脑配置足够好的情况下请忽略前面说的性能问题,具体的使用要看个人的需求和爱好了. 1.先说VsCode的配置: 首先是要装VsCode的扩展插件,点击左上角最后一个图标,在搜索里面输入JavaScript (ES6) snippets/NPM/Vue 2 Snippets: 第二步调试配置:V

大道至简第四章

猜对啦,有是我,我又要来扯淡了.并不想写这篇文章,因为我从小文采不好,不擅长与人沟通.更不想写什么观后感,我个人认为观看一本输是要记在心里的并不应当成任务来看待,读书是自愿的,强迫是没有好东西的.下面进入正文... “足下求速化之术,不于其人,乃以访愈,是所谓借听于聋,求道于盲.” ——唐·韩愈<答陈生书> 又是一句古文,仍旧不是很明白其意思,算了懂那么多又有什么用呢. 1. 客户不会用 C,难道就会用 UML 吗? 这一小节讲述了,项目经理的功用,即是在程序员和客户之间沟通的桥梁.用户只知道

读《大道至简——流于形式的沟通》有感

今天怀着热情我读了大道至简的第四章——流于形式的沟通.通过学习这一章的内容,我明白了我们程序员的交流沟通在完成一个项目的过程中必不可少,而如何进行合适有效的沟通,在这一章中我深有体会. 沟通,写起来简单,但是做起来可就没那么容易了,不管是自我沟通,还是父母之间的沟通,同学之间的沟通,师生之间的沟通,还有与客户之间的沟通……太多太多了,所以沟通对于我们来说是多么的重要,这关系到我们的前途和未来,所以,我们必须要讲沟通做好,要善于交流. 对于我们搞程序的人或者研究人员来说,因为客户是不可能都会C语言

Android安卓开发知识库汇总

初级 Android 面试知识库 Android 面试题总结之Android 进阶(二) - fuchenxuan blog - 博客频道 - CSDN.NET 如何成为一名优秀的程序员 | Mystra 2016Android某公司面试题 | yuweiguo's blog 我面试到底问什么? - AndroidDeveloper - 知乎专栏 扫清Android面试障碍 [Android基础]Android总结篇 - 陶程的博客 - 博客频道 - CSDN.NET AndroidStudyD

PHPWeb开发入门体验学习笔记

一.PHP应用程序开发须知 1.入门要点 程序员三个阶段:码农(速成技能)->工程师(长期知识)->专家(研究论文) 编程三要素:声明变量(系统.全局.字段等).数据算法(应用.比较.计算等) .控制结构(变更.判断.循环等) 类三要素:封装.继承.多态 PHPweb应用程序开发分两端:前台Html+Css+JavaScript静态页面或UI美工平面设计,后台PHP+MySQL动态网页设计或交互式数据处理 php知识要点:函数.数组.面向对象 php运行开发环境:lwamp集成运行环境Linu