您的位置:首页 > 其它

LLBL Gen Pro 5.0

2016-05-30 22:38 369 查看

LLBL Gen Pro 5.0 企业应用开发入门

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

Number of licensesPrice per license StandardPrice 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框架。

序号项目官方地址
1Base One Foundation Component Librarywww.boic.com
2Castle ActiveRecordhttp://www.castleproject.org/projects/activerecord/
3DatabaseObjectshttp://www.hisystems.com.au/databaseobjects
4DataObjects.NEThttp://dataobjects.net/
5Dappergithub.com/StackExchange/dapper-dot-net
6ECOhttp://www.capableobjects.com
7Entity Frameworkmsdn.microsoft.com/en-us/data/ef.aspx
8EntitySpaceshttp://www.entityspaces.net
9iBATIShttp://ibatis.apache.org
10LINQ to SQLmsdn.microsoft.com/en-us/data/ef.aspx
11Neohttp://neo.sourceforge.net/
12NHibernatenhibernate.info
13nHydratehttp://www.nhydrate.org/
14Persistor.NEThttp://www.persistor.net/ (已经失效)
15Quick Objectshttp://www.quickobjects.com/ (已经失效)
16SubSonichttp://subsonicproject.com/
17XPOhttps://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开发框架。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: