<?xml version="1.0" encoding="utf-8"?><rss version="2.0"><channel><title>Jose Escrich</title><link>https://weblogs.asp.net:443/jescrich/</link><description>Extensibility Thoughts</description><item><title>AJAX, SSL and the 413 error</title><link>https://weblogs.asp.net:443/jescrich/ajax-ssl-and-the-413-error</link><description>&lt;p&gt;If you have been developing and testing your application using an UpdatePanel or something similar without problems over http, maybe you will find some issues when you go live using http over SSL. There is a well known issue when you make a roundtrip to the server making a PUT or POST and it’s related with the size of the message. In that cases you probably will get a 413 error similar to this:&lt;/p&gt;  &lt;p&gt;&lt;a href="https://aspblogs.blob.core.windows.net/media/jescrich/Media/image_0431D7D2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px" title="image" border="0" alt="image" src="https://aspblogs.blob.core.windows.net/media/jescrich/Media/image_thumb_4799178D.png" width="451" height="133" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The workaround resides on just to increase the value of the IIS UploadReadAHeadSize metabase parameter. Basically this parameter defines the allowed size of the data that can be posted to the server.&lt;/p&gt;  &lt;p&gt;To change the value running on IIS 7.0 execute the following command:&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000" size="1"&gt;appcmd.exe set config&amp;#160; -section:system.webServer/serverRuntime /uploadReadAheadSize:&amp;quot;491521&amp;quot;&amp;#160; /commit:apphost&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;if you’re running IIS 6.0&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000" size="1"&gt;cscript adsutil.vbs set w3svc/1/uploadreadaheadsize 65536&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;You can get more information here:   &lt;br /&gt;&lt;a href="http://technet.microsoft.com/en-us/library/cc737382(WS.10).aspx"&gt;http://technet.microsoft.com/en-us/library/cc737382(WS.10).aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;HTH&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:0394da61-2a1e-439a-8903-d2cde1664e87" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/ASP.NET" rel="tag"&gt;ASP.NET&lt;/a&gt;,&lt;a href="http://technorati.com/tags/AJAX" rel="tag"&gt;AJAX&lt;/a&gt;,&lt;a href="http://technorati.com/tags/SSL" rel="tag"&gt;SSL&lt;/a&gt;&lt;/div&gt;</description><pubDate>Wed, 19 Aug 2009 04:56:19 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/jescrich/ajax-ssl-and-the-413-error</guid><category>ASP.NET</category></item><item><title>Using Wireless Connection on HYPER-V without sharing it.</title><link>https://weblogs.asp.net:443/jescrich/using-wireless-connection-on-hyper-v-without-sharing-it</link><description>&lt;p&gt;As you know, the wireless adapters are not supported on HYPER-V (HV) so, the most common scenario in that case, is go and create a Private Virtual Network on your Hyper V console then go to your Wireless Adapter and share the connection for the new Private Virtual Network Adapter. &lt;/p&gt;  &lt;p&gt;Usually it works but I don’t think that is the better approach. Another side effects regards on your VM is that it gets an internal IP assigned by the shared connection, so then you can’t access the VM from another machine.&lt;/p&gt;  &lt;p&gt;There is a way to configure the HV to use the wireless adapter in transparent way. To do that you have to create a Virtual Private Network on your HV.&lt;/p&gt;  &lt;p&gt;&amp;#160;&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="https://aspblogs.blob.core.windows.net/media/jescrich/Media/image_12E73F7C.png" width="576" height="301" /&gt; &lt;/p&gt;  &lt;p&gt;After create it go the Network Connections folder, there should be a new network adapter (Local Area Connection 4 in my sample), so the only thing that you have to do is, select the new network adapter and the wireless connection, then do a right click and choose Bridge Connections. It will create network bridge as follow…&lt;/p&gt;  &lt;p&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="https://aspblogs.blob.core.windows.net/media/jescrich/Media/image_247B1417.png" width="601" height="501" /&gt; &lt;/p&gt;  &lt;p&gt;so now restart your VM and Voila!, it should have an IP assigned from your wireless network.&lt;/p&gt;  &lt;p&gt;hope it helps.&lt;/p&gt;</description><pubDate>Thu, 04 Jun 2009 17:03:40 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/jescrich/using-wireless-connection-on-hyper-v-without-sharing-it</guid><category>Community</category><category>Hyper V</category></item><item><title>Registry redirection on Visual Studio 2008 RTM &amp; SP1 (part 1)</title><link>https://weblogs.asp.net:443/jescrich/registry-redirection-on-visual-studio-2008-rtm-amp-sp1-part-1</link><description>&lt;p&gt;First of all a quick overview, I made a &lt;u&gt;VSIP package which originally addresses just Visual Studio 2005&lt;/u&gt;, in where I added support to work with the regular hive and with the Experimental hive. In fact there are no much differences between those but in my package I require to know which registry hive is the current one. Since VS 2008 I used the same bits to address VS2005 and VS2008. The only thing that I had to do was just register the same package made for 2005 but, for VS 2008. &lt;/p&gt;  &lt;p&gt;As you know using MPF 8.0 as baseline you can inherit from the Package base class then in there you have the &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.shell.package.applicationregistryroot.aspx" target="_blank"&gt;ApplicationRegistryRoot&lt;/a&gt; property what it basically does is the follow:&lt;/p&gt;  &lt;p&gt;&lt;a href="https://aspblogs.blob.core.windows.net/media/jescrich/WindowsLiveWriter/RegistryredirectiononVisualStudio2008RTM_C541/image_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="184" alt="image" src="https://aspblogs.blob.core.windows.net/media/jescrich/WindowsLiveWriter/RegistryredirectiononVisualStudio2008RTM_C541/image_thumb.png" width="587" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Note that if you running on VS 2005 Regular and Experimental hive both are located under HKLM key. So what the GetRegistryRoot method does is determine the value of Software\Microsoft\VisualStudio\* in where * will be the current VS hive (8.0, 8.0Exp or Foo) also that's can be done using IVsShell as follow:&lt;/p&gt;  &lt;p&gt;&lt;a href="https://aspblogs.blob.core.windows.net/media/jescrich/WindowsLiveWriter/RegistryredirectiononVisualStudio2008RTM_C541/image_6.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="117" alt="image" src="https://aspblogs.blob.core.windows.net/media/jescrich/WindowsLiveWriter/RegistryredirectiononVisualStudio2008RTM_C541/image_thumb_2.png" width="500" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;However since 2008 that approach has changed due to the Regular is still running into the HKLM as same as VS2005 but, the Experimental hive is running under de HKCU (CurrentUser) registry hive. &lt;a href="http://blogs.msdn.com/aaronmar/archive/2007/06/06/developing-packages-as-a-normal-user-i-e.aspx" target="_blank"&gt;Aaron Marten has a post with an overview of that.&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Regular (no changes): &lt;strong&gt;HKLM&lt;/strong&gt;\Software\Microsoft\VisualStudio\&lt;strong&gt;9.0     &lt;br /&gt;&lt;/strong&gt;Experimental: &lt;strong&gt;HKCU&lt;/strong&gt;\Software\Microsoft\VisualStudio\&lt;strong&gt;9.0Exp\Configuration&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#800000"&gt;Note that &lt;strong&gt;HKLM&lt;/strong&gt;\Software\Microsoft\VisualStudio\&lt;/font&gt;&lt;font color="#800000"&gt;&lt;strong&gt;9.0Exp &lt;/strong&gt;does not exists!.&lt;/font&gt;    &lt;br /&gt;    &lt;br /&gt;So if you still using the 8.0 MPF as baseline (using for example ApplicationRegistryRoot) or even if you have your own implementation you &lt;strong&gt;should&lt;/strong&gt; experience problems accessing the current registry hive, but in fact no :S. If you run a VS 2008 in experimental mode and running as normal user then you try to do the follow:&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;&lt;font face="Courier New"&gt;RegistryKey currentRoot = Registry.LocalMachine.OpenSubKey(&amp;quot;Software\Microsoft\VisualStudio\&lt;strong&gt;9.0Exp&amp;quot;);&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font face="Courier New" size="2"&gt;Debug.Assert(currentRoot != null);&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;the expected behavior should be get a null reference due to that registry key doesn't exists but no!, and that's because it will be automatically redirected to &lt;strong&gt;HKCU&lt;/strong&gt;\Software\Microsoft\VisualStudio\&lt;strong&gt;9.0Exp\Configuration. &lt;/strong&gt;The confusion comes when you do something like this&lt;/p&gt;  &lt;p&gt;&lt;a href="https://aspblogs.blob.core.windows.net/media/jescrich/WindowsLiveWriter/RegistryredirectiononVisualStudio2008RTM_C541/image_4.png"&gt;&lt;img height="158" alt="image" src="https://aspblogs.blob.core.windows.net/media/jescrich/WindowsLiveWriter/RegistryredirectiononVisualStudio2008RTM_C541/image_thumb_1.png" width="678" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;When you do a ToString() you get a &amp;quot;HKEY_LOCAL_MACHINE\\Software\\Microsoft\\VisualStudio\\9.0Exp&amp;quot;, but if you try to write some dummy key or value there, the value is going to &lt;strong&gt;HKCU&lt;/strong&gt;\Software\Microsoft\VisualStudio\&lt;strong&gt;9.0Exp\Configuration&lt;/strong&gt; automatically.&lt;/p&gt;  &lt;p&gt;The same thing happens if you use the &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.shell.interop.ilocalregistry2(VS.80).aspx" target="_blank"&gt;ILocalRegistry2&lt;/a&gt; to get the &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.shell.interop.ilocalregistry2.getlocalregistryroot(VS.80).aspx" target="_blank"&gt;GetLocalRegistryRoot&lt;/a&gt; output that in fact it returns an string with the current UserSettings path (ie: &amp;quot;Software\\Microsoft\\VisualStudio\\9.0Exp\\UserSettings&amp;quot;), eventually you must use the Registry.LocalMachine.OpenSubKey API to get the registry hive, which btw is not so useful due to we really don't know if it's a HKLM or HKCU entry. We're guessing that's a CurrentUser key because it has a Exp suffix, mmmmm :S. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;The Problem.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Since VS 2008 SP1 that behavior has been changed or fixed. I'm not sure if it was a feature or not but in any case with the SP1 applied when you probe for &amp;quot;HKEY_LOCAL_MACHINE\\Software\\Microsoft\\VisualStudio\\9.0Exp&amp;quot; you will get HKLM as expected!. &lt;/p&gt;  &lt;p&gt;You can avoid those issues if your package is using 9.0 than 8.0 references but in that case you won't be able to addresses VS2005 and VS2008 with the same bits. In 9.0 you already have an implementation of &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.shell.vsregistry.aspx" target="_blank"&gt;VSRegistry&lt;/a&gt; and I already post about that here: &lt;a title="http://weblogs.asp.net/jescrich/archive/2008/08/15/how-to-know-which-is-the-current-running-visual-studio-registry-hive.aspx" href="http://weblogs.asp.net/jescrich/archive/2008/08/15/how-to-know-which-is-the-current-running-visual-studio-registry-hive.aspx"&gt;http://weblogs.asp.net/jescrich/archive/2008/08/15/how-to-know-which-is-the-current-running-visual-studio-registry-hive.aspx&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;I will back with another approach on how to deal with it avoiding to change your project references.&lt;/p&gt;  &lt;p&gt;Enjoy!&lt;/p&gt;</description><pubDate>Wed, 08 Oct 2008 17:02:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/jescrich/registry-redirection-on-visual-studio-2008-rtm-amp-sp1-part-1</guid><category>Visual Studio</category><category>VSX</category></item><item><title>Guidance Automation Extensions for VS2008 SP1 is available.</title><link>https://weblogs.asp.net:443/jescrich/guidance-automation-extensions-for-vs2008-sp1-is-available</link><description>&lt;P&gt;Today&amp;nbsp;has been&amp;nbsp;released the &lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyId=DF79C099-4753-4A59-91E3-5020D9714E4E&amp;amp;displaylang=en" mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyId=DF79C099-4753-4A59-91E3-5020D9714E4E&amp;amp;displaylang=en"&gt;Guidance Automation Extensions - February 2008 Release&lt;/A&gt; &lt;STRONG&gt;SP1&lt;/STRONG&gt;, which addresses the following issues:&lt;/P&gt;
&lt;P&gt;&lt;B&gt;Registering and Using Guidance Packages on the Visual Studio Experimental Hive&lt;/B&gt; &lt;BR&gt;Registering and/or using a guidance package in the Visual Studio Experimental hive fails when Visual Studio 2008 Service Pack 1 is installed. This is now fixed. &lt;BR&gt;&lt;B&gt;Regular Expression Evaluation Enhancements&lt;/B&gt; &lt;BR&gt;When an operation (or a message) was created, the duration of the creation task was directly proportional (and much greater than linear) to the length of the operation name. This update offers a performance improvement. See Additional Information section.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyId=E28205C6-BB07-401B-9A76-804784598BF0&amp;amp;displaylang=en" target=_blank mce_href="http://www.microsoft.com/downloads/details.aspx?FamilyId=E28205C6-BB07-401B-9A76-804784598BF0&amp;amp;displaylang=en"&gt;You can download it from here&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Enjoy!&lt;/P&gt;</description><pubDate>Fri, 03 Oct 2008 14:58:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/jescrich/guidance-automation-extensions-for-vs2008-sp1-is-available</guid><category>GAT</category><category>GAX</category><category>SFT</category><category>Software Factory</category><category>Visual Studio</category><category>VSX</category></item><item><title>T4 Editor RTM is finally out!</title><link>https://weblogs.asp.net:443/jescrich/t4-editor-rtm-is-finally-out</link><description>&lt;p&gt;After several months of work I'm really happy to announce that we've finally shipped the &lt;a href="http://t4editor.net" target="_blank"&gt;T4 Editor RTM&lt;/a&gt; version. Now it comes in different flavors as a &lt;strong&gt;Community Edition&lt;/strong&gt; and a &lt;strong&gt;Professional Edition&lt;/strong&gt;. You can check the most important difference between those version &lt;a href="http://www.t4editor.net/features.html" target="_blank"&gt;here&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;&lt;img src="http://weblogs.asp.net/blogs/vga/WindowsLiveWriter/T4Editorsometeasingpictures_1078/t4editor02_2.png" /&gt;     &lt;br /&gt;see it in action!&lt;/p&gt;  &lt;p&gt;You can find more useful information about &lt;strong&gt;T4 Editor&lt;/strong&gt; in our t4editor site. &lt;a href="http://t4editor.net"&gt;http://t4editor.net&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.t4editor.net/downloads.html" target="_blank"&gt;&lt;strong&gt;Download T4 Editor NOW!&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Mon, 15 Sep 2008 08:45:40 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/jescrich/t4-editor-rtm-is-finally-out</guid><category>GAT</category><category>GAX</category><category>Software Factory</category><category>T4</category><category>Text Template</category><category>Visual Studio</category><category>VSX</category></item><item><title>How to know which is the current running Visual Studio registry hive.</title><link>https://weblogs.asp.net:443/jescrich/how-to-know-which-is-the-current-running-visual-studio-registry-hive</link><description>&lt;p&gt;It’s really useful to know the current registry hive when, for example, when you’re running Visual Studio into the experimental hive even considering, that since Vs 2008 it includes the RANU option (Run as Normal User) with basically means that Visual Studio will loads the information from the HKCU instead of HKLM. You can find more information about that in the &lt;a href="http://blogs.msdn.com/aaronmar/archive/2007/06/06/developing-packages-as-a-normal-user-i-e.aspx" target="_blank"&gt;Aaron Marten blog.&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;So, since Vs SDK for Visual Studio 2008 and as a part of MPF we have a &lt;a href="http://msdn.microsoft.com/en-us/library/microsoft.visualstudio.shell.vsregistry.aspx" target="_blank"&gt;VSRegistry&lt;/a&gt; helper which tell us in which registry hive the Vs is running, it basically has a static method with a couple of signatures:&lt;/p&gt;  &lt;p&gt;&lt;a href="https://aspblogs.blob.core.windows.net/media/jescrich/WindowsLiveWriter/HowtoknowwhichisthecurrentrunningVisual_B8ED/image_4.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" title="image" border="0" alt="image" src="https://aspblogs.blob.core.windows.net/media/jescrich/WindowsLiveWriter/HowtoknowwhichisthecurrentrunningVisual_B8ED/image_thumb_1.png" width="654" height="122" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="https://aspblogs.blob.core.windows.net/media/jescrich/WindowsLiveWriter/HowtoknowwhichisthecurrentrunningVisual_B8ED/image_2.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" title="image" border="0" alt="image" src="https://aspblogs.blob.core.windows.net/media/jescrich/WindowsLiveWriter/HowtoknowwhichisthecurrentrunningVisual_B8ED/image_thumb.png" width="306" height="162" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;What it does is returns the current running registry key according the type of key, which could be UserSetting, Public Configuration (know as the common registry key, where is located most of the Vs information), etc.&lt;/p&gt;  &lt;p&gt;If you’re developing a VSIP package you can also use the ApplicationRegistryRoot property what it basically uses that helper.&lt;/p&gt;</description><pubDate>Fri, 15 Aug 2008 16:09:08 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/jescrich/how-to-know-which-is-the-current-running-visual-studio-registry-hive</guid><category>Visual Studio</category><category>VSX</category></item><item><title>T4 Editor: coming soon!</title><link>https://weblogs.asp.net:443/jescrich/t4-editor-coming-soon</link><description>&lt;p&gt;Since some time ago, we're working in a new release of the &lt;a href="http://t4editor.net" target="_blank"&gt;T4 Editor&lt;/a&gt;. Maybe one of the most interesting feature is the ability to have intellisense in the contained language. &lt;a href="http://weblogs.asp.net/vga" target="_blank"&gt;Victor&lt;/a&gt; has posted some screenshots&amp;#160; that showcases that feature, &lt;a href="http://weblogs.asp.net/vga/archive/2008/04/16/t4-editor-some-teasing-pictures.aspx" target="_blank"&gt;check it out here.&lt;/a&gt;&amp;#160; &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&lt;img height="266" src="http://weblogs.asp.net/blogs/vga/WindowsLiveWriter/T4Editorsometeasingpictures_1078/t4editor02_2.png" width="327" /&gt; &lt;/p&gt;  &lt;p&gt;Here you've a quick snapshot of how it looks ;).&lt;/p&gt;</description><pubDate>Wed, 16 Apr 2008 13:18:43 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/jescrich/t4-editor-coming-soon</guid><category>GAT</category><category>GAX</category><category>SFT</category><category>Software Factory</category><category>T4</category><category>Visual Studio</category><category>VSX</category></item><item><title>Testing T4 templates using mock framework (MoQ)</title><link>https://weblogs.asp.net:443/jescrich/testing-t4-templates-using-mock-framework-moq</link><description>&lt;p&gt;Some time ago I wrote a &lt;a href="http://weblogs.asp.net/jescrich/archive/2007/05.aspx" target="_blank"&gt;post in which I talk about how you can do unit tests over your text templates using the GAX Host&lt;/a&gt;. In that example I used a very simple template which receives just a couple of string properties. But it becomes more complicated when you have properties which are complex types ok I know, most probably you're thinking that can resolve that just creating your own mock objects and you're right. &lt;/p&gt;  &lt;p&gt;But the thing is that you can do that in a really easiest way using a mock framework. I will not speak here about &lt;a href="http://www.hanselman.com/blog/MoqLinqLambdasAndPredicatesAppliedToMockObjects.aspx" target="_blank"&gt;mock frameworks&lt;/a&gt; so you can find a lot of posts about it. I'll speak about &lt;a href="http://code.google.com/p/moq/" target="_blank"&gt;MoQ&lt;/a&gt; which is a new mock framework developed by &lt;a title="ClariuS" href="http://clariusconsulting.net" target="_blank"&gt;Clarius&lt;/a&gt; and other companies. You can know more about &lt;a href="http://code.google.com/p/moq/" target="_blank"&gt;MoQ&lt;/a&gt; in the &lt;a href="http://www.clariusconsulting.net/blogs/kzu/archive/2007/12/18/46465.aspx" target="_blank"&gt;Daniel's blog&lt;/a&gt; and in its &lt;a href="http://code.google.com/p/moq/" target="_blank"&gt;google code page&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;In the following example what I did was create a simple text template which uses an IEntitySchema object to create something like a Business Entity, so here we got an issue because we need an instance of that IEntitySchema and, the way to get it using the classic TDD approach, is creating an explicit Mock object. &lt;/p&gt;  &lt;p&gt;So here is when MoQ comes to the rescue, if you see the code snippet it has a call to new Mock&amp;lt;IEntitySchema&amp;gt;() which will creates a proxy of an IEntitySchema implementation. After that, I defined our expectations for each interface signature in where we want to test an interaction.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://latincoder.com/images/dbd54a048c0f_F0F4/image.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="403" alt="image" src="http://latincoder.com/images/dbd54a048c0f_F0F4/image_thumb.png" width="592" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://latincoder.com/images/dbd54a048c0f_F0F4/image_3.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="431" alt="image" src="http://latincoder.com/images/dbd54a048c0f_F0F4/image_thumb_3.png" width="627" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;So, at that point we're ready to perform the tests and make all the assertions, plus the really interesting thing, which is the verification of all our expectations. That basically means that, beside make the assertions over states, now we can check if some interactions was made or not (in other words if some method or some property in the interface has been called or not and if was called with certain parameters values and types or not). &lt;/p&gt;  &lt;p&gt;I think that the test interactions are a really interesting thing to include in our classic tdd fixtures.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.latincoder.com/samples/T4FixtureSample.rar" target="_blank"&gt;Download Sample Code&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Enjoy.&lt;/p&gt;</description><pubDate>Wed, 27 Feb 2008 20:48:16 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/jescrich/testing-t4-templates-using-mock-framework-moq</guid><category>GAX</category><category>MoQ</category><category>T4</category><category>TDD</category><category>Visual Studio</category></item><item><title>GAX/GAT February 2008 Release</title><link>https://weblogs.asp.net:443/jescrich/gax-gat-february-2008-release</link><description>&lt;p&gt;Finally, and after a grand effort, we got a final release of &lt;a href="http://msdn.microsoft.com/en-us/teamsystem/aa718949.aspx" mce_href="http://msdn.microsoft.com/en-us/teamsystem/aa718949.aspx" target="_blank"&gt;GAX/GAT February 2008 Release&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Mainly the most important improvements are that now &lt;u&gt;&lt;b&gt;you can use GAX side by side&lt;/b&gt;&lt;/u&gt; with Visual Studio 2005 and Visual Studio 2008 and now &lt;b&gt;&lt;u&gt;you don't have to do the painful task to unregister all your guidance packages prior to uninstall the previous version of GAX.&lt;/u&gt;&lt;/b&gt; In this particular release, we made an Upgrade than an Installer so you won't have to uninstall GAX, it will be just a click on the msi to get it everything update without loss any guidance package previously registered.&lt;br&gt; &lt;/p&gt;  &lt;p&gt;&lt;u&gt;Some of the improvements for this release are:&lt;/u&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Support side by side for Visual Studio 2005 and Visual Studio 2008.&lt;/li&gt;    &lt;li&gt;Upgrade than Installer, the current GAX installer is an upgrade, so you don't have to uninstall all your guidance packages then uninstall GAX before to try install it.&lt;/li&gt;    &lt;li&gt;Now you can also uninstall GAX whenever you want without unregister any guidance packages, it will do that for you ;), anyway you also have a nice UI in the uninstaller which tell you what guidance packages you will lost if you continue the GAX uninstallation.&lt;/li&gt;    &lt;li&gt;Some error bug fixes when you use GAX for Visual Studio 2008 and the Experimental hive.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;You can check the &lt;a href="http://blogs.msdn.com/agile/archive/2008/02/15/gax-gat-february-2008-final-release.aspx" mce_href="http://blogs.msdn.com/agile/archive/2008/02/15/gax-gat-february-2008-final-release.aspx" target="_blank"&gt;Grigori's Blog&lt;/a&gt; to get more information about this release.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Downloads&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;GAX and GAT must be downloaded and installed separately. GAT requires that GAX is installed first. &lt;/p&gt;  &lt;p&gt;Remember: If you have a previous version of GAX installed on Visual Studio 2005, it will be updated to the February 2008 release of GAX. You are no longer required to uninstall GAX and the corresponding guidance packages (with an exception of GAT, which must be re-installed).&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=108982" mce_href="http://go.microsoft.com/fwlink/?LinkId=108982"&gt;Guidance Automation Extensions (February 2008) Release for Visual Studio 2005 and Visual Studio 2008&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=108989" mce_href="http://go.microsoft.com/fwlink/?LinkId=108989"&gt;Guidance Automation Toolkit (February 2008) Release for Visual Studio 2005&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://go.microsoft.com/fwlink/?LinkId=108988" mce_href="http://go.microsoft.com/fwlink/?LinkId=108988"&gt;Guidance Automation Toolkit (February 2008) Release for Visual Studio 2008&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Enjoy!.&lt;/p&gt;</description><pubDate>Sat, 16 Feb 2008 13:02:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/jescrich/gax-gat-february-2008-release</guid><category>GAT</category><category>GAX</category><category>SFT</category><category>Visual Studio</category><category>VSX</category></item><item><title>GAX/GAT for Visual Studio 2008 Troubleshooter</title><link>https://weblogs.asp.net:443/jescrich/gax-gat-for-visual-studio-2008-troubleshooter</link><description>&lt;p&gt;As &lt;a href="http://weblogs.asp.net/vga/archive/2007/12/28/troubleshooting-gax-gat-installation-issues.aspx" target="_blank"&gt;Victor has posted&lt;/a&gt;, we made a simple troubleshooter to use in case of you are having troubles with the installation and use of GAX/GAT for Visual Studio 2008 (Orcas). This utility provides a simple log of certain information about how was installed GAX/GAT on your host, making much easier the diagnose of any issue with that. So if you're having troubles just run the utility and post the information in the &lt;a href="http://forums.microsoft.com/MSDN/ShowForum.aspx?ForumID=78&amp;amp;SiteID=1" target="_blank"&gt;GAX/GAT specific forum.&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://softwarefactoriestoolkit.net/GaxTroubleshooter.zip" target="_blank"&gt;You can download from here.&lt;/a&gt;&lt;/p&gt;</description><pubDate>Fri, 28 Dec 2007 21:13:30 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/jescrich/gax-gat-for-visual-studio-2008-troubleshooter</guid><category>GAT</category><category>GAX</category><category>Software Factory</category><category>Visual Studio</category></item><item><title>Visual Studio T4 Editor is finally out!.</title><link>https://weblogs.asp.net:443/jescrich/visual-studio-t4-editor-is-finally-is-out</link><description>&lt;p&gt;Today we released a new version of the &lt;a href="http://t4editor.net" target="_blank"&gt;T4 Editor&lt;/a&gt;.    &lt;br /&gt;    &lt;br /&gt;You didn't heard about T4 templates or Text Transformations, before?, That's a technology made by &lt;a href="http://msdn.microsoft.com/practices" target="_blank"&gt;P&amp;amp;P&lt;/a&gt; and was used by the DSL Tools team to able to run text transformations in its projects. Now the T4 template bits will be available for free as a part of the VS Orcas, so you would be run your own transformations in your projects for free. For example a common case is the artifacts generation from a database.    &lt;br /&gt;    &lt;br /&gt;Some of the features of the new T4 Editor:    &lt;br /&gt;A0 &lt;br /&gt;- Available for Visual Studio 2005 and 2008 (Orcas B2)    &lt;br /&gt;- Colorization of directives, text blocks and code.    &lt;br /&gt;- Intellisense on directives and attribute values.    &lt;br /&gt;- Support for multiples host (GAX, DSLTools and a new Clarius one)    &lt;br /&gt;- Preview transformation and properties reflection.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.t4editor.net/video02.html" target="_blank"&gt;&lt;strong&gt;See it in action here!&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;. &lt;/strong&gt;    &lt;br /&gt;    &lt;br /&gt;You can read more about the features of the editor in &lt;a href="http://weblogs.asp.net/jescrich/archive/2007/06/07/new-t4-template-visual-studio-editor.aspx" target="_blank"&gt;my previous post&lt;/a&gt; and also in &lt;a href="http://t4editor.net" target="_blank"&gt;t4editor.net&lt;/a&gt; where you'll find useful screenshots and more videos.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.t4editor.net/downloads.html" target="_blank"&gt;&lt;strong&gt;Click here to Download the new T4Editor now!&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Feel free to send me your feedback about what features should have next versions.&lt;/p&gt;  &lt;p&gt;Enjoy!.&lt;/p&gt;</description><pubDate>Thu, 18 Oct 2007 14:28:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/jescrich/visual-studio-t4-editor-is-finally-is-out</guid><category>GAT</category><category>GAX</category><category>Software Factory</category><category>T4</category><category>Visual Studio</category></item><item><title>Dealing with the UnfoldTemplateAction and parameter replacement.</title><link>https://weblogs.asp.net:443/jescrich/dealing-with-the-unfoldtemplateaction-and-parameter-replacement</link><description>&lt;p&gt;There are a well known issue with the UnfoldTemplateAction which is provided in the &lt;a title="Guidance Automation Extensions" href="http://go.microsoft.com/fwlink/?linkid=47181" target="_blank"&gt;GAX&lt;/a&gt; Library. Basically this action able you to unfold .vstemplate files by hand but it has a ugly issue in where you can't do any parameter replacements than &lt;a title="Template Parameters" href="http://msdn.microsoft.com/en-us/library/eehb4faa(VS.80).aspx" target="_blank"&gt;the default ones&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;In fact is not a bug into the action so the issue resides in that is using the &lt;a href="http://msdn.microsoft.com/en-us/library/envdte.projectitems.addfromtemplate(VS.80).aspx" target="_blank"&gt;AddFromTemplate&lt;/a&gt; method from the DTE automation model and there's no way to pass any replacement dictionary using that method directly.&lt;/p&gt;  &lt;p&gt;So I wrote an action in order to have a workaround, basically what it does is create a copy of the vstemplate and its elements, perform all the replacements, then unfold the template through the UnfoldTemplateAction.&lt;/p&gt;  &lt;p&gt;&lt;a href="https://aspblogs.blob.core.windows.net/media/jescrich/Source Samples/ExExtendedUnfoldTemplateAction.zip" target="_blank"&gt;You can download the source from here.&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Hope that helps!&lt;/p&gt;</description><pubDate>Fri, 05 Oct 2007 19:14:36 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/jescrich/dealing-with-the-unfoldtemplateaction-and-parameter-replacement</guid><category>GAT</category><category>GAX</category><category>Software Factory</category><category>Visual Studio</category></item><item><title>Use a simple Form instead of the GAX Wizard</title><link>https://weblogs.asp.net:443/jescrich/replacing-the-gax-wizard-with-a-simple-form</link><description>&lt;p&gt;A recipe execution implies three parts which are, the arguments, the data gathering and the actions that will be executed using those arguments. By default the data gathering service in &lt;a title="Guidance Automation Extensions" href="http://go.microsoft.com/fwlink/?linkid=47181" target="_blank"&gt;GAX&lt;/a&gt; was implemented over the Vs Wizard Framework due to a wizard is a very common scenery to gather values.&lt;/p&gt;  &lt;p&gt;Nevertheless that data gathering service could be extended and you can extend it for example, to replace the UI using simple form instead of the default Wizard pages or just calling directly a web service without any UI. &lt;/p&gt;  &lt;p&gt;To achieve that, you have to create your own implementation of a gathering service implementing the &lt;strong&gt;IValueGatheringService&lt;/strong&gt; interface. That interface has an Execute method which receives an XmlElement that represents the inner XML chunk contained in the GatheringServiceData element as is showing in the following picture:&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="199" alt="image" src="http://latincoder.com/images/ReplacingtheGAXWizardFrameworkwithitown_E928/image_thumb.png" width="616" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;Note that I specified the ServiceType attribute which has the type of my own IValueGatheringService implementation. Basically what it's doing is getting the type attribute contained in the Form element and then it's trying to instantiate that type to show a simple winform.&lt;/p&gt;  &lt;div align="left"&gt;   &lt;pre class="code"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="917" alt="image" src="http://latincoder.com/images/ReplacingtheGAXWizardFrameworkwithitown_E928/image_3.png" width="723" border="0" /&gt; &lt;/pre&gt;
&lt;/div&gt;</description><pubDate>Mon, 24 Sep 2007 19:07:51 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/jescrich/replacing-the-gax-wizard-with-a-simple-form</guid><category>GAT</category><category>GAX</category><category>Visual Studio</category></item><item><title>Registering a GAX Guidance Package in the Experimental Vs Hive</title><link>https://weblogs.asp.net:443/jescrich/registering-a-gax-guidance-package-in-a-experimental-vs-hive</link><description>&lt;p&gt;One of the features in the &lt;a href="http://blogs.msdn.com/agile/archive/2007/08/02/new-gax-gat-july-2007-released.aspx" mce_href="http://blogs.msdn.com/agile/archive/2007/08/02/new-gax-gat-july-2007-released.aspx" target="_blank"&gt;latest July 2007 CTP&lt;/a&gt; version of &lt;a href="http://go.microsoft.com/fwlink/?linkid=47181" title="Guidance Automation Extensions" mce_href="http://go.microsoft.com/fwlink/?linkid=47181" target="_blank"&gt;GAX&lt;/a&gt;/&lt;a href="http://go.microsoft.com/fwlink/?linkid=47060" title="Guidance Automation Toolkit" mce_href="http://go.microsoft.com/fwlink/?linkid=47060" target="_blank"&gt;GAT&lt;/a&gt; is the possibility to include switches in the installer execution at design time (that's the switches that will be added in the installutil execution when you register a GP through the Register &lt;a href="http://go.microsoft.com/fwlink/?linkid=47060" title="Guidance Automation Toolkit" mce_href="http://go.microsoft.com/fwlink/?linkid=47060" target="_blank"&gt;GAT&lt;/a&gt; action, as show in the following picture).&lt;/p&gt;  &lt;p&gt;&amp;nbsp;&lt;a href="http://latincoder.com/images/RegisteringaGAXGuidancePackageinaExperim_113B4/image.png" mce_href="http://latincoder.com/images/RegisteringaGAXGuidancePackageinaExperim_113B4/image.png"&gt;&lt;img src="http://latincoder.com/images/RegisteringaGAXGuidancePackageinaExperim_113B4/image_thumb.png" style="border: 0px none ;" alt="image" mce_src="http://latincoder.com/images/RegisteringaGAXGuidancePackageinaExperim_113B4/image_thumb.png" border="0" height="159" width="311"&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;So in addition of this feature we've included a new switch that able you to register the package in the Experimental Vs hive or any other one that you're working on just specifying the RegistrationSettings attributes in your guidance package manifest as follow...&lt;/p&gt;  &lt;p&gt;&lt;a href="http://latincoder.com/images/RegisteringaGAXGuidancePackageinaExperim_113B4/image_3.png" mce_href="http://latincoder.com/images/RegisteringaGAXGuidancePackageinaExperim_113B4/image_3.png"&gt;&lt;img src="http://latincoder.com/images/RegisteringaGAXGuidancePackageinaExperim_113B4/image_thumb_3.png" style="border: 0px none ;" alt="image" mce_src="http://latincoder.com/images/RegisteringaGAXGuidancePackageinaExperim_113B4/image_thumb_3.png" border="0" height="170" width="424"&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Note that any switch specified in the registration settings will be added to the installutil command at &lt;b&gt;design time&lt;/b&gt; but it won't take effect in your setup project or if you run the installutil by hand. In that case you will have to specify that switches by hand.&lt;/p&gt;</description><pubDate>Sat, 15 Sep 2007 22:48:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/jescrich/registering-a-gax-guidance-package-in-a-experimental-vs-hive</guid><category>GAT</category><category>GAX</category><category>Software Factory</category><category>Visual Studio</category><category>VSX</category></item><item><title>Customizing GAX Wizard Pages (part 1)</title><link>https://weblogs.asp.net:443/jescrich/customizing-gax-wizard-pages-part-1</link><description>&lt;p&gt;There are some parts that you could want to customize in the wizard page, unfortunately most of this part are not exposed. GAX wizard was implemented over the Visual Studio Wizard Framework and each page inherit from its WizardPage base class and the only thing that you can change is the logo through the Logo property and regarding the title you just can change the text, but no any other property.&lt;/p&gt;  &lt;p&gt;So here you've a trick of how you could customize any Custom Wizard Page. Basically the idea is get the header panel that is docked at the top of each page, which contains the picture and label controls to change its properties in order to get something like following...&lt;/p&gt;  &lt;p&gt;&lt;a href="http://latincoder.com/images/TricksofGAXWizardPagespart1_B7CE/image.png" mce_href="http://latincoder.com/images/TricksofGAXWizardPagespart1_B7CE/image.png"&gt;&lt;img src="http://latincoder.com/images/TricksofGAXWizardPagespart1_B7CE/image_thumb.png" style="border-width: 0px;" alt="image" mce_src="http://latincoder.com/images/TricksofGAXWizardPagespart1_B7CE/image_thumb.png" border="0" height="384" width="558"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://latincoder.com/images/TricksofGAXWizardPagespart1_B7CE/image_3.png" mce_href="http://latincoder.com/images/TricksofGAXWizardPagespart1_B7CE/image_3.png"&gt;&lt;img src="http://latincoder.com/images/TricksofGAXWizardPagespart1_B7CE/image_thumb_3.png" style="border-width: 0px;" alt="image" mce_src="http://latincoder.com/images/TricksofGAXWizardPagespart1_B7CE/image_thumb_3.png" border="0" height="426" width="557"&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;In the following snippet you can see how to get each control and how to change its properties. Note that you can access the controls collection after the InitializeComponent() was called and get each control through its Id.    &lt;br&gt;&lt;a href="http://latincoder.com/images/TricksofGAXWizardPagespart1_B7CE/image_4.png" mce_href="http://latincoder.com/images/TricksofGAXWizardPagespart1_B7CE/image_4.png"&gt;     &lt;br&gt;&lt;img src="http://latincoder.com/images/TricksofGAXWizardPagespart1_B7CE/image_thumb_4.png" style="border-width: 0px;" alt="image" mce_src="http://latincoder.com/images/TricksofGAXWizardPagespart1_B7CE/image_thumb_4.png" border="0" height="430" width="569"&gt;&lt;/a&gt;&lt;/p&gt;</description><pubDate>Thu, 13 Sep 2007 20:28:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/jescrich/customizing-gax-wizard-pages-part-1</guid><category>GAX</category><category>Visual Studio</category><category>VSX</category></item><item><title>New T4 Template Visual Studio Editor.</title><link>https://weblogs.asp.net:443/jescrich/new-t4-template-visual-studio-editor</link><description>&lt;p&gt;During this past month I've been working in a new T4 template editor as a part of the &lt;a href="http://softwarefactoriestoolkit.net/" title="Software Factories Toolkit" mce_href="http://softwarefactoriestoolkit.net/" target="_blank"&gt;&lt;b&gt;SFT&lt;/b&gt;&lt;/a&gt;.&lt;/p&gt; &lt;p&gt;If you're working with dsl or gax you already know, how the editor looks when you try to edit a text template file, it looks like this:&lt;/p&gt; &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/jescrich/WindowsLiveWriter/T4TemplateEditor_EEB1/image.png" mce_href="http://geekswithblogs.net/images/geekswithblogs_net/jescrich/WindowsLiveWriter/T4TemplateEditor_EEB1/image.png" atomicselection="true"&gt;&lt;img src="http://geekswithblogs.net/images/geekswithblogs_net/jescrich/WindowsLiveWriter/T4TemplateEditor_EEB1/image_thumb.png" style="border-width: 0px;" alt="image" mce_src="http://geekswithblogs.net/images/geekswithblogs_net/jescrich/WindowsLiveWriter/T4TemplateEditor_EEB1/image_thumb.png" border="0" height="340" width="402"&gt;&lt;/a&gt; &lt;/p&gt;So now you can have a fully colorized text editor for your T4 templates like the ASP.NET Vs editor and you can get it now downlaoding the &lt;a href="http://softwarefactoriestoolkit.net/" mce_href="http://softwarefactoriestoolkit.net/" target="_blank"&gt;&lt;b&gt;ClariuS Software Factories Toolkit here&lt;/b&gt;.&lt;/a&gt;&lt;br&gt; &lt;p&gt;&lt;b&gt;Colorizing, Intellisense and Validation&lt;/b&gt;&lt;/p&gt; &lt;p&gt;In this release it's providing colorizing and intellisense for the T4 statements, like directives, class features and blocks. Regarding the directives you have intellisense for all well known directives and its properties and values. &lt;/p&gt; &lt;p&gt;&lt;br&gt; &lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/jescrich/WindowsLiveWriter/T4TemplateEditor_EEB1/t4editor.gif" mce_href="http://geekswithblogs.net/images/geekswithblogs_net/jescrich/WindowsLiveWriter/T4TemplateEditor_EEB1/t4editor.gif" atomicselection="true"&gt;&lt;img src="http://geekswithblogs.net/images/geekswithblogs_net/jescrich/WindowsLiveWriter/T4TemplateEditor_EEB1/t4editor_thumb.gif" alt="t4editor" mce_src="http://geekswithblogs.net/images/geekswithblogs_net/jescrich/WindowsLiveWriter/T4TemplateEditor_EEB1/t4editor_thumb.gif" border="0" height="420" width="628"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;One interesting feature is for those the well known properties which represents a type, the intellisense gives a complete list of the current project types including its references. &lt;br&gt;&lt;/p&gt; &lt;p&gt; &lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/jescrich/WindowsLiveWriter/T4TemplateEditor_EEB1/t4editorintellisense00.gif" mce_href="http://geekswithblogs.net/images/geekswithblogs_net/jescrich/WindowsLiveWriter/T4TemplateEditor_EEB1/t4editorintellisense00.gif" atomicselection="true"&gt;&lt;img src="http://geekswithblogs.net/images/geekswithblogs_net/jescrich/WindowsLiveWriter/T4TemplateEditor_EEB1/t4editorintellisense00_thumb.gif" alt="t4editorintellisense00" mce_src="http://geekswithblogs.net/images/geekswithblogs_net/jescrich/WindowsLiveWriter/T4TemplateEditor_EEB1/t4editorintellisense00_thumb.gif" border="0" height="177" width="627"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&lt;b&gt;Validation&lt;/b&gt;&lt;/p&gt; &lt;p&gt;Like the ASP.NET editor you have a real time document validation.&lt;/p&gt; &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/jescrich/WindowsLiveWriter/T4TemplateEditor_EEB1/t4editorvalidation_2.gif" mce_href="http://geekswithblogs.net/images/geekswithblogs_net/jescrich/WindowsLiveWriter/T4TemplateEditor_EEB1/t4editorvalidation_2.gif" atomicselection="true"&gt;&lt;img src="http://geekswithblogs.net/images/geekswithblogs_net/jescrich/WindowsLiveWriter/T4TemplateEditor_EEB1/t4editorvalidation_thumb_2.gif" alt="Validation" mce_src="http://geekswithblogs.net/images/geekswithblogs_net/jescrich/WindowsLiveWriter/T4TemplateEditor_EEB1/t4editorvalidation_thumb_2.gif" border="0" height="304" width="747"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;b&gt;Preview Transformation&lt;/b&gt;&lt;/p&gt; &lt;p&gt;One useful feature is the possibility to run a template transformation in design time, basically as you know, there are two common contexts to run t4 templates, that's a DSLTools Host and GAX Host. When you use the GAX host, most probably you use properties, so you can specify those properties values through the editor property window. &lt;/p&gt; &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/jescrich/WindowsLiveWriter/T4TemplateEditor_EEB1/t4editorproperties.gif" mce_href="http://geekswithblogs.net/images/geekswithblogs_net/jescrich/WindowsLiveWriter/T4TemplateEditor_EEB1/t4editorproperties.gif" atomicselection="true"&gt;&lt;img src="http://geekswithblogs.net/images/geekswithblogs_net/jescrich/WindowsLiveWriter/T4TemplateEditor_EEB1/t4editorproperties_thumb.gif" alt="t4editorproperties" mce_src="http://geekswithblogs.net/images/geekswithblogs_net/jescrich/WindowsLiveWriter/T4TemplateEditor_EEB1/t4editorproperties_thumb.gif" border="0" height="482" width="726"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;If you want to use complex types you can specify in the property declaration an UITypeEditor and a TypeConverter if it's needed.&lt;/p&gt; &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/jescrich/WindowsLiveWriter/T4TemplateEditor_EEB1/t4typeeditor.gif" mce_href="http://geekswithblogs.net/images/geekswithblogs_net/jescrich/WindowsLiveWriter/T4TemplateEditor_EEB1/t4typeeditor.gif" atomicselection="true"&gt;&lt;img src="http://geekswithblogs.net/images/geekswithblogs_net/jescrich/WindowsLiveWriter/T4TemplateEditor_EEB1/t4typeeditor_thumb.gif" alt="t4typeeditor" mce_src="http://geekswithblogs.net/images/geekswithblogs_net/jescrich/WindowsLiveWriter/T4TemplateEditor_EEB1/t4typeeditor_thumb.gif" border="0" height="289" width="370"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;So to run the transformation you just have to specify some values for the properties and run the preview transformation commands, which is located at top of solution explorer or in the editor context menu. After running the transformation you get a temp file with the output. If you've specified the ouput extension directive the temp file will have that extension, that's useful so that so to instantiate the proper Vs editor for that output file.  &lt;/p&gt;&lt;p&gt;The transformation could fail for different reasons, if the transformation fails when the template is compiled you'll get those errors into visual studio error list, however if the transformation fails after the compilation and when the template is running you'll get the errors in a temp output file.  &lt;/p&gt;&lt;p&gt;&lt;b&gt;Debugging&lt;/b&gt;  &lt;/p&gt;&lt;p&gt;Unfortunately, in this version the editor does not have debug yet, however in the meantime you can check the &lt;a href="http://blogs.msdn.com/garethj/archive/2006/01/09/t4debugging.aspx" title="How to Debug Text Templates" mce_href="http://blogs.msdn.com/garethj/archive/2006/01/09/t4debugging.aspx" target="_blank"&gt;Garethj's Blog&lt;/a&gt;, there he has a post of how you can debug a template. I hope we could include this feature on future versions.  &lt;/p&gt;&lt;p&gt;&lt;b&gt;What's coming&lt;/b&gt;  &lt;/p&gt;&lt;p&gt;We're working in one important feature which is supporting intellisense and colorizing for the embedded language like you already have in the ASP.NET editor.  &lt;/p&gt;&lt;p&gt;&lt;br&gt;You can try it now, &lt;a href="http://softwarefactoriestoolkit.net/" mce_href="http://softwarefactoriestoolkit.net/" target="_blank"&gt;download the &lt;b&gt;Clarius Software Factories Toolkit from here.&lt;/b&gt;&lt;/a&gt;  &lt;/p&gt;&lt;p&gt;Enjoy.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?feedUrl=http%3a%2f%2fgeekswithblogs.net%2fMainFeed.aspx&amp;amp;itemLink=http%3a%2f%2fgeekswithblogs.net%2fjescrich%2farchive%2f2007%2f06%2f07%2fNew-T4-Template-Visual-Studio-Editor.aspx&amp;amp;itemDate=2007-06-07+11%3a31%3a18&amp;amp;itemTitle=New+T4+Template+Visual+Studio+Editor." mce_href="http://www.pheedo.com/click.phdo?feedUrl=http%3a%2f%2fgeekswithblogs.net%2fMainFeed.aspx&amp;amp;itemLink=http%3a%2f%2fgeekswithblogs.net%2fjescrich%2farchive%2f2007%2f06%2f07%2fNew-T4-Template-Visual-Studio-Editor.aspx&amp;amp;itemDate=2007-06-07+11%3a31%3a18&amp;amp;itemTitle=New+T4+Template+Visual+Studio+Editor."&gt;&lt;img src="http://www.pheedo.com/img.phdo?feedUrl=http%3a%2f%2fgeekswithblogs.net%2fMainFeed.aspx&amp;amp;itemLink=http%3a%2f%2fgeekswithblogs.net%2fjescrich%2farchive%2f2007%2f06%2f07%2fNew-T4-Template-Visual-Studio-Editor.aspx&amp;amp;itemDate=2007-06-07+11%3a31%3a18&amp;amp;itemTitle=New+T4+Template+Visual+Studio+Editor." mce_src="http://www.pheedo.com/img.phdo?feedUrl=http%3a%2f%2fgeekswithblogs.net%2fMainFeed.aspx&amp;amp;itemLink=http%3a%2f%2fgeekswithblogs.net%2fjescrich%2farchive%2f2007%2f06%2f07%2fNew-T4-Template-Visual-Studio-Editor.aspx&amp;amp;itemDate=2007-06-07+11%3a31%3a18&amp;amp;itemTitle=New+T4+Template+Visual+Studio+Editor." border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://geekswithblogs.net/jescrich/aggbug/113074.aspx" mce_src="http://geekswithblogs.net/jescrich/aggbug/113074.aspx" height="1" width="1"&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/%7Ef/jescrichen?a=3FC3OLB7" mce_href="http://feeds.feedburner.com/~f/jescrichen?a=3FC3OLB7"&gt;&lt;img src="http://feeds.feedburner.com/%7Ef/jescrichen?i=3FC3OLB7" mce_src="http://feeds.feedburner.com/~f/jescrichen?i=3FC3OLB7" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/%7Ef/jescrichen?a=QupM0jLj" mce_href="http://feeds.feedburner.com/~f/jescrichen?a=QupM0jLj"&gt;&lt;img src="http://feeds.feedburner.com/%7Ef/jescrichen?i=QupM0jLj" mce_src="http://feeds.feedburner.com/~f/jescrichen?i=QupM0jLj" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;</description><pubDate>Thu, 07 Jun 2007 13:31:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/jescrich/new-t4-template-visual-studio-editor</guid><category>SFT</category><category>Visual Studio</category></item><item><title>Recipe Designer and SFT June CTP</title><link>https://weblogs.asp.net:443/jescrich/recipe-designer-and-sft-june-ctp</link><description>&lt;p&gt;Today we shipped the &lt;a href="http://softwarefactoriestoolkit.net/" mce_href="http://softwarefactoriestoolkit.net/" target="_blank"&gt;&lt;b&gt;June CTP of the Clarius Software Factories Toolkit&lt;/b&gt;&lt;/a&gt;, which includes a new version of the Recipe Designer. The main change what I've been working on, is the serialization behavior in order to support round tripping, beside that was an interesting opportunity to work implementing a custom serialization in a Dsl.&lt;/p&gt; &lt;p&gt;So now if you change the .xml extension of the recipe definition file with  .recipe extension, you'll get a graphical representation of your recipe, the only constraint that it has is that it is not supporting XInclude.&lt;br&gt;&lt;/p&gt; &lt;p align="center"&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/jescrich/WindowsLiveWriter/AnewRecipeDesignerinSFT_D91E/image.png" mce_href="http://geekswithblogs.net/images/geekswithblogs_net/jescrich/WindowsLiveWriter/AnewRecipeDesignerinSFT_D91E/image.png" atomicselection="true"&gt;&lt;img src="http://geekswithblogs.net/images/geekswithblogs_net/jescrich/WindowsLiveWriter/AnewRecipeDesignerinSFT_D91E/image_thumb.png" style="border-width: 0px;" alt="image" mce_src="http://geekswithblogs.net/images/geekswithblogs_net/jescrich/WindowsLiveWriter/AnewRecipeDesignerinSFT_D91E/image_thumb.png" border="0" height="346" width="640"&gt;&lt;/a&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;Key features&lt;/b&gt;&lt;/p&gt; &lt;p&gt;&lt;b&gt;Round tripping&lt;/b&gt;: Now you can edit your recipe using the default xml editor as usual maintaining the synchronization with the designer with no extra work.&lt;/p&gt; &lt;p&gt;&lt;b&gt;Improved User Experience&lt;/b&gt;: Simplest new ToolBox. Now you basically have two connectors, one to connect arguments with wizard fields or action properties and another to define the flow between actions and between pages. Also the shapes includes useful information like the friendly type name and in the case of arguments if it's required or not&lt;/p&gt; &lt;p align="center"&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/jescrich/WindowsLiveWriter/AnewRecipeDesignerinSFT_D91E/image_1.png" mce_href="http://geekswithblogs.net/images/geekswithblogs_net/jescrich/WindowsLiveWriter/AnewRecipeDesignerinSFT_D91E/image_1.png" atomicselection="true"&gt;&lt;img src="http://geekswithblogs.net/images/geekswithblogs_net/jescrich/WindowsLiveWriter/AnewRecipeDesignerinSFT_D91E/image_thumb_1.png" style="border-width: 0px; margin: 0px;" alt="image" mce_src="http://geekswithblogs.net/images/geekswithblogs_net/jescrich/WindowsLiveWriter/AnewRecipeDesignerinSFT_D91E/image_thumb_1.png" border="0" height="237" width="212"&gt;&lt;/a&gt;   &lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/jescrich/WindowsLiveWriter/AnewRecipeDesignerinSFT_D91E/rd00_1.png" mce_href="http://geekswithblogs.net/images/geekswithblogs_net/jescrich/WindowsLiveWriter/AnewRecipeDesignerinSFT_D91E/rd00_1.png" atomicselection="true"&gt;&lt;img src="http://geekswithblogs.net/images/geekswithblogs_net/jescrich/WindowsLiveWriter/AnewRecipeDesignerinSFT_D91E/rd00_thumb_1.png" style="border-width: 0px;" alt="rd00" mce_src="http://geekswithblogs.net/images/geekswithblogs_net/jescrich/WindowsLiveWriter/AnewRecipeDesignerinSFT_D91E/rd00_thumb_1.png" border="0" height="211" width="558"&gt;&lt;/a&gt;   &lt;/p&gt; &lt;p&gt;&lt;b&gt;&lt;br&gt;Main manifest syncronization&lt;/b&gt;: if the recipe definition is well formed, you'll get an xinclude of your recipe in the main manifest file. Also if the recipe already has a unbounded reference, it will be added in the &lt;i&gt;BindingRecipe&lt;/i&gt; recipe.&lt;/p&gt; &lt;p&gt;&lt;b&gt;Configurable Attributes Support&lt;/b&gt;: You can define in the designer view all your configurable attributes in any element that support it, like actions, valueproviders, etc.&lt;/p&gt; &lt;p&gt;&lt;i&gt;We're working on the next release of &lt;a href="http://www.softwarefactoriestoolkit.net" title="Software Factories Toolkit" mce_href="http://www.softwarefactoriestoolkit.net" target="_blank"&gt;Software Factories Toolkit&lt;/a&gt;, your comments, suggestions and bug reports are welcome. You can give your feedback through &lt;a href="http://softwarefactoriestoolkit.net/forums.aspx" mce_href="http://softwarefactoriestoolkit.net/forums.aspx" target="_blank"&gt;SFT Forums&lt;/a&gt;.&lt;br&gt;&lt;a href="http://softwarefactoriestoolkit.net/forums.aspx" title="http://softwarefactoriestoolkit.net/forums.aspx" mce_href="http://softwarefactoriestoolkit.net/forums.aspx"&gt;http://softwarefactoriestoolkit.net/forums.aspx&lt;/a&gt;&lt;/i&gt;&lt;/p&gt; &lt;p&gt;&lt;a href="http://softwarefactoriestoolkit.net/#" mce_href="http://softwarefactoriestoolkit.net/#" target="_blank"&gt;&lt;b&gt;&lt;u&gt;Download Software Factories Toolkit Here.&lt;/u&gt;&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?feedUrl=http%3a%2f%2fgeekswithblogs.net%2fMainFeed.aspx&amp;amp;itemLink=http%3a%2f%2fgeekswithblogs.net%2fjescrich%2farchive%2f2007%2f06%2f07%2fRecipe-Designer-and-SFT-June-CTP.aspx&amp;amp;itemDate=2007-06-07+11%3a29%3a48&amp;amp;itemTitle=Recipe+Designer+and+SFT+June+CTP" mce_href="http://www.pheedo.com/click.phdo?feedUrl=http%3a%2f%2fgeekswithblogs.net%2fMainFeed.aspx&amp;amp;itemLink=http%3a%2f%2fgeekswithblogs.net%2fjescrich%2farchive%2f2007%2f06%2f07%2fRecipe-Designer-and-SFT-June-CTP.aspx&amp;amp;itemDate=2007-06-07+11%3a29%3a48&amp;amp;itemTitle=Recipe+Designer+and+SFT+June+CTP"&gt;&lt;img src="http://www.pheedo.com/img.phdo?feedUrl=http%3a%2f%2fgeekswithblogs.net%2fMainFeed.aspx&amp;amp;itemLink=http%3a%2f%2fgeekswithblogs.net%2fjescrich%2farchive%2f2007%2f06%2f07%2fRecipe-Designer-and-SFT-June-CTP.aspx&amp;amp;itemDate=2007-06-07+11%3a29%3a48&amp;amp;itemTitle=Recipe+Designer+and+SFT+June+CTP" mce_src="http://www.pheedo.com/img.phdo?feedUrl=http%3a%2f%2fgeekswithblogs.net%2fMainFeed.aspx&amp;amp;itemLink=http%3a%2f%2fgeekswithblogs.net%2fjescrich%2farchive%2f2007%2f06%2f07%2fRecipe-Designer-and-SFT-June-CTP.aspx&amp;amp;itemDate=2007-06-07+11%3a29%3a48&amp;amp;itemTitle=Recipe+Designer+and+SFT+June+CTP" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://geekswithblogs.net/jescrich/aggbug/113073.aspx" mce_src="http://geekswithblogs.net/jescrich/aggbug/113073.aspx" height="1" width="1"&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/%7Ef/jescrichen?a=GX5Ej0q2" mce_href="http://feeds.feedburner.com/~f/jescrichen?a=GX5Ej0q2"&gt;&lt;img src="http://feeds.feedburner.com/%7Ef/jescrichen?i=GX5Ej0q2" mce_src="http://feeds.feedburner.com/~f/jescrichen?i=GX5Ej0q2" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/%7Ef/jescrichen?a=VJvwYj7y" mce_href="http://feeds.feedburner.com/~f/jescrichen?a=VJvwYj7y"&gt;&lt;img src="http://feeds.feedburner.com/%7Ef/jescrichen?i=VJvwYj7y" mce_src="http://feeds.feedburner.com/~f/jescrichen?i=VJvwYj7y" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;</description><pubDate>Thu, 07 Jun 2007 13:29:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/jescrich/recipe-designer-and-sft-june-ctp</guid><category>SFT</category><category>Visual Studio</category></item><item><title>ClariuS Software Factories Toolkit June CTP is out!.</title><link>https://weblogs.asp.net:443/jescrich/clarius-software-factories-toolkit-june-ctp-is-out</link><description>&lt;p&gt;&lt;a href="http://softwarefactoriestoolkit.net/" mce_href="http://softwarefactoriestoolkit.net/" target="_blank"&gt;The Software Factories Toolkit June CTP&lt;/a&gt; is finally out and the key improvements in this release are:&lt;/p&gt; &lt;p&gt;- &lt;b&gt;Recipe Designer&lt;/b&gt; with a redesigned user experiencie and round tripping support, so it could uses the .xml recipe files as is.&lt;/p&gt; &lt;p&gt;- &lt;b&gt;T4 Templates Editor&lt;/b&gt;, an useful editor with colorizing, intellisense and support to preview transformation in design time.&lt;/p&gt; &lt;p&gt;- &lt;b&gt;Multi package setup wizard&lt;/b&gt;, a recipe which generate a wix setup project with all the package contained in a solution. The most interesting thing here, is that you don't have to create differente setup project for each of your package any more. Now you can create a unified wix project, which could contain two or more guidance package and dsl tools packages. &lt;a href="http://adrianalonso.blogspot.com/2007/06/sft-setup-project-deploying-many.html" mce_href="http://adrianalonso.blogspot.com/2007/06/sft-setup-project-deploying-many.html" target="_blank"&gt;&lt;b&gt;Get more information about this new feature in the Adrian's Blog.&lt;/b&gt;&lt;/a&gt;&lt;/p&gt; &lt;div class="wlWriterSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:68ca3574-7099-4839-bcae-a567a2249822" contenteditable="false" style="margin: 0px; padding: 0px; display: inline;"&gt;del.icio.us Tags: &lt;a href="http://del.icio.us/popular/Software%20Factories" mce_href="http://del.icio.us/popular/Software%20Factories" rel="tag"&gt;Software Factories&lt;/a&gt;&lt;/div&gt; &lt;p&gt;- &lt;b&gt;Dsl Recipe Binder&lt;/b&gt;, now you can specify bindings to recipes just doing a right click on your dsl designer surface and choossing a reference where the recipes will apply.&lt;/p&gt; &lt;p&gt;You can check the &lt;a href="http://clariusconsulting.net/blogs/vga" mce_href="http://clariusconsulting.net/blogs/vga" target="_blank"&gt;Victor's blog&lt;/a&gt;, there you will find an overview of the new features included in this drop.&lt;br&gt;&lt;br&gt;&lt;b&gt;&lt;a href="http://softwarefactoriestoolkit.net/" mce_href="http://softwarefactoriestoolkit.net/" target="_blank"&gt;&lt;u&gt;You can get the latest SFT version here.&lt;/u&gt;&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?feedUrl=http%3a%2f%2fgeekswithblogs.net%2fMainFeed.aspx&amp;amp;itemLink=http%3a%2f%2fgeekswithblogs.net%2fjescrich%2farchive%2f2007%2f06%2f07%2fClariuS-Software-Factories-Toolkit-June-CTP-is-out.aspx&amp;amp;itemDate=2007-06-07+11%3a28%3a28&amp;amp;itemTitle=ClariuS+Software+Factories+Toolkit+June+CTP+is+out%21." mce_href="http://www.pheedo.com/click.phdo?feedUrl=http%3a%2f%2fgeekswithblogs.net%2fMainFeed.aspx&amp;amp;itemLink=http%3a%2f%2fgeekswithblogs.net%2fjescrich%2farchive%2f2007%2f06%2f07%2fClariuS-Software-Factories-Toolkit-June-CTP-is-out.aspx&amp;amp;itemDate=2007-06-07+11%3a28%3a28&amp;amp;itemTitle=ClariuS+Software+Factories+Toolkit+June+CTP+is+out!."&gt;&lt;img src="http://www.pheedo.com/img.phdo?feedUrl=http%3a%2f%2fgeekswithblogs.net%2fMainFeed.aspx&amp;amp;itemLink=http%3a%2f%2fgeekswithblogs.net%2fjescrich%2farchive%2f2007%2f06%2f07%2fClariuS-Software-Factories-Toolkit-June-CTP-is-out.aspx&amp;amp;itemDate=2007-06-07+11%3a28%3a28&amp;amp;itemTitle=ClariuS+Software+Factories+Toolkit+June+CTP+is+out%21." mce_src="http://www.pheedo.com/img.phdo?feedUrl=http%3a%2f%2fgeekswithblogs.net%2fMainFeed.aspx&amp;amp;itemLink=http%3a%2f%2fgeekswithblogs.net%2fjescrich%2farchive%2f2007%2f06%2f07%2fClariuS-Software-Factories-Toolkit-June-CTP-is-out.aspx&amp;amp;itemDate=2007-06-07+11%3a28%3a28&amp;amp;itemTitle=ClariuS+Software+Factories+Toolkit+June+CTP+is+out!." border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://geekswithblogs.net/jescrich/aggbug/113072.aspx" mce_src="http://geekswithblogs.net/jescrich/aggbug/113072.aspx" height="1" width="1"&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/%7Ef/jescrichen?a=nstC7L4t" mce_href="http://feeds.feedburner.com/~f/jescrichen?a=nstC7L4t"&gt;&lt;img src="http://feeds.feedburner.com/%7Ef/jescrichen?i=nstC7L4t" mce_src="http://feeds.feedburner.com/~f/jescrichen?i=nstC7L4t" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/%7Ef/jescrichen?a=PgMAXDq8" mce_href="http://feeds.feedburner.com/~f/jescrichen?a=PgMAXDq8"&gt;&lt;img src="http://feeds.feedburner.com/%7Ef/jescrichen?i=PgMAXDq8" mce_src="http://feeds.feedburner.com/~f/jescrichen?i=PgMAXDq8" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;</description><pubDate>Thu, 07 Jun 2007 13:28:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/jescrich/clarius-software-factories-toolkit-june-ctp-is-out</guid></item><item><title>Testing T4 templates using the GAX host</title><link>https://weblogs.asp.net:443/jescrich/testing-t4-templates-using-the-gax-host</link><description>&lt;a href="http://latincoder.com/samples/t4samplepackage.rar" mce_href="http://latincoder.com/samples/t4samplepackage.rar" title="Download Sample Package"&gt;&lt;br&gt;
Download Sample Package&lt;/a&gt; &lt;br&gt;
&lt;br&gt;
I guess that there are not a best approach to do the tests without a built in support in the T4 template host. Nevertheless in the Web Service Software Factory we did a very first approach of how you could write test units for t4 templates.&lt;br&gt;
&lt;br&gt;
Suppose that we have a template which the output is a simple class, in the following example I did a simple package which contains a T4 template called Programs.cs.t4 so, the idea is, run the transformation and then try to compile the class to get its Type in order to make asserts using reflection.&lt;br&gt;
&lt;br&gt;
In the attached sample fixture it has an ExecuteTemplate helper method which has the logic to run the transformation and then try to compile it. &lt;span style="color: rgb(102, 102, 102);"&gt;(considering that the output is a .cs class, if not, it could return an XmlDocument in case that the transformation results in an xml file). &lt;/span&gt;&lt;br&gt;
&lt;br&gt;
&lt;div style="text-align: left;"&gt;&lt;img src="http://docs.google.com/File?id=ajdmzppnr3xn_3fkw2k9c4" mce_src="http://docs.google.com/File?id=ajdmzppnr3xn_3fkw2k9c4" style="height: 546px; width: 730px;" alt="" align="middle" border="0" hspace="0" vspace="0"&gt;&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;
In the next picture you've the TestMethod which runs the transformation, gets the returned type and then perform different asserts over it.&lt;br&gt;
&lt;br&gt;
&lt;div style="text-align: left;"&gt;&lt;img src="http://docs.google.com/File?id=ajdmzppnr3xn_5dwk3xzcx" mce_src="http://docs.google.com/File?id=ajdmzppnr3xn_5dwk3xzcx" style="height: 272px; width: 699px;" alt="" align="middle"&gt;&lt;br&gt;
&lt;/div&gt;
Notice that you should have created a link to the T4 template file and set the *Copy to Output* property as "Copy if newer" as showing in the following image, this is an important thing because the TestMethod is marked with the DeploymentItemAttribute in order to have the t4 file in the test context. Also you have to reference the Microsoft.Practices.RecipeFramework.VisualStudio.Library and Microsoft.VisualStudio.TextTemplating assemblies which are located in the PublicAssemblies folder.&lt;br&gt;
&lt;br&gt;
&lt;img src="http://docs.google.com/File?id=ajdmzppnr3xn_7g7tnhmdc" mce_src="http://docs.google.com/File?id=ajdmzppnr3xn_7g7tnhmdc" style="height: 514px; width: 622px;" alt="" align="absmiddle"&gt;&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;a href="http://latincoder.com/samples/t4samplepackage.rar" mce_href="http://latincoder.com/samples/t4samplepackage.rar" title="Download Sample Package"&gt;Download Sample Package&lt;/a&gt; &lt;br&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?feedUrl=http%3a%2f%2fgeekswithblogs.net%2fMainFeed.aspx&amp;amp;itemLink=http%3a%2f%2fgeekswithblogs.net%2fjescrich%2farchive%2f2007%2f05%2f03%2fTesting-T4-templates-using-the-GAX-host.aspx&amp;amp;itemDate=2007-05-03+15%3a56%3a20&amp;amp;itemTitle=Testing+T4+templates+using+the+GAX+host" mce_href="http://www.pheedo.com/click.phdo?feedUrl=http%3a%2f%2fgeekswithblogs.net%2fMainFeed.aspx&amp;amp;itemLink=http%3a%2f%2fgeekswithblogs.net%2fjescrich%2farchive%2f2007%2f05%2f03%2fTesting-T4-templates-using-the-GAX-host.aspx&amp;amp;itemDate=2007-05-03+15%3a56%3a20&amp;amp;itemTitle=Testing+T4+templates+using+the+GAX+host"&gt;&lt;img src="http://www.pheedo.com/img.phdo?feedUrl=http%3a%2f%2fgeekswithblogs.net%2fMainFeed.aspx&amp;amp;itemLink=http%3a%2f%2fgeekswithblogs.net%2fjescrich%2farchive%2f2007%2f05%2f03%2fTesting-T4-templates-using-the-GAX-host.aspx&amp;amp;itemDate=2007-05-03+15%3a56%3a20&amp;amp;itemTitle=Testing+T4+templates+using+the+GAX+host" mce_src="http://www.pheedo.com/img.phdo?feedUrl=http%3a%2f%2fgeekswithblogs.net%2fMainFeed.aspx&amp;amp;itemLink=http%3a%2f%2fgeekswithblogs.net%2fjescrich%2farchive%2f2007%2f05%2f03%2fTesting-T4-templates-using-the-GAX-host.aspx&amp;amp;itemDate=2007-05-03+15%3a56%3a20&amp;amp;itemTitle=Testing+T4+templates+using+the+GAX+host" border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://geekswithblogs.net/jescrich/aggbug/112218.aspx" mce_src="http://geekswithblogs.net/jescrich/aggbug/112218.aspx" height="1" width="1"&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/%7Ef/jescrichen?a=lmebCr4j" mce_href="http://feeds.feedburner.com/~f/jescrichen?a=lmebCr4j"&gt;&lt;img src="http://feeds.feedburner.com/%7Ef/jescrichen?i=lmebCr4j" mce_src="http://feeds.feedburner.com/~f/jescrichen?i=lmebCr4j" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/%7Ef/jescrichen?a=fZRl42ch" mce_href="http://feeds.feedburner.com/~f/jescrichen?a=fZRl42ch"&gt;&lt;img src="http://feeds.feedburner.com/%7Ef/jescrichen?i=fZRl42ch" mce_src="http://feeds.feedburner.com/~f/jescrichen?i=fZRl42ch" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;</description><pubDate>Thu, 03 May 2007 17:56:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/jescrich/testing-t4-templates-using-the-gax-host</guid></item><item><title>Clarius Software Factory Toolkit February 2007 CTP is out.</title><link>https://weblogs.asp.net:443/jescrich/clarius-software-factory-toolkit-february-2007-ctp-is-out</link><description>&lt;p&gt;Finally the new February CTP of the &lt;a href="http://softwarefactoriestoolkit.net/" target="_blank" mce_href="http://softwarefactoriestoolkit.net/"&gt;&lt;b&gt;ClariuS Software Factory Toolkit&lt;/b&gt;&lt;/a&gt; is out and you can download now, &lt;a href="http://softwarefactoriestoolkit.net/downloads.aspx" target="_blank" mce_href="http://softwarefactoriestoolkit.net/downloads.aspx"&gt;&lt;b&gt;from here&lt;/b&gt;&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;This version includes several new features and some of the key features are the follow:&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Different Guidance Package Templates&lt;/b&gt;, what this means? now when you go to create a new Guidance Package using SFT you will have the possibility to choose a basic template considering if you want to use just a single file or different files per recipe (using xinclude) to use in that guidance package. Also you will can define a default welcome page, guidance navigator overview and other interesting thing is that you will be able to choose what kind of installer you want to add to the package, that's it a wix setup project or the default Vs setup project.&lt;br&gt;
&lt;/p&gt;
&lt;p&gt;&lt;img src="http://latincoder.com/images/softwarefactorytoolkitmarchctpisout_150A6/image0_thumb1.png" alt="" mce_src="http://latincoder.com/images/softwarefactorytoolkitmarchctpisout_150A6/image0_thumb1.png" height="191" width="414"&gt;  &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Manifest Type Validator,&lt;/b&gt;  the types that you place in the manifest could have typos but, usually you discover those errors just in runtime when you're running one of the recipes in your package and it fails. Using the manifest type validator you'll get an error in desgin time for any invalid type in the manifest. The manifest validation is launched with the package registration and you can also disable the validation through the SFT Settings Page.&lt;br&gt;
&lt;/p&gt;
&lt;p align="center"&gt;&lt;img src="http://latincoder.com/images/softwarefactorytoolkitmarchctpisout_150A6/image0_thumb12.png" alt="" mce_src="http://latincoder.com/images/softwarefactorytoolkitmarchctpisout_150A6/image0_thumb12.png" height="124" width="861"&gt; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;/b&gt; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;Recipe Designer&lt;/b&gt;, although is on an experimental stage, maybe is one of the most interesting features. Basically it's a Recipe Editor made with the DSL tools, which able you to design a recipe in a graphical way. With that, you can drag Actions, Arguments, Page, Value Providers and any recipe element to the designer in a really easy way, also you have a helpful type browser per element that searches all available asset types in the package. When you have done the recipe, you just have to invoke the Generate Recipe command and it serialize the recipe including the recipe chunk in the main manifest file and also including the action at the binding recipe when the designed recipe was set as unbound.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://latincoder.com/images/softwarefactorytoolkitmarchctpisout_150A6/image031.png" atomicselection="true" mce_href="http://latincoder.com/images/softwarefactorytoolkitmarchctpisout_150A6/image031.png"&gt;&lt;img src="http://latincoder.com/images/softwarefactorytoolkitmarchctpisout_150A6/image0_thumb19.png" alt="" mce_src="http://latincoder.com/images/softwarefactorytoolkitmarchctpisout_150A6/image0_thumb19.png" height="322" width="640"&gt;&lt;/a&gt; &lt;br&gt;
&lt;font size="1"&gt;Recipe Designer, click in the image to enlarge...&lt;br&gt;
&lt;/font&gt;&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://latincoder.com/images/softwarefactorytoolkitmarchctpisout_150A6/image044.png" atomicselection="true" mce_href="http://latincoder.com/images/softwarefactorytoolkitmarchctpisout_150A6/image044.png"&gt;&lt;img src="http://latincoder.com/images/softwarefactorytoolkitmarchctpisout_150A6/image0_thumb28.png" alt="" mce_src="http://latincoder.com/images/softwarefactorytoolkitmarchctpisout_150A6/image0_thumb28.png" height="374" width="570"&gt;&lt;/a&gt; &lt;br&gt;
&lt;font size="1"&gt;Recipe Designer Type Chooser, click on the image to enlarge...&lt;/font&gt;&lt;br&gt;
&lt;/p&gt;
&lt;p align="left"&gt;&lt;b&gt;&lt;/b&gt; &lt;/p&gt;
&lt;p align="left"&gt;&lt;b&gt;Recipe Binder&lt;/b&gt;, provides guidance that will able you to bind any recipe to any host element (in this version applied for Dsl and Vs Designers references). What this means? For example imagine that you're developing a DSL and also you have your own Guidance Package which have a recipe Foo, and you want to launch that recipe when the user do a right click on a certain Shape of your DSL or simpling in designer surface so, the recipe binder simplify all these steps that you can do in just one click.&lt;br&gt;
&lt;/p&gt;
&lt;p align="center"&gt;&lt;a href="http://latincoder.com/images/softwarefactorytoolkitmarchctpisout_150A6/image038.png" atomicselection="true" mce_href="http://latincoder.com/images/softwarefactorytoolkitmarchctpisout_150A6/image038.png"&gt;&lt;img src="http://latincoder.com/images/softwarefactorytoolkitmarchctpisout_150A6/image0_thumb24.png" alt="" mce_src="http://latincoder.com/images/softwarefactorytoolkitmarchctpisout_150A6/image0_thumb24.png" height="320" width="433"&gt;&lt;/a&gt; &lt;br&gt;
&lt;font size="1"&gt;Recipe Binder Wizard, click on the image to enlarge...&lt;/font&gt;&lt;br&gt;
&lt;/p&gt;
&lt;p align="center"&gt; &lt;/p&gt;
&lt;p&gt;In addition you will find a lot of assets contained in the SFT Library like Actions, References, Value Providers, Type Editors and much, much more.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;SFT Home Page: &lt;/b&gt;&lt;a href="http://softwarefactoriestoolkit.net/" mce_href="http://softwarefactoriestoolkit.net/"&gt;&lt;b&gt;http://softwarefactoriestoolkit.net/&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Support: &lt;/b&gt;&lt;a href="http://softwarefactoriestoolkit.net/support.aspx" mce_href="http://softwarefactoriestoolkit.net/support.aspx"&gt;&lt;b&gt;http://softwarefactoriestoolkit.net/support.aspx&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Download: &lt;/b&gt;&lt;a href="http://softwarefactoriestoolkit.net/downloads.aspx" mce_href="http://softwarefactoriestoolkit.net/downloads.aspx"&gt;&lt;b&gt;http://softwarefactoriestoolkit.net/downloads.aspx&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?feedUrl=http%3a%2f%2fgeekswithblogs.net%2fMainFeed.aspx&amp;amp;itemLink=http%3a%2f%2fgeekswithblogs.net%2fjescrich%2farchive%2f2007%2f03%2f21%2f109447.aspx&amp;amp;itemDate=2007-03-21+22%3a52%3a00&amp;amp;itemTitle=Clarius+Software+Factory+Toolkit+February+2007+CTP+is+out." mce_href="http://www.pheedo.com/click.phdo?feedUrl=http%3a%2f%2fgeekswithblogs.net%2fMainFeed.aspx&amp;amp;itemLink=http%3a%2f%2fgeekswithblogs.net%2fjescrich%2farchive%2f2007%2f03%2f21%2f109447.aspx&amp;amp;itemDate=2007-03-21+22%3a52%3a00&amp;amp;itemTitle=Clarius+Software+Factory+Toolkit+February+2007+CTP+is+out."&gt;&lt;img src="http://www.pheedo.com/img.phdo?feedUrl=http%3a%2f%2fgeekswithblogs.net%2fMainFeed.aspx&amp;amp;itemLink=http%3a%2f%2fgeekswithblogs.net%2fjescrich%2farchive%2f2007%2f03%2f21%2f109447.aspx&amp;amp;itemDate=2007-03-21+22%3a52%3a00&amp;amp;itemTitle=Clarius+Software+Factory+Toolkit+February+2007+CTP+is+out." mce_src="http://www.pheedo.com/img.phdo?feedUrl=http%3a%2f%2fgeekswithblogs.net%2fMainFeed.aspx&amp;amp;itemLink=http%3a%2f%2fgeekswithblogs.net%2fjescrich%2farchive%2f2007%2f03%2f21%2f109447.aspx&amp;amp;itemDate=2007-03-21+22%3a52%3a00&amp;amp;itemTitle=Clarius+Software+Factory+Toolkit+February+2007+CTP+is+out." border="0"&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://geekswithblogs.net/jescrich/aggbug/109447.aspx" mce_src="http://geekswithblogs.net/jescrich/aggbug/109447.aspx" height="1" width="1"&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/%7Ef/jescrichen?a=VI6lyQsS" mce_href="http://feeds.feedburner.com/~f/jescrichen?a=VI6lyQsS"&gt;&lt;img src="http://feeds.feedburner.com/%7Ef/jescrichen?i=VI6lyQsS" mce_src="http://feeds.feedburner.com/~f/jescrichen?i=VI6lyQsS" border="0"&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/%7Ef/jescrichen?a=XN3vlZGW" mce_href="http://feeds.feedburner.com/~f/jescrichen?a=XN3vlZGW"&gt;&lt;img src="http://feeds.feedburner.com/%7Ef/jescrichen?i=XN3vlZGW" mce_src="http://feeds.feedburner.com/~f/jescrichen?i=XN3vlZGW" border="0"&gt;&lt;/a&gt;
&lt;/div&gt;</description><pubDate>Thu, 22 Mar 2007 00:52:00 GMT</pubDate><guid isPermaLink="true">https://weblogs.asp.net:443/jescrich/clarius-software-factory-toolkit-february-2007-ctp-is-out</guid><category>SFT</category><category>Visual Studio</category></item></channel></rss>