Solutions Design 公司于2016年5月发布了LLBL Gen Pro 5.0,这个新版本的发布出乎于我的意料。我的猜想是从4.2升级到4.5,再升级5.x版本,主版本号的变更会给原有客户带来成本上的压力。299欧元的售价对于中小创业公司或大公司并不算便宜,在官网上查了一下最新的报价,如下表所示:

Number of licenses Price per license Standard Price per license Plus
1 to 2 € 299.- € 398.-
3 to 5 € 269.- € 368.-
6 to 10 € 259.- € 358.-
11 to 20 € 249.- € 348.-
more than 20 € 239.- € 338.-

新版本的LLBL Gen Pro在界面存在相当多的变化,引入了类似Visual Studio(VS look-like)的界面风格-扁平化,日常的一些操作界面也有变化。

1 创建新项目,选择LLBL Gen Pro Runtime Framework

从上图中看出,LLBL Gen Pro支持Entity Framework开发和NHibernate的开发。从维基百科中查询到,目前.NET领域中有以下17种流行的ORM框架。

序号

项目

官方地址

1

 Base One Foundation Component Library  www.boic.com

2

 Castle ActiveRecord  http://www.castleproject.org/projects/activerecord/

3

 DatabaseObjects  http://www.hisystems.com.au/databaseobjects

4

 DataObjects.NET  http://dataobjects.net/

5

 Dapper  github.com/StackExchange/dapper-dot-net

6

 ECO  http://www.capableobjects.com

7

Entity Framework

msdn.microsoft.com/en-us/data/ef.aspx

8

 EntitySpaces  http://www.entityspaces.net

9

 iBATIS  http://ibatis.apache.org

10

 LINQ to SQL  msdn.microsoft.com/en-us/data/ef.aspx

11

 Neo  http://neo.sourceforge.net/

12

 NHibernate  nhibernate.info

13

 nHydrate  http://www.nhydrate.org/

14

 Persistor.NET  http://www.persistor.net/ (已经失效)

15

 Quick Objects  http://www.quickobjects.com/ (已经失效)

16

 SubSonic  http://subsonicproject.com/

17

 XPO  https://www.devexpress.com/

地址 https://en.wikipedia.org/wiki/List_of_object-relational_mapping_software

其中大部分ORM框架都停止更新或不再维护,非常可惜。

2 选择关系数据库

在Catalog Explorer(数据库浏览器)中选择从数据库生成关系模型

LLBL Gen Pro 支持Model-First或Database-First两种开发模型,也可以考虑新创建模型,再通过上图中Generate Database Schema Create Script菜单项生成数据库脚本,以实现模型驱动开发。

我们选择SQL Server 数据库驱动,设置连接信息,并点击下一步按钮。

3 选择要映射的数据库表,视图,存储过程

经过这一步之后,表还没有映射到实体中,我们需要在此窗体关闭后,在Database Explorer中以选择表的方式创建实体对象,这样就完成了表与实体的映射设计。

到这里,我们就完成了数据库表与实体映射的设置工作。如下图所示,在Project Explorer(项目浏览器)中看到新增加的实体Bug,可通过右键选择实体编辑它的,比如设定Type Converter,字段的附加属性等操作。

 

4 生成Visual Studio 项目文件和源代码文件

点击工具栏中的按钮Generate Source Code或按F7,弹出代码生成选项窗体:

LLBL Gen Pro这里有一个很方便的功能改进,在这里我们可以定义一个或多个生成选项,并将它保存起来,下次生成项目文件时,只需要勾选相应的项目生成选项即可。

点击按钮Edit Selected Task Specifics,弹出生成窗体。点Advanced…按钮可选择项目生成模板。

之后再点击确定按钮,返回生成选项窗体,现在变成了绿色的勾,表示当前生成任务有效。

点击Perform Tasks…完成项目代码的生成。

5 启动Visual Studio 加载LLBL Gen Pro生成的两个项目,创建Windows Forms测试项目。

为了读取数据库BugTracker中的表Bugs的数据,请参考以下步骤完成:

1) 打开数据源窗体中,选择创建数据源,选择Object类型,并选择第4步生成的BugEntity实体

2) 拖放一个BindingSource控件到窗体中,设定此控件的数据源为上一步的数据源BugEntity

3) 拖一个DataGridView控件到界面中,选择数据源为上一步的数据源控件

在窗体启动事件中增加以下代码以读取数据库中的Bugs表数据。

const string connectionString = "data source=(local);initial catalog=BugTracker;integrated security=SSPI;persist security info=False;packet size=4096";

using (DataAccessAdapter adapter = new DataAccessAdapter(connectionString))
{
     IRelationPredicateBucket bucket=new RelationPredicateBucket();
     bucket.PredicateExpression.Add(BugFields.BgReportedDate > new DateTime(2013, 12, 31));
     ISortExpression sortExpression=new SortExpression(BugFields.BgReportedDate|SortOperator.Descending);
     IPrefetchPath2 prefetchPath=new PrefetchPath2(EntityType.BugEntity);
     EntityCollection collection = new EntityCollection(new BugEntityFactory());
     adapter.FetchEntityCollection(collection, bucket, 0, sortExpression, prefetchPath,null);

    bugBindingSource.DataSource = collection;
    gridBugs.DataSource = bugBindingSource;
}

这段代码的目的是读取Bug报告日期迟于2013年12月31日的Bug,按照报告日期倒序排列。我将它翻译成SQL供参考

SELECT * FROM Bugs
WHERE BgReportedDate>'2013/12/31'
ORDER BY BgReportedDate DESC

