Win a free Professional license of CodeSmith Generator 5.2!

CodeSmith is a software development tool to help you get your job done faster. Technically speaking it is a template driven source code generator that automates the creation of common application source code for any language (C#, Java, VB, PHP, ASP.NET, SQL, etc.) or any text based output.

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.

CodeSmith's syntax is almost identical to ASP.NET. So if you are familiar with ASP.NET then you should be able to quickly learn the template syntax. You can use the C#, VB.NET or JScript.NET languages in your templates and your templates can output any ASCII-based language.

CodeSmith enables software developers to efficiently:

• Reduce repetitive coding
• Generate your code in less time with fewer bugs
• Produce consistent code that adheres to your standards
• Create your own custom templates for any language

CodeSmith Generator Features

• CodeSmith Studio – CodeSmith Studio makes building your own custom templates very easy. With Intellisense you can create or modify your templates with ease.

• Visual Studio Integration – With integration into the MSBuild pipeline and Visual Studio 2005/2008/2010, you can actively generate without ever leaving Visual Studio. Visual Studio integration also features the ability to create your own active snippets for common tasks like creating properties from metadata.

• Template Debugging – CodeSmith makes it easy to debug your templates by providing the CodeSmith template developer with the line number in the template where the problem occurred.

• Rich XML and MetaData Support – The XmlProperty directive allows you to easily use XML to drive your templates. If an XSD schema is provided, a strongly typed XML object model will automatically be generated and makes working with XML simple.

• Merge Capabilities – The merging capabilities in CodeSmith allow you to merge generated and hand written code within a single file.

• Master templates - Provide an efficient way to execute many templates known as sub-templates at one time. Master Templates are very useful when creating dynamic, structured and well controlled output.

• Active Community – Join in and collaborate with other CodeSmith users about questions, issues or ideas that you may have.

• Console Client – The console client allows you to easily automate your code generation process and can execute templates one at a time or in batches.

• Auto SQL Script Execution – Templates that generate SQL scripts can be auto-executed after generation allowing for easy deployment of generated SQL code.

• Fast Compiler & Template Caching – CodeSmith can compile and execute your custom templates very fast and efficiently.

Supported Template Frameworks

• LINQ to SQL (PLINQO) - Replace and enhance Microsoft’s LINQ to SQL with PLINQO. These open source CodeSmith templates open the LINQ to SQL black box, giving you the ability to control your source code while adding many new features and enhancements. It's still LINQ to SQL, but better!

• CSLA - Generate CSLA in minutes with our CodeSmith CSLA templates. Rockford Lhotka’s CSLA .NET framework is an application development framework that reduces the cost of building and maintaining applications.

• NHibernate - NHibernate is a port of Hibernate Core for Java to the .NET Framework. It handles persisting plain .NET objects to and from an underlying relational database. Given an XML description of your entities and relationships, NHibernate automatically generates SQL for loading and storing the objects. Optionally, you can describe your mapping metadata with attributes in your source code.

• .netTiers - .netTiers is a set of open source code generation templates that simplify the tasks of creating customized Application Tiers for your Microsoft.Net applications in just a few minutes. .netTiers generated architecture is custom to your domain, uses familiar patterns, and follows the guidance of Microsoft's recommended patterns and practices. In fact, the .netTiers base architecture is built upon the Microsoft Enterprise Library Application Blocks.

By Robbe Morris   Popularity  (8743 Views)
Biography - Robbe Morris
Robbe has been a Microsoft MVP in C# since 2004. He is also the co-founder of which provides .NET articles, book reviews, software reviews, and software download and purchase advice.  Robbe also loves to scuba dive and go deep sea fishing in the Florida Keys or off the coast of Daytona Beach. Microsoft MVP
Here's my most recent course on Pluralsight. I think it has some interesting insight on IT professional job interviews and using words in your resume to influence the questions you'll be asked. Resumes, Job Seeking, and Interviews in context.