惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
The Blog of Author Tim Ferriss
罗磊的独立博客
月光博客
月光博客
GbyAI
GbyAI
腾讯CDC
G
Google Developers Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
U
Unit 42
Engineering at Meta
Engineering at Meta
A
About on SuperTechFans
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
aimingoo的专栏
aimingoo的专栏
C
Check Point Blog
Y
Y Combinator Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Microsoft Azure Blog
Microsoft Azure Blog
I
InfoQ
雷峰网
雷峰网
B
Blog RSS Feed
美团技术团队
M
MIT News - Artificial intelligence
有赞技术团队
有赞技术团队
D
Docker

博客园 - kalman

nodejs+express+jade安装备忘 Asp.net MVC应用在IIS7上部署后403错误解决方案 【转】禁止从终端服务器复制文件 FluentData Mysql分页的一个BUG 代码生成器Kalman Studio2.2发布,完美支持Oracle,不需要安装Oracle客户端 【备忘】Oracle常用系统表(做代码生成器用得到) 如何在Yii Framework中使用PHPExcel组件【备忘】 T4代码生成器Kalman Studio发布 如何为Kalman Studio编写T4模板 - kalman - 博客园 发布基于T4模板引擎的代码生成器[Kalman Studio] 请谨慎设置WinForm控件DataGridView列的AutoSizeMode属性 安装apache_2.0.63-win32-x86出现no installed service named "apache2" - kalman .NET序列化与反序列化(转) 手工查杀Win32/Pacex.Gen,Win32/Genetik,Win32/PSW.Agent.NCC,Win32/PSW.QQPass.VD病毒 win2003下安装Look n Stop网络防火墙导致系统蓝屏(tcpip.sys - address F75F5390 base at F75B4000,DataStamp 4473b09e) 在线播放器代码大全(收藏) - kalman - 博客园 System.Exception: System.Data.OracleClient requires Oracle client software version 8.1.7 or greater 服务器: 消息 15135,级别 16,状态 1,过程 sp_validatepropertyinputs,行 100. 对象无效。不允许在 '.cash_flux' 上使用扩展属性,或对象不存在 Excel组件使用配置文档下载
开发辅助工具Kalman Studio2.0发布,内置基于T4的代码生成器
kalman · 2011-06-23 · via 博客园 - kalman

最初开发该软件的目标是做成一个开发辅助工具来提高工作效率,代码生成器只是作为其中的一个功能,以前发布过该软件的一个粗糙的版本,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;} 
		}
		
		<# } #>	
	}
}