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!
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
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.