To me, asking "why would I want to use a CodeSmith Project?" is a lot like asking "why would I want to use a Visual Studio Solution?" Well, for starters, it...
- Saves you time.
- Takes less effort.
- Exposes more functionality.
- Drastically simplifies automation.
- IS EASY!
CodeSmith Projects let you control the generation of all your CodeSmith Templates, just like Visual Studio Solutions let you control the compilation of your Visual Studio Projects.
A .csp (CodeSmith Project) file, is a simple concept. Like a VS solution or project, it just contains a list of files (in this case, CodeSmith Templates) a set of configuration data that it needs to take action against those files (in this case, to execute those templates). This allows you to run multiple templates from one convenient location, and to your persist the settings for those templates in between executions.
A CodeSmith Project is easy to create, just right click in CodeSmith Explorer and create a new project, or right click in Visual Studio and add a file, then select CodeSmith Project. Heck, if those aren't easy enough for you, you can always create a new file with the .csp suffix, and then when you right click in windows explorer you will be able to manage or execute it directly from the right click context menu!
Managing your CodeSmith Project is equally easy. Regardless of where you manage outputs from, you are going to get the same friendly Manage Outputs dialog. It is going to allow you to add, remove, or copy your template entries. You can disable or enable templates for generation, alter their order of execution, or even choose to execute a specific template on the spot. When managing specific template properties the standard CodeSmith Property Grid is used, giving you access to all of the properties and UI pickers from CodeSmith Studio.
Visual Studio Integration
As I mentioned above, you can add a .csp directly into any Visual Studio project. This gives you several advantages...
- Automated integration of your template output directly into your Visual Studio Project.
- Don't worry about adding or updating your project files, the CodeSmith Project will take care of it for you!
- Note: This includes recognition by any plug-ins you may have in Visual Studio, such as source control!
- Ability to automatically generate on build.
- Keeps all developers and every build in sync with the latest template output!
- Generating an ORM? Never be out of sync with the database schema again!
Moral of the Story
Develop smarter, not harder; use CodeSmith Projects to automate your code generation. For more, check out my CodeSmith Projects Video Tutorial.