08 2011 档案

摘要:LLBL Gen作为一个优秀的ORM代码生成工具,可以基于模板快速生成应用程序代码。可能你也会推荐T4,Code Smith等模板生成器,但是先别急,先看看这篇文章作为入门教程,再来比较各自的优势和不足。 以第三方的模板Provide common SQL Functions for Microsoft SQL Server为例子,来讲解模板生成的步骤。 设计模板 打开Template St... 阅读全文
posted @ 2011-08-31 09:11 信息化建设 阅读(6395) 评论(2) 推荐(2)
摘要:经过多年的积累发展,公司有一套完善的文档管理系统。一开始是用PHP设计的,.NET出来以后,逐步转用.NET重写。经过多年(N>10)的维护和发展,如今客户数量也不少,功能也完善。最近有一些任务是修改这个系统,隐藏一些控件,修改一些布局,一开始以为很容易,但随着任务的进行中,发现一个小功能的修改,也相当的麻烦。 比如,要修改一个控件,根据读取的参数的不同,把它设为隐藏或显示。 举例说明... 阅读全文
posted @ 2011-08-30 09:09 信息化建设 阅读(5494) 评论(23) 推荐(3)
摘要:先看应用程序如何应用验证。以SalesOrderHeaderEntity为例子。 常见的三种验证: 1)保存之前的验证,重写ValidateEntityBeforeSave 2) 删除前的验证,重写ValidateEntityBeforeDelete 3) 属性获取值之后的验证,重写ValidateFieldValue 先讲解一个基本的模式,基类中的设... 阅读全文
posted @ 2011-08-29 09:38 信息化建设 阅读(1540) 评论(0) 推荐(0)
摘要:以LLBL Gen作为ORM的首选开发工具,在经历几个项目之后,对它的认识又有了新的高度。一方面要对Query API熟练于心,这样写查询语句才会得心应手,另一方面,也在尝试从ORM的实现,源代码分析,扩展方面来了解这个ORM工具,以便在项目出现救急的问题时可以得心应手,临危不乱。 这篇文章介绍LLBL Gen SDK中的内容,关于如何开发LLBL Gen插件的内容。这个Entity... 阅读全文
posted @ 2011-08-26 11:30 信息化建设 阅读(1807) 评论(1) 推荐(0)
摘要:经过数个ERP/MIS项目的开发,列举常见的问题与错误,共勉励。 1 界面代码与逻辑代码混淆 在项目的开始,一般都可以做到界面与逻辑的分离,界面只做数据绑定,业务逻辑则实现客户要求的计算。 WinForms中的BindingSource和Web中的ObjectDataSource,可以实现对object绑定到界面控件属性的功能。 这会带来极大的方便,降低程序的维护代价,做到低耦合。举例说明... 阅读全文
posted @ 2011-08-26 09:05 信息化建设 阅读(4336) 评论(14) 推荐(7)
摘要:AdventureWorks的存储过程uspGetEmployeeManagers,调用方法如下 DECLARE @return_value int EXEC @return_value = [dbo].[uspGetEmployeeManagers] @EmployeeID = 1 执行的结果所示 在测试工程中,创建如下的测试脚本 [... 阅读全文
posted @ 2011-08-25 14:03 信息化建设 阅读(1683) 评论(0) 推荐(0)
摘要:TypeConverter 类,MSDN中的解释是提供一种将值的类型转换为其他类型以及访问标准值和子属性的统一方法。 先看一下例子,能够将字符串翻译成点结构的类型转换器 public class PointConverter : TypeConverter { public override bool CanConvertFrom(ITypeDescriptorC... 阅读全文
posted @ 2011-08-24 09:20 信息化建设 阅读(1855) 评论(1) 推荐(2)
摘要:这一节追踪LLBL Gen是如何把实体映射到为数据库操作的SQL语句的。 先来看读取数据库的程序片段 [TestMethod] public void TestFetchSalesOrderHeader() { DataAccessAdapter adapter = new DataAccessAdapter(ConnectionString); ... 阅读全文
posted @ 2011-08-23 14:03 信息化建设 阅读(13733) 评论(1) 推荐(0)
摘要:前一篇文章中提到,LLBL Gen对单个表的查询,这里再来分析一下LLBL Gen对多表的操作。 Adapter模式,用到的变量adapter定义为DataAccessAdapter adapter=new DataAccessAdapter (); 主从表的查询,保存和删除 SalesOrder是采购单主表,它下面有明细表SalesOrderDetail,用于记录采购单的物料信息... 阅读全文
posted @ 2011-08-23 09:26 信息化建设 阅读(2041) 评论(1) 推荐(0)
摘要:ORM设计工具:Mindscape NHibernate Designer,请安装Mindscape.NHibernateModelDesigner.vsix文件。 它是一个Visual Studio 2010的插件,运行时效果所示 支持Model frist和Database first两种开发模式,如下图所示 Update Model from Database,从数据库... 阅读全文
posted @ 2011-08-22 18:00 信息化建设 阅读(2895) 评论(2) 推荐(0)
摘要:NHibernateORM工具使用LLBL Gen 3.1,它内置了NHibernate设计器。从生成的代码来看,它借助于FluentNHibernate这个框架提供的功能,把数据库字段与实体属性的映射移到.NET代码中,映射由ORM设计器来维护。 先看数据库的内容,Agent表定义如下 执行查询命令的结果如下,这一句是为了验证之后写的ORM语句的正确性。 启... 阅读全文
posted @ 2011-08-22 14:31 信息化建设 阅读(1879) 评论(3) 推荐(0)
摘要:工作几年后的积累,经历大大小小的数个项目开发,积累了以下几种软件开发的模式和方法。 全部以Northwind数据库为例子,来比较几个开发方式的主要区别和着重点,更详细的内容请参看博客文章。 这里的开发模式,仅仅以代码的书写方式来比较。比如使用LLBL Gen框架,则大部分的时间在开发业务逻辑; 基于ASP.NET应用代码生成器的方式,适合于项目初期,一点点的加表,加字段,与数据... 阅读全文
posted @ 2011-08-22 09:22 信息化建设 阅读(3436) 评论(8) 推荐(5)
摘要:做基于LLBL Gen的项目经常会用到的内容,忘记的时候用来查询,分享出来。 1 如何读取指定的表的内容到集合中 DataAccessAdapter adapter = new DataAccessAdapter(); EntityCollection allCustomers = new EntityCollection(new CustomerEntityFactory()); adapter... 阅读全文
posted @ 2011-08-19 09:09 信息化建设 阅读(2161) 评论(4) 推荐(0)
摘要:工作多年,接触到大大小小的数个项目,经验多起来,但阻碍进步的因素也多。因为在代码中看到这个功能是如何实现的,下次自己做,也会用到类似的办法,这样减少了思考的时间,进步也会越来越慢。 说一说软件公司为什么要加密程序的源代码。我们都知道.NET平台的目标是将多种语言,编译为同一种格式,不同的编译器将C#/VB.NET之类的符合CLS规范的.NET语言源代码,编译成IL格式,在运行时IL格式的程序时,由... 阅读全文
posted @ 2011-08-18 09:14 信息化建设 阅读(38614) 评论(43) 推荐(17)
摘要:一直从事ERP/MIS的开发工作,今天来展现一下菜单设计器的设计,及其用途,并对B/S部分代码开源。 先用EXCEL来展现,需要表达的菜单结构 如图所示,一级菜单是销售,采购,仓库,其下的子菜单是,日记帐,报表,查询,设置,批次过帐。 第三级别的子菜单,以仓库为例 仓库日记帐的明细功能包括进仓,出仓,仓库调整, 仓库查询的明细功能包括,库存结余,物料存货明细,仓库未完订单. 下面来使用菜单设计器,... 阅读全文
posted @ 2011-08-17 09:06 信息化建设 阅读(4922) 评论(5) 推荐(5)
摘要:一直从事ERP/MIS开发,总结一下,自己在ERP/MIS开发中,经常用到的应用多线程的两种模式。 先举一个例子,以帮忙回忆起对多线程的印象。CopyFilesProc是实现拷贝文件的一个方法,用多线程调用: Thread simpleThread = new Thread(CopyFilesProc); simpleThread.Name = "CopyFiles"; simpleThr... 阅读全文
posted @ 2011-08-16 09:16 信息化建设 阅读(3102) 评论(6) 推荐(3)
摘要:今天要演示的,是开发ERP/MIS中的员工主档(Employee Master)的功能,添加员工信息的CRUD功能,说白了就是添加,修改,删除这么个功能。这是个通用化的方案,稍微改一下表和实体的名字,就可以是添加采购单,添加销售单的功能,MIS开发简单,容易模仿,开发其他模块时可参照这个功能的流程和步骤。 1 数据库中添加数据表 GBEMPL 员工信息 GBEMDM 员工文档 其中GBEMPL ... 阅读全文
posted @ 2011-08-11 09:13 信息化建设 阅读(3530) 评论(8) 推荐(2)
摘要:做ERP/MIS的程序,界面常常是做成WinForms和ASP.NET,界面繁杂,内容多。 我常常认为,MIS类型的程序,界面是最复杂的,不可理解的,如下图所示,物料主档的界面 这是我见过的,相当复杂的一个界面,你需要学习大量的知识,才能灵活的操作这个功能。 比如,Userd as Product,成品,Userd as Material 物料,这2个同时打勾选中,就是半成品,如果这2个都不选,在... 阅读全文
posted @ 2011-08-10 09:36 信息化建设 阅读(3103) 评论(9) 推荐(1)
摘要:参加工作已经有五年了。由于是非计算机科系,一开始的工作是做网页,维护ASP脚本程序,有时候也要做图片,总而言之,一项任务交到手里,没有借口说不会做,想办法弥补然后把任务做完。后来才得到机会,参与编程开发工作。而且,当时一心想用C#.NET做开发,不希望参与DELPHI的开发,偏偏工作经过层层的转发,交到手里的就是DELPHI开发。经历努力,再后来就真的用.NET进行开发工作,一直持续到现在。消极的... 阅读全文
posted @ 2011-08-09 09:24 信息化建设 阅读(27129) 评论(63) 推荐(31)
摘要:到LLBL Gen的网站下载区域,在Additional Download中找到模板v2xMigrationTemplates_date.zip,下载到本地,并把它解压到LLBL Gen 2.x的安装目录中。 运行LLBL Gen 2.x, 加载需要转换的lgp项目文件,F7调出生成工具 如图,选择template group为LLBLGen Pro v3 点击Generate,就可以在指定目录生成新版本的项目文件. 阅读全文
posted @ 2011-08-08 13:52 信息化建设 阅读(677) 评论(0) 推荐(0)
摘要:做ERP/MIS之类的软件,通常会开发一些辅助工具来加速开发,比如代码生成器,数据字典生成工具。随着时间的积累,这类小工具会越来越多,虽然开发的速度会快,方便,但是也会因为找不到,不好查找这些小工具,产生麻烦。原因很简单,已经发了很多精力去做成了工具,自然就不会考虑用很原始的方式来完成任务。 举例说明 对于插件式的开发,我们通常会先做好界面功能,然后把这个功能添加到系统的功能列表中,以启用功能,为... 阅读全文
posted @ 2011-08-08 10:02 信息化建设 阅读(6746) 评论(16) 推荐(2)