PDF.NET 数据开发框架

2019-11-26 15:01 来源:未知

前生龙活虎段时间,小编写了篇《32450新蒲京网站,情随事迁:当泛型方法遇上抽象类----笔者的“内部存款和储蓄器数据库”诞生记 》,记录了PDF.NET内部存款和储蓄器数据库的两全进程,近日做了些小退换,已经投入生产应用了,这两天运作出色。明天再一次看了看源码,感到有不可缺少画一个内部存款和储蓄器数据库的架构图,因为全数程序的核心代码加上详细的公文注释,才391行代码,时间长了或然无能为力精晓全数程序的安顿性思路。

应接使用 PDF.NET 数据开拓框架
(Ver 4.0)

 

关于框架的名字由来

         在自己设计www.pwmis.cn 站点(原域名曾经过期,现在正绸缪选用新域名 )的时候,思索到架构的宽容性和今天晋升的恐怕性,最要紧的是未曾丰富的时光去为网址增加和保障广大犬牙交错的主次,所以在借鉴前人成功涉世的根底上,设计了 大器晚成套全新的全速数据管理框架 PWMIS Data development Framework,简单的称呼PDF。本套框架的商量是借鉴Java平台的Hibernate 和 iBatis 而来,兼有ORM和SQL-MAP的特征,同一时候还参照了后来.NET的LINQ(本框架成型于二〇〇七年,那个时候尚未听别人说过LINQ卡塔尔国使用风格,设计了 OQL查询表明式。本框架的宏图思想是通用的,完全能够移植到Java 平台,今后只提供了.NET平台的兑现,临时将本框架命令为

PDF.NET

(下载 )

先直接上海体育场合,再作证架构的布置性难题:

框架扶植的作用

  • UI层(WinForm/Web卡塔 尔(阿拉伯语:قطر‎控件数据绑定、映射与查询;
  • BLL层实体对象查询(OQL卡塔 尔(英语:State of Qatar)
  • DAL层SQL语句和.NET数据访谈代码映射(查看 SQL-MAP 原理)

详见说来,框架还带有以下特征作用:

  • 恍如LINQ的支持ORM实体类查询的OQL表达式(有了LINQ为什么还要搞二个OQL?本框架 OQL的着力陈设在LINQ也许说自身知道 LINQ以前,其余,.NET3.5框架才正式帮助LINQ,而我们公司的三个成品却因为运用了3.5框架安装配置不方便人民群众成为商场和客性格很顽强在艰难险阻或巨大压力面前不屈平常啧有烦言的理由。 未来还好似此的说辞,大家紧迫须求三个近乎LINQ的事物运转在好几客户过时的机械上。 卡塔尔国
  • 不必此外后台代码就能够分页的滋长数据分页控件。
  • 只须要风度翩翩行代码达成页面数据的增,删,改,查。
  • 基于SQL词法解析的支撑各种数据库的短平快分页类,你只需要安装SQL语句和分页属性它便可以预知为你转移特定数据库平台的当前页数据的SQL语句。
  • 生龙活虎套实用工具,能够生成实体类和依附SQL配置文件自动生成代码的代码生成器以致SQL配置文件管理程序。
  • 越来越多的法力等待你去开采:卡塔 尔(阿拉伯语:قطر‎

32450新蒲京网站 1

与别的数据管理框架的涉嫌

        本框架是计算各种数目管理框架的长处,去除其复杂后的轻量级的多寡管理框,所以或然未有你熟谙的下列重量级框架强盛的功能。本框架的准备指标是 轻量,火速,通用,易学 !

  • Hibernate:借鉴了它的ORM原理和HQL语言,使用了相似的轻易的ORM功能;
  • iBatis:借鉴了其SQL-MAP成效,对其复杂进行了大力精练;
  • LINQ/Entity Framework:提供形似LINQ的OQL语法

(PDF.NET内存数据库架构图卡塔 尔(阿拉伯语:قطر‎

框架成效演示

  • 表单数据绑定,分页展现--
  • 多少映射,查询--
  • SQL-MAP演示(请查看DAL层代码)--
  •  OQL查询(演示请看TestSqlMapEntity 项目卡塔 尔(阿拉伯语:قطر‎
  • 支撑工具,提供代码生成器和SQLMAP配置文件管理程序--(请看施工方案Tools目录)

 

框架的适用条件

  • 率先你是懒人或然生手,大腕请绕道;
  • 说不上,你很赏识平民化的技巧,不是这种非MS等大厂提供的框架不用的工夫狂喜人员;
  • 最后,纵然业主把你逼急了,建议您利用本框架,当然此前你得先纯熟它,自身正是在这里种情景下不管一二项目老董的不予私行动用那套框架的,算是本框架的首先次商业项指标选取。(小编一个人形成了项目3/4的代码开垦,其余五人只写了半数,项目老总最后才没话说卡塔 尔(阿拉伯语:قطر‎

架构表明

框架使用的节制标准

 1,核心类 MemDB

特许范围

       首先,请尊重本框架的版权,本身能够有标准的绽放本框架的有个别依然整体源码,要是你拿到了源码你能够随意对其校勘但不可能改革本框架的称号和版权归于,你 不可能将原始源码或许涂改后的源码分发给别的第三方,若是您改改后,请向自家发送风姿洒脱份。假令你未从官方拿到本框架的源码 ,未经许可,不得使用其余工具对本框架反向工程查看和改善源码。任何团体和个体都得以将本框架使用于任何商业项目,可以无偿应用本框架官方发表的结尾 DLL库和血脉相符工具,但您有职责向自个儿告知您利用本框架的中坚音讯,举例公司名称,项目名称,项目技能新闻等。自个儿不对你利用本框架形成的任何损失担负当何义务。倘令你不允许上述条约,请勿使用本框架!

技术限定

       当前版本基于.NET2.0上述平台,不帮忙实业对象对应的数据库表外键关系,OQL表明式不扶持多实体类查询,不支持SQL的计算求和分组等,如有那个复杂查询需求,请使用SQL-MAP技艺。SQL-MAP 配置文件不支持七个布局文件,但你可以将配置文件以嵌入式文件分散到三个DAL项目中。数据访谈已经放手了 SqlServer,奥莱Db,ODBC,Oracle,SQLite等,借使您想提供任何数据库类型的走访,能够利用奥莱Db只怕ODBC格局,恐怕世袭本框架的数据访谈类支出专项使用数据访问提供程序。

  • 三个囤积全数实体类会集的汇集,即Memory Data,应用程序要取多少,通过Get<T>方法获得(T为实体类类型卡塔 尔(英语:State of Qatar);
  • 当获取数据的时候,如察觉Memory Data里面未有,就调用Load<T>方法,从PMDb实体类文件加载数据;
  • 当有新实体数据需求保留的时候,调用Add<T>方法;
  • 当数码更新之后,假使想保留,就显式的调用一下Save<T>方法,注意,该办法并不直接保存数据,它只保留这一个“保存数据的措施”,参见“移花接木”一文的证实;
  • 后台维护叁个数据写入线程,检查是还是不是有“保存数据的章程”要求执行;
  • 数码操作的日志记录。

框架源码的获取

       你可以免费向自身索取本框架的测验施工方案 ,假若您赏识并想获得本框架的全体源码,请在线向自家发邮件联系: dth1980@sohu.com 

       自身也迎接你从违规门路获取本框架程序(不满含源码 ),只要您依据许可范围。

 

爱心行动

       本身属辽宁钱塘人物,二〇〇八年华夏山西汶四川大学地震鞍山也是重灾害地区,就算灾荒已经香消玉殒一年多,但灾害地区重新建设构造依旧是一个持久进程。由此笔者决定利用软件义卖形式,自个儿承诺,将本框架所获受益的50%捐出给灾害地区人民,请所有有爱心的人选鼎力帮助!

2,核心类 MemDBEngin

框架应用的种类案例

2005。新疆某市测量绘制流程管理连串,PDF.NET Ver1.0,工作流和新闻保管一些;

二〇〇九。香岛某房产备案管理连串,PDF.NET Ver1.0,专门的学业流部分;

二零零六。东京(Tokyo卡塔 尔(阿拉伯语:قطر‎某财政和经济咨询企银数量应用类型,PDF.NETVer2.0,作为系统大旨框架部分。

二零零六。XX银行XX市分行基金经营出卖种类,PDF.NETVer4.0,作为系统大旨框架部分。 

。。。越多成功案例等待你的落到实处:卡塔 尔(英语:State of Qatar)

该类实际上就是三个MemDB的工厂类,它会依靠分裂的数据库“路线”生成三个MemDB对象实例;

新版本音信

 

Ver 4.0 更新:

完备改写了实体类管理程序,功用进步10倍;

改革实体类生成器,支持从 SQLSE奇骏VE奥迪Q5 表字段表明变化实体类属性表达;

SqlMapDAL 扶助外界接口定义;

简化了扶持四个SqlMap文件的管理方式;

SQL-MAP帮忙复杂查询的分页;

SQL-MAP改进了对存储进程的支撑;

OQL扶植单行表明式语法(OQL.From(Entity).Select(....).Where(...).OrderBy(...).END卡塔 尔(阿拉伯语:قطر‎;

实体类扶助高功效分页;

优化了变通内部数据访谈对象的频率(不再依据于反射卡塔尔国;

优化了别样操作的效能。

 

Ver 3.0 更新:

•周密改写了SqlMap模块,真正扶助SQL-实体类 映射
•全面调解了框架的命名空间,合并了基本功程序集成为叁个 PWMIS.Core.dll
•修正了自2.0来讲的Bug
•修正了代码生成器

Ver 2.0 更新:
•使用.NET 2.0手艺改写原本持有的模块
•加强了Web控件验证功效
•周密改写原有实体类,提供实体类生成器
•周到改写了OQL功用
•援救.NET 2.0数据库连接配置

Ver 1.0 功能:
•提供SQL-MAP功能
•提供ORM功能,并提供OQL功能
•提供控件数据绑定成效
•提供高效分页控件
•提供控件数据印证效率

MemDB实例的生命周期由“系统缓存”管理,这里使用.NET 4.0的System.Runtime.Caching里面包车型地铁缓存管理对象。

越来越多消息

本框架官网 (新申请域名,借使不能够张开表明还在备案中,原网站:

自己联系格局

QQ:45383850 (粉红医务人士卡塔 尔(阿拉伯语:قطر‎也许

mailto:bluedoctors@msn.com (抗震救济劫难卡塔尔

PDF.NET 手艺开荒群:43109929

连锁文书档案和更加多新闻请查看官网。

由于应用了系统缓存,所以MemDB能够完毕“按需加载”,“闲置关闭”的功力。

MemDB实例中的Memory Data对应的便是“系统缓存”。

 

3,ICacheProvider 缓存提供程序接口

概念了生机勃勃套缓存使用的点子,能够钦定缓存攻略,如相对过期、相对过期等。

 

4,缓存提供程序

系统缓存的暗许完成了Memory CacheProvider ,也正是内部存款和储蓄器缓存提供程序;由于选用接口设计,所以理论上也得以增加为第三方的“布满式缓存”。

 

5,数据持久化

不论什么事内存数据库使用的多寡都以PDF.NET的实体类,这里运用PDF.NET框架的“连串化”和“反系列化”成效,将内部存储器数据写入磁盘上的pmdb文件,只怕从文件加载数据到内部存款和储蓄器中。

 

6,客商应用程序

这边是应用“内部存储器数据库”的数码的地点,能够接收多样主意来操作内部存款和储蓄器数据,举例直接运用Linq To Object来查询内部存款和储蓄器中的多寡,只怕应用PDF.NET的EntityQuery对象,完成内部存款和储蓄器数据库和“关周全据库系统”(DBMS卡塔尔的数据库间的双向同步。实际利用中,能够完全放弃DBMS,使用Linq To Object已经够用了。

 

 7,PDF.NET Entity Object

这是全部体系选用的实业数据了,它由相关的机件调用传递。由于PDF.NET实体类的特别规布置,使得它的体系化和反系列化效率极度高,此外不利用反射,品质也很好,並且,最根本的,它从不关周密据库那风流洒脱套“沉重”的数据库元数据标记,所以它比较轻快,适协作为内存数据库数据的特级载体。

 

 系统的伸缩才能

综观整个系统的安顿性,能够见见它有很好的增添技巧:

  • 特大型应用--能够很有利的恢宏帮助第三方分布式缓存,创设大型的种类利用;
  • 中小型应用--也得以将常用的DBMS数据放在内部存款和储蓄器数据库中,进步响应本领;
  • 轻微型应用--能够完全屏弃DBMS,使用纯内部存款和储蓄器数据库,以获得最大的响应速度。

 

至于PDF.NET开垦框架的详尽内容,请看官方网址

内部存款和储蓄器数据库如今曾经投入分娩应用,将要整合在PDF.NET框架的下二个版本中。

 

TAG标签:
版权声明:本文由32450新蒲京网站发布于葡萄游戏厅_体育游戏,转载请注明出处:PDF.NET 数据开发框架