<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Tim Fischer's .NET Blog</title><link>http://blogs.msdn.com/timfis/default.aspx</link><description>This Blog will continue the good habbit of delivering to you what might be missing to get things done even more quickly in the medium-sized application space. 

</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Enterprise Apps in Windows Azure - Calling the Internet Service Bus (.NET Services from Azure)</title><link>http://blogs.msdn.com/timfis/archive/2009/11/07/enterprise-apps-in-windows-azure-calling-the-internet-service-bus-net-services-from-azure.aspx</link><pubDate>Sat, 07 Nov 2009 06:21:03 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9919003</guid><dc:creator>timfis</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/timfis/comments/9919003.aspx</comments><wfw:commentRss>http://blogs.msdn.com/timfis/commentrss.aspx?PostID=9919003</wfw:commentRss><description>&lt;p&gt;In the last days I implemented a typical &lt;strong&gt;enterprise&lt;/strong&gt; cloud app on Windows Azure. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;&lt;u&gt;WARNING:&lt;/u&gt; Beyond this step no Hello World scenarios! Watch your step!&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/timfis/WindowsLiveWriter/CallingtheInternetS.NETServicesfromAzure_60FC/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/timfis/WindowsLiveWriter/CallingtheInternetS.NETServicesfromAzure_60FC/image_thumb.png" width="599" height="428" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/timfis/WindowsLiveWriter/CallingtheInternetS.NETServicesfromAzure_60FC/image_4.png"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The scenario is based on &lt;a href="http://gallery.expression.microsoft.com/en-us/CoolBlueTimeTracker"&gt;the famous TimeTracker SL3 Sample&lt;/a&gt; which you can find in the Expression Gallery. It is a vendor management system where I can track my vendors time and i can approve the tasks and then have them send over to SAP to create a Purchase Order.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/timfis/WindowsLiveWriter/CallingtheInternetS.NETServicesfromAzure_60FC/image_14.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/timfis/WindowsLiveWriter/CallingtheInternetS.NETServicesfromAzure_60FC/image_thumb_5.png" width="540" height="765" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;The Data Model is quite simple, too and done with Entity Framework over SQL Azure.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/timfis/WindowsLiveWriter/CallingtheInternetS.NETServicesfromAzure_60FC/image_12.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/timfis/WindowsLiveWriter/CallingtheInternetS.NETServicesfromAzure_60FC/image_thumb_4.png" width="546" height="593" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;In 2010 it is nice that you can generate DDL from the Diagram using a right click and select generate database from model. I used that and modified a bit of the code to work in SQL Azure.&lt;/p&gt;  &lt;p&gt;With help of the &lt;a href="http://sqlazureexplorer.codeplex.com/"&gt;SQL Azure Data Explorer&lt;/a&gt; you can actually see the data from within     &lt;br /&gt;VS2010&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/timfis/WindowsLiveWriter/CallingtheInternetS.NETServicesfromAzure_60FC/image_16.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/timfis/WindowsLiveWriter/CallingtheInternetS.NETServicesfromAzure_60FC/image_thumb_6.png" width="579" height="523" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Based on the time-tracker sample it was quite easy to adjust the connection string to point to SQL Azure and add a .xap mapping for SL to the web.config. Then the Time-Tracker already runs smoothly on Windows Azure. Also I added support for SSL and SSO on Windows Azure&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/timfis/WindowsLiveWriter/CallingtheInternetS.NETServicesfromAzure_60FC/image_24.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/timfis/WindowsLiveWriter/CallingtheInternetS.NETServicesfromAzure_60FC/image_thumb_10.png" width="302" height="196" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/timfis/WindowsLiveWriter/CallingtheInternetS.NETServicesfromAzure_60FC/image_20.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/timfis/WindowsLiveWriter/CallingtheInternetS.NETServicesfromAzure_60FC/image_thumb_8.png" width="584" height="425" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Now the reason why i am blogging: I found it quite easy to use the Echoing Sample from the .NET Services SDK as a basis to add communication from my WebRole to my ERP system. However this seemed to work only on my machine and in the simulator.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/timfis/WindowsLiveWriter/CallingtheInternetS.NETServicesfromAzure_60FC/image_22.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/timfis/WindowsLiveWriter/CallingtheInternetS.NETServicesfromAzure_60FC/image_thumb_9.png" width="606" height="370" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;After quite some time I found what was going wrong when accessing the Service Bus from within a WebRole in Azure (when deployed) using NetTcpBinding. I got Configuration Binding Extension not found.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/timfis/WindowsLiveWriter/CallingtheInternetS.NETServicesfromAzure_60FC/image_26.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/timfis/WindowsLiveWriter/CallingtheInternetS.NETServicesfromAzure_60FC/image_thumb_11.png" width="623" height="368" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;I then asked the .NET Services Team what is wrong and it turns out that:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#00ff00"&gt;To use the config elements in Azure you need to move the extensions into your web.config. To find them, take a look at your machine.config file. You’ll have to replicate the system.serviceModel extensions that reference the Microsoft.ServiceBus assembly into your web.config that you deploy into Azure. We haven’t made a cut &amp;amp; paste snippet for that yet, but we really should.&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;If this Problem did not occur i might not have blogged about the whole story. So it seems also to have its good side. ;-). &lt;/p&gt;  &lt;p&gt;Now all works fine also in the Cloud ;-)&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/timfis/WindowsLiveWriter/CallingtheInternetS.NETServicesfromAzure_60FC/image_22.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/timfis/WindowsLiveWriter/CallingtheInternetS.NETServicesfromAzure_60FC/image_thumb_9.png" width="606" height="370" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Happy Cloud Computing!&lt;/p&gt;  &lt;p&gt;Tim&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9919003" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/timfis/archive/tags/English/default.aspx">English</category><category domain="http://blogs.msdn.com/timfis/archive/tags/.NET+3.5+SP1/default.aspx">.NET 3.5 SP1</category><category domain="http://blogs.msdn.com/timfis/archive/tags/German/default.aspx">German</category><category domain="http://blogs.msdn.com/timfis/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.msdn.com/timfis/archive/tags/Windows+Azure/default.aspx">Windows Azure</category><category domain="http://blogs.msdn.com/timfis/archive/tags/.NET+4/default.aspx">.NET 4</category></item><item><title>Federated Identity (SSO) and Windows Azure</title><link>http://blogs.msdn.com/timfis/archive/2009/11/07/federated-identity-sso-and-windows-azure.aspx</link><pubDate>Sat, 07 Nov 2009 05:49:20 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9918997</guid><dc:creator>timfis</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/timfis/comments/9918997.aspx</comments><wfw:commentRss>http://blogs.msdn.com/timfis/commentrss.aspx?PostID=9918997</wfw:commentRss><description>&lt;p&gt;To get single sign on in the Cloud Microsoft offers Windows Indentity Framework (WIF)&amp;#160; a new addition to the .NET Technologies Stack formerly known as Geneva Framework. WIF is now available as a Release Candidate from MSDN Eval Center together with it’s server part Active Directory Federation Service V2.0 which offers a secure Web-Service for AD as an end-point to Cloud Apps according to WS-Federation and SAML Protocols.&lt;/p&gt;  &lt;p&gt;If you want single sign on in the cloud that is what you need&lt;/p&gt;  &lt;p&gt;&lt;a title="http://code.msdn.microsoft.com/wifwazpassive" href="http://code.msdn.microsoft.com/wifwazpassive"&gt;http://code.msdn.microsoft.com/wifwazpassive&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/de-de/evalcenter/dd440951(en-us).aspx"&gt;http://msdn.microsoft.com/de-de/evalcenter/dd440951(en-us).aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://technet.microsoft.com/de-de/evalcenter/ee476597(en-us).aspx"&gt;http://technet.microsoft.com/de-de/evalcenter/ee476597(en-us).aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/timfis/WindowsLiveWriter/FederatedIdentitySSOandWindowsAzure_5FEF/image_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/timfis/WindowsLiveWriter/FederatedIdentitySSOandWindowsAzure_5FEF/image_thumb.png" width="598" height="388" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9918997" width="1" height="1"&gt;</description></item><item><title>Transforming Team System UML Class Diagrams into Database Diagrams and actual ORM-Classes with T4 (Update 2)</title><link>http://blogs.msdn.com/timfis/archive/2009/10/31/transforming-team-system-uml-class-diagrams-into-database-diagrams-with-t4.aspx</link><pubDate>Sat, 31 Oct 2009 19:14:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9915674</guid><dc:creator>timfis</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/timfis/comments/9915674.aspx</comments><wfw:commentRss>http://blogs.msdn.com/timfis/commentrss.aspx?PostID=9915674</wfw:commentRss><description>&lt;p&gt;You can easily write a T4 Template that transforms UML Diagrams into Linq to SQL or Entity Framework Diagrams. The good thing to know here is that Linq to SQL and Entity Framework Diagrams are just XML Files. Also other UML Diagrams and DSL are just XML Files. So here is a screen shot of my transform:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/timfis/WindowsLiveWriter/TransformingTeamSystemUMLClassDiagramsin_ED62/image_6.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/timfis/WindowsLiveWriter/TransformingTeamSystemUMLClassDiagramsin_ED62/image_thumb_2.png" width="565" height="453" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The cool thing here is that the Linq to SQL Diagram that was generated by the transform already generated the classes for the O/R Mapping.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/timfis/WindowsLiveWriter/TransformingTeamSystemUMLClassDiagramsin_ED62/image_4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/timfis/WindowsLiveWriter/TransformingTeamSystemUMLClassDiagramsin_ED62/image_thumb_1.png" width="580" height="494" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;This is the prove point that you can do Model-To-Model Transformations with T4 in Team Systems 2010 Beta 2. Also it proves that UML and DSLs fit nicely together. UML Models can drive DSL models witch drive standard code-generation. Each step can be customized using T4 Templates.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Update&lt;/strong&gt;: Using the T4 Toolbox of Oleg Sych – see &lt;a href="http://www.olegsych.com"&gt;www.olegsych.com&lt;/a&gt; you can also generate Visual Studio Team System Database Project (for Schema Versioning etc.) from the Linq to SQL Diagram and change the code generation. Things really start to come together now! Thanks to Oleg Sych for this great asset (&lt;a href="http://t4toolbox.codeplex.com"&gt;http://t4toolbox.codeplex.com&lt;/a&gt;)&lt;/p&gt;  &lt;p&gt;Happy Generating!&lt;/p&gt;  &lt;p&gt;Tim&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9915674" width="1" height="1"&gt;</description></item><item><title>How To: Generate Code from Team System UML Diagrams in VS 2010 Team System Beta 2 (Update 4)</title><link>http://blogs.msdn.com/timfis/archive/2009/10/31/how-to-generate-code-from-uml-diagrams-in-vs-2010-team-system-beta-2.aspx</link><pubDate>Sat, 31 Oct 2009 08:45:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9910113</guid><dc:creator>timfis</dc:creator><slash:comments>5</slash:comments><comments>http://blogs.msdn.com/timfis/comments/9910113.aspx</comments><wfw:commentRss>http://blogs.msdn.com/timfis/commentrss.aspx?PostID=9910113</wfw:commentRss><description>&lt;p&gt;Here is the first code-snippet about how to generate code from UML-Diagrams using T4 Text-Templates.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/timfis/WindowsLiveWriter/HowToGenerateCodefromUMLDiagramsinVS2010_1234B/image8.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/timfis/WindowsLiveWriter/HowToGenerateCodefromUMLDiagramsinVS2010_1234B/image8_thumb.png" width="613" height="385" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;u&gt;Here are the steps:&lt;/u&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;1. Create a model project called ModelingProject1.modelproj&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;2. Insert Classes with properies at the root level of the model using the diagrams &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;3. Create a file Generator.tt that contains the text below&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;4. Save the .tt file to have a code-behind template generated under the .tt file that contains the output. &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;5. If you want to regenerate press the new button (most right in the toolbar of the solution explorer called “Transform All Templates” or save the template again&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;6. Optional: To get Syntax Coloring and intelli-sense on the template go to the Extension Manager (Tools Menu-&amp;gt;Extension Manager-&amp;gt;Online Gallery) and search for a T4 Editor of your choice.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Here is the code for copy paste:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&amp;lt;#@ template language=&amp;quot;C#&amp;quot; debug=&amp;quot;true&amp;quot; hostSpecific=&amp;quot;true&amp;quot; #&amp;gt;    &lt;br /&gt;&amp;lt;#@ output extension=&amp;quot;.cs&amp;quot;#&amp;gt;     &lt;br /&gt;&amp;lt;#@ assembly name=&amp;quot;Microsoft.VisualStudio.Uml.Extensions.dll&amp;quot;#&amp;gt;     &lt;br /&gt;&amp;lt;#@ assembly name=&amp;quot;Microsoft.VisualStudio.Uml.Interfaces.dll&amp;quot;#&amp;gt;     &lt;br /&gt;&amp;lt;#@ assembly name=&amp;quot;Microsoft.VisualStudio.Uml.Interfaces.dll&amp;quot;#&amp;gt;     &lt;br /&gt;&amp;lt;#@ import namespace=&amp;quot;Microsoft.VisualStudio.Uml.Classes&amp;quot; #&amp;gt;     &lt;br /&gt;&amp;lt;#@ import namespace=&amp;quot;Microsoft.VisualStudio.Uml.Extensions&amp;quot; #&amp;gt;     &lt;br /&gt;&amp;lt;#&amp;#160;&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;string projectPath = System.IO.Path.GetDirectoryName(this.Host.TemplateFile)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; + @&amp;quot;\..\ModelingProject1\ModelingProject1.modelproj&amp;quot;;     &lt;br /&gt;using (IModelingProject project = ModelingProject.Load(projectPath))     &lt;br /&gt;{     &lt;br /&gt;&amp;#160;&amp;#160; IModelStore store = project.Store;     &lt;br /&gt;&amp;#160;&amp;#160; foreach (IElement element in store.Root.OwnedElements)     &lt;br /&gt;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; IClass classElement = element as IClass;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (classElement != null) {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; #&amp;gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; class &amp;lt;#= classElement.Name #&amp;gt; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;# foreach (IFeature theFeat in classElement.Features){#&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; string &amp;lt;#= theFeat.Name #&amp;gt; {get;set;};     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;#}#&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;#     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&amp;#160;&amp;#160; }     &lt;br /&gt;&amp;#160;&amp;#160; project.Close();     &lt;br /&gt;}     &lt;br /&gt;#&amp;gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;a title="http://blogs.msdn.com/timfis/archive/2009/10/21/a-trick-to-get-intelli-sense-on-microsoft-visual-studio-uml-interfaces-in-t4.aspx" href="http://blogs.msdn.com/timfis/archive/2009/10/21/a-trick-to-get-intelli-sense-on-microsoft-visual-studio-uml-interfaces-in-t4.aspx"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Note there are also a lot of extenison methods defined for IUML*. Here is a list of tasks you can do with the UML API easier. I did not try it though.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ee329525(VS.100).aspx"&gt;http://msdn.microsoft.com/en-us/library/ee329525(VS.100).aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;And here is a more complex sample that generates class and properties from the Model.&lt;/p&gt;  &lt;p&gt;&amp;lt;#@ template language=&amp;quot;C#3.5&amp;quot; debug=&amp;quot;true&amp;quot; hostSpecific=&amp;quot;true&amp;quot; #&amp;gt;    &lt;br /&gt;&amp;lt;#@ Assembly Name=&amp;quot;System.Core.dll&amp;quot; #&amp;gt;     &lt;br /&gt;&amp;lt;#@ assembly name=&amp;quot;Microsoft.VisualStudio.Uml.Extensions.dll&amp;quot;#&amp;gt;     &lt;br /&gt;&amp;lt;#@ assembly name=&amp;quot;Microsoft.VisualStudio.Uml.Interfaces.dll&amp;quot;#&amp;gt;     &lt;br /&gt;&amp;lt;#@ import namespace=&amp;quot;System&amp;quot; #&amp;gt;     &lt;br /&gt;&amp;lt;#@ import namespace=&amp;quot;System.Linq&amp;quot; #&amp;gt;     &lt;br /&gt;&amp;lt;#@ import namespace=&amp;quot;Microsoft.VisualStudio.Uml.Classes&amp;quot; #&amp;gt;     &lt;br /&gt;&amp;lt;#@ import namespace=&amp;quot;Microsoft.VisualStudio.Uml.Extensions&amp;quot; #&amp;gt;     &lt;br /&gt;using System;     &lt;br /&gt;&amp;lt;#&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;var projectPath = System.IO.Path.GetDirectoryName(this.Host.TemplateFile)+ @&amp;quot;\..\ModelingProject1\ModelingProject1.modelproj&amp;quot;;     &lt;br /&gt;using (IModelingProject project = ModelingProject.Load(projectPath))     &lt;br /&gt;{     &lt;br /&gt;&amp;#160;&amp;#160; foreach(IClass classElement in project.Store.Root.OwnedElements.OfType&amp;lt;IClass&amp;gt;())     &lt;br /&gt;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; var baseClass = classElement.SuperClasses.FirstOrDefault();     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; var baseClassNamespaceName = (baseClass!=null ) ? baseClass.Namespace.Name+&amp;quot;.&amp;quot; : &amp;quot;&amp;quot;;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; var baseClassName = (baseClass!=null) ? baseClassNamespaceName+baseClass.Name : &amp;quot;System.Object&amp;quot;;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; var properties = classElement.OwnedAttributes.OfType&amp;lt;IProperty&amp;gt;().ToArray(); &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160; #&amp;gt;    &lt;br /&gt;public &amp;lt;#= classElement.IsAbstract ? &amp;quot;abstract &amp;quot;:&amp;quot;&amp;quot; #&amp;gt;partial class &amp;lt;#= classElement.Name #&amp;gt;: &amp;lt;#= baseClassName #&amp;gt;     &lt;br /&gt;{     &lt;br /&gt;&amp;lt;#     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; if (properties.Length&amp;gt;0)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; WriteLine(&amp;quot;\t\t// properties&amp;quot;);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; foreach(IProperty property in properties)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; var propertyName = property.Name;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; var fieldName = &amp;quot;_&amp;quot;+property.Name.Substring(0,1).ToLowerInvariant()+property.Name.Substring(1);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; var propertyTypeName = typeof(System.Object).FullName;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (property.Type!=null)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; propertyTypeName = property.Type.Name;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (property.Type.Namespace!=null &amp;amp;&amp;amp; property.Type.Namespace.Name!=baseClassNamespaceName)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; propertyTypeName = property.Type.Namespace.Name+&amp;quot;.&amp;quot;+propertyTypeName;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; //var propertyTypeName = (property.Type!=null) ? property.Type.Name : ;     &lt;br /&gt;#&amp;gt;     &lt;br /&gt;&amp;#160; #region @ &amp;lt;#= propertyName #&amp;gt;     &lt;br /&gt;&amp;#160; private &amp;lt;#= propertyTypeName #&amp;gt; &amp;lt;#= fieldName #&amp;gt;;     &lt;br /&gt;&amp;#160; public &amp;lt;#= propertyTypeName #&amp;gt; &amp;lt;#= propertyName #&amp;gt;     &lt;br /&gt;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160; get     &lt;br /&gt;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; return &amp;lt;#= fieldName #&amp;gt;;     &lt;br /&gt;&amp;#160;&amp;#160; }     &lt;br /&gt;&amp;#160;&amp;#160; set     &lt;br /&gt;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160; }     &lt;br /&gt;&amp;#160; }     &lt;br /&gt;&amp;#160; #endregion     &lt;br /&gt;&amp;lt;#     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; #&amp;gt;     &lt;br /&gt;} &lt;/p&gt;  &lt;p&gt;&amp;lt;#    &lt;br /&gt;&amp;#160; }     &lt;br /&gt;project.Close();     &lt;br /&gt;} &lt;/p&gt;  &lt;p&gt;#&amp;gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9910113" width="1" height="1"&gt;</description></item><item><title>How To: Migrate T4 Text Templates from VS2008 to VS2010 Beta 2</title><link>http://blogs.msdn.com/timfis/archive/2009/10/20/how-to-migrate-t4-text-templates-from-vs2008-to-vs2010-beta-2.aspx</link><pubDate>Tue, 20 Oct 2009 19:15:52 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9910132</guid><dc:creator>timfis</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/timfis/comments/9910132.aspx</comments><wfw:commentRss>http://blogs.msdn.com/timfis/commentrss.aspx?PostID=9910132</wfw:commentRss><description>&lt;p&gt;At the .net open space in Leipzig I promised to write down the experience in migrating T4 Text Templates from VS2008 to VS2010 Beta 2. And here we go…&lt;/p&gt;  &lt;p&gt;In order to migrate you will need to do the following&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Issue1:&amp;#160; C# Version is now 4 by default&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Old:&lt;/p&gt;  &lt;div style="background-color: white"&gt;&lt;span style="background-color: #ffd700; color: #000000"&gt;&amp;lt;#@&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #a52a2a"&gt;template&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;language&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;C#v3.5&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="background-color: #ffd700; color: #000000"&gt;#&amp;gt;&lt;/span&gt;&lt;/div&gt;  &lt;p&gt;New:&lt;/p&gt;  &lt;div style="background-color: white"&gt;&lt;span style="background-color: #ffd700; color: #000000"&gt;&amp;lt;#@&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #a52a2a"&gt;template&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;language&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;C#&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="background-color: #ffd700; color: #000000"&gt;#&amp;gt;&lt;/span&gt;&lt;/div&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Issue2:&amp;#160; ModelingTextTransformation not any longer found&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Old:&lt;/p&gt;  &lt;div style="background-color: white"&gt;&lt;span style="background-color: #ffd700; color: #000000"&gt;&amp;lt;#@&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #a52a2a"&gt;template&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;inherits&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;Microsoft.VisualStudio.TextTemplating.VSHost.ModelingTextTransformation&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="background-color: #ffd700; color: #000000"&gt;#&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;/div&gt;  &lt;p&gt;New: (You need an assembly reference eventually)&lt;/p&gt;  &lt;div style="background-color: white"&gt;&lt;span style="background-color: #ffd700; color: #000000"&gt;&amp;lt;#@&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #a52a2a"&gt;template&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;inherits&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;Microsoft.VisualStudio.TextTemplating.VSHost.ModelingTextTransformation&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="background-color: #ffd700; color: #000000"&gt;#&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;/div&gt;  &lt;div style="background-color: white"&gt;&lt;span style="color: #000000"&gt;&lt;/span&gt;&lt;/div&gt;  &lt;div style="background-color: white"&gt;&lt;span style="color: #000000"&gt;&lt;/span&gt;&lt;span style="background-color: #ffd700; color: #000000"&gt;&amp;lt;#@&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #a52a2a"&gt;assembly&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;name&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies\Microsoft.VisualStudio.TextTemplating.Modeling.10.0.dll&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="background-color: #ffd700; color: #000000"&gt;#&amp;gt;&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Issue: EnvDTE ProgID has changed from 9.0 to 10.0&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Old:&lt;/p&gt;  &lt;div style="background-color: white"&gt;&lt;span style="background-color: #ffd700; color: #000000"&gt;&amp;lt;#@&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="background-color: #ffffff; color: #000000"&gt;assembly name=”envdte” &lt;span style="color: #000000"&gt;&lt;/span&gt;&lt;span style="background-color: #ffd700; color: #000000"&gt;#&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;  &lt;div style="background-color: white"&gt;&lt;span style="background-color: #ffd700; color: #000000"&gt;&amp;lt;#&lt;/span&gt;&lt;span style="background-color: #ffffff; color: #000000"&gt; EnvDTE.DTE theDTE = (EnvDTE.DTE)System.Runtime.InteropServices.Marshal. &lt;/span&gt;&lt;/div&gt;  &lt;div style="background-color: white"&gt;&lt;span style="background-color: #ffffff; color: #000000"&gt;GetActiveObject(&lt;/span&gt;&lt;span style="background-color: #ffffe0; color: #800000"&gt;&amp;quot;VisualStudio.DTE.9.0&amp;quot;&lt;/span&gt;&lt;span style="background-color: #ffffe0; color: #000000"&gt;); &lt;span style="background-color: #ffd700; color: #000000"&gt;#&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;  &lt;p&gt;New:&lt;/p&gt;  &lt;p&gt;Note it is always better to get EnvDTE from the Template host – this requires hostSpecific to be true &lt;/p&gt;  &lt;div style="background-color: white"&gt;&lt;span style="background-color: #ffd700; color: #000000"&gt;&lt;/span&gt;&lt;/div&gt;  &lt;div style="background-color: white"&gt;&lt;span style="background-color: #ffd700; color: #000000"&gt;&amp;lt;#@&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #a52a2a"&gt;template&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;hostSpecific&lt;/span&gt;&lt;span style="color: #000000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #0000ff"&gt;true&lt;/span&gt;&lt;span style="color: #000000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="background-color: #ffd700; color: #000000"&gt;#&amp;gt;&lt;/span&gt;&lt;/div&gt;  &lt;div style="background-color: white"&gt;&lt;span style="background-color: #ffd700; color: #000000"&gt;&amp;lt;#@&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="background-color: #ffffff; color: #000000"&gt;assembly name=”envdte” &lt;span style="color: #000000"&gt;&lt;/span&gt;&lt;span style="background-color: #ffd700; color: #000000"&gt;#&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;  &lt;p&gt;Now you can get the envdte this way&lt;/p&gt;  &lt;div style="background-color: white"&gt;&lt;span style="background-color: #ffd700; color: #000000"&gt;&amp;lt;#&amp;#160; &lt;/span&gt;&lt;span style="background-color: #ffffe0; color: #000000"&gt;IServiceProvider hostServiceProvider = (IServiceProvider)host; &lt;/span&gt;&lt;/div&gt;  &lt;div style="background-color: white"&gt;&lt;span style="background-color: #ffffe0; color: #000000"&gt;var theDTE = (EnvDTE.DTE)hostServiceProvider.GetService(&lt;/span&gt;&lt;span style="background-color: #ffffe0; color: #0000ff"&gt;typeof&lt;/span&gt;&lt;span style="background-color: #ffffe0; color: #000000"&gt;(EnvDTE.DTE)); &lt;span style="background-color: #ffd700; color: #000000"&gt;#&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;  &lt;p&gt;&lt;strong&gt;Issue: Some other DSL DLL Names changed - here are new names&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;In GAC (do not use “.dll” in &amp;lt;#assembly#&amp;gt; reference)&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Microsoft.VisualStudio.Modeling.Sdk.Diagrams.10.0      &lt;br /&gt;Microsoft.VisualStudio.Modeling.Sdk.10.0&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;Not in GAC (use. dll when referencing them)&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;Microsoft.VisualStudio.TextTemplating.Interfaces.10.0.dll      &lt;br /&gt;Microsoft.VisualStudio.TextTemplating.Modeling.10.0.dll       &lt;br /&gt;Microsoft.VisualStudio.TextTemplating.VSHost.10.0.dll&amp;#160; &lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;You find them here&lt;/p&gt;  &lt;p&gt;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PublicAssemblies\&lt;/p&gt;  &lt;p&gt;or here&lt;/p&gt;  &lt;p&gt;C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\PrivateAssemblies\&lt;/p&gt;  &lt;p&gt;or in the SDK Install Dir&lt;/p&gt;  &lt;p&gt;I think these are the most common issues. I will add if i find more.&lt;/p&gt;  &lt;p&gt;Happy generating&lt;/p&gt;  &lt;p&gt;Tim&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9910132" width="1" height="1"&gt;</description></item><item><title>Beta 2 von Microsoft .NET Framework freigegeben</title><link>http://blogs.msdn.com/timfis/archive/2009/10/19/beta-2-von-microsoft-net-freigegeben.aspx</link><pubDate>Mon, 19 Oct 2009 16:25:19 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9909179</guid><dc:creator>timfis</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/timfis/comments/9909179.aspx</comments><wfw:commentRss>http://blogs.msdn.com/timfis/commentrss.aspx?PostID=9909179</wfw:commentRss><description>&lt;p&gt;Microsoft hat das Microsoft .NET Framework 4 Beta 2 soeben freigeben. Die Details zu den wichtigsten Funktion sowie den Download zu Visual Studio 2010 Beta 2 findet man &lt;a href="http://www.microsoft.de/net"&gt;hier&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9909179" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/timfis/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/timfis/archive/tags/German/default.aspx">German</category><category domain="http://blogs.msdn.com/timfis/archive/tags/.NET+4/default.aspx">.NET 4</category></item><item><title>tangible T4 Editor (Alpha) in VS2010 Beta 2 shows up….</title><link>http://blogs.msdn.com/timfis/archive/2009/10/19/tangible-t4-editor-alpha-in-vs2010-beta-2-shows-up.aspx</link><pubDate>Mon, 19 Oct 2009 16:23:01 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9909176</guid><dc:creator>timfis</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/timfis/comments/9909176.aspx</comments><wfw:commentRss>http://blogs.msdn.com/timfis/commentrss.aspx?PostID=9909176</wfw:commentRss><description>&lt;p&gt;Speedy development – awesome design. With no code changes between Beta1 and Beta 2 the tangible T4 Editor in its current alpha bits form brings light to “.tt” files in Visual Studio 2010 Beta 2 right from the start. &lt;/p&gt;  &lt;p&gt;Go get it from the extension manager to start customizing code generation and wizrards in VS2010 Beta 2 – Code Gen from the new cool Team System UML Diagrams, Entity Framework 2.0 and more…&lt;/p&gt;  &lt;p&gt;In Visual Studio just goto Tools-&amp;gt;Extension Manager and search for tools online. If you are an admin do not forget to click on the “Allow loading user extensions button&amp;quot;.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9909176" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/timfis/archive/tags/DSL/default.aspx">DSL</category><category domain="http://blogs.msdn.com/timfis/archive/tags/Text+Template/default.aspx">Text Template</category><category domain="http://blogs.msdn.com/timfis/archive/tags/T4+Editor/default.aspx">T4 Editor</category><category domain="http://blogs.msdn.com/timfis/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/timfis/archive/tags/T4/default.aspx">T4</category><category domain="http://blogs.msdn.com/timfis/archive/tags/English/default.aspx">English</category><category domain="http://blogs.msdn.com/timfis/archive/tags/Model+Driven/default.aspx">Model Driven</category></item><item><title>Fit für die Cloud: Windows Azure Launch Day + 100mal VS 2010Pro!</title><link>http://blogs.msdn.com/timfis/archive/2009/10/05/fit-f-r-die-cloud-windows-azure-launch-day-und-100mal-vs-2010-pro.aspx</link><pubDate>Mon, 05 Oct 2009 13:12:13 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9903156</guid><dc:creator>timfis</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/timfis/comments/9903156.aspx</comments><wfw:commentRss>http://blogs.msdn.com/timfis/commentrss.aspx?PostID=9903156</wfw:commentRss><description>&lt;p&gt;Es ist höchste Zeit sich mit dem Thema Cloud ernsthafter zu beschäftigen. Bereits auf der World-Wide Partner Konferenz hat Microsoft weitere deutlich attraktiver Preispakete in Aussicht gestellt, die zur PDC kommen werden. Mit Windows Azure wird das Thema Server-Cluster, SQL-Server - “Cluster” und damit das Thema Verfügbarkeit für viele Entwickler in greifbare Nähe rücken. Auch gibt es seit einiger Zeit eine richtige SQL-Server Datenbank in Windows Azure – so dass man nun mit gewohnten APIs wie ODBC/OLE DB/ADO.NET/Linq-To-SQL und anderen arbeiten kann. Full-Trust ist nun auch möglich sowie das Thema PHP.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Jetzt endlich kann man ein eigenes Server-Cluster für umsonst testen und im Handumdrehen Anwendungen auf mehrere Server verteilen&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Es ist höchste Zeit zu lernen, wie einfach es ist auf Windows Azure eine Anwendung auf mehreren Servern bereitzustellen. Zumal mal Microsoft &lt;strong&gt;100 x Visual Studio 2010 Pro&lt;/strong&gt; verlost:&lt;/p&gt;  &lt;p&gt;Mehr Infos hier: &lt;a title="http://www.microsoft.com/germany/msdn/aktuell/azurenow/default.mspx" href="http://www.microsoft.com/germany/msdn/aktuell/azurenow/default.mspx"&gt;http://www.microsoft.com/germany/msdn/aktuell/azurenow/default.mspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Wer Blut geleckt hat und mehr wissen möchte der komme doch auf den Windows Azure Launch Day &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Windows Azure Launch Day in Stuttgart am 26.11 - &lt;/strong&gt;&lt;strong&gt;Windows Azure Buch inklusive!&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Technische Vortäge und ein MS Press Buch zusammen für nur 59,-€ gibt es auf dem Windows Azure Launch Day.    &lt;br /&gt;Auf dem Windows Azure Platform Launch Day stellt Microsoft &lt;b&gt;erstmalig&lt;/b&gt; die produktive Version von Windows Azure in Deutschland vor. Entwickler, IT-Dienstleister und Unternehmen lernen hier, wie man die Microsoft Online Services und die Windows Azure Platform einsetzen kann und wie man für Windows Azure Platform Anwendungen entwickelt. Auf diesem exklusiven Premiereevent erfahren Sie alles Wichtige über die Cloud Angebote von Microsoft und wie Ihre Unternehmen davon profitieren kann. Für 59 € zzgl. MwSt erhält jeder Teilnehmer neben umfangreichen Expertenwissen das Buch &amp;quot;Cloud Computing mit der Windows Azure Platform: Softwareentwicklung mit Windows Azure und den Azure Services&amp;quot; im Wert von 39,90 €.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Für wen ist der Windows Azure Launch Day relevant? &lt;/b&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;Entwickler&lt;/b&gt; - die konkret lernen möchten wie man auf der Windows Azure Platform Lösungen erstellt und entwickelt &lt;/li&gt;    &lt;li&gt;&lt;b&gt;IT-Dienstleister &lt;/b&gt;– um zu erfahren wie man Kundenanforderungen mit Cloud Computing auf der Microsoft Plattform umsetzt &lt;/li&gt;    &lt;li&gt;&lt;b&gt;Unternehmensentscheider und Anwender &lt;/b&gt;– um Lösungen basierend auf den Microsoft Online Services und Windows Azure selbst bewerten und konzipieren zu können &lt;/li&gt;    &lt;li&gt;&lt;b&gt;Alle, die an Cloud Computing interessiert sind &lt;/b&gt;– um sich komprimiert über aller Vorteile und Einsatzszenarien von Cloud Computing zu informieren &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;b&gt;Format&lt;/b&gt;: 1-tägige kostenpflichtige Konferenz ist auch zusammen im Kombiticket mit dem &lt;a href="http://www.cloudconf.de/conf"&gt;Cloud Conf Konferenztag buchbar&lt;/a&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;b&gt;Keynote:&lt;/b&gt; Die Microsoft Strategie: Software + Services -&amp;#160; mehr als nur Cloud Computing&amp;#160; &lt;/li&gt;    &lt;li&gt;&lt;b&gt;Technologievorträge&lt;/b&gt;      &lt;ul&gt;       &lt;li&gt;&lt;b&gt;Office in der Cloud:&lt;/b&gt; Office Web Apps, Live Meeting, Exchange SharePoint in der Cloud inkl. Customizing und Entwicklung&lt;/li&gt;        &lt;li&gt;&lt;b&gt;Überblick über die neue Windows Azure Platform V1&lt;/b&gt;&lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;b&gt;Tutorials&lt;/b&gt;:&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;ul&gt;       &lt;li&gt;Entwicklung mit der Windows Azure Platform &lt;/li&gt;        &lt;li&gt;Devices und Cloud Computing &amp;amp; Rich Internet Anwendungen &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;&lt;b&gt;Produktinformation&lt;/b&gt;      &lt;ul&gt;       &lt;li&gt;Trainingsangebote und Preismodelle für Partner und Unternehmen &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Mehr Informationen gibt es hier: &lt;a href="http://www.cloudconf.de/day/programm/index.html"&gt;http://www.cloudconf.de&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9903156" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/timfis/archive/tags/German/default.aspx">German</category><category domain="http://blogs.msdn.com/timfis/archive/tags/Windows+Azure/default.aspx">Windows Azure</category></item><item><title>Silverlight 3 Tools für deutsche Visual Studio Versionen sind fertig!!!</title><link>http://blogs.msdn.com/timfis/archive/2009/07/31/silverlight-3-tools-f-r-deutsche-visual-studio-versionen-sind-fertig.aspx</link><pubDate>Fri, 31 Jul 2009 10:41:23 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9854170</guid><dc:creator>timfis</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/timfis/comments/9854170.aspx</comments><wfw:commentRss>http://blogs.msdn.com/timfis/commentrss.aspx?PostID=9854170</wfw:commentRss><description>&lt;p&gt;Seit kurzem stehen nun auch die Silverlight 3 Tools für die deutschen Versionen von Visual Studio bereit.&lt;/p&gt;  &lt;p&gt;Hier sind die Bits zu finden&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.microsoft.com/germany/net/silverlight/download.aspx" href="http://www.microsoft.com/germany/net/silverlight/download.aspx"&gt;http://www.microsoft.com/germany/net/silverlight/download.aspx&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9854170" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/timfis/archive/tags/German/default.aspx">German</category><category domain="http://blogs.msdn.com/timfis/archive/tags/Silverlight/default.aspx">Silverlight</category></item><item><title>Anwendungen von SL2 auf SL3 Upgraden</title><link>http://blogs.msdn.com/timfis/archive/2009/07/26/anwendungen-von-sl2-auf-sl3-upgraden.aspx</link><pubDate>Sun, 26 Jul 2009 17:27:26 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9849221</guid><dc:creator>timfis</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/timfis/comments/9849221.aspx</comments><wfw:commentRss>http://blogs.msdn.com/timfis/commentrss.aspx?PostID=9849221</wfw:commentRss><description>&lt;p&gt;SL2 Anwendungen laufen weitestgehend ohne Änderung unter der SL3 Runtime. Dazu hat diese einen sogenannten Quirk Mode, in welchem SL2 Verhalten für die wichtigsten&amp;#160; Breaking-Changes simuliert wird.&lt;/p&gt;  &lt;p&gt;Ob es sich um eine SL2 oder eine SL3 Anwendung handelt bestimmt die Runtime über die Metadaten (im Object Tag sowie in der xap Datei)&lt;/p&gt;  &lt;p&gt;Um die neuen SL3 Funktionen nutzen zu können müssen Anwender daher SL2 Anwendungen zunächst auf SL3 portieren. Dies ist im allgemeinen recht einfach. Man muss die Meta-Daten anpassen und sicher stellen, dass ein Event-Handler für Errors in Javascript auf der Seite hinterlegt wurde. &lt;/p&gt;  &lt;p&gt;Hier mein Vorgehen:&lt;/p&gt;  &lt;p&gt;0. Install VS 2008 + SP1 ENU – installs side by side with german (note for german the SL VS2008 tools are not yet available)    &lt;br /&gt;1. Install SL Tools + Toolkit + Optional: Blend     &lt;br /&gt;2. Set UI Options to Englisch in VS (if German and English was installed on same box)     &lt;br /&gt;1. If SL ASPX Controls have been used in aspx page you need to remove it and write out your own object tag and error handler instead (see documentation for details on which version numbers to pass in)     &lt;br /&gt;2. Use HTML instead with new Version numbers and manual error handler as described in Help     &lt;br /&gt;3. Update all services references to ado.net ds     &lt;br /&gt;(VS Update Service Reference)     &lt;br /&gt;4. Correct and any links to the XAP to load dynamically at runtime (if path in code)     &lt;br /&gt;5. Test the application according to breaking changes document (see help)&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9849221" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/timfis/archive/tags/German/default.aspx">German</category><category domain="http://blogs.msdn.com/timfis/archive/tags/Silverlight/default.aspx">Silverlight</category></item><item><title>Oslo May CTP - Wo die Reise hingeht</title><link>http://blogs.msdn.com/timfis/archive/2009/06/02/oslo-may-ctp-wo-geht-die-reise-hin.aspx</link><pubDate>Tue, 02 Jun 2009 08:13:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9676447</guid><dc:creator>timfis</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/timfis/comments/9676447.aspx</comments><wfw:commentRss>http://blogs.msdn.com/timfis/commentrss.aspx?PostID=9676447</wfw:commentRss><description>Wie bereits in meinem englisch-sprachigem Post diskutiert  besteht Oslo im Kern aus einem Repository für Modelle (oder sagen wir besser Meta-Daten). Modelle können in diesem Zusammenhang nach Ansicht des Oslo Teams die bekannten UML-Modelle oder aber auch textuelle Modelle wie etwas .config files, XOML (also WF Workflows) oder ähnliches sein - kurzum alle Daten, die entweder die Anwendung beschreiben oder sogar von der Anwendung verwendet werden, um deren Konfiguration bzw. Aufgaben zu bestimmen.

