惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The Hacker News
The Hacker News
MyScale Blog
MyScale Blog
Hugging Face - Blog
Hugging Face - Blog
WordPress大学
WordPress大学
GbyAI
GbyAI
罗磊的独立博客
M
MIT News - Artificial intelligence
J
Java Code Geeks
P
Proofpoint News Feed
月光博客
月光博客
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Google DeepMind News
Google DeepMind News
The Cloudflare Blog
T
The Blog of Author Tim Ferriss
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
雷峰网
雷峰网
V
V2EX
有赞技术团队
有赞技术团队
Microsoft Security Blog
Microsoft Security Blog
博客园 - Franky
IT之家
IT之家
博客园 - 三生石上(FineUI控件)
Webroot Blog
Webroot Blog
S
Secure Thoughts
Recent Announcements
Recent Announcements
T
Troy Hunt's Blog
Engineering at Meta
Engineering at Meta
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Hacker News: Ask HN
Hacker News: Ask HN
酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
Schneier on Security
Schneier on Security
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
H
Heimdal Security Blog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Cyberwarzone
Cyberwarzone
N
News and Events Feed by Topic
T
Threat Research - Cisco Blogs
Martin Fowler
Martin Fowler
Hacker News - Newest:
Hacker News - Newest: "LLM"
Microsoft Azure Blog
Microsoft Azure Blog
Help Net Security
Help Net Security
S
SegmentFault 最新的问题
A
Arctic Wolf
C
Cybersecurity and Infrastructure Security Agency CISA
V
Vulnerabilities – Threatpost
腾讯CDC
K
Kaspersky official blog
博客园_首页

博客园 - 信息化建设

SAP 开发环境搭建入门 老程序员转测试 配置测试环境设置共享文件 提高团队效率 Visual Studio 2017十五项新功能体验 管理软件公司与互联网公司的区别 ERP程序开发中遇到的六种错误 ERP软件的价格设计 设计C/S架构应用程序的并发功能 C/S架构应用程序开发培训笔记 Enterprise Solution 进销存管理软件 C/S架构,支持64位系统 物流,资金流,信息流全面集成 Enterprise Solution 企业资源计划管理软件 C/S架构,支持64位系统,企业全面应用集成,制造业信息化 Enterprise Solution 3.1 企业应用开发框架 .NET ERP/CRM/MIS 开发框架,C/S架构,SQL Server + ORM(LLBL Gen Pro) + Infragistics WinForms .NET 程序集单元测试工具 SmokeTest 应用指南 CRM/ERP 企业管理软件中常见的七种程序设计模式 解析大型.NET ERP系统 电子邮件系统帐户集成 财务模块功能中的凭证预览功能 工作流系统中的语法标记系统 通用附件管理功能改善 规范数据库表字段大小写 小写字段名全部更改为大写 Enterprise Solution 虚拟测试环境
LLBL Gen Pro 5.0 企业应用开发入门
信息化建设 · 2016-05-29 · via 博客园 - 信息化建设

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)的界面风格-扁平化,日常的一些操作界面也有变化。

image

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

image

从上图中看出,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(数据库浏览器)中选择从数据库生成关系模型

image

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

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

image

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

image

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

image

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

image

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

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

image

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

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

image

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

image

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

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

image

为了读取数据库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开发框架。