CodeSmith is a software development tool to help you get your job done faster. Technically speaking it is a template driven code generator that automates the creation of common application code for any language (C#, Java, VB, PHP, ASP.NET, SQL, etc.).
CodeSmith is a template-based code generator that allows you to generate code for any text language. The code generated can be customized by the use of properties. A property can be any .NET object that has a designer (most built in .NET types have designers already) and can be as simple as a boolean property that allows you to conditionally add or remove code from the result, to an object such as the TableSchema object (included in SchemaExplorer) which provides access to everything you could possibly want to know about a database table. CodeSmith comes with many standard property types and is 100% extensible by allowing the user to create custom property types.