开发辅助工具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
下面是软件主界面截图
更多软件截图可以参考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;} } <# } #> } } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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语句:使用策略模式优化代码结构