<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="http://www.codeplex.com/rss.xsl"?><rss version="2.0"><channel><title>GenDotNet Code Generation Tools</title><link>http://www.codeplex.com/GenDotNet/Project/ProjectRss.aspx</link><description>A code generation tool with a granular approach encouraging evolution in individual components. The generation engine and templates are based on VB9.0 XML literals which gives the most robust and p...</description><item><title>New Post: Why the move away from Xslt?</title><link>http://www.codeplex.com/GenDotNet/Thread/View.aspx?ThreadId=32866</link><description>&lt;div style="line-height: normal;"&gt;Is there a compelling reason why the xslt approach will not work?&lt;br&gt;
This seems to be a Code Smith / ASP style of generation.&lt;br&gt;
&lt;/div&gt;</description><author>chriseyre2000</author><pubDate>Mon, 04 Aug 2008 16:58:47 GMT</pubDate><guid isPermaLink="false">New Post: Why the move away from Xslt? 20080804045847P</guid></item><item><title>Source code checked in</title><link>http://www.codeplex.com/GenDotNet/SourceControl/ListDownloadableCommits.aspx</link><description>First public CTP - Nothing before this is usable, but CodePlex doesn&amp;#39;t allow deleting changsets</description><author>KathleenDollard</author><pubDate>Sat, 29 Mar 2008 22:57:40 GMT</pubDate><guid isPermaLink="false">Source code checked in 20080329105740P</guid></item><item><title>UPDATED WIKI: Directions</title><link>http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Directions&amp;version=7</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
Directions
&lt;/h2&gt; &lt;br /&gt;&lt;i&gt;We don’t yet support SQL Server Express. We’ve tested only with SQL Server 2005, but anticipate SQL Server 2000 and 2008 would also work&lt;/i&gt;&lt;br /&gt; &lt;br /&gt;_If you haven’t built using the &lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Build%20Notes&amp;amp;referringTitle=Directions"&gt;Build Notes&lt;/a&gt; – do that before continuing. _&lt;br /&gt; &lt;br /&gt;&lt;h3&gt;
Setting Up the Database
&lt;/h3&gt; &lt;br /&gt;You need a database available that has single column primary keys on all tables. Neither Northwind nor AdventureWorksLT, nor NorthwindEF fill this requirement, so we’ve created a sample database for contacts. We anticipate upgrading this database periodically, so don’t include data, or plan to version your data. The only reason you’d want data in this database is for testing. &lt;br /&gt; &lt;br /&gt;Assuming you plan to use GenDotNetSample&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Create a database with some name on your server, preferably GenDotNetSample&lt;/li&gt;&lt;li&gt;Open your favorite query tool (like Microsoft Sql Server Management Studio) and change the name in the USE statement (first line) if you named it something other than GenDotNetSample&lt;/li&gt;&lt;li&gt;Run the scripts in the Database directory &lt;/li&gt;&lt;li&gt;Check that this database exists and contains four tables and no stored procedures&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;&lt;h3&gt;
Create the ORM File
&lt;/h3&gt; &lt;br /&gt;The ORM file must be present for the database to be managed correctly. While the morphing process supports an extremely rich mapping, it’s incredibly complex and we plan to abandon it in favor of a better process in April. Thus, we are not documenting the potential of this file in detail, just explaining that it must be there. The contents for GenDotNetSample are:&lt;br /&gt; &lt;br /&gt;// multi-line&lt;br /&gt;&amp;lt;orm:MappingRoot xmlns:orm=&amp;quot;http://kadgen.com/KADORM.xsd&amp;quot;&lt;br /&gt;					  xmlns:kd=&amp;quot;http://kadgen.com/Special.xsd&amp;quot;&lt;br /&gt;					  MapDataStructure=&lt;i&gt;&lt;b&gt;&lt;u&gt;&amp;quot;GenDotNetSample&amp;quot;&lt;/u&gt;&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;	TransactionType=&amp;quot;ADONET&amp;quot;&lt;br /&gt;	Namespace=&amp;quot;GenDotNet.Samples&amp;quot;&lt;br /&gt;	TransactionForRetrieve=&amp;quot;false&amp;quot;&lt;br /&gt;	RetrievePattern=&amp;quot;Select_&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Object&amp;amp;referringTitle=Directions"&gt;Object&lt;/a&gt;&amp;quot;&lt;br /&gt;	RetrieveChildrenPattern=&amp;quot;SelectChildren&lt;i&gt;&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=FKey&amp;amp;referringTitle=Directions"&gt;FKey&lt;/a&gt;&lt;/i&gt;&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Object&amp;amp;referringTitle=Directions"&gt;Object&lt;/a&gt;&amp;quot;&lt;br /&gt;	RetrieveAlternatePattern=&amp;quot;&lt;i&gt;By&lt;/i&gt;&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Criteria&amp;amp;referringTitle=Directions"&gt;Criteria&lt;/a&gt;&amp;quot;&lt;br /&gt;	SetSelectPattern=&amp;quot;SelectAll_&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Object&amp;amp;referringTitle=Directions"&gt;Object&lt;/a&gt;&amp;quot;&lt;br /&gt;	CreatePattern=&amp;quot;Insert_&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Object&amp;amp;referringTitle=Directions"&gt;Object&lt;/a&gt;&amp;quot;&lt;br /&gt;	UpdatePattern=&amp;quot;Update_&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Object&amp;amp;referringTitle=Directions"&gt;Object&lt;/a&gt;&amp;quot;&lt;br /&gt;	DeletePattern=&amp;quot;Delete_&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Object&amp;amp;referringTitle=Directions"&gt;Object&lt;/a&gt;&amp;quot;&lt;br /&gt;	Generate=&amp;quot;CRUDS&amp;quot;&lt;br /&gt;	CollectionType=&amp;quot;Plural&amp;quot;&amp;gt;&lt;br /&gt;  &amp;lt;!-- SQL Function replacements help the SQL translator. This is used for &lt;br /&gt;	      constraints and defaults --&amp;gt;&lt;br /&gt;  &amp;lt;orm:SQLFunctionReplacement&amp;gt;&lt;br /&gt;    &amp;lt;orm:SQLFunction Name=&amp;quot;getdate&amp;quot; ReplaceWith=&amp;quot;System.DateTime.Today&amp;quot; NETType=&amp;quot;System.DateTime&amp;quot;/&amp;gt;&lt;br /&gt;  &amp;lt;/orm:SQLFunctionReplacement&amp;gt;&lt;br /&gt; &lt;br /&gt;  &amp;lt;!-- Mapping definitions. --&amp;gt;&lt;br /&gt;  &amp;lt;!-- To evaluate the result of these mapping, look at the Retrieve stored procedures --&amp;gt;&lt;br /&gt;  &amp;lt;orm:Mapping Name=&amp;quot;GenDotNet.Samples&amp;quot;&amp;gt;&lt;br /&gt;  &amp;lt;/orm:Mapping&amp;gt;&lt;br /&gt; &lt;br /&gt;&amp;lt;/orm:MappingRoot&amp;gt;&lt;br /&gt; &lt;br /&gt;// single line&lt;br /&gt;If you named your database something other than GenDotNetSample, you must change the name in the MapDataStructure attribute in the MappingRoot element. &lt;br /&gt; &lt;br /&gt;&lt;h3&gt;
Run the Project
&lt;/h3&gt; &lt;br /&gt;Run the project either in debug mode or via the executable. You’ll see a temporary (and very ugly) user interface. &lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Select your server if needed&lt;/li&gt;&lt;li&gt;Select the GenDotNetSample database or other database&lt;/li&gt;&lt;li&gt;Press the button “Make Sp Metadata”&lt;/li&gt;&lt;li&gt;Press the button &amp;quot;Generate Select&amp;quot;&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;Make Sp Metadata accomplishes two things. It extracts metadata from the database and it morphs it based on the ORMFile. You can run these steps separately via these buttons.&lt;br /&gt; &lt;br /&gt;Generate Select creates a script in the SQL Output directory and loads this script into your database. Feel free to delete your stored procedures and rerun the tool to recreate them. &lt;br /&gt;
&lt;/div&gt;</description><author>KathleenDollard</author><pubDate>Sat, 29 Mar 2008 22:35:25 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Directions 20080329103525P</guid></item><item><title>UPDATED WIKI: Directions</title><link>http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Directions&amp;version=6</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
Directions
&lt;/h2&gt; &lt;br /&gt;&lt;i&gt;We don’t yet support SQL Server Express. We’ve tested only with SQL Server 2005, but anticipate SQL Server 2000 and 2008 would also work&lt;/i&gt;&lt;br /&gt; &lt;br /&gt;_If you haven’t built using the &lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Build%20Notes&amp;amp;referringTitle=Directions"&gt;Build Notes&lt;/a&gt; – do that before continuing. _&lt;br /&gt; &lt;br /&gt;&lt;h3&gt;
Setting Up the Database
&lt;/h3&gt; &lt;br /&gt;You need a database available that has single column primary keys on all tables. Neither Northwind nor AdventureWorksLT, nor NorthwindEF fill this requirement, so we’ve created a sample database for contacts. We anticipate upgrading this database periodically, so don’t include data, or plan to version your data. The only reason you’d want data in this database is for testing. &lt;br /&gt; &lt;br /&gt;Assuming you plan to use GenDotNetSample&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Create a database with some name on your server, preferably GenDotNetSample&lt;/li&gt;&lt;li&gt;Open your favorite query tool (like Microsoft Sql Server Management Studio) and change the name in the USE statement (first line) if you named it something other than GenDotNetSample&lt;/li&gt;&lt;li&gt;Run the scripts in the Database directory &lt;/li&gt;&lt;li&gt;Check that this database exists and contains four tables and no stored procedures&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;&lt;h3&gt;
Create the ORM File
&lt;/h3&gt; &lt;br /&gt;The ORM file must be present for the database to be managed correctly. While the morphing process supports an extremely rich mapping, it’s incredibly complex and we plan to abandon it in favor of a better process in April. Thus, we are not documenting the potential of this file in detail, just explaining that it must be there. The contents for GenDotNetSample are:&lt;br /&gt; &lt;br /&gt;// multi-line&lt;br /&gt;&amp;lt;orm:MappingRoot xmlns:orm=&amp;quot;http://kadgen.com/KADORM.xsd&amp;quot;&lt;br /&gt;					  xmlns:kd=&amp;quot;http://kadgen.com/Special.xsd&amp;quot;&lt;br /&gt;					  MapDataStructure=&amp;quot;GenDotNetSample&amp;quot;&lt;br /&gt;	TransactionType=&amp;quot;ADONET&amp;quot;&lt;br /&gt;	Namespace=&lt;i&gt;&lt;b&gt;&lt;u&gt;&amp;quot;GenDotNet.Samples&amp;quot;&lt;/u&gt;&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;	TransactionForRetrieve=&amp;quot;false&amp;quot;&lt;br /&gt;	RetrievePattern=&amp;quot;Select_&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Object&amp;amp;referringTitle=Directions"&gt;Object&lt;/a&gt;&amp;quot;&lt;br /&gt;	RetrieveChildrenPattern=&amp;quot;SelectChildren&lt;i&gt;&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=FKey&amp;amp;referringTitle=Directions"&gt;FKey&lt;/a&gt;&lt;/i&gt;&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Object&amp;amp;referringTitle=Directions"&gt;Object&lt;/a&gt;&amp;quot;&lt;br /&gt;	RetrieveAlternatePattern=&amp;quot;&lt;i&gt;By&lt;/i&gt;&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Criteria&amp;amp;referringTitle=Directions"&gt;Criteria&lt;/a&gt;&amp;quot;&lt;br /&gt;	SetSelectPattern=&amp;quot;SelectAll_&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Object&amp;amp;referringTitle=Directions"&gt;Object&lt;/a&gt;&amp;quot;&lt;br /&gt;	CreatePattern=&amp;quot;Insert_&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Object&amp;amp;referringTitle=Directions"&gt;Object&lt;/a&gt;&amp;quot;&lt;br /&gt;	UpdatePattern=&amp;quot;Update_&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Object&amp;amp;referringTitle=Directions"&gt;Object&lt;/a&gt;&amp;quot;&lt;br /&gt;	DeletePattern=&amp;quot;Delete_&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Object&amp;amp;referringTitle=Directions"&gt;Object&lt;/a&gt;&amp;quot;&lt;br /&gt;	Generate=&amp;quot;CRUDS&amp;quot;&lt;br /&gt;	CollectionType=&amp;quot;Plural&amp;quot;&amp;gt;&lt;br /&gt;  &amp;lt;!-- SQL Function replacements help the SQL translator. This is used for &lt;br /&gt;	      constraints and defaults --&amp;gt;&lt;br /&gt;  &amp;lt;orm:SQLFunctionReplacement&amp;gt;&lt;br /&gt;    &amp;lt;orm:SQLFunction Name=&amp;quot;getdate&amp;quot; ReplaceWith=&amp;quot;System.DateTime.Today&amp;quot; NETType=&amp;quot;System.DateTime&amp;quot;/&amp;gt;&lt;br /&gt;  &amp;lt;/orm:SQLFunctionReplacement&amp;gt;&lt;br /&gt; &lt;br /&gt;  &amp;lt;!-- Mapping definitions. --&amp;gt;&lt;br /&gt;  &amp;lt;!-- To evaluate the result of these mapping, look at the Retrieve stored procedures --&amp;gt;&lt;br /&gt;  &amp;lt;orm:Mapping Name=&amp;quot;GenDotNet.Samples&amp;quot;&amp;gt;&lt;br /&gt;  &amp;lt;/orm:Mapping&amp;gt;&lt;br /&gt; &lt;br /&gt;&amp;lt;/orm:MappingRoot&amp;gt;&lt;br /&gt; &lt;br /&gt;// single line&lt;br /&gt;If you named your database something other than GenDotNetSample, you must change the name in the MapDataStructure attribute in the MappingRoot element. &lt;br /&gt; &lt;br /&gt;&lt;h3&gt;
Run the Project
&lt;/h3&gt; &lt;br /&gt;Run the project either in debug mode or via the executable. You’ll see a temporary (and very ugly) user interface. &lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Select your server if needed&lt;/li&gt;&lt;li&gt;Select the GenDotNetSample database or other database&lt;/li&gt;&lt;li&gt;Press the button “Make Sp Metadata”&lt;/li&gt;&lt;li&gt;Press the button &amp;quot;Generate Select&amp;quot;&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;Make Sp Metadata accomplishes two things. It extracts metadata from the database and it morphs it based on the ORMFile. You can run these steps separately via these buttons.&lt;br /&gt; &lt;br /&gt;Generate Select creates a script in the SQL Output directory and loads this script into your database. Feel free to delete your stored procedures and rerun the tool to recreate them. &lt;br /&gt;
&lt;/div&gt;</description><author>KathleenDollard</author><pubDate>Sat, 29 Mar 2008 22:34:55 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Directions 20080329103455P</guid></item><item><title>UPDATED WIKI: Directions</title><link>http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Directions&amp;version=5</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
Directions
&lt;/h2&gt; &lt;br /&gt;&lt;i&gt;We don’t yet support SQL Server Express. We’ve tested only with SQL Server 2005, but anticipate SQL Server 2000 and 2008 would also work&lt;/i&gt;&lt;br /&gt; &lt;br /&gt;_If you haven’t built using the &lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Build%20Notes&amp;amp;referringTitle=Directions"&gt;Build Notes&lt;/a&gt; – do that before continuing. _&lt;br /&gt; &lt;br /&gt;&lt;h3&gt;
Setting Up the Database
&lt;/h3&gt; &lt;br /&gt;You need a database available that has single column primary keys on all tables. Neither Northwind nor AdventureWorksLT, nor NorthwindEF fill this requirement, so we’ve created a sample database for contacts. We anticipate upgrading this database periodically, so don’t include data, or plan to version your data. The only reason you’d want data in this database is for testing. &lt;br /&gt; &lt;br /&gt;Assuming you plan to use GenDotNetSample&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Create a database with some name on your server, preferably GenDotNetSample&lt;/li&gt;&lt;li&gt;Open your favorite query tool (like Microsoft Sql Server Management Studio) and change the name in the USE statement (first line) if you named it something other than GenDotNetSample&lt;/li&gt;&lt;li&gt;Run the scripts in the Database directory &lt;/li&gt;&lt;li&gt;Check that this database exists and contains four tables and no stored procedures&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;&lt;h3&gt;
Create the ORM File
&lt;/h3&gt; &lt;br /&gt;The ORM file must be present for the database to be managed correctly. While the morphing process supports an extremely rich mapping, it’s incredibly complex and we plan to abandon it in favor of a better process in April. Thus, we are not documenting the potential of this file in detail, just explaining that it must be there. The contents for GenDotNetSample are:&lt;br /&gt; &lt;br /&gt;// multi-line&lt;br /&gt;&amp;lt;orm:MappingRoot xmlns:orm=&amp;quot;http://kadgen.com/KADORM.xsd&amp;quot;&lt;br /&gt;					  xmlns:kd=&amp;quot;http://kadgen.com/Special.xsd&amp;quot;&lt;br /&gt;					  MapDataStructure=&amp;quot;GenDotNetSample&amp;quot;&lt;br /&gt;	TransactionType=&amp;quot;ADONET&amp;quot;&lt;br /&gt;	Namespace=&amp;quot;GenDotNet.Samples&amp;quot;&lt;br /&gt;	TransactionForRetrieve=&amp;quot;false&amp;quot;&lt;br /&gt;	RetrievePattern=&amp;quot;Select_&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Object&amp;amp;referringTitle=Directions"&gt;Object&lt;/a&gt;&amp;quot;&lt;br /&gt;	RetrieveChildrenPattern=&amp;quot;SelectChildren&lt;i&gt;&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=FKey&amp;amp;referringTitle=Directions"&gt;FKey&lt;/a&gt;&lt;/i&gt;&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Object&amp;amp;referringTitle=Directions"&gt;Object&lt;/a&gt;&amp;quot;&lt;br /&gt;	RetrieveAlternatePattern=&amp;quot;&lt;i&gt;By&lt;/i&gt;&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Criteria&amp;amp;referringTitle=Directions"&gt;Criteria&lt;/a&gt;&amp;quot;&lt;br /&gt;	SetSelectPattern=&amp;quot;SelectAll_&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Object&amp;amp;referringTitle=Directions"&gt;Object&lt;/a&gt;&amp;quot;&lt;br /&gt;	CreatePattern=&amp;quot;Insert_&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Object&amp;amp;referringTitle=Directions"&gt;Object&lt;/a&gt;&amp;quot;&lt;br /&gt;	UpdatePattern=&amp;quot;Update_&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Object&amp;amp;referringTitle=Directions"&gt;Object&lt;/a&gt;&amp;quot;&lt;br /&gt;	DeletePattern=&amp;quot;Delete_&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Object&amp;amp;referringTitle=Directions"&gt;Object&lt;/a&gt;&amp;quot;&lt;br /&gt;	Generate=&amp;quot;CRUDS&amp;quot;&lt;br /&gt;	CollectionType=&amp;quot;Plural&amp;quot;&amp;gt;&lt;br /&gt;  &amp;lt;!-- SQL Function replacements help the SQL translator. This is used for &lt;br /&gt;	      constraints and defaults --&amp;gt;&lt;br /&gt;  &amp;lt;orm:SQLFunctionReplacement&amp;gt;&lt;br /&gt;    &amp;lt;orm:SQLFunction Name=&amp;quot;getdate&amp;quot; ReplaceWith=&amp;quot;System.DateTime.Today&amp;quot; NETType=&amp;quot;System.DateTime&amp;quot;/&amp;gt;&lt;br /&gt;  &amp;lt;/orm:SQLFunctionReplacement&amp;gt;&lt;br /&gt; &lt;br /&gt;  &amp;lt;!-- Mapping definitions. --&amp;gt;&lt;br /&gt;  &amp;lt;!-- To evaluate the result of these mapping, look at the Retrieve stored procedures --&amp;gt;&lt;br /&gt;  &amp;lt;orm:Mapping Name=&amp;quot;GenDotNet.Samples&amp;quot;&amp;gt;&lt;br /&gt;  &amp;lt;/orm:Mapping&amp;gt;&lt;br /&gt; &lt;br /&gt;&amp;lt;/orm:MappingRoot&amp;gt;&lt;br /&gt; &lt;br /&gt;// single line&lt;br /&gt;If you named your database something other than GenDotNetSample, you must change the name in the MapDataStructure attribute in the MappingRoot element. &lt;br /&gt; &lt;br /&gt;&lt;h3&gt;
Run the Project
&lt;/h3&gt; &lt;br /&gt;Run the project either in debug mode or via the executable. You’ll see a temporary (and very ugly) user interface. &lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Select your server if needed&lt;/li&gt;&lt;li&gt;Select the GenDotNetSample database or other database&lt;/li&gt;&lt;li&gt;Press the button “Make Sp Metadata”&lt;/li&gt;&lt;li&gt;Press the button &amp;quot;Generate Select&amp;quot;&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;Make Sp Metadata accomplishes two things. It extracts metadata from the database and it morphs it based on the ORMFile. You can run these steps separately via these buttons.&lt;br /&gt; &lt;br /&gt;Generate Select creates a script in the SQL Output directory and loads this script into your database. Feel free to delete your stored procedures and rerun the tool to recreate them. &lt;br /&gt;
&lt;/div&gt;</description><author>KathleenDollard</author><pubDate>Sat, 29 Mar 2008 22:34:19 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Directions 20080329103419P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Home&amp;version=7</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;A code generation tool with a granular approach encouraging evolution in individual components. The generation engine and templates are based on VB9.0 XML literals which gives the most robust and powerful generation engine to date. Templates are created against isolated metadata models allowing a plug and play approach to metadata sources. 
&lt;br /&gt; &lt;br /&gt;&lt;i&gt;&lt;b&gt;&lt;u&gt;Be sure to read the &lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Build%20Notes&amp;amp;referringTitle=Home"&gt;Build Notes&lt;/a&gt; before attempting to build the project - or you will almost certainly fail!&lt;/u&gt;&lt;/b&gt;&lt;/i&gt;&lt;br /&gt; &lt;br /&gt;&lt;i&gt;&lt;b&gt;Note from Kathleen:&lt;/b&gt;&lt;/i&gt;&lt;br /&gt; &lt;br /&gt;_One of the rules of CodePlex is that you have to post your project within 30 days of opening it. This is probably a very good rule, however it has been very painful for us. I had prototyped the things in this project in samples for my blog and felt very optimistic. However, immediately after posting to the private group, I realized based on their feedback that the project needed restructuring. Between this and getting the infrastructure back working on the projects I’m using as test beds, it’s been a tough thirty days and the rest of the group has not had a stable build long enough to contribute. Thus I take complete responsibility for the weakness of this CTP. &lt;br /&gt;I’ve  elected to release only source code at this time. This is because if you want an automatic solution that works with your projects you should wait for the next CTP. &lt;br /&gt;On the other hand, there is stuff in this build worth releasing as long as you recognize it as an early CTP._&lt;br /&gt; &lt;br /&gt;&lt;i&gt;Kathleen&lt;/i&gt;&lt;br /&gt; &lt;br /&gt;This March CTP focuses on two core features:&lt;br /&gt; &lt;br /&gt;-	&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Isolated%20metadata%20model&amp;amp;referringTitle=Home"&gt;Isolated metadata model&lt;/a&gt;&lt;br /&gt;-	&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Template%20infrastructure&amp;amp;referringTitle=Home"&gt;Template infrastructure&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;These are the two aspects of the system that most affect templates. &lt;br /&gt; &lt;br /&gt;The remaining portions of the CTP exist only to allow creation and running of templates. &lt;br /&gt; &lt;br /&gt;-	User interface – OK, we know it’s hopeless. Look for a new version in April or May&lt;br /&gt;-	Generation engine – it doesn’t include System.Addin so your assemblies aren’t unloaded. &lt;br /&gt;-	Metadata – only my historic metadata is currently supported. We anticipate EDMX and perhaps other support in April (See &lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Legacy%20Tools&amp;amp;referringTitle=Home"&gt;Legacy Tools&lt;/a&gt;)&lt;br /&gt;-	Language neutral, C#/VB templates – not active in this CTP.&lt;br /&gt;-	Samples – only one lonely sample right now&lt;br /&gt; &lt;br /&gt;We’ve got a ways to go with this; the important thing in this CTP is having a stable core of metadata/infrastructure to build templates on. That’s the first step. Many steps remain. &lt;br /&gt; &lt;br /&gt;If you're dying to get started - download the source, follow the &lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Build%20Notes&amp;amp;referringTitle=Home"&gt;Build Notes&lt;/a&gt;, check out the &lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Directions&amp;amp;referringTitle=Home"&gt;Directions&lt;/a&gt; and see a discussion of the &lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Sample%20Select%20Stored%20Procedure%20Template&amp;amp;referringTitle=Home"&gt;Sample Select Stored Procedure Template&lt;/a&gt;.&lt;br /&gt;
&lt;/div&gt;</description><author>KathleenDollard</author><pubDate>Sat, 29 Mar 2008 22:27:35 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20080329102735P</guid></item><item><title>UPDATED WIKI: Sample Select Stored Procedure Template</title><link>http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Sample Select Stored Procedure Template&amp;version=2</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
SelectSpTemplate
&lt;/h2&gt; &lt;br /&gt;I haven’t got the hang of getting code into wiki, so please open up the code and follow along. It’s one of the reasons we’re temporarily making you download the source. &lt;br /&gt; &lt;br /&gt;Yes, it’s VB. This approach relies on the text processing features of VB 9.0 XML literals. &lt;br /&gt; &lt;br /&gt;&lt;h3&gt;
Imports
&lt;/h3&gt; &lt;br /&gt;There are a number of imports you can explore to find out more about the overall architecture if you are impatient without documentation. The most important thing to note is that there is zero dependence on the specific wrapper. You are running against the SpInputMetadata wrapper, but the template does not know this – it only knows you’re using the stored procedure model. &lt;br /&gt; &lt;br /&gt;&lt;h3&gt;
SqlServerBase
&lt;/h3&gt; &lt;br /&gt;Inheriting from SqlServerBase provides for reuse of some key code segments. This is not required, but is convenient. &lt;br /&gt; &lt;br /&gt;&lt;h3&gt;
Id
&lt;/h3&gt; &lt;br /&gt;This is a Guid ID specific to this template. It allows better error management, although that’s not used in this example. &lt;br /&gt; &lt;br /&gt;&lt;h3&gt;
StoredProcedureName
&lt;/h3&gt; &lt;br /&gt;The template is responsible for establishing the name of each file it produces. This flows down as the StoredProcedureName property which can be any naming you like. The NamingFactory will later provide support for flexible name templating separate from the template.&lt;br /&gt; &lt;br /&gt;&lt;h3&gt;
GenerateContents
&lt;/h3&gt; &lt;br /&gt;This is where you’re template code goes. The infrastructure already created the framework, so all you need is the actual code you want output – deleting the previous stored proc and creating the new one has already been done. &lt;br /&gt;In this case, there’s two calls into the SqlServerBase’s OutputRetrieve method. Once is for the main recordset, and the other occurs for each child. Thus the stored procedure returns the parent entity and each child entity. &lt;br /&gt;You’ll notice a few odd looking things about this template. The &amp;lt;code&amp;gt; element indicates to VB  that it’s entering an XML literal. Within the literal &amp;lt;%= separators offset code. The embedded expression can be a function call or a LINQ expression. &lt;br /&gt; &lt;br /&gt;“But wait! This is XML we’re creating” I can hear you say. Here’s the beauty of XML literals  that makes them a true text processing engine. The .Value method concatenates the contents of all the XML elements in depth first order. If you look at the OutputRetrieve function you’ll see it and it’s nested functions create additional XML nodes. But when the .Value executes these are concatenated into a single string, exactly the code for the stored procedure. &lt;br /&gt; &lt;br /&gt;In this case, the output is identical to manually concatenating all the results. I believe it is essential to readability to offset the code you’re outputting from the code running the template. Thus, all the output is in code blocks. &lt;br /&gt; &lt;br /&gt;If you’re used to CodeSmith, there’s a probably initial freak-out factor. You are not looking at the structure of your output with a few embedded things in it. You’re looking at code. But you can trace down easily to precisely the point of any problem, and have better code support to fix it. There’s also a tight set of recommended naming that’s really essential to managing the very large templates you’ll create in .NET code. &lt;br /&gt;
&lt;/div&gt;</description><author>KathleenDollard</author><pubDate>Sat, 29 Mar 2008 22:26:05 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Sample Select Stored Procedure Template 20080329102605P</guid></item><item><title>UPDATED WIKI: Sample Select Stored Procedure Template</title><link>http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Sample Select Stored Procedure Template&amp;version=1</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
SelectSpTemplate
&lt;/h2&gt; &lt;br /&gt;I haven’t got the hang of getting code into wiki, so please open up the code and follow along. It’s one of the reasons we’re temporarily making you download the source. &lt;br /&gt;Yes, it’s VB. This approach relies on the text processing features of VB 9.0 XML literals. &lt;br /&gt; &lt;br /&gt;&lt;h3&gt;
Imports
&lt;/h3&gt; &lt;br /&gt;There are a number of imports you can explore to find out more about the overall architecture if you are impatient without documentation. The most important thing to note is that there is zero dependence on the specific wrapper. You are running against the SpInputMetadata wrapper, but the template does not know this – it only knows you’re using the stored procedure model. &lt;br /&gt; &lt;br /&gt;&lt;h3&gt;
SqlServerBase
&lt;/h3&gt; &lt;br /&gt;Inheriting from SqlServerBase provides for reuse of some key code segments. This is not required, but is convenient. &lt;br /&gt; &lt;br /&gt;&lt;h3&gt;
Id
&lt;/h3&gt; &lt;br /&gt;This is a Guid ID specific to this template. It allows better error management, although that’s not used in this example. &lt;br /&gt; &lt;br /&gt;&lt;h3&gt;
StoredProcedureName
&lt;/h3&gt; &lt;br /&gt;The template is responsible for establishing the name of each file it produces. This flows down as the StoredProcedureName property which can be any naming you like. The NamingFactory will later provide support for flexible name templating separate from the template.&lt;br /&gt; &lt;br /&gt;&lt;h3&gt;
GenerateContents
&lt;/h3&gt; &lt;br /&gt;This is where you’re template code goes. The infrastructure already created the framework, so all you need is the actual code you want output – deleting the previous stored proc and creating the new one has already been done. &lt;br /&gt;In this case, there’s two calls into the SqlServerBase’s OutputRetrieve method. Once is for the main recordset, and the other occurs for each child. Thus the stored procedure returns the parent entity and each child entity. &lt;br /&gt;You’ll notice a few odd looking things about this template. The &amp;lt;code&amp;gt; element indicates to VB  that it’s entering an XML literal. Within the literal &amp;lt;%= separators offset code. The embedded expression can be a function call or a LINQ expression. &lt;br /&gt; &lt;br /&gt;“But wait! This is XML we’re creating” I can hear you say. Here’s the beauty of XML literals  that makes them a true text processing engine. The .Value method concatenates the contents of all the XML elements in depth first order. If you look at the OutputRetrieve function you’ll see it and it’s nested functions create additional XML nodes. But when the .Value executes these are concatenated into a single string, exactly the code for the stored procedure. &lt;br /&gt; &lt;br /&gt;In this case, the output is identical to manually concatenating all the results. I believe it is essential to readability to offset the code you’re outputting from the code running the template. Thus, all the output is in code blocks. &lt;br /&gt; &lt;br /&gt;If you’re used to CodeSmith, there’s a probably initial freak-out factor. You are not looking at the structure of your output with a few embedded things in it. You’re looking at code. But you can trace down easily to precisely the point of any problem, and have better code support to fix it. There’s also a tight set of recommended naming that’s really essential to managing the very large templates you’ll create in .NET code. &lt;br /&gt;
&lt;/div&gt;</description><author>KathleenDollard</author><pubDate>Sat, 29 Mar 2008 22:25:19 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Sample Select Stored Procedure Template 20080329102519P</guid></item><item><title>UPDATED WIKI: Template infrastructure</title><link>http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Template infrastructure&amp;version=2</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
Template Infrastructure
&lt;/h2&gt; &lt;br /&gt;The template infrastructure is in the TemplateSupport project of the FullProject solution (or in TemplateSupport/TemplateSupport under the trunk).&lt;br /&gt; &lt;br /&gt;Names in the infrastructure end with the suffix &amp;quot;Info.&amp;quot; This distinguishes them from the metadata information which is suffixed with the word &amp;quot;Data.&amp;quot; This is important because there are often identically named concepts that appear in two very different forms. For example: ObjectData represents data about the entity level for creating .NET code. What object are you creating code for and its metadata? The Template infrastructure has the quite distinct concept of ObjectInfo which contains data about the actual source code you're currently creating. The same ObjectData is likely to create several ObjectInfo’s, generally during the running of different templates. &lt;br /&gt; &lt;br /&gt;TemplateInfrastructure supports both SqlServer and .NET templates. This includes the template interface and template base classes. The interface is used against the engine to allow you to entirely replace the TemplateBase. The TemplateBase is for your convenience.&lt;br /&gt; &lt;br /&gt;&lt;i&gt;Currently TemplateInfrastructure is documented through the discussion of the &lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Sample%20Select%20Stored%20Procedure%20Template&amp;amp;referringTitle=Template%20infrastructure"&gt;Sample Select Stored Procedure Template&lt;/a&gt;&lt;/i&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>KathleenDollard</author><pubDate>Sat, 29 Mar 2008 22:24:34 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Template infrastructure 20080329102434P</guid></item><item><title>UPDATED WIKI: Template infrastructure</title><link>http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Template infrastructure&amp;version=1</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
Template Infrastructure
&lt;/h2&gt; &lt;br /&gt;The template infrastructure is in the TemplateSupport project of the FullProject solution (or in TemplateSupport/TemplateSupport under the trunk).&lt;br /&gt; &lt;br /&gt;Names in the infrastructure end with the suffix &amp;quot;Info.&amp;quot; This distinguishes them from the metadata information which is suffixed with the word &amp;quot;Data.&amp;quot; This is important because there are often identically named concepts that appear in two very different forms. For example: ObjectData represents data about the entity level for creating .NET code. What object are you creating code for and its metadata? The Template infrastructure has the quite distinct concept of ObjectInfo which contains data about the actual source code you're currently creating. The same ObjectData is likely to create several ObjectInfo’s, generally during the running of different templates. &lt;br /&gt; &lt;br /&gt;TemplateInfrastructure supports both SqlServer and .NET templates. This includes the template interface and template base classes. The interface is used against the engine to allow you to entirely replace the TemplateBase. The TemplateBase is for your convenience.&lt;br /&gt; &lt;br /&gt;&lt;i&gt;Currently TemplateInfrastructure is documented through the discussion of the Select stored procedure template&lt;/i&gt;&lt;br /&gt;
&lt;/div&gt;</description><author>KathleenDollard</author><pubDate>Sat, 29 Mar 2008 22:06:10 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Template infrastructure 20080329100610P</guid></item><item><title>UPDATED WIKI: Directions</title><link>http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Directions&amp;version=4</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
Directions
&lt;/h2&gt; &lt;br /&gt;&lt;i&gt;We don’t yet support SQL Server Express. We’ve tested only with SQL Server 2005, but anticipate SQL Server 2000 and 2008 would also work&lt;/i&gt;&lt;br /&gt; &lt;br /&gt;_If you haven’t built using the &lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Build%20Notes&amp;amp;referringTitle=Directions"&gt;Build Notes&lt;/a&gt; – do that before continuing. _&lt;br /&gt; &lt;br /&gt;&lt;h3&gt;
Setting Up the Database
&lt;/h3&gt; &lt;br /&gt;You need a database available that has single column primary keys on all tables. Neither Northwind nor AdventureWorksLT, nor NorthwindEF fill this requirement, so we’ve created a sample database for contacts. We anticipate upgrading this database periodically, so don’t include data, or plan to version your data. The only reason you’d want data in this database is for testing. &lt;br /&gt; &lt;br /&gt;Assuming you plan to use GenDotNetSample, create a database with some name on your server. Run the scripts in the Database directory. Check that this database exists and contains four tables. &lt;br /&gt; &lt;br /&gt;&lt;h3&gt;
Create the ORM File
&lt;/h3&gt; &lt;br /&gt;The ORM file must be present for the database to be managed correctly. While the morphing process supports an extremely rich mapping, it’s incredibly complex and we plan to abandon it in favor of a better process in April. Thus, we are not documenting the potential of this file in detail, just explaining that it must be there. The contents for GenDotNetSample are:&lt;br /&gt; &lt;br /&gt;// multi-line&lt;br /&gt;&amp;lt;orm:MappingRoot xmlns:orm=&amp;quot;http://kadgen.com/KADORM.xsd&amp;quot;&lt;br /&gt;					  xmlns:kd=&amp;quot;http://kadgen.com/Special.xsd&amp;quot;&lt;br /&gt;					  MapDataStructure=&amp;quot;GenDotNetSample&amp;quot;&lt;br /&gt;	TransactionType=&amp;quot;ADONET&amp;quot;&lt;br /&gt;	Namespace=&amp;quot;GenDotNet.Samples&amp;quot;&lt;br /&gt;	TransactionForRetrieve=&amp;quot;false&amp;quot;&lt;br /&gt;	RetrievePattern=&amp;quot;Select_&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Object&amp;amp;referringTitle=Directions"&gt;Object&lt;/a&gt;&amp;quot;&lt;br /&gt;	RetrieveChildrenPattern=&amp;quot;SelectChildren&lt;i&gt;&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=FKey&amp;amp;referringTitle=Directions"&gt;FKey&lt;/a&gt;&lt;/i&gt;&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Object&amp;amp;referringTitle=Directions"&gt;Object&lt;/a&gt;&amp;quot;&lt;br /&gt;	RetrieveAlternatePattern=&amp;quot;&lt;i&gt;By&lt;/i&gt;&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Criteria&amp;amp;referringTitle=Directions"&gt;Criteria&lt;/a&gt;&amp;quot;&lt;br /&gt;	SetSelectPattern=&amp;quot;SelectAll_&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Object&amp;amp;referringTitle=Directions"&gt;Object&lt;/a&gt;&amp;quot;&lt;br /&gt;	CreatePattern=&amp;quot;Insert_&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Object&amp;amp;referringTitle=Directions"&gt;Object&lt;/a&gt;&amp;quot;&lt;br /&gt;	UpdatePattern=&amp;quot;Update_&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Object&amp;amp;referringTitle=Directions"&gt;Object&lt;/a&gt;&amp;quot;&lt;br /&gt;	DeletePattern=&amp;quot;Delete_&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Object&amp;amp;referringTitle=Directions"&gt;Object&lt;/a&gt;&amp;quot;&lt;br /&gt;	Generate=&amp;quot;CRUDS&amp;quot;&lt;br /&gt;	CollectionType=&amp;quot;Plural&amp;quot;&amp;gt;&lt;br /&gt;  &amp;lt;!-- SQL Function replacements help the SQL translator. This is used for &lt;br /&gt;	      constraints and defaults --&amp;gt;&lt;br /&gt;  &amp;lt;orm:SQLFunctionReplacement&amp;gt;&lt;br /&gt;    &amp;lt;orm:SQLFunction Name=&amp;quot;getdate&amp;quot; ReplaceWith=&amp;quot;System.DateTime.Today&amp;quot; NETType=&amp;quot;System.DateTime&amp;quot;/&amp;gt;&lt;br /&gt;  &amp;lt;/orm:SQLFunctionReplacement&amp;gt;&lt;br /&gt; &lt;br /&gt;  &amp;lt;!-- Mapping definitions. --&amp;gt;&lt;br /&gt;  &amp;lt;!-- To evaluate the result of these mapping, look at the Retrieve stored procedures --&amp;gt;&lt;br /&gt;  &amp;lt;orm:Mapping Name=&amp;quot;GenDotNet.Samples&amp;quot;&amp;gt;&lt;br /&gt;  &amp;lt;/orm:Mapping&amp;gt;&lt;br /&gt; &lt;br /&gt;&amp;lt;/orm:MappingRoot&amp;gt;&lt;br /&gt; &lt;br /&gt;// single line&lt;br /&gt;If you named your database something other than GenDotNetSample, you must change the name in the MapDataStructure attribute in the MappingRoot element. &lt;br /&gt; &lt;br /&gt;&lt;h3&gt;
Run the Project
&lt;/h3&gt; &lt;br /&gt;Run the project either in debug mode or via the executable. You’ll see a temporary (and very ugly) user interface. &lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Select your server if needed&lt;/li&gt;&lt;li&gt;Select the GenDotNetSample database or other database&lt;/li&gt;&lt;li&gt;Press the button “Make Sp Metadata”&lt;/li&gt;&lt;li&gt;Press the button &amp;quot;Generate Select&amp;quot;&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;Make Sp Metadata accomplishes two things. It extracts metadata from the database and it morphs it based on the ORMFile. You can run these steps separately via these buttons.&lt;br /&gt; &lt;br /&gt;Generate Select creates a script in the SQL Output directory and loads this script into your database. Feel free to delete your stored procedures and rerun the tool to recreate them. &lt;br /&gt;
&lt;/div&gt;</description><author>KathleenDollard</author><pubDate>Sat, 29 Mar 2008 22:05:14 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Directions 20080329100514P</guid></item><item><title>UPDATED WIKI: Directions</title><link>http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Directions&amp;version=3</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
Directions
&lt;/h2&gt; &lt;br /&gt;&lt;i&gt;We don’t yet support SQL Server Express. We’ve tested only with SQL Server 2005, but anticipate SQL Server 2000 and 2008 would also work&lt;/i&gt;&lt;br /&gt; &lt;br /&gt;_If you haven’t built using the &lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Build%20Notes&amp;amp;referringTitle=Directions"&gt;Build Notes&lt;/a&gt; – do that before continuing. _&lt;br /&gt; &lt;br /&gt;&lt;h3&gt;
Setting Up the Database
&lt;/h3&gt; &lt;br /&gt;You need a database available that has single column primary keys on all tables. Neither Northwind nor AdventureWorksLT, nor NorthwindEF fill this requirement, so we’ve created a sample database for contacts. We anticipate upgrading this database periodically, so don’t include data, or plan to version your data. The only reason you’d want data in this database is for testing. &lt;br /&gt; &lt;br /&gt;Assuming you plan to use GenDotNetSample, create a database with some name on your server. Run the scripts in the Database directory. Check that this database exists and contains four tables. &lt;br /&gt; &lt;br /&gt;&lt;h3&gt;
Create the ORM File
&lt;/h3&gt; &lt;br /&gt;The ORM file must be present for the database to be managed correctly. While the morphing process supports an extremely rich mapping, it’s incredibly complex and we plan to abandon it in favor of a better process in April. Thus, we are not documenting the potential of this file in detail, just explaining that it must be there. The contents for GenDotNetSample are:&lt;br /&gt; &lt;br /&gt;// multi-line&lt;br /&gt;&amp;lt;orm:MappingRoot xmlns:orm=&amp;quot;http://kadgen.com/KADORM.xsd&amp;quot;&lt;br /&gt;					  xmlns:kd=&amp;quot;http://kadgen.com/Special.xsd&amp;quot;&lt;br /&gt;					  MapDataStructure=&amp;quot;GenDotNetSample&amp;quot;&lt;br /&gt;	TransactionType=&amp;quot;ADONET&amp;quot;&lt;br /&gt;	Namespace=&amp;quot;GenDotNet.Samples&amp;quot;&lt;br /&gt;	TransactionForRetrieve=&amp;quot;false&amp;quot;&lt;br /&gt;	RetrievePattern=&amp;quot;Select_&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Object&amp;amp;referringTitle=Directions"&gt;Object&lt;/a&gt;&amp;quot;&lt;br /&gt;	RetrieveChildrenPattern=&amp;quot;SelectChildren&lt;i&gt;&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=FKey&amp;amp;referringTitle=Directions"&gt;FKey&lt;/a&gt;&lt;/i&gt;&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Object&amp;amp;referringTitle=Directions"&gt;Object&lt;/a&gt;&amp;quot;&lt;br /&gt;	RetrieveAlternatePattern=&amp;quot;&lt;i&gt;By&lt;/i&gt;&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Criteria&amp;amp;referringTitle=Directions"&gt;Criteria&lt;/a&gt;&amp;quot;&lt;br /&gt;	SetSelectPattern=&amp;quot;SelectAll_&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Object&amp;amp;referringTitle=Directions"&gt;Object&lt;/a&gt;&amp;quot;&lt;br /&gt;	CreatePattern=&amp;quot;Insert_&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Object&amp;amp;referringTitle=Directions"&gt;Object&lt;/a&gt;&amp;quot;&lt;br /&gt;	UpdatePattern=&amp;quot;Update_&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Object&amp;amp;referringTitle=Directions"&gt;Object&lt;/a&gt;&amp;quot;&lt;br /&gt;	DeletePattern=&amp;quot;Delete_&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Object&amp;amp;referringTitle=Directions"&gt;Object&lt;/a&gt;&amp;quot;&lt;br /&gt;	Generate=&amp;quot;CRUDS&amp;quot;&lt;br /&gt;	CollectionType=&amp;quot;Plural&amp;quot;&amp;gt;&lt;br /&gt;  &amp;lt;!-- SQL Function replacements help the SQL translator. This is used for &lt;br /&gt;	      constraints and defaults --&amp;gt;&lt;br /&gt;  &amp;lt;orm:SQLFunctionReplacement&amp;gt;&lt;br /&gt;    &amp;lt;orm:SQLFunction Name=&amp;quot;getdate&amp;quot; ReplaceWith=&amp;quot;System.DateTime.Today&amp;quot; NETType=&amp;quot;System.DateTime&amp;quot;/&amp;gt;&lt;br /&gt;  &amp;lt;/orm:SQLFunctionReplacement&amp;gt;&lt;br /&gt; &lt;br /&gt;  &amp;lt;!-- Mapping definitions. --&amp;gt;&lt;br /&gt;  &amp;lt;!-- To evaluate the result of these mapping, look at the Retrieve stored procedures --&amp;gt;&lt;br /&gt;  &amp;lt;orm:Mapping Name=&amp;quot;GenDotNet.Samples&amp;quot;&amp;gt;&lt;br /&gt;  &amp;lt;/orm:Mapping&amp;gt;&lt;br /&gt; &lt;br /&gt;&amp;lt;/orm:MappingRoot&amp;gt;&lt;br /&gt; &lt;br /&gt;// single line&lt;br /&gt;If you named your database something other than GenDotNetSample, you must change the name in the MapDataStructure attribute in the MappingRoot element. &lt;br /&gt; &lt;br /&gt;&lt;h3&gt;
Run the Project
&lt;/h3&gt; &lt;br /&gt;Run the project either in debug mode or via the executable. You’ll see a temporary (and very ugly) user interface. &lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Select your server if needed&lt;/li&gt;&lt;li&gt;Select the GenDotNetSample database or other database&lt;/li&gt;&lt;li&gt;Press the button “Make Sp Metadata”&lt;/li&gt;&lt;li&gt;Press the button &amp;quot;Generate Select&amp;quot;&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;Make Sp Metadata accomplishes two things. It extracts metadata from the database and it morphs it based on the ORMFile. You can run these steps separately via these buttons.&lt;br /&gt; &lt;br /&gt;Generate Select creates a script in the SQL Output directory and loads this script into your database. Feel free to delete your stored procedures and rerun the tool to recreate them. &lt;br /&gt;
&lt;/div&gt;</description><author>KathleenDollard</author><pubDate>Sat, 29 Mar 2008 22:04:58 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Directions 20080329100458P</guid></item><item><title>UPDATED WIKI: Directions</title><link>http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Directions&amp;version=2</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
Directions
&lt;/h2&gt; &lt;br /&gt;&lt;i&gt;We don’t yet support SQL Server Express. We’ve tested only with SQL Server 2005, but anticipate SQL Server 2000 and 2008 would also work&lt;/i&gt;&lt;br /&gt; &lt;br /&gt;_If you haven’t built using the &lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Build%20Notes&amp;amp;referringTitle=Directions"&gt;Build Notes&lt;/a&gt; – do that before continuing. _&lt;br /&gt; &lt;br /&gt;&lt;h3&gt;
Setting Up the Database
&lt;/h3&gt; &lt;br /&gt;You need a database available that has single column primary keys on all tables. Neither Northwind nor AdventureWorksLT, nor NorthwindEF fill this requirement, so we’ve created a sample database for contacts. We anticipate upgrading this database periodically, so don’t include data, or plan to version your data. The only reason you’d want data in this database is for testing. &lt;br /&gt; &lt;br /&gt;Assuming you plan to use GenDotNetSample, create a database with some name on your server. Run the scripts in the Database directory. Check that this database exists and contains four tables. &lt;br /&gt; &lt;br /&gt;&lt;h3&gt;
Create the ORM File
&lt;/h3&gt; &lt;br /&gt;The ORM file must be present for the database to be managed correctly. While the morphing process supports an extremely rich mapping, it’s incredibly complex and we plan to abandon it in favor of a better process in April. Thus, we are not documenting the potential of this file in detail, just explaining that it must be there. The contents for GenDotNetSample are:&lt;br /&gt; &lt;br /&gt;// multi-line&lt;br /&gt;&amp;lt;orm:MappingRoot xmlns:orm=&amp;quot;http://kadgen.com/KADORM.xsd&amp;quot;&lt;br /&gt;					  xmlns:kd=&amp;quot;http://kadgen.com/Special.xsd&amp;quot;&lt;br /&gt;					  MapDataStructure=&amp;quot;GenDotNetSample&amp;quot;&lt;br /&gt;	TransactionType=&amp;quot;ADONET&amp;quot;&lt;br /&gt;	Namespace=&amp;quot;GenDotNet.Samples&amp;quot;&lt;br /&gt;	TransactionForRetrieve=&amp;quot;false&amp;quot;&lt;br /&gt;	RetrievePattern=&amp;quot;Select_&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Object&amp;amp;referringTitle=Directions"&gt;Object&lt;/a&gt;&amp;quot;&lt;br /&gt;	RetrieveChildrenPattern=&amp;quot;SelectChildren&lt;i&gt;&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=FKey&amp;amp;referringTitle=Directions"&gt;FKey&lt;/a&gt;&lt;/i&gt;&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Object&amp;amp;referringTitle=Directions"&gt;Object&lt;/a&gt;&amp;quot;&lt;br /&gt;	RetrieveAlternatePattern=&amp;quot;&lt;i&gt;By&lt;/i&gt;&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Criteria&amp;amp;referringTitle=Directions"&gt;Criteria&lt;/a&gt;&amp;quot;&lt;br /&gt;	SetSelectPattern=&amp;quot;SelectAll_&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Object&amp;amp;referringTitle=Directions"&gt;Object&lt;/a&gt;&amp;quot;&lt;br /&gt;	CreatePattern=&amp;quot;Insert_&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Object&amp;amp;referringTitle=Directions"&gt;Object&lt;/a&gt;&amp;quot;&lt;br /&gt;	UpdatePattern=&amp;quot;Update_&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Object&amp;amp;referringTitle=Directions"&gt;Object&lt;/a&gt;&amp;quot;&lt;br /&gt;	DeletePattern=&amp;quot;Delete_&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Object&amp;amp;referringTitle=Directions"&gt;Object&lt;/a&gt;&amp;quot;&lt;br /&gt;	Generate=&amp;quot;CRUDS&amp;quot;&lt;br /&gt;	CollectionType=&amp;quot;Plural&amp;quot;&amp;gt;&lt;br /&gt;  &amp;lt;!-- SQL Function replacements help the SQL translator. This is used for &lt;br /&gt;	      constraints and defaults --&amp;gt;&lt;br /&gt;  &amp;lt;orm:SQLFunctionReplacement&amp;gt;&lt;br /&gt;    &amp;lt;orm:SQLFunction Name=&amp;quot;getdate&amp;quot; ReplaceWith=&amp;quot;System.DateTime.Today&amp;quot; NETType=&amp;quot;System.DateTime&amp;quot;/&amp;gt;&lt;br /&gt;  &amp;lt;/orm:SQLFunctionReplacement&amp;gt;&lt;br /&gt; &lt;br /&gt;  &amp;lt;!-- Mapping definitions. --&amp;gt;&lt;br /&gt;  &amp;lt;!-- To evaluate the result of these mapping, look at the Retrieve stored procedures --&amp;gt;&lt;br /&gt;  &amp;lt;orm:Mapping Name=&amp;quot;GenDotNet.Samples&amp;quot;&amp;gt;&lt;br /&gt;  &amp;lt;/orm:Mapping&amp;gt;&lt;br /&gt; &lt;br /&gt;&amp;lt;/orm:MappingRoot&amp;gt;&lt;br /&gt; &lt;br /&gt;// single line&lt;br /&gt;If you named your database something other than GenDotNetSample, you must change the name in the MapDataStructure attribute in the MappingRoot element. &lt;br /&gt; &lt;br /&gt;&lt;h3&gt;
Run the Project
&lt;/h3&gt; &lt;br /&gt;Run the project either in debug mode or via the executable. You’ll see a temporary (and very ugly) user interface. &lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Select your server if needed&lt;/li&gt;&lt;li&gt;Select the GenDotNetSample database or other database&lt;/li&gt;&lt;li&gt;Press the button “Make Sp Metadata”&lt;/li&gt;
&lt;/ol&gt;This accomplishes two things. It extracts metadata from the database and it morphs it based on the ORMFile. You can run these steps separately via these buttons.&lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Press the button Generate Select&lt;/li&gt;
&lt;/ol&gt;This creates a script in the SQL Output directory and loads this script into your database. Feel free to delete your stored procedures and rerun the tool to recreate them. &lt;br /&gt;
&lt;/div&gt;</description><author>KathleenDollard</author><pubDate>Sat, 29 Mar 2008 22:04:11 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Directions 20080329100411P</guid></item><item><title>UPDATED WIKI: Directions</title><link>http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Directions&amp;version=1</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
Directions
&lt;/h2&gt; &lt;br /&gt;&lt;i&gt;We don’t yet support SQL Server Express. We’ve tested only with SQL Server 2005, but anticipate SQL Server 2000 and 2008 would also work&lt;/i&gt;&lt;br /&gt; &lt;br /&gt;_If you haven’t built using the &lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Build%20Notes&amp;amp;referringTitle=Directions"&gt;Build Notes&lt;/a&gt; – do that before continuing. _&lt;br /&gt; &lt;br /&gt;&lt;h3&gt;
Setting Up the Database
&lt;/h3&gt; &lt;br /&gt;You need a database available that has single column primary keys on all tables. Neither Northwind nor AdventureWorksLT, nor NorthwindEF fill this requirement, so we’ve created a sample database for contacts. We anticipate upgrading this database periodically, so don’t include data, or plan to version your data. The only reason you’d want data in this database is for testing. &lt;br /&gt; &lt;br /&gt;Assuming you plan to use GenDotNetSample, create a database with some name on your server. Run the scripts in the Database directory. Check that this database exists and contains four tables. &lt;br /&gt; &lt;br /&gt;&lt;h3&gt;
Create the ORM File
&lt;/h3&gt; &lt;br /&gt;The ORM file must be present for the database to be managed correctly. While the morphing process supports an extremely rich mapping, it’s incredibly complex and we plan to abandon it in favor of a better process in April. Thus, we are not documenting the potential of this file in detail, just explaining that it must be there. The contents for GenDotNetSample are:&lt;br /&gt; &lt;br /&gt;// multi-line&lt;br /&gt;&amp;lt;orm:MappingRoot xmlns:orm=&amp;quot;http://kadgen.com/KADORM.xsd&amp;quot;&lt;br /&gt;					  xmlns:kd=&amp;quot;http://kadgen.com/Special.xsd&amp;quot;&lt;br /&gt;					  MapDataStructure=&amp;quot;GenDotNetSample&amp;quot;&lt;br /&gt;	TransactionType=&amp;quot;ADONET&amp;quot;&lt;br /&gt;	Namespace=&amp;quot;GenDotNet.Samples&amp;quot;&lt;br /&gt;	TransactionForRetrieve=&amp;quot;false&amp;quot;&lt;br /&gt;	RetrievePattern=&amp;quot;Select_&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Object&amp;amp;referringTitle=Directions"&gt;Object&lt;/a&gt;&amp;quot;&lt;br /&gt;	RetrieveChildrenPattern=&amp;quot;SelectChildren&lt;i&gt;&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=FKey&amp;amp;referringTitle=Directions"&gt;FKey&lt;/a&gt;&lt;/i&gt;&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Object&amp;amp;referringTitle=Directions"&gt;Object&lt;/a&gt;&amp;quot;&lt;br /&gt;	RetrieveAlternatePattern=&amp;quot;&lt;i&gt;By&lt;/i&gt;&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Criteria&amp;amp;referringTitle=Directions"&gt;Criteria&lt;/a&gt;&amp;quot;&lt;br /&gt;	SetSelectPattern=&amp;quot;SelectAll_&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Object&amp;amp;referringTitle=Directions"&gt;Object&lt;/a&gt;&amp;quot;&lt;br /&gt;	CreatePattern=&amp;quot;Insert_&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Object&amp;amp;referringTitle=Directions"&gt;Object&lt;/a&gt;&amp;quot;&lt;br /&gt;	UpdatePattern=&amp;quot;Update_&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Object&amp;amp;referringTitle=Directions"&gt;Object&lt;/a&gt;&amp;quot;&lt;br /&gt;	DeletePattern=&amp;quot;Delete_&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Object&amp;amp;referringTitle=Directions"&gt;Object&lt;/a&gt;&amp;quot;&lt;br /&gt;	Generate=&amp;quot;CRUDS&amp;quot;&lt;br /&gt;	CollectionType=&amp;quot;Plural&amp;quot;&amp;gt;&lt;br /&gt;  &amp;lt;!-- SQL Function replacements help the SQL translator. This is used for &lt;br /&gt;	      constraints and defaults --&amp;gt;&lt;br /&gt;  &amp;lt;orm:SQLFunctionReplacement&amp;gt;&lt;br /&gt;    &amp;lt;orm:SQLFunction Name=&amp;quot;getdate&amp;quot; ReplaceWith=&amp;quot;System.DateTime.Today&amp;quot; NETType=&amp;quot;System.DateTime&amp;quot;/&amp;gt;&lt;br /&gt;  &amp;lt;/orm:SQLFunctionReplacement&amp;gt;&lt;br /&gt; &lt;br /&gt;  &amp;lt;!-- Mapping definitions. --&amp;gt;&lt;br /&gt;  &amp;lt;!-- To evaluate the result of these mapping, look at the Retrieve stored procedures --&amp;gt;&lt;br /&gt;  &amp;lt;orm:Mapping Name=&amp;quot;GenDotNet.Samples&amp;quot;&amp;gt;&lt;br /&gt;  &amp;lt;/orm:Mapping&amp;gt;&lt;br /&gt; &lt;br /&gt;&amp;lt;/orm:MappingRoot&amp;gt;&lt;br /&gt; &lt;br /&gt;// single line&lt;br /&gt;If you named your database something other than GenDotNetSample, you must change the name in the MapDataStructure attribute in the MappingRoot element. &lt;br /&gt; &lt;br /&gt;&lt;h3&gt;
Run the Project
&lt;/h3&gt; &lt;br /&gt;Run the project either in debug mode or via the executable. You’ll see a temporary (and very ugly) user interface. &lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Select your server if needed&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Select the GenDotNetSample database or other database&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Press the button “Make Sp Metadata”&lt;/li&gt;
&lt;/ol&gt;This accomplishes two things. It extracts metadata from the database and it morphs it based on the ORMFile. You can run these steps separately via these buttons.&lt;br /&gt; &lt;br /&gt;#Press the button Generate Select&lt;br /&gt;This creates a script in the SQL Output directory and loads this script into your database. Feel free to delete your stored procedures and rerun the tool to recreate them. &lt;br /&gt;
&lt;/div&gt;</description><author>KathleenDollard</author><pubDate>Sat, 29 Mar 2008 22:03:38 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Directions 20080329100338P</guid></item><item><title>UPDATED WIKI: Build Notes</title><link>http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Build Notes&amp;version=3</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
Build Notes
&lt;/h2&gt; &lt;br /&gt;The code exists in two projects: FullProject under the Trunk and LegacyTools under LegacyTools. These are separate because this CTP is built on my past code gen tool. The old stuff is being replaced as part of the conversion, but of course this takes time. This CTP focuses on the core isolated metadata, template support infrastructure, and engine structure. The old metadata extraction tools are still used. These are caught in a web of dependencies in the old project. To give an idea of scope, there are 1000 files in the legacy stuff and 500 in the new, so there is a ton of crap we’re getting rid of. We don't want to contaminate the new project with this old crap, which results in the two projects which complicates the build. &lt;br /&gt; &lt;br /&gt;To build, follow these instructions:&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Open Visual Studio 2008 with the Trunk/FullProject.sln&lt;/li&gt;&lt;li&gt;Open a second instance of Visual Studio 2008 with Trunk/LegacyMetadataTools/LegacyTools.sln&lt;/li&gt;&lt;li&gt;Rebuild solution the LegacyTools solution. If it doesn’t build, report the problems&lt;/li&gt;&lt;li&gt;In the FullProject solution, in the SimpleUI project, set a reference&lt;/li&gt;&lt;ol&gt;
&lt;li&gt;Right click, and Add a reference&lt;/li&gt;&lt;li&gt;Go to the Browse tab&lt;/li&gt;&lt;li&gt;Go up to the trunk and down to reference to Trunk/LegacyMetadataTools/LogicWrappers2008/bin/debug&lt;/li&gt;&lt;li&gt;Set a reference to LogicWrappers2008.dll&lt;/li&gt;
&lt;/ol&gt;&lt;li&gt;Set SimpleUI as the startup project&lt;/li&gt;&lt;li&gt;Rebuild Solution on FullProject&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;Go next to &lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Directions&amp;amp;referringTitle=Build%20Notes"&gt;Directions&lt;/a&gt; to get started.&lt;br /&gt; &lt;br /&gt;I look forward to any comments you may have.  Please keep expectations reasonable. We’ve concentrated on a solid metadata and template infrastructure framework as well as a lot of work (some of which is not yet released around System.AddIn usage) on how the engine will work. &lt;br /&gt;
&lt;/div&gt;</description><author>KathleenDollard</author><pubDate>Sat, 29 Mar 2008 21:51:19 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Build Notes 20080329095119P</guid></item><item><title>UPDATED WIKI: Build Notes</title><link>http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Build Notes&amp;version=2</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
Build Notes
&lt;/h2&gt; &lt;br /&gt;The code exists in two projects: FullProject under the Trunk and LegacyTools under LegacyTools. These are separate because this CTP is built on my past code gen tool. The old stuff is being replaced as part of the conversion, but of course this takes time. This CTP focuses on the core isolated metadata, template support infrastructure, and engine structure. The old metadata extraction tools are still used. These are caught in a web of dependencies in the old project. To give an idea of scope, there are 1000 files in the legacy stuff and 500 in the new, so there is a ton of crap we’re getting rid of. We don't want to contaminate the new project with this old crap, which results in the two projects which complicates the build. &lt;br /&gt; &lt;br /&gt;To build, follow these instructions:&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Open Visual Studio 2008 with the Trunk/FullProject.sln&lt;/li&gt;&lt;li&gt;Open a second instance of Visual Studio 2008 with Trunk/LegacyMetadataTools/LegacyTools.sln&lt;/li&gt;&lt;li&gt;Rebuild solution the LegacyTools solution. If it doesn’t build, report the problems&lt;/li&gt;&lt;li&gt;In the FullProject solution, in the SimpleUI project, set a reference&lt;/li&gt;&lt;ol&gt;
&lt;li&gt;Right click, and Add a reference&lt;/li&gt;&lt;li&gt;Go to the Browse tab&lt;/li&gt;&lt;li&gt;Go up to the trunk and down to reference to Trunk/LegacyMetadataTools/LogicWrappers2008/bin/debug&lt;/li&gt;&lt;li&gt;Set a reference to LogicWrappers2008.dll&lt;/li&gt;
&lt;/ol&gt;&lt;li&gt;Rebuild Solution on FullProject&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;Go next to &lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Directions&amp;amp;referringTitle=Build%20Notes"&gt;Directions&lt;/a&gt; to get started.&lt;br /&gt; &lt;br /&gt;I look forward to any comments you may have.  Please keep expectations reasonable. We’ve concentrated on a solid metadata and template infrastructure framework as well as a lot of work (some of which is not yet released around System.AddIn usage) on how the engine will work. &lt;br /&gt;
&lt;/div&gt;</description><author>KathleenDollard</author><pubDate>Sat, 29 Mar 2008 21:49:10 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Build Notes 20080329094910P</guid></item><item><title>UPDATED WIKI: Build Notes</title><link>http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Build Notes&amp;version=1</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
Build Notes
&lt;/h2&gt; &lt;br /&gt;The code exists in two projects: FullProject under the Trunk and LegacyTools under LegacyTools. These are separate because this CTP is built on my past code gen tool. The old stuff is being replaced as part of the conversion, but of course this takes time. This CTP focuses on the core isolated metadata, template support infrastructure, and engine structure. The old metadata extraction tools are still used. These are caught in a web of dependencies in the old project. To give an idea of scope, there are 1000 files in the legacy stuff and 500 in the new, so there is a ton of crap we’re getting rid of. We don't want to contaminate the new project with this old crap, which results in the two projects which complicates the build. &lt;br /&gt; &lt;br /&gt;To build, follow these instructions:&lt;br /&gt; &lt;br /&gt;&lt;ol&gt;
&lt;li&gt;Open Visual Studio 2008 with the Trunk/FullProject.sln&lt;/li&gt;&lt;li&gt;Open a second instance of Visual Studio 2008 with Trunk/LegacyMetadataTools/LegacyTools.sln&lt;/li&gt;&lt;li&gt;Rebuild solution the LegacyTools solution. If it doesn’t build, report the problems&lt;/li&gt;&lt;li&gt;In the FullProject solution, in the SimpleUI project, set a reference&lt;/li&gt;&lt;ol&gt;
&lt;li&gt;Right click, and Add a reference&lt;/li&gt;&lt;li&gt;Go to the Browse tab&lt;/li&gt;&lt;li&gt;Go up to the trunk and down to reference to Trunk/LegacyMetadataTools/LogicWrappers2008/bin/debug&lt;/li&gt;&lt;li&gt;Set a reference to LogicWrappers2008.dll&lt;/li&gt;
&lt;/ol&gt;&lt;li&gt;Rebuild Solution on FullProject&lt;/li&gt;
&lt;/ol&gt; &lt;br /&gt;Go next to [Directions} to get started.&lt;br /&gt; &lt;br /&gt;I look forward to any comments you may have.  Please keep expectations reasonable. We’ve concentrated on a solid metadata and template infrastructure framework as well as a lot of work (some of which is not yet released around System.AddIn usage) on how the engine will work. &lt;br /&gt;
&lt;/div&gt;</description><author>KathleenDollard</author><pubDate>Sat, 29 Mar 2008 21:48:51 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Build Notes 20080329094851P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Home&amp;version=6</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;A code generation tool with a granular approach encouraging evolution in individual components. The generation engine and templates are based on VB9.0 XML literals which gives the most robust and powerful generation engine to date. Templates are created against isolated metadata models allowing a plug and play approach to metadata sources. 
&lt;br /&gt; &lt;br /&gt;&lt;i&gt;&lt;b&gt;&lt;u&gt;Be sure to read the &lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Build%20Notes&amp;amp;referringTitle=Home"&gt;Build Notes&lt;/a&gt; before attempting to build the project - or you will almost certainly fail!&lt;/u&gt;&lt;/b&gt;&lt;/i&gt;&lt;br /&gt; &lt;br /&gt;&lt;i&gt;&lt;b&gt;Note from Kathleen:&lt;/b&gt;&lt;/i&gt;&lt;br /&gt; &lt;br /&gt;_One of the rules of CodePlex is that you have to post your project within 30 days of opening it. This is probably a very good rule, however it has been very painful for us. I had prototyped the things in this project in samples for my blog and felt very optimistic. However, immediately after posting to the private group, I realized based on their feedback that the project needed restructuring. Between this and getting the infrastructure back working on the projects I’m using as test beds, it’s been a tough thirty days and the rest of the group has not had a stable build long enough to contribute. Thus I take complete responsibility for the weakness of this CTP. &lt;br /&gt;I’ve  elected to release only source code at this time. This is because if you want an automatic solution that works with your projects you should wait for the next CTP. &lt;br /&gt;On the other hand, there is stuff in this build worth releasing as long as you recognize it as an early CTP._&lt;br /&gt; &lt;br /&gt;&lt;i&gt;Kathleen&lt;/i&gt;&lt;br /&gt; &lt;br /&gt;This March CTP focuses on two core features:&lt;br /&gt; &lt;br /&gt;-	&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Isolated%20metadata%20model&amp;amp;referringTitle=Home"&gt;Isolated metadata model&lt;/a&gt;&lt;br /&gt;-	&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Template%20infrastructure&amp;amp;referringTitle=Home"&gt;Template infrastructure&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;These are the two aspects of the system that most affect templates. &lt;br /&gt; &lt;br /&gt;The remaining portions of the CTP exist only to allow creation and running of templates. &lt;br /&gt; &lt;br /&gt;-	User interface – OK, we know it’s hopeless. Look for a new version in April or May&lt;br /&gt;-	Generation engine – it doesn’t include System.Addin so your assemblies aren’t unloaded. &lt;br /&gt;-	Metadata – only my historic metadata is currently supported. We anticipate EDMX and perhaps other support in April (See &lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Legacy%20Tools&amp;amp;referringTitle=Home"&gt;Legacy Tools&lt;/a&gt;)&lt;br /&gt;-	Language neutral, C#/VB templates – not active in this CTP.&lt;br /&gt;-	Samples – only one lonely sample right now&lt;br /&gt; &lt;br /&gt;We’ve got a ways to go with this; the important thing in this CTP is having a stable core of metadata/infrastructure to build templates on. That’s the first step. Many steps remain. &lt;br /&gt;
&lt;/div&gt;</description><author>KathleenDollard</author><pubDate>Sat, 29 Mar 2008 21:47:36 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20080329094736P</guid></item><item><title>UPDATED WIKI: Home</title><link>http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Home&amp;version=5</link><description>&lt;div class="wikidoc"&gt;
&lt;b&gt;Project Description&lt;/b&gt;&lt;br /&gt;A code generation tool with a granular approach encouraging evolution in individual components. The generation engine and templates are based on VB9.0 XML literals which gives the most robust and powerful generation engine to date. Templates are created against isolated metadata models allowing a plug and play approach to metadata sources. 
&lt;br /&gt; &lt;br /&gt; &lt;br /&gt;&lt;b&gt;**Delete the following note before publishing **&lt;/b&gt;&lt;br /&gt; &lt;br /&gt;This project is currently in setup mode and only available to project coordinators and developers. Once you have finished setting up your project you can publish it to make it available to all CodePlex visitors.&lt;br /&gt; &lt;br /&gt;There are three requirements before you publish:&lt;br /&gt; &lt;br /&gt;- Edit this page to provide information about your project&lt;br /&gt;- Upload the initial source code for your project&lt;br /&gt;- Add your project license&lt;br /&gt; &lt;br /&gt;Additional information on starting a new project is available here: &lt;a href="http://www.codeplex.com/Wiki/View.aspx?ProjectName=CodePlex&amp;amp;title=CodePlex%20Project%20Startup%20Guide" class="externalLink"&gt;Project Startup Guide&lt;span class="externalLinkIcon"&gt;&lt;/span&gt;&lt;/a&gt;.&lt;br /&gt;&lt;i&gt;&lt;b&gt;&lt;u&gt;Be sure to read the &lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Build%20Notes&amp;amp;referringTitle=Home"&gt;Build Notes&lt;/a&gt; before attempting to build the project - or you will almost certainly fail!&lt;/u&gt;&lt;/b&gt;&lt;/i&gt;&lt;br /&gt; &lt;br /&gt;&lt;i&gt;&lt;b&gt;Note from Kathleen:&lt;/b&gt;&lt;/i&gt;&lt;br /&gt; &lt;br /&gt;_One of the rules of CodePlex is that you have to post your project within 30 days of opening it. This is probably a very good rule, however it has been very painful for us. I had prototyped the things in this project in samples for my blog and felt very optimistic. However, immediately after posting to the private group, I realized based on their feedback that the project needed restructuring. Between this and getting the infrastructure back working on the projects I’m using as test beds, it’s been a tough thirty days and the rest of the group has not had a stable build long enough to contribute. Thus I take complete responsibility for the weakness of this CTP. &lt;br /&gt;I’ve  elected to release only source code at this time. This is because if you want an automatic solution that works with your projects you should wait for the next CTP. &lt;br /&gt;On the other hand, there is stuff in this build worth releasing as long as you recognize it as an early CTP._&lt;br /&gt; &lt;br /&gt;&lt;i&gt;Kathleen&lt;/i&gt;&lt;br /&gt; &lt;br /&gt;This March CTP focuses on two core features:&lt;br /&gt; &lt;br /&gt;-	&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Isolated%20metadata%20model&amp;amp;referringTitle=Home"&gt;Isolated metadata model&lt;/a&gt;&lt;br /&gt;-	&lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Template%20infrastructure&amp;amp;referringTitle=Home"&gt;Template infrastructure&lt;/a&gt;&lt;br /&gt; &lt;br /&gt;These are the two aspects of the system that most affect templates. &lt;br /&gt; &lt;br /&gt;The remaining portions of the CTP exist only to allow creation and running of templates. &lt;br /&gt; &lt;br /&gt;-	User interface – OK, we know it’s hopeless. Look for a new version in April or May&lt;br /&gt;-	Generation engine – it doesn’t include System.Addin so your assemblies aren’t unloaded. &lt;br /&gt;-	Metadata – only my historic metadata is currently supported. We anticipate EDMX and perhaps other support in April (See &lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Legacy%20Tools&amp;amp;referringTitle=Home"&gt;Legacy Tools&lt;/a&gt;)&lt;br /&gt;-	Language neutral, C#/VB templates – not active in this CTP.&lt;br /&gt;-	Samples – only one lonely sample right now&lt;br /&gt; &lt;br /&gt;We’ve got a ways to go with this; the important thing in this CTP is having a stable core of metadata/infrastructure to build templates on. That’s the first step. Many steps remain. &lt;br /&gt;
&lt;/div&gt;</description><author>KathleenDollard</author><pubDate>Sat, 29 Mar 2008 21:46:24 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Home 20080329094624P</guid></item><item><title>UPDATED WIKI: Legacy Tools</title><link>http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=Legacy Tools&amp;version=2</link><description>&lt;div class="wikidoc"&gt;
&lt;h2&gt;
Legacy Stuff
&lt;/h2&gt; &lt;br /&gt;&lt;i&gt;From a practical perspective, you can ignore the thousand or so files in trunk/LegacyMetadataTools&lt;/i&gt;&lt;br /&gt; &lt;br /&gt;There’s a pile of legacy stuff that’s in the project right now because we need to do some sort of metadata extraction and morphing. Reusing this old code allowed us to focus on the critical areas of metadata models, template infrastructure, and laying the groundwork for a robust engine. The legacy mapping depends on an ORM file which must be present (see &lt;a href="http://www.codeplex.com/GenDotNet/Wiki/View.aspx?title=directions&amp;amp;referringTitle=Legacy%20Tools"&gt;directions&lt;/a&gt;). The ORMFile is a pain to use. In April this will either be replaced or documented to allow mapping. &lt;br /&gt; &lt;br /&gt;The legacy stuff is in a separate solution. Please see the Build Notes to see how to manage this separate solution during the build. The LogicWrapper2008 project provides a temporary bridge to the legacy stuff. This limits the dependencies between these two sections. It also hides the complexity of the legacy interfaces. The dozens of switches and dials which made up this very confusing interface are being reconsidered based on new ideas of decision responsibility. Look for more later. In the short term, I’ve hardcoded the most likely values into the LogicWrapper.&lt;br /&gt; &lt;br /&gt;Because this is in a separate solution, the reference will easily become broken (let me know if you solve this) and debugging will be a pain. However, this is preferable to contaminating the new project with the old crap, all of this is slated for rewrite, hopefully with the EF modelers. &lt;br /&gt; &lt;br /&gt;The legacy stuff exists in the LegacyMetadataTools directory. &lt;br /&gt;
&lt;/div&gt;</description><author>KathleenDollard</author><pubDate>Sat, 29 Mar 2008 21:41:43 GMT</pubDate><guid isPermaLink="false">UPDATED WIKI: Legacy Tools 20080329094143P</guid></item></channel></rss>