整个程序开发过程书写没超过10行代码,开发效率与微软的Entity Framework不相上下,是EF之外的又一重量级数据存取解决方案。官网上号称世界上有100多个国家,超过5500多个客户正在使用这一套ORM开发框架。

LLBL Gen Pro 5.0 企业应用开发入门的更多相关文章

  1. LLBL Gen Pro 5.0

    LLBL Gen Pro 5.0 企业应用开发入门 Solutions Design 公司于2016年5月发布了LLBL Gen Pro 5.0,这个新版本的发布出乎于我的意料.我的猜想是从4.2升级 ...

  2. 解析大型.NET ERP系统数据访问 对象关系映射框架LLBL Gen Pro

    LLBL Gen Pro是一个为.NET开发人员设计的的对象关系映射(ORM)框架,与NHibernate,Entity Framework等框架一样,通过实体与数据表的映射,实现关系数据库持久化. ...

  3. Enterprise Solution 3.1 企业应用开发框架 .NET ERP/CRM/MIS 开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms

    行业:基于数据库的制造行业管理软件,包含ERP.MRP.CRM.MIS.MES等企业管理软件 数据库平台:SQL Server 2005或以上 系统架构:C/S 开发技术 序号 领域 技术 1 数据库 ...

  4. 接触LLBL Gen Pro 对象关系映射框架后 前途变的一片光明

    时间回到2010年,那时候还是熟悉代码生成+基础框架这种模式,基本的开发思路是通过代码生成器生成实体,再生成接口与实现类,最后拖拉控件,写界面数据绑定代码.基本上就是动软代码生成器给出的模式,或是微软 ...

  5. LLBL Gen Pro 4.2 Lite 免费的对象关系映射开发框架与工具

    LLBL Gen Pro是一款优秀的对象关系映射开发框架,自2003年发布以来,一直有广泛的客户群.LLBL Gen Pro有几个标志性的版本,2.5/2.6是一个很稳定的版本,公司的一些旧的项目仍然 ...

  6. .Net EntityFramwork6.0 EF框架开发入门

    一.环境 开发环境:Sqlserver2008 R2.Visual Studio2012   二.准备工作 1.新建MVC空项目 2.通过NuGet获取 EntityFramework 包  操作截图 ...

  7. 企业应用开发模式 ERP项目中应用到的技术和工具

    一.基础技术选型 C# .NET 3.5/4.0  这两个版本的.NET已经相当方便(Linq, Lambda,Parallel),语法简洁,配合WCF和WF两项技术,可以满足快速开发,维护方便的目标 ...

  8. 直接修改.NET程序集 LLBL Gen 2.x-4.x 许可授权方法研究

    做数据库开发,如果要用ORM,LLBL Gen是一款优秀的框架和工具,目前最新版本是4.0.同时也推出了Lite免费版本,与Visual Studio的Express版本一样, 免费,但是它仅仅只支持 ...

  9. LLBL Gen + Entity Framework 程序设计入门

    Entity Framework推出有好几年,除了微软的Visual Studio可以做实体框架开发外,第三方的开发工具如LLBL Gen, Devart Entity Developer也可以用来做 ...

随机推荐

  1. 启动了VSAN服务的主机不在vCenter集群中

    背景: 这个问题的来源是,某用户将该ESXi主机直接夺取到另一个vCenterA的管辖中,而这个vCenterA中集群A开启了VSAN功能,导致再次反向夺取到vCenterB中的时候带有了来自于集群A ...

  2. 简谈百度坐标反转至WGS84的三种思路

    文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/ 1.背景 基于百度地图进行数据展示是目前项目中常见场景,但是因为百度地图 ...

  3. .NET Core RC2/RTM 明确了时间表

    .NET Core 经过了将近2年的开发,去年12月份发布的RC1版本,明确来说那只是一个beta版本,自从RC1发布以来,看到github里的RC2分支,整个工具链都发生了很大的变化,大家都在焦急的 ...

  4. Python高手之路【三】python基础之函数

    基本数据类型补充: set 是一个无序且不重复的元素集合 class set(object): """ set() -> new empty set object ...

  5. 深入理解CSS六种颜色模式

    前面的话 赏心悦目的颜色搭配让人感到舒服,修改元素颜色的功能让人趋之若鹜.但颜色规划不当,会让网站用户无所适从.颜色从<font color="">发展至今,保留了很多 ...

  6. unity 3d 解析 json

    官网案例传送门 我这里不过是借花献佛,案例官网就有. using UnityEngine; using System.Collections; public class json : MonoBeha ...

  7. isEmpty和isNull()区别

     isEmpty和isNull()区别一个NULL字符串一定是一个空串,一个空串未必是一个NULL字符串例如:QString().isNull():   //结果为trueQString().isEm ...

  8. Flexible 弹性盒子模型之CSS flex-shrink 属性

    实例 让第二个元素收缩到其他元素的三分之一: 效果预览 div:nth-of-type(2){flex-shrink:3;} 浏览器支持 表格中的数字表示支持该属性的第一个浏览器的版本号. 紧跟在 - ...

  9. Help Hanzo (素数筛+区间枚举)

    Help Hanzo 题意:求a~b间素数个数(1 ≤ a ≤ b < 231, b - a ≤ 100000).     (全题在文末) 题解: a~b枚举必定TLE,普通打表MLE,真是头疼 ...

  10. CYQ.Data V5 从入门到放弃ORM系列:教程 - AppConfig、AppDebug类的使用

    1:AppConfig类的介绍: Public Static (Shared) Properties IsEnumToInt 是否使用表字段枚举转Int方式(默认为false). 设置为true时,可 ...