...(&lt;a href="http://blogs.msdn.com/timfis/archive/2009/06/02/oslo-may-ctp-wo-geht-die-reise-hin.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9676447" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/timfis/archive/tags/DSL/default.aspx">DSL</category><category domain="http://blogs.msdn.com/timfis/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/timfis/archive/tags/German/default.aspx">German</category><category domain="http://blogs.msdn.com/timfis/archive/tags/Oslo/default.aspx">Oslo</category></item><item><title>Visual Studio 2010 Beta 1 shows lots of T4 usage + tangible T4 Editor for VS2010 Beta 1 is available!</title><link>http://blogs.msdn.com/timfis/archive/2009/05/18/visual-studio-2010-beta-1-shows-lots-of-t4-usage-tangible-t4-editor-for-vs2010-beta-1-is-available.aspx</link><pubDate>Mon, 18 May 2009 21:45:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9625593</guid><dc:creator>timfis</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/timfis/comments/9625593.aspx</comments><wfw:commentRss>http://blogs.msdn.com/timfis/commentrss.aspx?PostID=9625593</wfw:commentRss><description>As Somasegar pointed out VS 2010 Beta 1 ships now . VS 2010 Beta 1 includes new Code Generation Features based on T4. In VS2010 Beta 1 T4 is now also used in Entity Framework 4.0 and in the new Modeling Support of the Architecture Edition. Note that VS2010...(&lt;a href="http://blogs.msdn.com/timfis/archive/2009/05/18/visual-studio-2010-beta-1-shows-lots-of-t4-usage-tangible-t4-editor-for-vs2010-beta-1-is-available.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9625593" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/timfis/archive/tags/DSL/default.aspx">DSL</category><category domain="http://blogs.msdn.com/timfis/archive/tags/T4+Editor/default.aspx">T4 Editor</category><category domain="http://blogs.msdn.com/timfis/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/timfis/archive/tags/T4/default.aspx">T4</category><category domain="http://blogs.msdn.com/timfis/archive/tags/English/default.aspx">English</category></item><item><title>From AJAX back to Client/Server-Style Architectures with Rich Internet Applications (RIAs)</title><link>http://blogs.msdn.com/timfis/archive/2009/05/16/from-ajax-back-back-to-client-server-style-architectures-with-rias.aspx</link><pubDate>Sat, 16 May 2009 10:23:01 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9621577</guid><dc:creator>timfis</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/timfis/comments/9621577.aspx</comments><wfw:commentRss>http://blogs.msdn.com/timfis/commentrss.aspx?PostID=9621577</wfw:commentRss><description>&lt;p&gt;This post is about how &lt;u&gt;RIAs make it again a lot easier&lt;/u&gt; - and &lt;u&gt;what is important when designing the server side &lt;/u&gt;for a RIA app.&lt;/p&gt; &lt;p&gt;When you look at a Silverlight business application (RIA) and how it communicates with the backend it is really very similar to what a smart client would do. It is calling web-services on the server or using generic web services like ADO.NET Data Services (which are actually REST based). However the important point is that the Silverlight app has its own state and that this state is not mixed up into Javascript, hidden fields or Session variables which really made the whole AJAX and the Web thing for me a bit overcomplicated. While the browser is more a terminal/server pattern by the use of client state and javascript the browser-client became semi-stateful. By "semi",i mean that the server still could decide to move it to a totally new page - redefining the whole client. This makes things unnecessary complicated (although there is certainly a need for HTML based apps). &lt;/p&gt; &lt;p&gt;I am glad Silverlight apps just get downloaded once and then drive the communication and screen-flow themselves. This makes many Client/Server style patterns (although we are now 3-Tier, disconnected via HTTP and async) working again. &lt;/p&gt; &lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;When you write a real RIA business app in Silverlight you should think of the web application that hosts it as two things &lt;strong&gt;ONLY&lt;/strong&gt;:&lt;/p&gt; &lt;p&gt;a) &lt;strong&gt;A download location&lt;/strong&gt; &lt;strong&gt;for your Silverlight app&lt;/strong&gt; including the initial page&lt;/p&gt; &lt;p&gt;b) &lt;strong&gt;A real app-server (not web-server)&lt;/strong&gt; that provides its business functions via Web-Services or REST. Please take the time to design the server-side web-services and methods. In addition think of how you handle server state (e.g in the backend database). So be sure to add Silverlight enabled Web-Services to the server and design them properly based on what the overall system should do and what parts the server should do. Just creating helper methods for stuff the client needs access to the database to won't do the trick of creating something reasonable and maintainable.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;RIA-DONT#1: Do not think of the web server being the driver.&lt;/strong&gt;&amp;nbsp;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; It is becoming the slave again and all its services should be designed to match &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the needs of the client. Use pages inside the Silverlight client to design the &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; application and screen flow. &lt;strong&gt;The client is back in charge - yes!&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;Where to go from here? checkout this&amp;nbsp; &lt;a href="http://msdn.microsoft.com/en-us/magazine/dd695920.aspx" target="_blank"&gt;msdn mag article&lt;/a&gt;.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9621577" width="1" height="1"&gt;</description></item><item><title>My personal View on "Oslo"</title><link>http://blogs.msdn.com/timfis/archive/2009/05/14/my-personal-view-on-oslo.aspx</link><pubDate>Thu, 14 May 2009 15:36:35 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9615799</guid><dc:creator>timfis</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/timfis/comments/9615799.aspx</comments><wfw:commentRss>http://blogs.msdn.com/timfis/commentrss.aspx?PostID=9615799</wfw:commentRss><description>&lt;p&gt;I want to share my personal view on Oslo with you. It's personal as it might not fully be aligned with the official Microsoft Message.&lt;/p&gt; &lt;p&gt;I will first look at Oslo repository and associated tools to interact with models stored in the repository.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 1. Repository to store metadata (referred to as Model)&lt;br&gt;&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I have been using &lt;a href="http://technet.microsoft.com/en-us/library/aa972313(SQL.80).aspx" target="_blank"&gt;Microsoft Meta Data Services&lt;/a&gt; (aka MS Repository 2.0/3.0) in &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; the past for some model driven apps. It serves similar purpose of storing model &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; and meta-data company wide. It was used by SQL Server DTS and Visual Component &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Manager (part of VS 6.0). Also one big Software Factory named &lt;a href="http://www.tangiblearchtiect.com" target="_blank"&gt;tangible architect&lt;/a&gt; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; uses it for persisting runtime data.&lt;br&gt;&lt;br&gt;&lt;em&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; So what is different in Oslo Repository ? &lt;/em&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp; &lt;strong&gt;&amp;nbsp;&lt;/strong&gt;First&amp;nbsp;&amp;nbsp; Oslo Repository&amp;nbsp;&amp;nbsp; is not&amp;nbsp;&amp;nbsp; meant &lt;strong&gt;&lt;em&gt;only&lt;/em&gt;&lt;/strong&gt;&amp;nbsp;&amp;nbsp; for&amp;nbsp; storing&amp;nbsp;&amp;nbsp; design&amp;nbsp; data.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Instead it is meant to store meta-data and possibly even instance that is used&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; at runtime, &lt;strong&gt;&lt;em&gt;as well&lt;/em&gt;&lt;/strong&gt; (like wise tangible did in the past "miss-use" the Microsoft &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Repository) for that purpose. &lt;br&gt;&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; The benefit of using models at runtime is that when you start not generating &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; code from models but instead write runtimes that interpret models (E.g. if &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; your write a web-shop with product categories make the product categories &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; not hard-coded but part of the model).&amp;nbsp; Then someone (E.g. your boss) can &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; change them using a separate interface to your application for administrative tasks. &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; I bet you did this already not using any modeling technology. This is probably &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ok, however you have to deal with versioning, multi-user access and Access &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Permissions yourself. Oslo Repository can do Versioning,&amp;nbsp; Multi-User-Access &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; and access permissions for you. Besides Oslo Repository now officially &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; supports database mirroring ;-)&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;strong&gt;2. Oslo Repository API&lt;/strong&gt;. Oslo Repository uses SQL Views which are made updatable &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; by the help of triggers. So you do not need to use a Repository API to access the &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; data instead &lt;u&gt;you can use &lt;strong&gt;any Data Access Stack&lt;/strong&gt; like LINQ-To-SQL and just work on &lt;br&gt;&lt;/u&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;u&gt;the Views.&lt;/u&gt; Note there is a view for each Class/Type you define in your model. &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; In the Microsoft Repository 3.0 days the views did not have the triggers and &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; thus were read only.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3. Oslo Repository Model Definitions&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Repositories store meta-data in form of models. A Model defines types with values&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; you want to store. So basically it is a schema. Oslo Models are represented as SQL &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Schemas as shown well&amp;nbsp; in &lt;a href="http://msdn.microsoft.com/en-us/oslo/dd576266.aspx" target="_blank"&gt;this video&lt;/a&gt;. To define Models Microsoft this time invented &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a new language "&lt;a href="http://msdn.microsoft.com/en-us/oslo/dd576255.aspx" target="_blank"&gt;M&lt;/a&gt;". M can be used to represent Schemas and (Meta-) Data. &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; For each "M"-Model there exists a transformation to a TSQL-Schema (as shown &lt;a href="http://msdn.microsoft.com/en-us/oslo/dd576260.aspx" target="_blank"&gt;here&lt;/a&gt;). &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; In MS Repository 3.0 this was based on COM Definitions. So we are now going to have &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a real Model Language M which is textual language. Similar to MS Repository 3.0 there &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; is a model compiler and a model-inserter tool to be able to create the corresponding &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; schema in SQL Server. I hope someone will provide a &lt;a href="http://t4-editor.tangible-engineering.com/How-Do-I-With-T4-Editor-Text-Templates.htm" target="_blank"&gt;T4 Transform&lt;/a&gt; from .NET DLLs &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; to M Models so i do not need to redefine models i already have in M. &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (PS: Note sure if that is a good choice but thinking of it)&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Note, that the Java-based MOF Repository standard defines their models in Java - &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; so having that transform would make things comparable.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp; &lt;strong&gt;&amp;nbsp; 4. Model and Instance Data Viewing&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; To view and edit instance data Microsoft announced a tool called &lt;strong&gt;Quadrant&lt;/strong&gt;. &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; This is a visual tool for interacting with the model on a canvas. &lt;strong&gt;Here is a &lt;/strong&gt;&lt;a href="http://msdn.microsoft.com/en-us/oslo/dd576274.aspx" target="_blank"&gt;&lt;strong&gt;video&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;.&lt;br&gt;&lt;/strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Besides any application can use the SQL-Views to visualize or edit data in &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the repository.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 5. Dealing with several model formats and creating new DSLs&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; As discussed to insert a new schema into the repository one must first &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; create a package with the model compiler and then insert it using another tool. &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft works on providing samples for various known &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; models, e.g. the "a" language shows how to import and model ASP.NET ASPX files.&lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; To allow you to create a bridge from your Model representation to the M language &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Microsoft offers a tool/language called "&lt;a href="http://channel9.msdn.com/pdc2008/TL31/" target="_blank"&gt;MGrammer&lt;/a&gt;". With is basically a really nice &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; parser generator that comes even with a Intelli-Pad that provides basic &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; syntax-highlighting for your model instance data. This means if you have &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; textual models you want to import into the Oslo Repository then one route &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; is to create a MGrammer for your Model. The other route is to write your own &lt;br&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; parser or importer (importers would also work on non-textual formats for sure). &lt;br&gt;&lt;strong&gt;&amp;nbsp;&amp;nbsp; &lt;/strong&gt;&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Now let's look at the Vision with "Dublin" or maybe Biztalk Future&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;As you can see, if you store (meta-)data in the repository you get versioning, &lt;br&gt;access rights etc for free. You can also enable the Repository to understand &lt;br&gt;your textual DSLs with MGrammer. You can use any Data-Access Layer. &lt;br&gt;So basically the Repository is a small SQL-based Layer on top of SQL-Server &lt;br&gt;from an application view. Your applications as well as Dublin and future versions &lt;br&gt;of Biztalk could actually read workflow descriptions, workflow instances and other &lt;br&gt;data from there getting all these features plus scalability for free. In addition if an &lt;br&gt;administrator or business user decides to change the workflow definition while &lt;br&gt;the system is running the versioning features will enable you to handle this correctly &lt;br&gt;within your code. Using Oslo Repository you will end up having less meta-data in XML &lt;br&gt;or Code and more in a version-enabled, multi-user-enabled, scalable "Oslo" repository. &lt;br&gt;This will lead to more flexible applications that are easier to change during runtime &lt;br&gt;- reducing maintenance and administration costs.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;Final thoughts on Oslo's repository and executable models&lt;/strong&gt;&lt;/p&gt; &lt;p&gt;I hope managed to explain the value of the repository. Indeed some advance &lt;br&gt;applications have been using repository technology for a long time. &lt;br&gt;Also many ERP-Systems (including Axapta) have a repository inside to manage the &lt;br&gt;configuration of the system and interpret it at runtime. With Oslo this proven &lt;br&gt;technique will be come widely available to .NET &amp;amp; SQL Developers. However &lt;br&gt;there is still some work to do to support many of the model formats including &lt;br&gt;binaries and textual DSLs that you currently work with. Once this is done Oslo &lt;br&gt;will become an important component for model-execution, configuration &lt;br&gt;management and possibly versioned instance data - as it really provides &lt;br&gt;a lot out of the box by then.&amp;nbsp; &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9615799" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/timfis/archive/tags/DSL/default.aspx">DSL</category><category domain="http://blogs.msdn.com/timfis/archive/tags/Text+Template/default.aspx">Text Template</category><category domain="http://blogs.msdn.com/timfis/archive/tags/T4/default.aspx">T4</category><category domain="http://blogs.msdn.com/timfis/archive/tags/English/default.aspx">English</category><category domain="http://blogs.msdn.com/timfis/archive/tags/Oslo/default.aspx">Oslo</category><category domain="http://blogs.msdn.com/timfis/archive/tags/Model+Driven/default.aspx">Model Driven</category></item><item><title>Free T4 Editor for your ASP.NET MVC T4 Templates available (found on tangible-engineering blog)</title><link>http://blogs.msdn.com/timfis/archive/2009/05/08/free-t4-editor-for-your-asp-net-mvc-t4-templates-available-found-on-tangible-engineering-blog.aspx</link><pubDate>Fri, 08 May 2009 14:18:54 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9596646</guid><dc:creator>timfis</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/timfis/comments/9596646.aspx</comments><wfw:commentRss>http://blogs.msdn.com/timfis/commentrss.aspx?PostID=9596646</wfw:commentRss><description>&lt;p&gt;Found on tangible blog, that the new tangible T4 Editor 1.4 FREE EDITION now includes full Intelli-Sense support&lt;/p&gt; &lt;p&gt;for MVC Host and related namespaces used in ASP.NET MVC 1.0 RTM T4 Templates. In addition it provides a nice highlighting &lt;br&gt;for ASP.NET and T4 Code.&lt;/p&gt; &lt;p&gt;Seems like anyone can now edit MVC T4 Templates with full comfort without investing a penny. Awesome!&lt;/p&gt; &lt;p&gt;&lt;a href="http://tangibleengineering.blogspot.com/2009/05/tangible-t4-editor-14-support-for-mvc.html"&gt;&lt;strong&gt;tangible T4 Editor 1.4 - Support for ASP.NET MVC T4 Template Editing with Intelli-Sense in FREE EDITION &amp;amp; more&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/timfis/WindowsLiveWriter/Fre.NETMVCT4Templatesavailablefoundontan_BB3D/FreeMVCT4Editor_2.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="FreeMVCT4Editor" border="0" alt="FreeMVCT4Editor" src="http://blogs.msdn.com/blogfiles/timfis/WindowsLiveWriter/Fre.NETMVCT4Templatesavailablefoundontan_BB3D/FreeMVCT4Editor_thumb.jpg" width="536" height="323"&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9596646" width="1" height="1"&gt;</description></item></channel></rss>