欢迎使用 PDF.NET 数据开发框架【转载】

转载地址:http://www.cnblogs.com/bluedoctor/

关于框架的名字由来

         在我设计www.pwmis.cn 站点(原域名已经过期,现在使用新域名www.pwmis.com )的时候,考虑到架构的兼容性和将来升级的可能性,最重要的是没有足够的时间去为网站添加和维护很多复杂的程序,所以在借鉴前人成功经验的基础上,设计了一套全新的快速数据处理框架 PWMIS Data Develop Framework,简称PDF。本套框架的思想是借鉴Java平台的Hibernate 和 iBatis 而来,兼有ORM和SQL-MAP的特性,同时还参考了后来.NET的LINQ(本框架成型于2006年,当时还未听说过LINQ)使用风格,设计了OQL查询表达式。本框架的设计思想是通用的,完全可以移植到Java 平台,现在只提供了.NET平台的实现,暂且将本框架命令为

PDF.NET

(Ver 3.0 下载,最新版下载请和本人联系。 )

相关文章:

 PDF.NET之体系结构

  PDF.NET之实体查询

PDF.NET之使用存储过程

PDF.NET之SQL-MAP使用图解
 

框架支持的功能

  • UI层(WinForm/Web)控件数据绑定、映射与查询;
  • BLL层实体对象查询(OQL)
  • DAL层SQL语句和.NET数据访问代码映射(查看 SQL-MAP 原理)

 

系统结构图

 

SQL-MAP结构图

详细说来,框架还包含以下特色功能:

  • 类似LINQ的支持ORM实体类查询的OQL表达式(有了LINQ为啥还要搞一个OQL?本框架OQL的基本设计在LINQ或者说本人知道 LINQ之前,另外,.NET3.5框架才正式支持LINQ,而我们公司的一个产品却因为采用了3.5框架安装部署不方便成为市场和客服常常抱怨的理由。未来还有这样的理由,我们迫切需要一个类似LINQ的东西运行在某些客户过时的机器上。
  • 无需任何后台代码即可分页的增强数据分页控件。
  • 只需要一行代码实现页面数据的增,删,改,查。
  • 基于SQL词法分析的支持多种数据库的高效分页类,你只需要设置SQL语句和分页属性它便能够为你生成特定数据库平台的当前页数据的SQL语句。
  • 整个框架没有使用反射 来实现ORM和界面数据绑定,可以保证数据操作的高效率。
  • 一套实用工具,可以生成实体类和根据SQL配置文件自动生成代码的代码生成器以及SQL配置文件管理程序。
  • 更多的功能等待你去发现:)

与其它数据处理框架的关系

        本框架是总结多种数据处理框架的优点,去除其复杂性后的轻量级的数据处理框,所以可能没有你熟知的下列重量级框架强大的功能。本框架的设计目标是 轻量,快速,通用,易学 !

  • Hibernate:借鉴了它的ORM原理和HQL语言,使用了类似的简单的ORM功能;
  • iBatis:借鉴了其SQL-MAP功能,对其复杂性进行了大力精简;
  • LINQ/Entity Framework:提供类似LINQ的OQL语法

框架功能演示

  • 表单数据绑定,分页显示--(请看测试版解决方案中的 演示  ,此处勿点)
  • 数据映射,查询--(请看测试版解决方案中的  演示 ,此处勿点)
  • SQL-MAP演示(请查看DAL层代码)--(请看测试版解决方案中的 演示 ,此处勿点)
  •  OQL查询(演示请看TestSqlMapEntity 项目)
  • 支持工具,提供代码生成器和SQLMAP配置文件管理程序--(请看解决方案Tools目录)

框架的适用条件

  • 首先,你很喜欢平民化的技术,不是那种非MS等大厂提供的框架不用的技术狂热人士;
  • 然后,如果老板把你逼急了,建议你使用本框架,当然之前你得先熟悉它,本人就是在这种情况下不顾项目经理的反对私自使用这套框架的,算是本框架的第一次商业项目的使用。(我一人完成了项目3/4的代码开发,另外两个人只写了1/4,项目经理最后才没话说)

框架使用的限制条件

许可限制

       首先,请尊重本框架的版权,本人可以有条件的开放本框架的部分或者全部源码,如果你获取了源码你可以自由对其修改但不可以修改本框架的名称和版权归属,你不可以将原始源码或者修改后的源码分发给任何第三方,如果你修改后,请向本人发送一份。如果你未从官方获得本框架的源码 ,未经许可,不得使用任何工具对本框架反向工程查看和修改源码。任何组织和个人都可以将本框架使用于任何商业项目,可以免费使用本框架官方发布的最终DLL库和相关工具,但你有义务向本人告知你使用本框架的基本信息,比如公司名称,项目名称,项目技术信息等。本人不对你使用本框架造成的任何损失承担任何责任。如果你不同意上述条款,请勿使用本框架!

