I gave up on T4 in frustration a long time ago. We use CodeSmith - we find it easy to use and quick to get things done. Having read this, might look at T4 again now and see if it's improved.
On 12 October 2013 18:14, Greg Keogh <g...@mira.net> wrote: > Folks, A few years ago I wrote (or rewrote) a quite large WPF Desktop app, > it's my "hobby app" like a lot of us have. It maintains RDB tables of the > music, books, video, etc in the household. This app was started in Access > 2.0 back in 1992 and I think it's gone through at least 6 generations of > rewrites since then due to the ever-changing languages, platforms, kits and > frameworks. The last incarnation of the app took several months of spare > time to get into a good working condition, but by the time it was nearly > finished it was obsolete. > > A few months ago I started a new rewrite using the latest Entity > Framework, lots of WPF binding and recent groovy techniques and tools. 14 > underlying tables are editable, and by some unimaginable effort in previous > years I managed to hand code (with lots of copy and paste) grids and > dialogs for all of the tables, all similar but slightly different. > > In the latest rewrite I just couldn't face migrating or writing 14 sets of > grids and editors again, so I decided to use T4 templates to generate it > all. I'm really happy with the results and this post is basically just a > reminder that in my opinion, good old fashioned code generation still has a > place in the modern world. > > I composed an XML document describing the attributes of every table and > field and then used TT files to generate the grid xaml, grid code, dialog > xaml, dialog code, ICommand definitions and handlers, controllers, and > validation. It's a slog to get the infrastructure started, but once it's > going it just spits out reliable working code like confetti. As you make > improvements in the templates it's most gratifying to see the benefits > magnified out over the generated code. > > I find the T4 Toolkit a bit fiddly to use and generate multiple files, so > I found this: > > https://github.com/damieng/DamienGKit > > I'm impressed by this concise and convenient utility that helps you spit > out multiple files from a single template. > > Greg K >