代码生成工具(2) ---我的生成工具

目前有很多代码生成工具,很多做得很好,我在上一篇关于代码生成工具的系列(代码生成工具系列(1) ---关于代码生成器 )中,大概介绍了一些代码生成工具的现状,也得到很多人的关注。
由于本人很早就在代码生成工具方面有所研究,因此在开发过程中没有使用CodeSmith,MyGeneration之类的生成工具,我觉得很多地方使用这些工具还是很麻烦,按照别人定制模板总是感觉很乏味,没有满足感和成就感,感觉自己掌握生成工具的核心代码总是很好(实际上也是,而且可以很快定制出新的架构代码生成),另外如果自己掌握了数据库的一些信息,还可以作很多事情,不仅仅是一般的代码生成了, 如还可以生成数据库文档,测试数据导入等等的一些。
在实际的开发中,公司很多同事、朋友都提出了很多很好的建议和需求,因此我的代码生成工具也在不断的改进完善中,从开始的一般代码生成,到一个架构完整解决方案的生成, 从开始的控制台程序到整合很多功能Windows Forms 程序,一切都不断的完善中...

本站的代码生成工具已经放在了www.iqidi.com上,可供下载使用

 

我的C#代码生成工具下载地址:
(个人网站)下载地址:http://www.iqidi.com/Download/Database2SharpSetup.rar
(华军软件)下载地址:http://www.newhua.com/soft/54592.htm
(天空网站)下载地址:http://www.skycn.com/soft/32456.html 
下面截一些图像,对C#代码生成工具进行介绍,希望能够给大家带来更多的信息和帮助。
1。支持NHibernate代码和PetShop架构代码的生成(多种形式).
2。可以查看数据库的信息和实现查询分析器的功能,可以很快地看看数据库的信息哦
3。数据库文档的生成,在模块设计中非常有用,谁想去写描述和字段名称,类型的对应关系呢,笨!
4。测试数据脚本的生成,在外键非常复杂的表中,我们想添加一条记录都是很容易哦,这个可以更加表的外键关系调整插入测试数据的顺序,很周到吧。
5。最新加入了Web界面自动生成功能
6。最新加入了Castle的ActiveRecord代码生成功能

Database2Sharp升级到V3.5版本功能增加或者改进:1. 增加国际化语言支持(提供中文和英文两种界面)
2. 增加数据库表结构SQL脚本的生成(各种不同的数据库生成不同的SQL脚本),在打开表信息的时候同时在下方生成。
3. 增加Select、Update、Insert和Delete基本语句代码的生成。
4. 增加实体类快速生成的功能,直接在窗体中打开,并用语法高亮显示。
5. 增加可以对表进行选择性生成代码的功能。
6. 增加对MySQL数据库GBK的支持,方便使用中文操作,完好支持MySQL5.0。
7. 改善SQL Analyzer和测试SQL脚本的操作。
8. 改善数据库配置项管理,提供更方便简单的操作。

blog_pic1.jpg 

下面这个是代码生成工具生成的代码,一个解决方案中包括各层所需要的代码哦,另外Petshop架构一、三中生成实体类对应的集合,我们完全可以使用该集合代替ArrayList,而且该集合对象是采用目前最好的实现方式来做的,继承自可以排序的集合类。目前我还没有完成页码代码的生成,下一步工作就是要做这个事情,呵呵。
生成的代码工程 
NHibernate代码主要是生成实体类的代码和HBM文件, 这些类的关系是自动根据您的表关系自动完成的哦,比较智能吧

Web界面代码和后台操作代码等自动生成,你如果开发Web的话,会节省你很多调整界面的时间,加快开发效率


Castle代码目前主要是生成实体类的代码(包含各种ActiveRecord所需要的Attribute), 关系自动生成,模版代码的定制能力更强。

using System;
using System.Collections;
using System.Xml.Serialization;
using Castle.ActiveRecord;

namespace HuaweiSoftware.IPSPBD.Entity
{
    [ActiveRecord("Product")]
    public class ProductInfo : ActiveRecordBase
    {
        #region 成员变量

        private IList m_itemList;         
        private string m_productId;         
        private CategoryInfo m_category;         
        private string m_name;         
        private string m_descn;        

        #endregion

        #region 属性

        [HasMany(typeof(ItemInfo), Table="Item", ColumnKey="ProductId")]
         public virtual IList ItemList
        {
            get
            {
                return this.m_itemList;
            }
            set
            {
                this.m_itemList = value;                
            }
        }

        [PrimaryKey(PrimaryKeyType.Assigned, "ProductId")]
         public virtual string ProductId
        {
            get
            {
                return this.m_productId;
            }
            set
            {
                this.m_productId = value;                
            }
        }

        [BelongsTo("Category")]
         public virtual CategoryInfo Category
        {
            get
            {
                return this.m_category;
            }
            set
            {
                this.m_category = value;                
            }
        }

        [Property("Name")]
         public virtual string Name
        {
            get
            {
                return this.m_name;
            }
            set
            {
                this.m_name = value;                
            }
        }

        [Property("Descn")]
         public virtual string Descn
        {
            get
            {
                return this.m_descn;
            }
            set
            {
                this.m_descn = value;                
            }
        }
        #endregion
        
        #region 静态方法
        
        public static void DeleteAll()
        {
            ActiveRecordBase.DeleteAll(typeof(ProductInfo));
        }
        
        public static ProductInfo[] FindAll()
        {
            return ((ProductInfo[])(ActiveRecordBase.FindAll(typeof(ProductInfo))));
        }
       

         public static ProductInfo Find(string ProductId)
        {
            return ((ProductInfo)(ActiveRecordBase.FindByPrimaryKey(typeof(ProductInfo), ProductId)));
        }
     
        
        #endregion

    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值