CodeSmith and EntitySpaces 2008
EntitySpaces 2008 will greatly expand the reach of the EntitySpaces Architecture for
the Microsoft .NET Framework by supporting both MyGeneration and CodeSmith. Our
decision to support CodeSmith by no means indicates we are abandoning MyGeneration.
MyGeneration will continue to be supported by EntitySpaces. We understand code generator
loyalty, and we love MyGeneration. But, CodeSmith has its fervent followers, too.
EntitySpaces 2008 will open up a new market for EntitySpaces and will give
current EntitySpaces users a choice of generator.
As of EntitySpaces 2008, the EntitySpaces Architecture will be a very viable choice
for the CodeSmith Community. Supporting CodeSmith will have the added advantage of
allowing users to generate their EntitySpaces architecture(s) from within Visual Studio
2005 via CodeSmith’s Microsoft Visual Studio 2005 integration.
Supporting both MyGeneration and CodeSmith, as this post will outline, can be accomplished
quite elegantly, and even allow for greater customization by the EntitySpaces Team.
One Architecture - Two Code Generators
The approach is straightforward. A master template will be created for each code generator.
The master template will use the native user interface techniques of the given
code generator to gather the user input. Next, the master template will launch the
metadata sub-template which will extract the metadata using the MyGeneration MyMeta
API or the CodeSmith SchemaExplorer API and create the EntitySpacesMetadata.xml file.
The master template will then create an instance of the EntitySpacesPlugIn and
populate it with the user’s selections and also provide it with a path to the EntitySpacesMetadata.xml
file. Finally, the master template will launch a series of sub-templates just as EntitySpaces
2007 does now. The sub-templates will use only the EntitySpacesPlugIn which
will run in both code generators. The only data the sub-templates will access will
be the user input (which will be stored in our plug-in) and the intermediate
metadata XML file. The sub-templates have no user interface nor will they call
into the native code generator API. This approach will ensure that 90% or more of
the code generation process will be the same regardless of what code generator is
being used.
A few diagrams might help visualize how this will be accomplished.
The Metadata Sub-template creates the EntitySpacesMetadata.xml file which is then
used, in conjunction with the EntitySpacesPlugin, by the common sub-templates.
Summary
Our decision to support both MyGeneration and CodeSmith is not something that we have
taken lightly. It has been seriously discussed for some time now. However, we did
not want to cloud the EntitySpaces 2007 release with this announcement. Now,
the time has come to let the cat out of the bag. However, EntitySpaces 2007 is
by no means going to sit idle. We will be publishing a roadmap that will take ES2007
through the remainder of this year in just a few weeks. We can say now that hierarchical
data binding and other very important features will make it into a follow on
ES2007 release.
Move over .netTiers and make room for your new neighbor, EntitySpaces
2008.
From mobile devices to large scale enterprise solutions in need of serious transaction
support, EntitySpaces can meet your needs. Whether you’re writing an ASP.NET application
with medium trust requirements, or a Windows.Forms application, the EntitySpaces architecture
is there for you. EntitySpaces is provider independent, which means that you can run
the same binary code against any of the supported databases.EntitySpaces is available
in both C# and VB.NET. EntitySpaces uses no reflection, no XML files, and sports a
tiny foot print of less than 200k. Pound for pound, EntitySpaces is one tough, dependable .NET
architecture.
The EntitySpaces Team
--
EntitySpaces LLC
Persistence Layer and Business Objects for Microsoft .NET
http://www.entityspaces.net
Read the complete post at http://feeds.feedburner.com/~r/entityspaces/~3/122025517/EntitySpacesToSupportCodeSmith.aspx
Posted
Jun 04 2007, 06:32 AM
by
CodeSmith on NewsGator Online