技术限制

       当前版本基于.NET2.0以上平台,不支持实体对象对应的数据库表外键关系,OQL表达式不支持多实体类查询,不支持SQL的统计求和分组等,如有这些复杂查询需求,请使用SQL-MAP技术。SQL-MAP 配置文件不支持多个配置文件,但你可以将配置文件以嵌入式文件分散到多个DAL项目中。数据访问已经内置了SqlServer,OleDb,ODBC,Oracle,SQLite等,如果你想提供其它数据库类型的访问,可以使用OleDb或者ODBC方式,或者继承本框架的数据访问类开发专用数据访问提供程序。

框架源码的获取

       方式一:

你可以免费向本人索取本框架的测试解决方案 ,如果你喜欢并想获取本框架的全部源码,请在我的淘宝网店“智慧.NET ”处购买 (请单击链接),在网店购买加送1月服务支持;如果你没有淘宝账号,也可以在线向本人的支付宝账户 dth1977@sohu.com 汇入10元人民币或者10美元(抱歉,本人得请翻译),并留下你的Email地址或者联系电话,框架所有最新源码将在24小时内以邮件附件方式发送给你,如未收到请加本人QQ联系。

      方式二:

如果你愿意在国内外知名技术社区(如博客园,CSDN等)发表PDF.NET框架的使用心得和介绍,累计发帖数量超过10篇而且字数超过500字,即可向我申请索要源码。

       从官方渠道获取源码的用户以下简称注册用户,注册用户可以免费享受5个月的升级和在线咨询服务。 非注册用户 本人不对其提供任何形式的免费咨询服务,你可以查阅相关帮助和设计文档,浏览官方网站或者相关论坛,博客。如果需要提供咨询,请联系本人根据你的问题或者需求提供收费服务。

       本框架的收费服务并非赢利性质 ,旨在获得你对本人劳动成果的肯定,框架的进一步发展和创新需要你的支持,同时也是你支援地震灾区人民的崇高行动(参见下文“爱心行动”)!

       本人也欢迎你从非官方渠道获取本框架程序(不包括源码 ),只要你遵循许可限制。如果你不想为本框架付费获取源码,也非常欢迎你向第三方传播本框架或教授本框架的使用,这也是你富有“爱心”的表现!

爱心行动

       本人属四川德阳人士,2008年中国四川汶川大地震德阳也是重灾区,尽管灾害已经过去一年多,但灾区重建仍然是一个漫长过程。因此本人决定采取软件义卖方式,本人承诺,将本框架所获收入的50%捐献给灾区人民,请所有有爱心的人士鼎力支持!

