

As the architect of SourceMason, I would like to explain it's primary purpose and and how it came to be developed:
SourceMason is surpetition - a word first used by Edward de Bono. Surpetition focuses on value creation ('valufacture'), going beyond traditional strategic competition to exploit the vast potential of 'integrated values' that surround the purchase and use of products and services.
SourceMason is designed to enhance other products already in the market place being CodeSmith and myGeneration.
SourceMason is a Code Template based generator, meaning that you can write your own templates to generate output for the anything you like, in any programming language.
The scripting language used to programmatically generate output is C# - with VB.Net to be release at a later date. The SOurceMason Engine translates the script and template markup into code that the can be executed to generate output.
There are many example templates that can be used as a referenced starting point to create any output a developer wishes, we have even included a basic DataObject class template which generates a C# class based on a table definition. Also ported are the CSLA.Net templates which provide as framework for BusinessObject and DAL implementation in C#, very similar to the NetTiers and dOOdads.
There is minimal effort in translating templates from CodeSmith to SourceMason, simply updating the template directives or any other code that is dependant on CodeSmith libraries.
SourceMason includes a database schema explorer for SqlServer and Firebird, with MySQL and Oracle currently in the pipeline. The database schema provides a common interface to the mirad of databases so that code templates can interact with database schemas to generate output based on this metadata, thus freeing the developer from needing to implement different templates for each database implementation. The developer can implement a schema provider for their specific database driver due to the pluggable architecture.
There were many issues with CodeSmith and the lack of ingenuity in their product that gave rise to SourceMason. We use SourceMason extensively in house for development for products ie FastNetObjects which is a complete end-to-end business object multitier framework that will be release to market when the Shrink-wrapping is completed.
While SourceMason product is feature rich and complete, we are using both SourceMason and FastNetObjects to expedite the development of other products. Both SourceMason and FastNetObjects products needed to be written to enable us to target our primary markets.
FastNetObjects is another code generator tool that uses SourceMason Engine for the code generation output, hence demonstrating the use of SourceMason Engine as a plug-in for any code generation requirements that other products require (using the SDK).
As a developer the difficult part is writing a template generator, not GUI of the primary Tool. Many will invest time and resources implementing hardcoded code generation into their product requiring a new release if their implementation changes, or implementing a general approach using templates thus writing a core template engine (like we did) taking away from the implementation of their primary product.
Visit our www.equatorIT.com or www.FastNetObjects.com websites for more details
Anthony Miller - Equator Information Technology - Systems Architect
