开发辅助工具Kalman Studio2.0发布,内置基于T4的代码生成器

最初开发该软件的目标是做成一个开发辅助工具来提高工作效率,代码生成器只是作为其中的一个功能,以前发布过该软件的一个粗糙的版本,bug有不少,现在系统的整理了一下,修改了不少bug,这次最大的改动就是将原来代码生成器通过SMO取SQL Server元数据信息改成了使用系统存储过程,重写了SqlServerSchemaProvider模块,并重构了批量代码生成界面本软件主要功能如下:

1、基于T4的代码生成工具,根据数据库元数据信息生成代码,支持多数据库,支持批量代码生成

2、支持根据PowerDesigner物理模型文件来生成代码,这也是该软件的最大亮点,为此专门花了一天时间写了个PDM文件解析模块

3、内置了一个简单的文本编辑器,支持代码高亮显示

4、数据库元数据信息浏览工具

5、数据库文档生成工具,支持输出word及pdf文件格式

6、IIS日志解析器,小网站可以用用

7、其他工具,字符串相关操作等

下载地址:https://files.cnblogs.com/lingyun_k/Kalman.Studio2.0.rar

下面是软件主界面截图

kalman studio2.0 ui

更多软件截图可以参考http://www.cnblogs.com/lingyun_k/archive/2010/05/08/1730771.html

数据库链接字符串配置示例

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
    </configSections>
    <connectionStrings>
        <clear/>
        <add name="Localhost" connectionString="Data Source=.;Integrated Security=SSPI;Persist Security Info=False;" />
        <add name="MySql_Local" connectionString="Server=127.0.0.1;Database=test;Uid=root;Pwd=123456;" providerName="MySql.Data.MySqlClient"/>
        <add name="SQLite" connectionString="Data Source=F:\data\sqlite3\testdb.s3db;Version=3;" providerName="System.Data.SQLite"/>
    </connectionStrings>
 
    <system.data>
        <DbProviderFactories>
            <clear/>
            <add name="SQLite Data Provider" invariant="System.Data.SQLite" description=".Net Framework Data Provider for SQLite" type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite" />
            <add name="MySqlClient Data Provider" invariant="MySql.Data.MySqlClient" description=".Net Framework Data Provider for MySql" type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data" />
            <add name="DB2 Data Provider" invariant="IBM.Data.DB2" description=".Net Framework Data Provider for DB2" type="IBM.Data.DB2.DB2Factory, IBM.Data.DB2" />
        </DbProviderFactories>
    </system.data>
</configuration>
 
 

一个实体模板的编写示例

<#@ template language="C#v3.5" hostSpecific="true" debug="true" #>
<#@ output extension=".cs" #>
<#
    TableHost host = (TableHost)(Host);
    SOTable table = host.Table;
    List<SOColumn> list = host.ColumnList;
    string nameSpace = host.GetString("NameSpace");
    string className = host.GetString("ClassName");
    if(string.IsNullOrEmpty(nameSpace))nameSpace = "Entity";
    if(string.IsNullOrEmpty(className))className = table.Name;
#>
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
 
namespace <#= nameSpace #>
{
    /// <summary>
    /// <#= table.Comment == "" ? table.Name : table.Comment.Replace("\r\n"," ") #>
    /// </summary>
    [Serializable]
    public partial class <#= className #>
    {
        <# foreach (SOColumn c in list)
        {
            string cname = c.Name;
        #>private <#= TypeUtil.DbType2TypeString(c.DataType) #> <#= "_"+cname #>;
         
        /// <summary>
        /// <#= c.Comment == "" ? c.Name : c.Comment.Replace("\r\n"," ") #>
        /// </summary>
        public <#= TypeUtil.DbType2TypeString(c.DataType) #> <#= cname #>
        {
            get{ return <#= "_"+cname #>;}
            set{ <#= "_"+cname #> = value;}
        }
         
        <# } #>  
    }
}

 

posted @   kalman  阅读(6229)  评论(20编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示