框架应用的项目案例

  • 2007。河南某市测绘流程管理系统,PDF.NET Ver1.0,工作流和信息管理部分;
  • 2008。北京某房产备案管理系统,PDF.NET Ver1.0,工作流部分;
  • 2009。北京某金融咨询公司银行数据应用项目,PDF.NET Ver2.0,作为系统核心框架部分;
  • 2010。北京某金融咨询公司短信发送平台项目,PDF.NET Ver3.0,作为系统核心框架部分。

    。。。更多成功案例等待你的实现:)

    新版本信息

    Ver 4.0 更新:
  • 全面改写了实体类处理程序,效率提升10倍;
  • 改进实体类生成器,支持从 SQLSERVER 表字段说明生成实体类属性说明;
  • 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功能
    •提供控件数据绑定功能
    •提供高效分页控件
    •提供控件数据验证功能

    更多信息

    本框架官方网站 http://www.pwmis.com/sqlmap (新申请域名,原网址:http://www.pwmis.cn/sqlmap

    本人联系方式 QQ:45383850 (深蓝医生)或者 MSN:bluedoctors@msn.com (抗震救灾)

    相关文档和更多信息请查看官方网站。

    PWMIS Data developer Framework.
    摘要: MS的PetShop示例应用程序的“多层架构”被很多.NET开发人员奉为经典的架构。PDF.NET数据开发框架通过自己的ORM(EntityQuery+OQL)结合SQL-MAP的方式,使得喜欢OO的人和喜欢SQL的人都能找到自己需要的,便利性和灵活性都能兼得。阅读全文
    posted @ 2011-04-01 11:07 深蓝医生 阅读(1075) | 评论 (14) 编辑

    摘要: 很多ORM框架都只能处理单个实体的查询,但如果要连表查询就比较困难了,主要问题是连表查询的结果无法投射到一个实体类中,这时候只有动态创建一个类来处理。使用PDF.NET框架的OQL+SQLMAP,可以在不放弃实体类的便利情况下,进行复杂的多表查询。阅读全文
    posted @ 2011-02-25 19:08 深蓝医生 阅读(128) | 评论 (0) 编辑

    摘要: PDF.NET数据开发框架(Pwmis Data develop Framework,http://www.pwmis.com/sqlmap) 是一套借鉴iBatis、Hibernate、Linq等数据访问框架而来的轻量级数据开发框架,主要特点是具有iBatis特点的SQL-MAP功能和框架独特的实体对象查询语言--OQL,下面我们使用OQL来构造一个复杂的实体查询。阅读全文
    posted @ 2011-02-24 11:42 深蓝医生 阅读(151) | 评论 (0) 编辑

    摘要: 使用面向对象的方法(OO)也可以很方便的处理“纯数据问题”,数据只是对象的一部分,我们将数据放到对象中去处理,使得我们对新问题的处理变得很容易,这就是OO的美妙之处!阅读全文
    posted @ 2010-12-08 19:47 深蓝医生 阅读(213) | 评论 (0) 编辑

    摘要: OQL”语言“ 是PDF.NET数据开发框架的实体对象查询语言,一直以来,ORM的复杂查询条件都是困扰ORM的问题,所以很多时候不得不舍弃ORM,直接手工拼接SQL。我们来看看OQL是怎么解决这些问题的阅读全文
    posted @ 2010-11-28 09:49 深蓝医生 阅读(242) | 评论 (0) 编辑

    摘要: 最近有几个同事和朋友询问如何在SQLMAP中“拼接字符串”,因为有时候条件的数量不固定,条件参数类型也不固定,无法写出 @参数名 这样的SQL语句,也就是大家常说的“动态SQL”问题。阅读全文
    posted @ 2010-11-01 11:32 深蓝医生 阅读(115) | 评论 (0) 编辑

    摘要: SQL-MAP的目标就是: 集中管理SQL语句,所有SQL语句放在专门的配置文件中进行管理; 通过替换SQL配置文件,达到平滑切换数据库到另外一个数据库,比如从Oracle的应用移植到SQLSERVER; 由DBA来写程序,对于复杂的查询,DBA写的SQL语句和存储过程更有保障更有效率,SQL-MAP工具让DBA也能够写.NET程序; 代码自动生成,由于在SQL配置文件中指定了很多编程特性,所以可以使用专用工具将配置文件映射到.NET代码;阅读全文
    posted @ 2010-07-03 23:31 深蓝医生 阅读(575) | 评论 (2) 编辑

    摘要: 面对一堆堆的复杂SQL语句,你需要把它写成.NET程序,是不是有点厌烦了?我们的DAL代码和具体的数据库,SQL语句紧密耦合,有没有办法分离开? 如果你有一个想法,这些复杂的SQL统统都交给DBA去做,让我们程序员只是关注于业务逻辑的实现,那该多好啊! 这就是PDF.NET数据开发框架之SQL-MAP帮你做的: 阅读全文
    posted @ 2010-06-24 00:57 深蓝医生 阅读(96) | 评论 (1) 编辑

    摘要: 本框架是总结多种数据处理框架的优点,去除其复杂性后的轻量级的数据处理框,所以可能没有你熟知的下列重量级框架强大的功能。本框架的设计目标是 轻量,快速,通用,易学 ! Hibernate:借鉴了它的ORM原理和HQL语言,使用了类似的简单的ORM功能; iBatis:借鉴了其SQL-MAP功能,对其复杂性进行了大力精简; LINQ/Entity Framework:提供类似LINQ的OQL语法阅读全文
    posted @ 2010-02-08 13:02 深蓝医生 阅读(528) | 评论 (0) 编辑

    摘要: 看过很多ORM的实体类方案,大多是用反射来读数据库数据,这样当频繁操作实体类的时候效率很低,我借鉴了一位朋友的思路,采用.NET 2.0的泛型技术,为实体类提供一个通用的查询和持久化方案。 阅读全文

    WCF邮件通信系统

    WCF邮件通信系统
    摘要: 我们由普通的数据,变成了普通消息对象,再到邮件消息对象,完成了我们的“华丽变身”,我们的数据不再是单纯的数据了,它变成了对象,能够适应各种变化的对象。也许这个过程没有那么直接,甚至效率会有一点点影响,但它能够应对各种可能的变化,能够让我们以统一的对象思维模式来考虑问题,阅读全文
    posted @ 2011-02-23 13:48 深蓝医生 阅读(128) | 评论 (2) 编辑

    摘要: 对于数据同步的应用该采用那种模式?如果每个任务要同步多个表的数据,而且某个表的数据可能很大,“批量少次”的处理方式有可能增加处理的复杂度和消耗更多的资源阅读全文
    posted @ 2011-02-16 17:48 深蓝医生 阅读(80) | 评论 (0) 编辑

    摘要: 我们提倡“以客户为中心”,“主动为客户服务”的精神,为了扩大我们的市场,我们不能在家里面舒服的当老板,我们需要随时了解客户那里发生了什么,客户需要什么,所以我们需要为客户”上门服务“。阅读全文
    posted @ 2010-12-31 16:46 深蓝医生 阅读(76) | 评论 (0) 编辑

    摘要: 前期曾经有同事问到:同步一个数据库要发多少个数据包? 也有人问到:一天的数据,可不可以只发一个数据包? 类似的问题比较多,大家一想到数据就想到数据文件,数据包,这是最普遍的做法 ,也就成了习惯的想法,往往一旦思维模式固定之后,对于新的东西就有一点难以接受了。阅读全文
    posted @ 2010-12-31 16:43 深蓝医生 阅读(130) | 评论 (1) 编辑
    原文地址:https://www.cnblogs.com/Leo_wl/p/2002851.html