听说 CodeSmith 的大名好久了,但一直都没机会来研究这东西。总算这星期一时心血来潮,花了点时间看了看他的 QuickStart 教程,里面的示例比较简单,对于入门者很适合(一开始就复杂无比的东西,谁还有耐心看下去是不是?^_^)

不用不知道,用了吓一跳(乖乖,这东西确实挺不错的),CodeSmith可以生成C#,VB.NET,TSQL以及其他任何语言代码,而且可以编程灵活控制(它的编程很简单啊,都是.NET语法,编码的模式类似ASP,代码和静态内容混写)

下面是看了 QuickStart 后写的一个小玩意,功能是把给定的数据表中的所有列都检索出来生成一个实体类:

<%@ CodeTemplate Language="C#" TargetLanguage="C#" LinePragmas="True" %>
<%@ Property Name="SourceTable" Type="SchemaExplorer.TableSchema" 
    Category="DataSource" 
    Description="选择一个数据表" %>
<%@ Property Name="Namespace" Type="String" 
    Category="Main" 
    Description="输出文件使用的命名空间" %>
<%@ Property Name="DeveloperName" Type="String" 
    Category="Main" 
    Description="作者" %>
<%@ Assembly Name="SchemaExplorer" %>
<%@ Import Namespace="SchemaExplorer" %>

//***********************************************************************
//  Created: <%= DateTime.Now.ToShortDateString() %>    Author:  <%= DeveloperName %>
//  File: <%= CodeTemplate.GetFileName() %>
//    Description: <%= SourceTable.Name %> 自定义实体类, 使用 CodeSmith 自动生成.
//***********************************************************************

using System;

namespace <%= Namespace %>
{
    /**//// <summary>
    /// <%= SourceTable.Name %> class description here.
    /// </summary>
    public class <%= SourceTable.Name %>
    {
        Property#region Property
        <% for (int i=0; i<SourceTable.Columns.Count; i++) %>
        <% { %>
        <% string colName = SourceTable.Columns[i].Name.ToString(); %>
        <% string colType = SourceTable.Columns[i].SystemType.ToString(); %>
        private <%= colType %> _<%= colName %>;
        public <%= colType %> <%= colName %>
        {
            get
            {
                return _<%= colName %>;
            }
            set
            {
                _<%= colName %> = value;
            }
        }
        
        <% } %>
        #endregion
        
        Constructure#region Constructure
        public <%= SourceTable.Name %>()
        {
            //
            // TODO: <%= SourceTable.Name %> constructure logic
            //
        }
        
        #endregion
        
        Method#region Method
        public void Insert()
        {
        }
        
        public void Save()
        {
        }
        
        public void Update()
        {
        }
        
        public void Delete()
        {
        }
        #endregion
    }
}

总体来说,CodeSmith还是非常不错的,以后再慢慢仔细研究!


CodeSmith 3.0 破解版
下载地址:http://www.zzmine.com/down/CodeSmith3.0.rar

转载于:https://www.cnblogs.com/netflu/archive/2005/07/23/198820.html

体验 CodeSmith相关推荐

  1. codesmith学习总结

    code smith 使用介绍 利用CodeSmith为SQL Server CE生成项目代码   摘要:CodeSmith是很多.NET开发人员至爱的开发辅助工具,它能够使开发人员从大量枯燥无味的重 ...

  2. 黄聪:C#代码生成工具:文本模板初体验 Hello,World!

    C#代码生成工具:文本模板初体验 Hello World 在VS中的文本模板(也称T4),它给我有点CodeSmith的感觉,也是通过模板加逻辑代码混编批量生成代码的方法,但是关于T4的资料不多,而且 ...

  3. BERT可视化工具bertviz体验

    BERT可视化工具体验:bertviz是用于BERT模型注意力层的可视化页面. 1,bertviz的github地址:https://github.com/jessevig/bertviz 2,将be ...

  4. 深度学习调参体验(二)

    深度学习调参体验(二) 激活函数选择: 常用的激活函数有relu.leaky-relu.sigmoid.tanh等.对于输出层,多分类任务选用softmax输出,二分类任务选用sigmoid输出,回归 ...

  5. 深度学习调参体验(一)

    深度学习调参体验(一) 基本原则: 快速试错 一.一些大的注意事项: 1.先上小规模数据, 模型往大了放, 只要不爆显存, 能用256个filter就别用128个.直接奔着过拟合去.就是训练过拟合网络 ...

  6. 红旗linuxcentos_用红旗Linux 11的体验报告,附使用红旗Linux 11截图

    以下是用红旗Linux 11(英文名是RedFlag Linux Desktop 11)的体验报告,另附上使用红旗Linux 11的桌面截图. 前言 首先,不带偏见的说下,红旗Linux 11因为是首 ...

  7. 石头机器人拖地水量调节_石头扫地机器人T7上手体验:电控水箱和超大容量,扫拖一体全能型...

    [微创WEC科技]前段时间,给大家带来了石头扫地机器人P51的体验,今天给大家带来一个更"猛"一点的,就是今年石头机器人的旗舰产品:T7. 石头扫地机器人T7上手体验视频 要知道石 ...

  8. 如何把手变成手控_在这个模拟手的VR游戏里,你能体验到很多手控福利

    原标题:在这个模拟手的VR游戏里,你能体验到很多手控福利 前排提示,部分图片可能导致掉San. 如今的电子游戏越来越真实,但始终存在一个局限,那就是玩家通常使用手柄.键鼠等外设来控制角色,没法与游戏实 ...

  9. Flutter 导包 以及体验

    Flutter 第一个list 体验 具体位置看图吧 是在pubspec.yaml 里面的 dev_dependencies 里面 然后点击packages_get flutter 不用每次都运行,保 ...

最新文章

  1. 微信小程序多项选择器_微信小程序三级联动之多列选择器
  2. 酸了!给湖北籍学生偷偷发慰问金,中文系还不用上网课,这个学校太贴心!...
  3. conda 和 pip 安装本地包
  4. 软件开发中的一些感想
  5. java安全编码指南之:lock和同步的正确使用
  6. jconsole 使用_我的Wiki:使用JConsole对WildFly(或JBoss AS7)进行远程JMX访问
  7. Iterator图解
  8. 先弄清事物本身,再去查看评论
  9. WinForm 生产环境、测试环境 多配置-App.config(分享)
  10. Android按键灯,指示灯总结【Android源码解析十一】
  11. 永久关闭wps热点新闻的办法
  12. 学习QT一周做的小游戏-钢琴块
  13. Android studio3.2 分配内存设置方法
  14. ridge regression and lasso analysis-reproduced from csdn
  15. 惠普服务器装系统无法识别u盘,惠普uefi bios无法识别u盘的解决方法
  16. 消失的两个数字(1~N缺两个数)
  17. 【bootstrap教程】Bootstrap 工具提示(Tooltip)插件
  18. VNC安装常见问题与处理
  19. Sencha Cmd创建Ext JS示例项目
  20. HTTPS SSL TLS

热门文章

  1. 线性代数学习全攻略(内附机器学习路径图)
  2. 用 Python 实现溺水识别
  3. Cascade R-CNN升级!目标检测制霸COCO,实例分割超越Mask R-CNN
  4. 动手学pytorch之tensor数据(一)
  5. 深度学习(四十二)word2vec词向量学习笔记
  6. 基础知识(十三)dlib python人脸检测 特征点定位
  7. person p = new person();_Python函数__new__及__init__作用及区别解析
  8. Linux 创建快捷方式
  9. 返回值 包装类_(九)Java常用类
  10. 好用的python学习软件_5种好用的Python工具!Python学习分析