登峰之道---简约而不简单
分享阳光,分享快乐
随笔 - 45,  文章 - 38,  评论 - 100

     最近在做WEB方面的开发,发现很多工作是重复的,这里的重复是"相似"而不是"相同",如果是相同,很显然我们会采用组件化模块化形式提高软件的可复用性.但是相似的工作,我们就不太好模块化设计.另外,计算机的强项就是做重复性的,有规律的工作,为什么不好好利用它而解放自我呢? 所以在Blog里准备做个专题,关注一下代码自动生成技术.

 下面罗列了现成的一些优秀的生成工具

ArcStyler ( Tier Generator for Full Web Application )

C# Data Tier Generator ( Code Munger for Database )

CodeSmith ( Tier Generator for Any code )

Codify ( Mixed-code Generator for Any code )

CompileX ( Tier Generator for Full Web Application )

Constructor() ( Tier Generator for Full Web Application )

Data Tier Modeler ( Tier Generator for Database )

DBHelper ( Code Munger for Database )

DBMethods ( Tier Generator for Database )

Deklarit ( Tier Generator for Database )

Doxygen ( Code Munger for Documentation )

Expert Coder ( Partial Class Generator for Any code )

GSL ( Tier Generator for Any code )

iQgen ( Tier Generator for Any code )

Iron Speed Designer ( Tier Generator for Full Web Application )

IronWorks ( Tier Generator for Full Web Application )

JuggerNET ( Tier Generator for Database )

Lattice.SPGen ( Tier Generator for Database )

LLBLGen ( Code Munger for Database )

Mia-Generation ( Tier Generator for Any code )

Monstarillo ( Tier Generator for Database )

MyGeneration ( Tier Generator for Database )

NCodeGen ( Tier Generator for Any code )

nDevelopment ( Tier Generator for Database )

nTierGen.NET Code Generator ( Tier Generator for Full Web Application )

NVelocity ( Tier Generator for Any code )

Object Model Generator ( Tier Generator for Other )

OlyMars ( Tier Generator for Full Web Application )

Builds C# and ASP.NET applications using a tier generator model.

Persistence(R) Plug-Ins for Eclipse ( Tier Generator for Database )

Pragmatier ( Tier Generator for Database )

QuickAdmin ( Tier Generator for Database )

RapTier ( Tier Generator for Database )

smartGENERATOR ( Tier Generator for Any code )

SoProMach ( Tier Generator for Any code )

tangible architect ( Tier Generator for Business Logic )

TCDesigner Standard ( Tier Generator for Database )

VBeXpress.NET ( Tier Generator for Full Web Application )

Visible Developer ( Tier Generator for Full Web Application )

Warp.NET Developer Studio ( Tier Generator for Database )

X-Code .NET ( Tier Generator for Any code )

XCoder ( Tier Generator for Full Web Application )  

       现在ORM大行其道.它解决的问题是从数据库与对象(实体)之间的映射,但是还有个问题仍需要解决就是实体与UI界面的映射.如果DB-->实体-->UI三者可同步关联.那么我们的工作量将会减少很多.上面有些工具是可根据DB生成整个项目工程.估计再过几年,又是IT界的下岗风波了.

    前些日子,写了个存储过程自动生成器(SP_GEN),巧合的是今天在用TCDesigner Professiona,他会生成很多N多个.sql脚本.原先以为SQL SERVER 2000查询分析器的时候,可以一次性选定多个执行,结果很失望,没有批量执行功能.所以再给这个存储过程自动生成器再加了SQL脚本批量执行功能.

       存储过程自动生成器(SP_GEN)能做什么

1.    可以自由选择字段.

2.    可以产生SELECT代码(全部或是根据主键筛选)

3.    可以产生INSERT代码

4.    可以产生UPDATE代码

5.    可以产生 DELETE代码

6.    可以批量将.sql脚本导入SQL SERVER

软件截图如下

 由于时间比较匆促,软件的界面比较粗陋以及功能也比较单薄.

  但在平时中确实提高了生产率:)

 将来可能对SP_GEN从以下几个方面改进

1.    支持多表关联.

2.    简化SQL的操作.尽量避免敲SQL代码.除非是一些逻辑性操作.

3.    ...

对于软件代码自动生成的一些设想

1.    根据数据库设计模型,生成数据库表,这步大部分的数据建模工具(比如PD)会提供.

2.    根据数据库表生成实体类,实体类在这里主要做为参数传递和保存相关的相信.

3.    用存储过程生成器生成存储过程.

4.    生成类似SQLHelp的中间层,完成实体类与存储过程的交互

5.    生成逻辑层.支持查询,修改,添加,删除等操作.

6.    可能以上几步用ORM更好.但要考虑ORM的灵活性和效率.特别是在多表查询时.

7.    根据第1步和实体类生成WEB界面.需要对界面控件进行摆放而无需编码,即控件值到实体的映射.

8.    ...

 

:存储过程自动生成器(SPGEN)

posted on 2005-09-01 20:44  登峰  阅读(1827)  评论(1编辑  收藏