Over the past year the CodeSmith team has been hard at work on CodeSmith 5.0. This release contains many fixes, performance enhancements and other enhancements over the previous versions. Below is a list of some of the major changes between CodeSmith 5.0 and CodeSmith 4.0. I have highlighted some of my favorites below.
* Added a tab for editing variables in the CodeSmith Project settings dialog.
* Made it so that any .csp variables are automatically used when there
is a string matching the variable value in the property values.
Made it so that variables are automatically created for connection
strings stored in .csp files so that the connection string isn't
* If you choose to remove all settings during uninstall, it will automatically try to deactivate your license.
* Added more info about the current license to the about dialog.
* Made schema explorer designers load their data sources async so that the UI would not lock.
* Fixed bug where wrong data source was selected when the designer was opened.
* Fixed error when adding references to Visual Studio project.
* Changed all SchemaExplorer designers to display in Object
(Owner) format so that you can type the first couple letters to jump to
the object you are looking for.
* Added ability to override plural/singular forms of words to the StringUtil.ToPlural and StringUtil.ToSingular methods.
* Added ability to specify Filter="SomeTableSchemaProperty" on
ColumnSchema directives which will filter the list of columns in the
designer based on the table selected in the specified property.
Added new RegisterReference method to CodeTemplate to indicate which
assemblies your generated code relies on so that they can be
automatically added in Visual Studio.
* Performance improvements in adding files to the project system in Visual Studio.
* Added a menu item for managing data sources to the Visual Studio CodeSmith menu.
* Added step to the uninstall process to remove all samples and config
files. It will also automatically deactivate your license so you can
use it on another machine.
* Added syntax highlighting for the VB keyword "Infer".
* Various improvements to the OracleSchemaProvider including full extended property support.
* Made deleting items in the csmap editor more intuitive.
* Changed ColumnSchema designer to use a treeview so that all columns for all tables aren't loaded at once.
* Fixed issue with duplicate CSP item templates in the C# project system and missing in VB project system.
* Fixed error with editing empty CSP files.
* Fixed issue with beta license that was causing the application to freeze on startup when behind a firewall.
* Fixed a bug with email addresses in the bug report form.
* Added ability to deep load all schema information at once which
results in huge performance improvements. This is used by setting the
DeepLoad attribute on any SchemaExplorer property in your template.
This would typically be used when you know you are going to use all of
the schema information from a database.
* Ability to use .net 3.5
features in templates including LINQ. This is accomplished by setting
the CompilerVersion attribute on CodeTemplate to "v3.5".
* CodeSmith Projects now have a single file output mode to generate all template outputs into a single file.
* Added Ability to generate individual project outputs.
* Changed Manage Outputs dialog to make it easier to manage outputs and added an options dialog for changing project settings.
* Made it so that files being generated from a CodeSmith Project are checked out of source control before being edited.
* Improved the custom tool upgrade process so that it works 100% in all
scenarios without having to make manual changes afterward.
* CodeSmith Projects can now add files to Visual Studio as code behind files to other generated files.
* CodeSmith Projects can now set a generated files build action.
* Added ability to resolve assemblies located in paths relative to the
template now using Path attribute. Looks in template folder and \bin
folder by default.
* Optimized template caching algorithm allows for much improved performance.
* Templates use partial classes now so you can have partial class code
behinds and have access to template properties from the code behind
* Added template metadata caching.
* Added GetPropertyAttribute and SetPropertyAttribute to CodeTemplate.
* Property attribute values are added for any non-recognized attributes on Property, XmlProperty and CodeTemplate directives.
* Made all SchemaExplorer objects serializable.
* Fixed bug with refreshing SchemaExplorer objects where it would not
show all extended properties of the object after refresh.
* Re-organized all sample templates and projects into a more logical folder structure.
* Added new NHibernate templates in both C# and Visual Basic.
* Made various improvements to the Plinqo templates.
* .netTiers updated to the 2.3 Beta version of the templates.
* Added VB versions of many sample templates and projects.
* Added a couple new maps and ActiveSnippets.
* Included the latest version of the NuSoft framework templates.
Download Links Available Below: