Skip to content
This repository was archived by the owner on Oct 24, 2019. It is now read-only.
/ TextTemplating Public archive

T4 and Razor scaffolding for ASP.NET Core 1.0 without Visual Studio

License

Notifications You must be signed in to change notification settings

tibitoth/TextTemplating

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Attention

This repository was only an experiment and will be not maintained anymore. Please use the official and actively maintained solution (https://github.com/mono/t4) which is available as a dotnet global tool.


TextTemplating

Goal

This project's goal is to bring the old T4 text templating and Razor code generating approach to the new ASP.NET 5 projects.

Update

The Visual Studio 2015 Update 1 now supports to process *.tt files in desing time, but this repo is maybe still useful who wants to process T4 templates in a dnx project outside visual studio (eg. in Mac with Visual Studio Code)

How to use

As a command line tool

Add the following to your project.json.

{
    "dependencies": {
        "TextTemplating": "1.0.0-rc1-final"
    },
    "commands": {
        "tt": "TextTemplating"
    }
}

Now you can use the tt command as a command line tool to transform templates at design-time, with the specified command line arguments

  • --t4-template or -t4 flag: Enable to process t4 template files (*.tt) and generate outputs.
  • --razor or -r flag: Enable to process razor files (*.cshtml) and generate outputs.
  • --preprocess or -p flag: If you use this with -t4 flag the output will be a runtime text template.
  • --dir or -d optional single value argument: Specify the working directory. The default is the project's root folder, and the processing is recursive in the current working directory.

Example:

dnx tt --t4-template --razor --dir ./Templates

As a design time tool

You can also bring the old CTRL + S behavior for the template files with Gulp, so you can generate code immediately if you save the file.

Add the following commands to the project.json:

{
    "dependencies": {
        "TextTemplating": "1.0.0-rc1-final"
    },
    "commands": {
        "t4": "TextTemplating --t4-template --dir ./Templates",
        "razor": "TextTemplating --razor --dir ./Templates"
    }
}

Add the following packages to the project's Node package manager config file. (package.json)

"dateformat": "~1.0.11",
"gulp": "~3.9.0",
"gulp-dnx": "git+https://github.com/totht91/gulp-dnx.git#dev"

With the gulp-dnx you can execute a dnx command as a gulp task, so we can create gulp.watch tasks for the template files. This is also my forked repo what can you find there: https://github.com/totht91/gulp-dnx

Add the following to the project's gulpfile.js:

/// <binding ProjectOpened='default' />

var gulp = require('gulp');
dnx = require("gulp-dnx");

gulp.task('default', ['watch']);

var options = {
    restore: false
};

gulp.task('t4', dnx('t4', options));
gulp.task('razor', dnx('razor', options));

gulp.task('watch', function (cb) {
    gulp.watch('./Templates/*.tt', ['t4']);
    gulp.watch('./Templates/*.cshtml', ['razor']);
});

After that the template files will be automatically processed in save. (also in visual studio)

As a library

To transform templates at runtime, you can also use the Engine class.

Sample is work in progres

As a service

Work in progres

License

MIT

About

T4 and Razor scaffolding for ASP.NET Core 1.0 without Visual Studio

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 2

  •  
  •  

Languages