<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>Santosh Benjamin</title><link>http://dotnetjunkies.com/WebLog/netblog/default.aspx</link><description>Biztalk, BizUnit and Connected Systems</description><dc:language>en-GB</dc:language><generator>CommunityServer 1.0 (Build: 1.0.1.50214)</generator><item><title>Goodbye DNJ</title><link>http://dotnetjunkies.com/WebLog/netblog/archive/2007/09/22/Goodbye_DNJ.aspx</link><pubDate>Sat, 22 Sep 2007 22:38:00 GMT</pubDate><guid isPermaLink="false">58df7014-fd75-437c-9641-150997716d1c:320547</guid><dc:creator>Benjy</dc:creator><slash:comments>0</slash:comments><comments>http://dotnetjunkies.com/WebLog/netblog/comments/320547.aspx</comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/netblog/commentrss.aspx?PostID=320547</wfw:commentRss><description>Well,after 3 years here its time to say goodbye to DNJ. Im moving to Wordpress and the new link is http://santoshbenjamin.wordpress.com

I've had some great conversations here but im getting rather tied down by the poor editing facilities etc as i've said on many an occasion. I've also decided that its time for a change to befit my new status in life as i have explained on the wordpress site.

Anyway, im leaving the posts here as an archive (and also because i cant find any tools to move the content across. if you do know of any, do let me know). I will be visiting the aggregate site cos theres still some great content here.

Hope to see some of you at my wordpress site. 

cheers,
benjy&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=320547" width="1" height="1"&gt;</description></item><item><title>The Case of the Missing Template Cache</title><link>http://dotnetjunkies.com/WebLog/netblog/archive/2007/07/09/Missing_Templates_Cache.aspx</link><pubDate>Mon, 09 Jul 2007 22:37:00 GMT</pubDate><guid isPermaLink="false">58df7014-fd75-437c-9641-150997716d1c:260520</guid><dc:creator>Benjy</dc:creator><slash:comments>0</slash:comments><comments>http://dotnetjunkies.com/WebLog/netblog/comments/260520.aspx</comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/netblog/commentrss.aspx?PostID=260520</wfw:commentRss><description>Just a quick note on add-ins and the VS2005 Project Templates Cache. I have a collection of custom solution templates which i have quite happily been using both directly in Visual Studio as well as through add-ins (programmatically accessing the location of the cached template on disk). One thing i just ran into was the issue that when i installed GAT and GAX (Feb 07 CTP), the entire cache disappeared. (it could also have something to do with installing Resharper 3.0 - but i doubt it cos i have come across a couple of posts where people have had all the standard and custom templates disappear after installing the WinFX extensions -at least mine didnt disappear - they just couldnt be accessed programmatically). &lt;br&gt;&lt;br&gt;Anyway, i tried reinstalling them using the &lt;span&gt;devenv /installvstemplates&lt;/span&gt; command but that didnt work either. Those of you who have created add-ins would recall that the cache is in the Environment.SpecialFolders.ApplicationData folder and the &lt;span&gt;installvstemplates &lt;/span&gt;command usually rebuilds that folder. When i ran the add-in VS just complained helpfully that "the index did not fall within the range" :-). &lt;br&gt;&lt;br&gt;It appears that the solution/workaround to this issue is to do the &lt;span&gt;installvstemplates &lt;/span&gt;as above, then open VS and add a new project/solution making use of your custom template (but dont do this via the add-in - just use the regular menu options of the IDE). This seems to kick-start VS into life and the ProjectTemplatesCache folder gets rebuilt nicely and the add-in should start to work. &lt;br&gt;&lt;br&gt;I have no idea why this happened, but if you get stuck with this issue, hopefully the steps above will help you. &lt;br&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=260520" width="1" height="1"&gt;</description></item><item><title>Backdoors,Hacks and the TD.NET saga</title><link>http://dotnetjunkies.com/WebLog/netblog/archive/2007/06/24/Backdoors_Hacks_and_TDNET_saga.aspx</link><pubDate>Sun, 24 Jun 2007 20:18:00 GMT</pubDate><guid isPermaLink="false">58df7014-fd75-437c-9641-150997716d1c:251349</guid><dc:creator>Benjy</dc:creator><slash:comments>0</slash:comments><comments>http://dotnetjunkies.com/WebLog/netblog/comments/251349.aspx</comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/netblog/commentrss.aspx?PostID=251349</wfw:commentRss><description>&lt;P&gt;So by now most people would have heard about the ruckus that's going on in the blogosphere regarding Microsoft and Jamie Cansdale's TestDriven.NET tool. In case you haven't heard, the issue, as I read it, is that Jamie found a way to make the TD.NET add-in run inside VS Express and Microsoft sent him a formal letter asking him to stop making this available. The issue Microsoft has is not with TD.NET as an add-in or whether its a free or commercial tool but the fact that it is being used with Express and that's something they don't want to encourage and have said that extensibility is disabled by default in Express. &lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P&gt;Predictably, this issue raised a lot of hackles in the community and many people took this as an opportunity to aim more broadsides at Microsoft. There were some good points in some blogs (check out one &lt;A href="http://www.jameskovacs.com/blog/MicrosoftVsJamieCansdale.aspx"&gt;here&lt;/A&gt;&amp;nbsp;and look for some of the posts and comments on Oren Eini's blog &lt;A href="http://www.ayende.com/Blog/archive/2007/06/02/Thou-Shall-Not-Work-Around-Technical-Limitations.aspx"&gt;here&lt;/A&gt;&amp;nbsp;and also Dan Fernandez's blog -one of the posts being &lt;A href="http://blogs.msdn.com/danielfe/archive/2007/06/01/testdriven-net-and-express-technical-information.aspx"&gt;this&lt;/A&gt;&amp;nbsp;and Jamie himself lists the communications &lt;A href="http://weblogs.asp.net/nunitaddin/archive/2007/05/30/microsoft-vs-testdriven-net-express.aspx"&gt;here&lt;/A&gt;) but amongst those pearls I was disappointed (but not surprised) to find just loads of vitriol. Some people see it as a hack and some as a legitimate back-door and some say that if there is an API on the machine, they are going to use it and MS cannot stop them. (By that logic, you could be releasing any additions to windows that were unsupported just because the system DLLs are on c:\ drive, and expect MS to sit back and smile indulgently)&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P&gt;Now let me state first of all that I really appreciate Jamie's add-in. I cut my teeth on unit testing and TDD with that tool (nowadays i use JetBrains UnitRun), and it was very useful indeed. I can see how using this in express will open up the world of TDD to hobbyist developers and others who don't use the higher end editions, and this can only be good for the programming community in general. However, i can also see&amp;nbsp;Microsoft's points. I have written a couple of small add-ins for my team and find VS Extensibility quite easy and the possibilities are almost limitless. If MS were to allow Jamie's tool, lots of other tool developers will jump on the bandwagon and write add-ins for Express and pretty soon it will become a little Eclipse-like ecosystem on its own. If that happens, where will that leave VS Standard and higher end editions?&amp;nbsp; (Yes, there is an argument for supporting unit testing in express and exposing newbie's and non-pro dev's to good programming practices, but how do you draw the line?) &lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P&gt;This is just plain business considerations folks. Microsoft is not running a charity. Sure, there are good groups in MS like PAG who want to make things easier for architects and developers and are producing a ton of free stuff that helps us get better at what we do (yeah, so some people don't like the patterns and the wizards, but there's a rather large part of the .net world that does), but MS is first and foremost a business and profit is primary&amp;nbsp;and there's nothing wrong with that. How will they sell Visual Studio commercial editions if Express could be used to do everything that, say, Team System does? Of course, not all third party add-ins are going to be free and ISV's are bound to continue the tradition of having some free editions and some paid for 'rich functionality' editions, but there are some top notch developers in the open source community who could whistle up some free add-ins that trump the commercial ones. So where will that leave MS? What about all the hard work the IDE team is putting into Orcas and Rosario and whatever comes after? Does it have to be free? (Okay, so I benefit from a corporate MSDN subscription and should i ever have to pay for the tool myself then&amp;nbsp;shelling out for VS,especially some features of VSTS, &amp;nbsp;would burn a rather large hole in my pocket, but that's another story).&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P&gt;Express is Microsoft's entry point into the non-pro developer world. They could have engineered a completely new locked down product where there were no DLLs in the GAC or anything for people to tap into, but perhaps that would have cost more than just stripping out some functionality and making a "lite" edition like Express is. As someone pointed out (cant remember where), this could well result in MS pulling the express line completely and that wouldn't be good at all. &lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P&gt;Anyway, that's my two cents worth (and no, I'm not getting paid to write this !!). In summary I'd say to these parties&amp;nbsp;, "Jamie, well done with TD.NET and well done on getting&amp;nbsp;a huge groundswell of support especially from some of the more articulate developers around", "Microsoft, there are folks who understand your position, but it could be made a bit more clear without bringing in lawyers against well meaning developers" and to the general community "Folks, there's always a wide audience for well written comments no matter whose side they are on. Make a clear stand and stop the sniping and broadsides just because MS is a huge,obvious target.".&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P&gt;Ciao!!&lt;o:p&gt;&lt;/o:p&gt;&lt;/P&gt;
&lt;P&gt;&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;&lt;/P&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=251349" width="1" height="1"&gt;</description></item><item><title>VS Team Architect - Class Libraries on the AD at last</title><link>http://dotnetjunkies.com/WebLog/netblog/archive/2007/05/28/VSTS_AD_ClassLibrarySupportInOrcas.aspx</link><pubDate>Mon, 28 May 2007 07:22:00 GMT</pubDate><guid isPermaLink="false">58df7014-fd75-437c-9641-150997716d1c:238940</guid><dc:creator>Benjy</dc:creator><slash:comments>0</slash:comments><comments>http://dotnetjunkies.com/WebLog/netblog/comments/238940.aspx</comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/netblog/commentrss.aspx?PostID=238940</wfw:commentRss><description>I guess no one can ever say that the VS dev team isnt responsive.. after all the posts in various forums about the lack of support for class libraries on the AD surface, this has now been made available. Unfortunately its only available on Orcas Beta 1 (as a Power Toy) . Check out the post and screenshot at : &lt;span&gt;http://blogs.msdn.com/vsarch/&lt;/span&gt;.&amp;nbsp; Apparently Orcas has some underlying infrastructure that allows it to support such out of band developments so this wont work on VS2005 which is a pity, but if we have waited so long, its only another few months to wait for the final orcas release with all these goodies. &lt;br&gt;&lt;br&gt;Another really good thing is that Steve Cook and Gareth Jones et al have published a new book on &lt;span&gt;Domain Specific Development &lt;/span&gt;with VS. It should be available now on Amazon (the link is too long to paste here- check it out).&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=238940" width="1" height="1"&gt;</description></item><item><title>Biztalk Solution Templates-2 : ApplySettings AddIn</title><link>http://dotnetjunkies.com/WebLog/netblog/archive/2007/05/07/Biztalk_Solution_Templates_2_ApplySettingsAddIn.aspx</link><pubDate>Mon, 07 May 2007 18:29:00 GMT</pubDate><guid isPermaLink="false">58df7014-fd75-437c-9641-150997716d1c:234076</guid><dc:creator>Benjy</dc:creator><slash:comments>0</slash:comments><comments>http://dotnetjunkies.com/WebLog/netblog/comments/234076.aspx</comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/netblog/commentrss.aspx?PostID=234076</wfw:commentRss><description>&lt;P&gt;In my &lt;a href="http://dotnetjunkies.com/WebLog/netblog/archive/2007/04/27/Biztalk_and_VStemplates.aspx"&gt;previous post &lt;/A&gt;i had outlined my first attempt at creating solution templates using the Visual Studio vstemplates technique. I have now gone one step further and built an add-in that allows the user to apply solution wide settings to all the projects. The settings that can be specified are as follows&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;STRONG&gt;RootNamespace&lt;/STRONG&gt; : Namespace prefix upto and not including the solution. This usually follows the format Company.Product. ProductGroup. (e.g) &lt;B&gt;Microsoft.IntegrationPlatform.Services&lt;/B&gt;. 
&lt;LI&gt;&lt;STRONG&gt;Solution Name&lt;/STRONG&gt;: Taken from the active solution, but can be changed to anything needed - for example CustomerService. The reason this is provided is because some teams like to keep the entire namespace in the solution name but while generating assemblies, the prefixes could be superfluous 
&lt;LI&gt;&lt;STRONG&gt;SolutionNamespace&lt;/STRONG&gt;: Namespace comprising the rootnamespace and the solution. (e.g) &lt;B&gt;Microsoft.IntegrationPlatform.Services.CustomerService&lt;/B&gt; where CustomerService is the functionality provided by the components of the solution. 
&lt;LI&gt;&lt;STRONG&gt;Application Name&lt;/STRONG&gt;: This is the Biztalk application name to be applied to the biztalk projects. Sometimes this is the same as the solution name but need not necessarily be so. 
&lt;LI&gt;&lt;STRONG&gt;Key File&lt;/STRONG&gt;: This allows the user to select an existing key file or to create a key file and have it applied to all the projects including the non biztalk projects (which is needed to allow them to be GACed).&amp;nbsp;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&lt;B&gt;Acknowledgements&lt;/B&gt;&lt;BR&gt;The strong naming functionality is borrowed from the work done by &lt;A href="http://www.masteringbiztalk.com/blogs/jon/PermaLink,guid,2b0c272d-f424-4572-93a6-c47283dce199.aspx"&gt;Jon Flanders&lt;/A&gt;&amp;nbsp;and &lt;A href="http://biztalkblogs.com/carlosmedina/archive/2006/04/21/509.aspx"&gt;Carlos Medina&lt;/A&gt;&amp;nbsp;. In Jons tool you can generate and apply a strong name to a biztalk project on the fly and with Carlos' enhancements,you can generate and apply the strong name to all projects, or if you already have a strong named project you can copy those settings across to other projects. You can also apply the ApplicationName to the active configuration. &lt;BR&gt;&lt;BR&gt;In this tool, the &lt;B&gt;extra functionality&lt;/B&gt; is that you can &lt;BR&gt;(1) &lt;EM&gt;apply the application Name to ALL configurations&lt;/EM&gt; - deployment/development/debug/release etc (i usually add in the debug and release configurations to my biztalk projects to make it easy for my automated build scripts to move between biztalk and non-biztalk projects and&lt;BR&gt;(2) &lt;EM&gt;choose a strong name file from anywhere&lt;/EM&gt; on the machine and opt to use a hardcoded path to the key file or a relative path. At this time the relative path can only be calculated from the solution root so the program copies the snk file to the solution root and calculates it from there. Technically it is possible to calculate relative paths to anywhere in the source tree, but right now the code does not support this. &lt;/P&gt;
&lt;P&gt;You can download the add-in from &lt;A href="http://www.codeplex.com/devwizards/Release/ProjectReleases.aspx?ReleaseId=3997"&gt;here&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;As always, your feedback will be appreciated and welcome to help make this tool better. I am looking at trying out some wizards next which will be more flexible and allow more settings and options to be specified.&lt;BR&gt;&lt;/P&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=234076" width="1" height="1"&gt;</description></item><item><title>BizUnit 2.3 Beta 1</title><link>http://dotnetjunkies.com/WebLog/netblog/archive/2007/05/03/BizUnit_23_Beta1.aspx</link><pubDate>Thu, 03 May 2007 23:09:00 GMT</pubDate><guid isPermaLink="false">58df7014-fd75-437c-9641-150997716d1c:233114</guid><dc:creator>Benjy</dc:creator><slash:comments>0</slash:comments><comments>http://dotnetjunkies.com/WebLog/netblog/comments/233114.aspx</comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/netblog/commentrss.aspx?PostID=233114</wfw:commentRss><description>Just a quick note to say that Kevin has a beta release of BizUnit 2.3 on  http://www.codeplex.com/bizunit. I had a look at the alpha version earlier and i must say that it looks pretty good. Theres a bunch of additions to the BizUnit() and Context() classes including the ability to pass a Stream to the BizUnit constructor which looks like a nice way to break the dependency on the raw XML. We now have the chance to use the Context in more depth including setting up property values into the Context and passing that into the BizUnit constructor. &lt;br&gt;&lt;br&gt;I've queried about the documentation and whether CHMs will continue to be the only sources there. If so, then i plan to write more articles in the BizUnitExtensions project to cover the new stuff. &lt;br&gt;&lt;br&gt;I havent had a chance to test extensions against this release, but there is definitely a breaking change in that the Context HasKey() and Change() methods that are used by some extension steps are not available anymore, but the good news is that the ContextManipulator step appears to work, so i guess i can change the code in the appropriate steps to use this step instead of Context Change, or i can move the context change and haskey() into the extension steps. Lets see how it turns out. I should be able to re-release an updated version of extensions as soon as 2.3 is complete.&lt;br&gt;&lt;br&gt;Anyway, grab your copy of the latest BizUnit and test it out and post your feedback on the codeplex site. Enjoy...&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=233114" width="1" height="1"&gt;</description></item><item><title>Biztalk Solution Templates_- 1 : VSTemplates</title><link>http://dotnetjunkies.com/WebLog/netblog/archive/2007/04/27/Biztalk_and_VStemplates.aspx</link><pubDate>Fri, 27 Apr 2007 20:56:00 GMT</pubDate><guid isPermaLink="false">58df7014-fd75-437c-9641-150997716d1c:231685</guid><dc:creator>Benjy</dc:creator><slash:comments>0</slash:comments><comments>http://dotnetjunkies.com/WebLog/netblog/comments/231685.aspx</comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/netblog/commentrss.aspx?PostID=231685</wfw:commentRss><description>&lt;P&gt;I've always been fascinated with the concepts and technique of automating VS development&amp;nbsp;through macros, add-ins, templates etc.By now at my clients site&amp;nbsp;we have more or less standardised what our Biztalk "services"&amp;nbsp;look like but since&amp;nbsp;we are still in Biztalk 2004&amp;nbsp;I didnt want to waste time with VS2003 automation&amp;nbsp;as things have become so much more polished and advanced in later versions. I recently spent a couple of days at another client site with v2006 setting up the solution tree and MSBuild scripts and then sat back and wondered why i didnt have a tool to set the whole thing up in 5 minutes. It would have saved so much time that could have been spent on more significant issues. So today, after much procrastination (and collecting links on the subject), I finally decided to take the plunge and create my own multi-project template. &lt;/P&gt;
&lt;P&gt;There's a wealth of material on creating Visual Studio Item and Project Templates and one of the best I've read is &lt;A href="http://msdn2.microsoft.com/en-us/library/ms364046(VS.80).aspx"&gt;How to create starter kits &lt;/A&gt;(including multi-project templates). I gleefully put in the .net class library and test projects, schemas, maps etc and ran the Export Template Wizard. Imagine my horror when i found that &lt;STRONG&gt;&lt;EM&gt;it would not pick up Biztalk projects&lt;/EM&gt;&lt;/STRONG&gt;!!. So i got stuck for a while. I did have a look at Jon Flanders awesome videos on his &lt;A href="http://www.codeplex.com/patternwizard"&gt;Pattern Wizards &lt;/A&gt;including the facility to create biztalk project wizards from your own projects. I say, that guy is really something!! Anyway, that helps to some extent in that we can now "export" existing biztalk projects and use them later (and make them highly dynamic through wizards etc), but it still doesnt help create a multi-project template. &lt;/P&gt;
&lt;P&gt;So I went ahead and decided to try and experiment. With the starter-kits article in hand&amp;nbsp;I created the basic .NET projects and then decided to take a set of biztalk projects and add them in. I removed all the unncessary items, except for the btproj file. I then added in a .vstemplate file and a icon file (from the exported .net projects). I then edited the vstemplate file to set the links to the btproj files and so on. Ultimately having put them all together and zipped it up and dropped it into the Templates folder, voila, it &lt;STRONG&gt;worked&lt;/STRONG&gt;. I have a multi-project solution with Biztalk projects in it. &lt;/P&gt;
&lt;P&gt;In the btproj files i can set macros such as &lt;STRONG&gt;$safeprojectname$&lt;/STRONG&gt;.Unfortunately no matter what I try it will not accept items such as schema files, maps etc. VS always complains that it cannot find the files even if they are included in the package. So i gave up that route and left the projects empty. I would like to try to set the Application Name as the name of the Solution in all the btproj files, but there doesnt seem to be a &lt;A href="http://msdn2.microsoft.com/en-us/library/eehb4faa(VS.80).aspx"&gt;template parameter &lt;/A&gt;to do that &lt;/P&gt;
&lt;P&gt;You can find the results of my handiwork at my new codeplex project site &lt;A href="http://www.codeplex.com/devwizards/Release/ProjectReleases.aspx?ReleaseId=3805"&gt;here &lt;/A&gt;. Feel free to play with it and let me know your thoughts and suggestions. &lt;/P&gt;
&lt;P&gt;I'm thinking of extending this with add-ins and macros to create msbuild scripts to build and deploy the solutions. This would give projects a good kick start. Of course, people modularise Biztalk in many ways, some have multiple schema projects, some have multiple orchestration projects and the layout is not always the same. And of course, once you start using Jons tool, then the solution will morph into something very different from what the starter kit looked. So the Build and Deploy script generator tools must be capable of running at anytime and regenerating stuff from scratch. The codeplex site should see some growth very soon. It would also be interesting to hear how others lay out their projects especially how branching is done. &lt;/P&gt;
&lt;P&gt;I've also written up another little tool to generate my source tree, taking inspiration from tools like TreeSurgeon. I should put that up soon. For now , i guess these tools will work together, but in a slightly disjointed fashion and in time i'll get a deeper understanding of VS automation and with stuff like GAT, theres a lot that can be done. &lt;/P&gt;
&lt;P&gt;The big limitation right now is that doesnt link in with Jons work in any way. All my project templates that i made are sitting in the Biztalk Project Wizards folder, but the vstemplate only shows its own collection of btproj files which arent dynamic in any way. If anyone has some experience on linking VStemplates with wizards and would like to sharet the info &lt;STRONG&gt;please&lt;/STRONG&gt; let me know. I'd love to be able to link my templates to Jons wizards, thus making it a highly dynamic and rich experience in creating multiproject solutions. &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=231685" width="1" height="1"&gt;</description></item><item><title>BizUnitExtensions - Important Upcoming changes</title><link>http://dotnetjunkies.com/WebLog/netblog/archive/2007/04/25/BizUnitExtensions_Important_Upcoming_Changes.aspx</link><pubDate>Wed, 25 Apr 2007 19:19:00 GMT</pubDate><guid isPermaLink="false">58df7014-fd75-437c-9641-150997716d1c:231220</guid><dc:creator>Benjy</dc:creator><slash:comments>0</slash:comments><comments>http://dotnetjunkies.com/WebLog/netblog/comments/231220.aspx</comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/netblog/commentrss.aspx?PostID=231220</wfw:commentRss><description>&lt;P&gt;Just to inform users of BizUnitExtensions,&amp;nbsp;that Kevin Smith (creator of BizUnit) and I have been having some extensive discussions on the BizUnit codeplex site (&lt;A href="http://www.codeplex.com/bizunit"&gt;here &lt;/A&gt;and &lt;A href="http://www.codeplex.com/bizunit/Thread/View.aspx?ThreadId=9618"&gt;here&lt;/A&gt;) on how these two projects will continue to work together going forward since BizUnit is now active once again and Kevin has lots of plans for it and a new release with lots of good stuff is imminent. &lt;/P&gt;
&lt;P&gt;Once the new release of BizUnit comes out the Extensions project will &lt;STRONG&gt;&lt;EM&gt;no longer release the core&lt;/EM&gt;&lt;/STRONG&gt; as part of the distribution but will continue to release test step libraries as it is doing now (perhaps with some structural or namespace changes), so we will have our own release schedule. I'm hoping that the changes we made to the core to allow some of the extensions to work will be retained by Kevin and that other changes we are proposing such as making all the properties publicly accessible to support tooling plans will also be acceptable. &lt;/P&gt;
&lt;P&gt;If you would like to influence these decisions please do weigh in on the discussions at the BizUnit site. I have had some good feedback about the extensions roadmap but do continue to send us messages on what would be the most useful features. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;&lt;U&gt;Update:&lt;/U&gt;&lt;/STRONG&gt; I've now put up all the items on the roadmap as &lt;A href="http://www.codeplex.com/bizunitextensions/WorkItem/List.aspx"&gt;work items&lt;/A&gt; so why not hop over to codeplex and click on the VOTE links against each work item&amp;nbsp;and let me know what your favorite proposed features are?&lt;/P&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=231220" width="1" height="1"&gt;</description></item><item><title>Programmatically generating orchestrations</title><link>http://dotnetjunkies.com/WebLog/netblog/archive/2007/04/07/Programmatic_Orchestrations.aspx</link><pubDate>Sat, 07 Apr 2007 15:51:00 GMT</pubDate><guid isPermaLink="false">58df7014-fd75-437c-9641-150997716d1c:221616</guid><dc:creator>Benjy</dc:creator><slash:comments>2</slash:comments><comments>http://dotnetjunkies.com/WebLog/netblog/comments/221616.aspx</comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/netblog/commentrss.aspx?PostID=221616</wfw:commentRss><description>Martijn Hoogendoorn has re-posted the link to his utility to programmatically generate orchestrations (now that he is working for Microsoft the old link on his previous blog no longer works). Check it out &lt;A href="http://blogs.msdn.com/martijnh/default.aspx"&gt;here&lt;/A&gt;. He has used the Microsoft.Biztalk.IMS.dll which contains interfaces such as IBtsVsDocument and the Biztalk Object Model dll to do most of the generation. This is quite different to Jon Flanders Pattern Wizards which have a wizard written over a bunch of VS2005 templates to generate what you need. In this codebase, Martijn has one class which generates a sample akin to the SDK CallOrchestration sample. Its pretty nifty and demonstrates how one can use the Biztalk TypeSystem to generate ports, message references etc. One thing which puzzled me is where he got the Biztalk.IMS.dll from!! Jon has that in his codebase too but i couldnt find that anywhere on my machine! Does anyone know where we can get that or where some documentation would be available? &lt;EM&gt;[&lt;STRONG&gt;&lt;U&gt;Update: &lt;/U&gt;&lt;/STRONG&gt;Martijn informed me that the DLL is in the GAC and so it is!!]&lt;/EM&gt;&lt;BR&gt;&lt;BR&gt;So when would you want to code gen orchestrations? After all, using the orchestration designer isnt exactly rocket science and now that there is a wealth of community wisdom in the realm of patterns (encapsulated in Jons tool), why do we need this? I look at this technique as facilitating one layer of abstraction over the designer itself. Take the "Solution Designer" that Eddie Churchill demo'ed in a channel9 video&amp;nbsp; If you look at that, it shows how the Team Architect AD surface can be used to sketch your solution end to end and then generate the solution structure with stub orchestrations, schemas, maps etc. Thats a good application of DSL technology (although in the demo version it used windows forms, not the DSL toolkit which wasnt stable enough to be used at that time). &lt;BR&gt;&lt;BR&gt;Anyway, back to the discussion. One thing about good architectures is that they should also be consistent (along with being flexible). So if you have a bunch of backend systems that expose similar interfaces to be integrated with (WS, queues, file ports etc) and if you have a choice of which interface to use, while you are well within your rights to use any way of connecting to them, IMO, a better way would be to establish a consistent pattern of connecting to them so that you can make sure your bases are all covered, your development team knows whats expected and you have a standard base for delivering estimates. So if you do this, then you can fairly well predict exactly what your "connector" looks like and then, if you have worked out the contract for your schemas etc, then you can just go ahead and code gen the entire lot. Use the VS automation model to generate the solution structure, add the various projects in programmatically and then inside each of them, use these utilities (like Martijns) to generate the rest (and in a future version of BizUnitExtensions, autogen your tests as well). This way we can maximize our "design contracts". &lt;BR&gt;&lt;BR&gt;I do wish the Biztalk team would make the WebService Publishing Wizard available programmatically. (I guess the WSE publishing wizard is probably on its way out now that WCF is in production). This would help even more code generation. By the way, i heard that Eddie has left the BTS team and so the solution designer has been discarded. Anyone know the skinny on this? I would be terribly disappointed if this is the case because to me, that was the most compelling feature in the "future/vNext" Biztalk release (perhaps it was post R2).&lt;BR&gt;&lt;BR&gt;By the way, I also came across another tool named BridgeWerx sometime ago that used a custom interface to sketch your biztalk solution and generate the codebase. I wonder if they have moved into the Microsoft DSL space now.&lt;BR&gt;&lt;BR&gt;I've asked Martijn about the possibility of making this into a CodePlex project (although the source code is available with the download, putting it up as a project would make it more visible and get more collaboration). I'm sure that with more hands and more time (overall) there could be much more powerful things that could be done with the tool.&lt;BR&gt;&lt;BR&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=221616" width="1" height="1"&gt;</description></item><item><title>BizUnitExtensions_V2006_R2 and the VPC from hell</title><link>http://dotnetjunkies.com/WebLog/netblog/archive/2007/03/31/BizUnitExtensions_V2006_R2.aspx</link><pubDate>Sat, 31 Mar 2007 14:17:00 GMT</pubDate><guid isPermaLink="false">58df7014-fd75-437c-9641-150997716d1c:219679</guid><dc:creator>Benjy</dc:creator><slash:comments>0</slash:comments><comments>http://dotnetjunkies.com/WebLog/netblog/comments/219679.aspx</comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/netblog/commentrss.aspx?PostID=219679</wfw:commentRss><description>Hey everyone, I've finally managed to upload the v2006_R2 release. Its actually a rather small release and i know i've got to sort out my version numbering really soon. I promise to do that in the next release. I've been struggling with a VPC from hell that just crawls all the time and doesnt let me write any code at all and combined with the general lumbering behemoth that is VSTS, i'm just about stuffed&amp;nbsp; Since i dont have anything installed on my base laptop(and the workstation in the office wont allow me to connect to CodePlex) &amp;nbsp; i'm forced to work with the VM and i've spent long nights just disabling services and trying to get it to perform, but it wont. Ok, thats enough of my rant for the day.&lt;br&gt;&lt;br&gt;&lt;span id="ctl00_ctl00_ctl00_Content_ProjectBaseMain_ProjectMain_DescriptionLabel"&gt;This 
new release has the first cut of entlib logging added in and a new 
"MapExecutingStep" to test maps. The AltovaXmlValidateStep has also been 
enhanced and it now allows the user to specify whether the file is expected to 
fail or pass the validation (to cater to scenarios where we need to test invalid 
files). I've also added in some strongnamed EntLib2.0 dlls and a snk file into the References folder. You can of course choose to use your own entlib dlls. There is no separate test as such for entlib logging and the same test base is run and the system logs to a logfile specified in the config file for the tests.exe. I'm thinking of making the core libraries as exe's because we can add references to exe's now and this way i can supply a set of entlib config files with the library if people are interested. &lt;br&gt;&lt;br&gt;Check it out and let me know if you encounter any problems. If you open 
the solution and the system complains about not being able to locate TFS just 
let it remove all the bindings.&lt;/span&gt; When you run the tests the perfmon test still fails but thats because there are some hardcoded paths in the tests that i inherited and i still havent had time to fix them. But the step works so ignore the failing test. &lt;br&gt;&lt;br&gt;The next version will incorporate the latest from Kevin Smiths core code base and i will make all the modifications needed to the BizUnit() and Context() classes, or i may just add another BizUnitEx() class and a ContextEx() class so i can continue making my changes without breaking any of his code. I'll also try and make all the properties public. From reading the description on his releases page and blog, it appears that Kevin is planning to do more stuff with BizUnit and im still waiting to hear from him about the possibility of collaborating. If i dont hear soon, then i guess it will be time to make a hard decision about whether to continue with the "extensions" tag for this project or just move to a completely separate code-base. Do stop by on the forums and let me know what you think about this.&lt;br&gt;&lt;br&gt;Anyway, i hope you find the latest code base useful.&lt;br&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=219679" width="1" height="1"&gt;</description></item><item><title>BizUnitExtensions - whats cooking?</title><link>http://dotnetjunkies.com/WebLog/netblog/archive/2007/03/24/BizUnitExtensions_whats_cooking.aspx</link><pubDate>Sat, 24 Mar 2007 16:39:00 GMT</pubDate><guid isPermaLink="false">58df7014-fd75-437c-9641-150997716d1c:217960</guid><dc:creator>Benjy</dc:creator><slash:comments>2</slash:comments><comments>http://dotnetjunkies.com/WebLog/netblog/comments/217960.aspx</comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/netblog/commentrss.aspx?PostID=217960</wfw:commentRss><description>&amp;nbsp;I know its been rather quiet on the BizUnitExtensions front, but never fear, theres lots of stuff to come. But firstly, i do hope Kevin Smith responds to my comments on his workspace on joining forces. Im still waiting patiently. Although its good to see a new BizUnit core release with bug fixes and changes, its actually beginning to get problematic now because we have made changes to the core of the BizUnit class and other classes such as Context and now we have to port everything to the latest BizUnit codebase in order to keep things consistent and doing this to a code base which has now structurally changed is not easy. Added to that is the fact that we also wanted to change the structure of the code base (so we keep the standard test steps in one, biztalk specific things in another, msmq in yet another etc) so thats got to match up as well. I suppose these are the kind of scenarios where the C# 3.0 extension methods would come in really handy. Maybe its a good time now to break away from the BizUnit label and move to the more generic integration testing framework. What do BizUnit (and Extensions) users think about this? &lt;br&gt;&lt;br&gt;Anyway, a good discussion has started on the forums at the extensions site (www.codeplex.com/bizunitextensions) with one of the new users querying BizUnits actual value (Why BizUnit) and finding some answers in the roadmap. I guess the reply to the question would be worth a blog post on its own!&lt;br&gt;&lt;br&gt;So whats cooking with the Extensions project? Well, first of all I need to put down a release calendar showing whats coming up (based on the roadmap) in the next few releases, but right now the target is to get all the step properties, constructors etc public and to get entlib logging working. I have finished the entlib logging and will make it available as soon as possible. Its rather raw right now (ie) its a simple log format that more or less mirrors the console log but to a text log sink. i hope that this will stimulate some discussion in the community so we can improve the kind of logging (to event logs, perf counters etc). &lt;br&gt;&lt;br&gt;Making the properties etc completely public is proving to be rather involved and raises lots of questions. For instance, if one could execute a step (for example, filecopy)&amp;nbsp; independently (by just setting the properties and calling Execute) and could do the same for all steps in the test case, then the question arises as to what value does the BizUnit testRunner provide ? Some possible answers are that it provides&lt;br&gt;(A) Execution context (but this could also be set and passed in) and the ability to keep a constant thread of logging through all the steps and &lt;br&gt;(b) also provides parallel execution (but MbUnit could provide that). (Speaking of MbUnit, it definitely looks much better than NUnit and i should try running BizUnit inside MbUnit to see what extra stuff i can squeeze with MbUnit.)&lt;br&gt;&lt;br&gt;I think it might be a better option to provide the ability to set step properties in code but once we create a collection of steps, we would pass the collection to BizUnit and say RunTest(TestStepCollection). This way BizUnit can manipulate context and keep full control. The Execute() methods would all then become "internal" and available to friend assemblies rather than public. If you are using the tool currently or planning to then head down to the codeplex site and post your thoughts on this or email me. &lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=217960" width="1" height="1"&gt;</description></item><item><title>Demo blues and the possible resurrection of BizUnit</title><link>http://dotnetjunkies.com/WebLog/netblog/archive/2007/03/09/Demo_Blues.aspx</link><pubDate>Sat, 10 Mar 2007 00:11:00 GMT</pubDate><guid isPermaLink="false">58df7014-fd75-437c-9641-150997716d1c:209838</guid><dc:creator>Benjy</dc:creator><slash:comments>0</slash:comments><comments>http://dotnetjunkies.com/WebLog/netblog/comments/209838.aspx</comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/netblog/commentrss.aspx?PostID=209838</wfw:commentRss><description>Well, what do you know, looks like Kevin Smith has turned up again after a long hiatus. The BizUnit project has now been moved to CodePlex and i just pinged him to check if he wants to collaborate with the Extensions project as well. Hope something good comes of this. The extensions project has had a huge number of hits since the content and structure got revised and i'm still trying to squeeze some time from my schedule to write up the tutorials and all that, so if you've been waiting, dont give up, or better still, email me and let me know you're waiting. The last time someone did that, i wrote up the Context tutorial immediately so let me know if you want some information to be put on the site.&lt;br&gt;&lt;br&gt;I should have taken Jon Fanceys advice (on his blog) seriously and "sacrificed chickens to the demo gods". I had to give a brief workshop on Biztalk to some new clients a couple of days ago and took the classic messaging &amp; CBR example of mapping an employee message to an executive message. As with most demos, this simplest of scenarios failed miserably. Why are demos always like this? Being still stuck in the 2004 world for my current project(s) and demo-ing 2006 for the new project might have contributed,but its really the same product with a rather more shiny interface on top so i guess i had to chalk it down as one of those unexplainable things.&lt;br&gt;&lt;br&gt;The problem we had was a weird one. Initially when designing the schema, one of the fields (Salary) which i promoted, was a string and then as i refined the schema i changed it  to a "long". Unfortunately the property schema had already been set by then and that took me into a rather long loop of re-deploying, changing the prop schema etc since i needed to check the value of that field and set another element in the target (using a scripting functoid). The messaging error that popped up continually was "cannot convert string to long". We just couldnt understand it because we literally wiped the schema and started again and the system seemed to have cached that message and kept throwing the same error. Even disabling the send port which did the mapping and retaining another port which forwarded the incoming message to another folder didnt work. Anyway, ultimately we just gave up in disgust cos we were running out of time and there were other things to work through.&lt;br&gt;&lt;br&gt;Still, i wont take "no" for an answer from Biztalk and i gotta probe this and get to the bottom of it. Its kinda embarassing to see things like this happen  after you have been working with the product for quite a while, but hey, i've seen it happen to well known gurus in the community so why should i be an exception!!&lt;br&gt;&lt;br&gt;Next time you are planning a demo, dont forget the chickens!!&lt;br&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=209838" width="1" height="1"&gt;</description></item><item><title>BizUnit Extensions - R1 RTM and Roadmap</title><link>http://dotnetjunkies.com/WebLog/netblog/archive/2007/02/22/BizUnitExtensions_R1_RTM_and_Roadmap.aspx</link><pubDate>Thu, 22 Feb 2007 23:43:00 GMT</pubDate><guid isPermaLink="false">58df7014-fd75-437c-9641-150997716d1c:200361</guid><dc:creator>Benjy</dc:creator><slash:comments>0</slash:comments><comments>http://dotnetjunkies.com/WebLog/netblog/comments/200361.aspx</comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/netblog/commentrss.aspx?PostID=200361</wfw:commentRss><description>Hey everyone, Couple of things to note on the BizUnitExtensions project&lt;br&gt;&lt;br&gt;(1) V2006 R1: RTM release has now been made available with a minor bug fix to RC1 to remove some extra tags generated by SourceSafeBindingRemover. &lt;br&gt;&lt;br&gt;(2) The wiki for the project has undergone quite a large structural revision and the suggestions for the roadmap have been published. The roadmap can be found at&lt;br&gt;http://www.codeplex.com/bizunitextensions/Wiki/View.aspx?title=Roadmap%20Suggestions&lt;br&gt;If you are using BizUnit or considering using it i would urge you to visit the page and send us your feedback and tell us which points in the list most interest you or if there are other enhancemenets we could be building that we havent considered. &lt;br&gt;&lt;br&gt;More documentation (and some tutorials) are soon to follow.&lt;br&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=200361" width="1" height="1"&gt;</description></item><item><title>BizUnit Extensions - Suggestions invited</title><link>http://dotnetjunkies.com/WebLog/netblog/archive/2007/02/11/BizUnitExtensions_Suggestions.aspx</link><pubDate>Sun, 11 Feb 2007 23:06:00 GMT</pubDate><guid isPermaLink="false">58df7014-fd75-437c-9641-150997716d1c:194495</guid><dc:creator>Benjy</dc:creator><slash:comments>0</slash:comments><comments>http://dotnetjunkies.com/WebLog/netblog/comments/194495.aspx</comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/netblog/commentrss.aspx?PostID=194495</wfw:commentRss><description>Okay, so thanks to everyone who has downloaded the RC1 bits of the extensions library. It seems to be working fine and i havent recieved word of any problems (except for one small bug in the string formatter step which will be fixed in the next update. We've got a list of things we want to work on to make the framework more of a proper product and make it really tester friendly and we'd like to invite feedback via email and on the discussion forum at http://www.codeplex.com/bizunitextensions. Let us know what you think.&lt;br&gt;&lt;br&gt;Right now its rather developer focussed and involves lots of code. Do you like it the way it is or should we aim to put in some fancy GUI? what other steps do you think are missing that would be valuable for us to add in? how about steps you might have written that could be added in to the main code base? &lt;br&gt;&lt;br&gt;As for those of you who arent using this tool, what are you using to test your Biztalk projects? I've heard that lots of folk have just rolled their own custom framework steps based on NUnit and most do lots of manual testing. Is that really sustainable? what are the pain points you are facing especially when using Biztalk ? (Would also be interesting to know what other products such as TIBCO, webMethods etc provide in the way of testing) Perhaps we should open up some discussion on approaches to testing and what works and what doesnt? Integration testing is definitely one of the areas where there is little in the way of best practice published and available.&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=194495" width="1" height="1"&gt;</description></item><item><title>WCSF - Rebutting criticism</title><link>http://dotnetjunkies.com/WebLog/netblog/archive/2007/02/09/WCSF_rebutting_criticism.aspx</link><pubDate>Fri, 09 Feb 2007 18:31:00 GMT</pubDate><guid isPermaLink="false">58df7014-fd75-437c-9641-150997716d1c:193266</guid><dc:creator>Benjy</dc:creator><slash:comments>2</slash:comments><comments>http://dotnetjunkies.com/WebLog/netblog/comments/193266.aspx</comments><wfw:commentRss>http://dotnetjunkies.com/WebLog/netblog/commentrss.aspx?PostID=193266</wfw:commentRss><description>Of course, everyone is entitled to their own opinion and i am certainly not paid by Microsoft to be a "defender of the faith". Nevertheless, i do come across inane comments that i cannot just ignore. I ended up on the ASP.NET forum by accident today on a topic of Modular ASP.NET architectures when i was looking for some WCSF or DNN related things (i honestly cant remember which). Anyway, this chap made the following comment when asked about frameworks that help promote modularity.&lt;br&gt;&lt;br&gt;&lt;font size="2"&gt;&lt;span&gt;WCSF is a bunch of source code produced by a couple MS developers to promote .Net 3.0. Believe it or not, .Net 3.0 is a failed product, not &lt;/span&gt;&lt;span&gt;many acceptance, because it's not solving any real problems. I don't think you want to mess up with WWF in your project so far. Once you start to use WCSF, you got sucked into .Net 3.0. You spend 80% of your time to solve all weird technical problems, conventions, and finally you found it's not &lt;/span&gt;&lt;br&gt;&lt;span&gt;.Net 3.0 problem, it's your own problem because you didn't do it in .net 3.0 way. Before you know that, you run out of time, you never have time to &lt;/span&gt;&lt;span&gt;look at your real problem: The business problem you want to solve.&lt;/span&gt;&lt;/font&gt;&lt;br&gt;&lt;br&gt;Eh? what on earth was that about? So heres my reply in full having asked him not to slag off WCSF in such a way if he couldnt understand it or the concept of software factories&lt;br&gt;&lt;br&gt;(1) WCSF delivers sorely needed guidance in building nLayered ASP.NET applications. Everyone has their own pet theories and approaches on how things should be done and as the saying goes "one mans meat is another mans poison". We are rarely, if ever ,going to agree with another developer on the "best" approach to anything because to each of us, our approach is the correct one and the other guy doesnt know what he is talking about. Its time MS made a stand and told us what they think is a good way of using their technology and those who wanna go along can do so. If you dont like it, dont use it. &lt;br&gt;&lt;br&gt;Yes, it validates the concept of Software Factories, GAT, GAX etc along the way. It is not intended to promote .NET 3.0 but to also show us how WF can be used to do pageflow in a way thats much better than the old UIP block and ultimately even if it does show off the features of .NET 3.0 &lt;br&gt;so what? lots of people want to know how to incorporate .NET 3 into their work now. Besides, nobody claimed that it is perfect or that it is the &lt;br&gt;only way to do stuff. &lt;br&gt;&lt;br&gt;(2). NET 3.0 is NOT a failed product because (a) its not a product (sic!) and (b) its been released only just now. Its just more of the .NET framework and its too early to say if that it has succeeded or failed. You obviously havent done much distributed computing or you would appreciate what WCF does in unifying the communications stack and what it brings to the table for SOA and large scale integration. I use Biztalk almost 99% of the time now and i can fully well understand the huge problems that WCF solves and what WF does.&amp;nbsp; I am not a front end programmer so i dont really have much to say about WPF but from an architects point of view a stack that can help unify the approach to the desktop and the web is definitely valuable. Try building solutions that go beyond a few web forms and incorporate orchestration and integration and then you can see the problems that .NET 3.0 is intending to solve&lt;br&gt;&lt;br&gt;(3) Every technology/framework will prescribe that you do something in a particular way. Its just part of software development. If you want to use &lt;br&gt;DNN, you have to buy into their plug-in module concept. You want to use the Ent Lib? then you have to do stuff in a particular way. The point of &lt;br&gt;WCSF is that it should let you focus on the business problem not the plumbing and wasting time creating skeleton projects, editing config files &lt;br&gt;to put the same gunk in day after day etc. If its a complex approach, so be it. There are no silver bullets. (And besides, the WCSF team has been asking for feedback and even have a rating system where you get more points for criticising it than if you applaud it). &lt;br&gt;&lt;br&gt;(4) Finally dont forget that the ASP.NET development team has also been involved in it. Yes, the same folks who wrote the technology that you are &lt;br&gt;using to solve your "real world problems". They obviously know what the real world is like. . &lt;br&gt;&lt;br&gt;Now heres the thing. He probably tried using WCSF is an early CTP and couldnt figure it out and just to give him the benefit of the doubt, lets assume that the problems with it are real and that it is just clunky. Even if that were the case, thats still not an excuse to go to town about .NET 3.0 and call it a failed product! Theres no real correlation between a framework and a factory that implements some of the frameworks features. Factories are new. PAG is doing its best to provide good usable stuff but GAT and GAX are known to be difficult, hardcore technologies now and it isnt easy to understand them either. Im just getting started with automation and code gen the GAT way and its still tough going but that aint .NETs problem. &lt;br&gt;&lt;br&gt;Anyway, im glad to get that off my chest. As always, feedback is welcome!!&lt;br&gt;&lt;img src="http://dotnetjunkies.com/WebLog/aggbug.aspx?PostID=193266" width="1" height="1"&gt;</description></item></channel></rss>