Spot the need
Think about an average day of software development. Some of it is innovative work unlike anything you've done before. But much of it is routine: writing a public property backed by a private field, creating an About dialog for a new product, or adding a page to a website. You've done these tasks before, with only minor variations.
Whenever you find yourself repeating a task like this, you've found a candidate for code generation. Creating source files, web pages, SQL statements or any other text with minor variations is exactly what CodeSmith Generator is designed for.
The example: AssemblyInfo.cs
Every classic C# project has an AssemblyInfo.cs file with metadata about the project. Visual Studio creates a skeleton file for you, but it's full of comments aimed at beginners and attributes for every conceivable purpose. So you typically start each project by cutting out what you don't need, adding a few comments of your own, and making the same set of changes to the remaining attributes.
That's a perfect candidate for code generation: a process you repeat over and over with a few variations. In this tutorial, you use Generator to generate exactly the AssemblyInfo.cs file you need, without the clutter.
Next: Create the template