In case someone somehow failed to notice, I love CodeSmith. As such I was thrilled to open my email the other day and encounter an invitation to participate in the CodeSmith 4.0 beta. It's a closed Beta, so I can't share the binaries, but you can bet that over the next few days I will be sharing my thoughts as I dig into the new version. That said, here is what the guys at CodeSmith Tools are bragging about in the new version:
- CodeSmith Project support (.csp files). This replaces property sets, the custom tool and the batch format.
- CodeSmith Projects can be run from the command line, inside MSBuild, inside CodeSmith Studio, and inside Windows Explorer.
- Inside of Visual Studio, any outputs that are generated will automatically be added to your project.
- If you build your project and you have the "Generate On Build" option on, your outputs will automatically be re-generated even if you generate from the command line using MSBuild.
- Progress dialog is shown when running from Windows Explorer.
- GUI dialogs to easily manage your project file.
- Easily add new outputs where you select a template and specify the property values.
- You can also specify merge settings through the GUI to enable code merging support.
- ActiveSnippet support. This will allow you to type something like: "tp Petshop.dbo.Orders" inside of Visual Studio and then hit the expand key (CTRL-E, CTRL-E by default) and it will expand out into a list of property getters/setters and member variables based on the fields and data types of the Orders table.
- CodeSmith Map support (.csmap files). This feature will allow you to create dictionary style maps of things like SQL to C# data type mappings.
- Example: <%@ Map Name="CSharpTypeAlias" Src="System-CSharpAlias.csmap" Description="Maps system types to C# aliases." %> <%= CSharpTypeAlias["System.String"] %> = "string"
- Ability to reverse the map and use the values as the map keys. This is useful for doing reverse lookups.
- Ability to return the key value if a corresponding map entry is not found.
- Ability to return a default value if a corresponding map entry is not found.
- Ability to manage maps inside CodeSmith Studio or from Windows Explorer.
- Ability to manage database schema extended property values from inside of CodeSmith Studio.
- XmlProperty support has been enhanced to handle more variations of XSD.
- Template property values are saved for templates so that each
time you run them, you donb_t have to reset the values manually.
- .netTiers 2.0 templates are included in the install.
- Added csxsd.exe to allow manually creating shared XmlProperty
- Ton of new system extended properties added to SchemaExplorer
- Bunch of performance improvements here and there throughout
- Bunch of bug fixes.