<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Geekswithblogs.net</title><link>http://geekswithblogs.net/MainFeed.aspx</link><description>Geekswithblogs.net</description><generator>Subtext Version 0.0.0.0</generator><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/geekswithblogs" type="application/rss+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item><title>Code and Slides &amp;ndash; Dutch Code Camp 2009</title><link>http://feedproxy.google.com/~r/geekswithblogs/~3/OLdvslef540/code-and-slides-ndash-dutch-code-camp-2009.aspx</link><pubDate>Sun, 22 Nov 2009 13:19:20 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/tkokke/archive/2009/11/22/code-and-slides-ndash-dutch-code-camp-2009.aspx</guid><wfw:comment>http://geekswithblogs.net/tkokke/comments/136467.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/tkokke/comments/commentRss/136467.aspx</wfw:commentRss><comments>http://geekswithblogs.net/tkokke/archive/2009/11/22/code-and-slides-ndash-dutch-code-camp-2009.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/tkokke/services/trackbacks/136467.aspx</trackback:ping><source url="http://geekswithblogs.net/tkokke/rss.aspx">Code and Slides &amp;ndash; Dutch Code Camp 2009</source><description>&lt;h1&gt;Code Camp&lt;/h1&gt;  &lt;h2&gt;Thanks!&lt;/h2&gt;  &lt;p&gt;Thanks everyone for coming to my session about &lt;em&gt;Modular Silverlight applications with Prism&lt;/em&gt; at the third &lt;a title="Dutch Code Camp" href="http://www.code-camp.nl" target="_blank"&gt;Dutch Code Camp&lt;/a&gt; last Saturday! I hope you learned something useful from it. &lt;/p&gt;  &lt;p&gt;Special thanks to &lt;a href="http://www.sdn.nl/"&gt;SDN&lt;/a&gt;, &lt;a href="http://www.dotned.nl/"&gt;Stichting dotNed &lt;/a&gt;en &lt;a href="http://www.vbcentral.nl/"&gt;VBcentral &lt;/a&gt;for organizing this event.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;h2&gt;Code &amp;amp; Slides&lt;/h2&gt;  &lt;p&gt;The slides can be downloaded  &lt;a title="Modulaire applicaties in Silverlight met prism- Slides" href="http://www.timmykokke.com/CodeCamp/Modulaire_applicaties_in_Silverlight-Slides.zip" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;But more important, the source for the demo can be found over &lt;a title="Modulaire applicaties in Silverlight - Code" href="Modulaire_applicaties_in_Silverlight-Code.zip" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;h2&gt;   &lt;p&gt;Links&lt;/p&gt; &lt;/h2&gt;  &lt;p&gt;Here are a few links mentioned in the presentation:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a title="Silverlight en Expression insiders user group, Sixin" href="http://www.sixin.nl" target="_blank"&gt;Silverlight en Expression insiders user group, Sixin&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="Prism on MSDN" href="http://msdn.microsoft.com/en-us/library/dd458809.aspx" target="_blank"&gt;Prism on MSDN&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;A few other places with great information about Prism are:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a title="Codeplex" href="http://compositewpf.codeplex.com/"&gt;CompositeWpf on Codeplex&lt;/a&gt;&lt;a title="http://compositewpf.codeplex.com/" href="http://compositewpf.codeplex.com/"&gt;&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="Stack Overflow" href="http://stackoverflow.com/questions/tagged/prism"&gt;Stack Overflow&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a title="Silver Bay Labs" href="http://development-guides.silverbaylabs.org/"&gt;Silver Bay Labs&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt; &lt;/p&gt;  &lt;h2&gt;   &lt;p&gt;Questions&lt;/p&gt; &lt;/h2&gt;  &lt;p&gt;If you have any questions about the presentation, the code or anything else, feel free to send me an email, tweet or approach me at a future event.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136467"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136467" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/tkokke/aggbug/136467.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/OLdvslef540" height="1" width="1"/&gt;</description><dc:creator>Timmy Kokke</dc:creator><feedburner:origLink>http://geekswithblogs.net/tkokke/archive/2009/11/22/code-and-slides-ndash-dutch-code-camp-2009.aspx</feedburner:origLink></item><item><title>Duplicated code base, well almost..</title><link>http://feedproxy.google.com/~r/geekswithblogs/~3/AJKS8EI4vxw/136466.aspx</link><pubDate>Sun, 22 Nov 2009 13:09:46 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/technodrone/archive/2009/11/22/136466.aspx</guid><wfw:comment>http://geekswithblogs.net/technodrone/comments/136466.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/technodrone/comments/commentRss/136466.aspx</wfw:commentRss><comments>http://geekswithblogs.net/technodrone/archive/2009/11/22/136466.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/technodrone/services/trackbacks/136466.aspx</trackback:ping><source url="http://geekswithblogs.net/technodrone/rss.aspx">Duplicated code base, well almost..</source><description>&lt;p&gt;I am learning all I can about the solid principles. Currently I am &lt;br /&gt;
reading about the Single Responsibility Principle (A class should have &lt;br /&gt;
only one reason to change).  If a class has more than one &lt;br /&gt;
responsibility, the responsibilities become coupled. This kind of &lt;br /&gt;
coupling leads to fragile designs that beak in unexpected ways when &lt;br /&gt;
changed according to Bob Martin. An example I have seen lately is the &lt;br /&gt;
case of the widget.com public site and the widget.com customer site &lt;br /&gt;
having the exact same code base except for the part code that deals &lt;br /&gt;
specifically with customer service. The team debated whether the &lt;br /&gt;
customer service code should be pulled out of the customer service &lt;br /&gt;
site and placed into the public site so that two almost exact code &lt;br /&gt;
repositories needing to be maintained. There was disagreement among &lt;br /&gt;
the team. Some felt this would be efficient others felt that this was &lt;br /&gt;
breaking SRP. Others thought combining the code together violates the &lt;br /&gt;
DRY principle. What do you think?&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136466"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136466" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/technodrone/aggbug/136466.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/AJKS8EI4vxw" height="1" width="1"/&gt;</description><dc:creator>technodrone</dc:creator><feedburner:origLink>http://geekswithblogs.net/technodrone/archive/2009/11/22/136466.aspx</feedburner:origLink></item><item><title>Analysis Services 2008 Performance Counters showing zero</title><link>http://feedproxy.google.com/~r/geekswithblogs/~3/r2oieg5HB6Q/analysis-services-2008-performance-counters-showing-zero.aspx</link><pubDate>Sun, 22 Nov 2009 22:22:06 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/darrengosbell/archive/2009/11/22/analysis-services-2008-performance-counters-showing-zero.aspx</guid><wfw:comment>http://geekswithblogs.net/darrengosbell/comments/136465.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/darrengosbell/comments/commentRss/136465.aspx</wfw:commentRss><comments>http://geekswithblogs.net/darrengosbell/archive/2009/11/22/analysis-services-2008-performance-counters-showing-zero.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/darrengosbell/services/trackbacks/136465.aspx</trackback:ping><source url="http://geekswithblogs.net/darrengosbell/rss.aspx">Analysis Services 2008 Performance Counters showing zero</source><description>&lt;p&gt;I had an issue recently with my SSAS 2008 performance counters - they were all showing up as 0. I could see them listed in Performance Monitor, but none of them worked. The counters for my SSAS 2005 instance worked fine, but the 2008 ones did not.&lt;/p&gt;  &lt;p&gt;I had observed this behaviour on my old Vista x86 machine and now it was happening on a fresh install of Windows 7 x64. &lt;/p&gt;  &lt;p&gt;I tried numerous steps to troubleshoot this issue including going through &lt;a href="http://blogs.msdn.com/psssql/archive/2009/03/03/troubleshooting-sql-server-2005-2008-performance-counter-collection-problems.aspx"&gt;this detailed blog post&lt;/a&gt; from the CSS SQL Server Engineers blog, but I still could not fix this issue. &lt;/p&gt;  &lt;p&gt;It was actually a forum post about issues someone was having with IIS counters that put me onto the right track. Apparently you can have issues with performance counters due to the permissions of the account that the service is running under.&lt;/p&gt;  &lt;p&gt;I was running my SSAS 2008 service as Network Service, changing it to run as LocalSystem fixed my issue and now my SSAS 2008 performance counters are working. &lt;/p&gt;  &lt;p&gt;I'm sure that this could also be fixed by manipulating the permissions of the files under    &lt;br /&gt;&lt;font size="2" face="Courier New"&gt;"&amp;lt;%Program Files%&amp;gt;\Microsoft SQL Server\MSAS10&amp;lt;.Instance Name&amp;gt;\OLAP\bin\Counters"      &lt;br /&gt;&lt;/font&gt;but for the time being this solution is sufficient for my needs. :)&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:f19077c7-63e3-4722-8505-942a3c2c7aab" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Analysis+Services" rel="tag"&gt;Analysis Services&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Performance+Counters" rel="tag"&gt;Performance Counters&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136465"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136465" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/darrengosbell/aggbug/136465.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/r2oieg5HB6Q" height="1" width="1"/&gt;</description><dc:creator>Darren Gosbell</dc:creator><feedburner:origLink>http://geekswithblogs.net/darrengosbell/archive/2009/11/22/analysis-services-2008-performance-counters-showing-zero.aspx</feedburner:origLink></item><item><title>Working From Home</title><link>http://feedproxy.google.com/~r/geekswithblogs/~3/_1_TRyIzzjE/136459.aspx</link><pubDate>Sun, 22 Nov 2009 02:40:41 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/liammclennan/archive/2009/11/22/136459.aspx</guid><wfw:comment>http://geekswithblogs.net/liammclennan/comments/136459.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/liammclennan/comments/commentRss/136459.aspx</wfw:commentRss><comments>http://geekswithblogs.net/liammclennan/archive/2009/11/22/136459.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/liammclennan/services/trackbacks/136459.aspx</trackback:ping><source url="http://geekswithblogs.net/liammclennan/rss.aspx">Working From Home</source><description>&lt;p&gt;Most of 2009 I have been working from home. This is a workforce revolution, made possible by technology advances and attitude changes. Here is my list of simple rules for working from home:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;don’t do it all the time. It is important to have some face-to-face interaction with your team.&lt;/li&gt;    &lt;li&gt;even when working from home stay in touch. Call your client or team at least once a day.&lt;/li&gt;    &lt;li&gt;working from home can be isolating. I make sure that I get out of the house every day so that I don’t end up like Edward Scissorhands.&lt;/li&gt;    &lt;li&gt;have quality gear. Working from home means that your home office is now your working environment. You should have a good workspace and sufficient redundancy. My home office has UPS, two internet connections, two printers and at least two computers. &lt;/li&gt;    &lt;li&gt;have a separate workspace so that you are able to clearly differentiate between work, and non-work time.&lt;/li&gt;    &lt;li&gt;Be fastidious with your timesheet. Trust does not come easily, so you need to do everything you can to help your employer understand that you don’t need to be supervised to work well. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Working from home is not for everyone, but there are some great benefits such as reduced travel time and working flexibility (such as the choice to wear pants). &lt;/p&gt;  &lt;p&gt;This is my outdoor office:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/liammclennan/WindowsLiveWriter/WorkingFromHome_106A1/IMG_2868_2.jpg"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="IMG_2868" border="0" alt="IMG_2868" src="http://geekswithblogs.net/images/geekswithblogs_net/liammclennan/WindowsLiveWriter/WorkingFromHome_106A1/IMG_2868_thumb.jpg" width="164" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136459"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136459" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/liammclennan/aggbug/136459.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/_1_TRyIzzjE" height="1" width="1"/&gt;</description><dc:creator>Liam McLennan</dc:creator><feedburner:origLink>http://geekswithblogs.net/liammclennan/archive/2009/11/22/136459.aspx</feedburner:origLink></item><item><title>Don’t trust any one under 30?  Oh No, I didn’t mean to start a age war!</title><link>http://feedproxy.google.com/~r/geekswithblogs/~3/erpYFTHg92U/dont-trust-any-one-under-30--oh-no-i.aspx</link><pubDate>Sun, 22 Nov 2009 02:44:29 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/Ratman21/archive/2009/11/21/dont-trust-any-one-under-30--oh-no-i.aspx</guid><wfw:comment>http://geekswithblogs.net/Ratman21/comments/136457.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/Ratman21/comments/commentRss/136457.aspx</wfw:commentRss><comments>http://geekswithblogs.net/Ratman21/archive/2009/11/21/dont-trust-any-one-under-30--oh-no-i.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/Ratman21/services/trackbacks/136457.aspx</trackback:ping><source url="http://geekswithblogs.net/Ratman21/rss.aspx">Don’t trust any one under 30?  Oh No, I didn’t mean to start a age war!</source><description>&lt;div&gt;&lt;span style="color: navy"&gt;
&lt;div&gt;&lt;span style="color: navy"&gt;Sorry for the delay in posting. I almost started a war of sort over my last ad “Don’t trust any one under 30?” on the social network LinkedIn. Well let me state right here this was an ad, with an attention getting subject line.   Well on to my post for this week (yes I am trying to do post every week coming out by Monday. Since I last posted, I have spread my group (just a little bit) over the Internet. The group is now on FaceBook (as Gray Matters!), Google groups (as GrayMatters!) and webs.com (as Graymatters40). Note, soon to be on MySpace too. You know I never properly introduced my self here and since I will have to do that in my new blogs (soon to appeared in Word Press and Slashdot) as well as the new web groups. I might as well do it here now.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt;&lt;span style="color: navy"&gt;I hello I am Ratman of “Gray Matters!” (And yes I did mean to spell “GRAY” that way). Now you’re probably saying “who” of “what” and why should I waste any time reading what he has to say.   Well Ratman is my online name and “Gray Matters!” is group I started on the social network site LinkedIn. A group for the and for the support of the over 40 unemployed. So if you’re feeling alone or over the hill and Job less. Come on and join a group of survivors.   And yep, I know those feelings all to well. I have been unemployed for a year now and at points felt, well really alone and down in the pit of despair.   It has been only faith in the Lord and support of my family that has kept me going. Along with starting the Group Gray Matters, something I think the Lord lead me to do.   “Gray Matters!” and “Gray Matters international” are for the over 40 group (and younger) that feel they have been put on the back burner of HR or even on the stove at all. It is here that we can share info, voice our frustrations and support for one other. &lt;/span&gt;&lt;/div&gt;
&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136457"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136457" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/Ratman21/aggbug/136457.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/erpYFTHg92U" height="1" width="1"/&gt;</description><dc:creator>Ratman21</dc:creator><feedburner:origLink>http://geekswithblogs.net/Ratman21/archive/2009/11/21/dont-trust-any-one-under-30--oh-no-i.aspx</feedburner:origLink></item><item><title>first test</title><link>http://feedproxy.google.com/~r/geekswithblogs/~3/DOGPNXApxk8/first-test.aspx</link><pubDate>Sun, 22 Nov 2009 02:09:20 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/Gonzalo/archive/2009/11/21/first-test.aspx</guid><wfw:comment>http://geekswithblogs.net/Gonzalo/comments/136456.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/Gonzalo/comments/commentRss/136456.aspx</wfw:commentRss><comments>http://geekswithblogs.net/Gonzalo/archive/2009/11/21/first-test.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/Gonzalo/services/trackbacks/136456.aspx</trackback:ping><source url="http://geekswithblogs.net/Gonzalo/rss.aspx">first test</source><description>&lt;pre&gt;var s = new decimal(0.0)&lt;/pre&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136456"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136456" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/Gonzalo/aggbug/136456.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/DOGPNXApxk8" height="1" width="1"/&gt;</description><dc:creator>Gonzalo</dc:creator><feedburner:origLink>http://geekswithblogs.net/Gonzalo/archive/2009/11/21/first-test.aspx</feedburner:origLink></item><item><title>MVVM Compared To MVC and MVP</title><link>http://feedproxy.google.com/~r/geekswithblogs/~3/ArBi7AKho8M/136454.aspx</link><pubDate>Sun, 22 Nov 2009 00:53:13 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/dlussier/archive/2009/11/21/136454.aspx</guid><wfw:comment>http://geekswithblogs.net/dlussier/comments/136454.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/dlussier/comments/commentRss/136454.aspx</wfw:commentRss><comments>http://geekswithblogs.net/dlussier/archive/2009/11/21/136454.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/dlussier/services/trackbacks/136454.aspx</trackback:ping><source url="http://geekswithblogs.net/dlussier/rss.aspx">MVVM Compared To MVC and MVP</source><description>&lt;p&gt;At the recent Calgary Tech Days event I did a presentation on building composite applications with WPF and Silverlight. One question that I get asked frequently when I get to the part of explaining MVVM is how its different from patterns that seem too similar or identical, with MVC and MVP typically being the two common ones raised.&lt;/p&gt;  &lt;p&gt;Usually my answer is that MVVM is very similar to the others, but it implies *stuff* that’s specific to Silverlight and WPF (how binding works, commanding, etc.). Unfortunately without concrete demonstrations of implementing the different patterns, its sometimes hard to verbally get across.&lt;/p&gt;  &lt;p&gt;So below I have a comparison, pointing out the key differences between the patterns and why MVVM *is* different.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/dlussier/WindowsLiveWriter/MVVMComparedToMVCandMVP_EFCB/image_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/dlussier/WindowsLiveWriter/MVVMComparedToMVCandMVP_EFCB/image_thumb_1.png" width="402" height="162" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;MVC – Model View Controller&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Let’s look at MVC first. You’ll notice a few things about the diagram:&lt;/p&gt;  &lt;p&gt;The input is directed at the Controller first, not the view. That input might be coming from a user interacting with a page, but it could also be from simply entering a specific url into a browser. In either case, its a Controller that is interfaced with to kick off some functionality.&lt;/p&gt;  &lt;p&gt;There is a many-to-one relationship between the Controller and the View. That’s because a single controller may select different views to be rendered based on the operation being executed.&lt;/p&gt;  &lt;p&gt;Note the one way arrow from Controller to View. This is because the View doesn’t have any knowledge of or reference to the controller.&lt;/p&gt;  &lt;p&gt;The Controller does pass back the Model, so there is knowledge between the View and the expected Model being passed into it, but not the Controller serving it up.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;MVP – Model View Presenter&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Now let’s look at the MVP pattern. It looks very similar to MVC, except for some key distinctions:&lt;/p&gt;  &lt;p&gt;The input begins with the View, not the Presenter.&lt;/p&gt;  &lt;p&gt;There is a one-to-one mapping between the View and the associated Presenter.&lt;/p&gt;  &lt;p&gt;The View holds a reference to the Presenter. The Presenter is also reacting to events being triggered from the View, so its aware of the View its associated with.&lt;/p&gt;  &lt;p&gt;The Presenter updates the View based on the requested actions it performs on the Model, but the View is not Model aware.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;MVVM – Model View View Model&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;So with the MVC and MVP patterns in front of us, let’s look at the MVVM pattern and see what differences it holds:&lt;/p&gt;  &lt;p&gt;The input begins with the View, not the View Model.&lt;/p&gt;  &lt;p&gt;While the View holds a reference to the View Model, the View Model has no information about the View. This is why its possible to have a one-to-many mapping between various Views and one View Model…even across technologies. For example, a WPF View and a Silverlight View *could* share the same View Model. However, my own feeling is that this is a bad practice and creates Franken-ViewModels that have too many responsibilities. It’s better to keep it as a one-to-one mapping instead.&lt;/p&gt;  &lt;p&gt;You’ll also notice that the View has no idea about the Model in the MVVM pattern. This is because, as far as the View knows, its “Model” IS the View Model (hence its name). Because of how data-binding and other features like commanding work in WPF and Silverlight, there is rich communication between the View and View Model, isolating the View from having to know anything about what’s really happening behind the scenes.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;We could have gone deeper with this discussion, talking about the two different variations of MVP that Martin Fowler describes, or bring in other associated patterns like Front Controller. But at a high level, I think this gives us a good idea of the major differences between the three patterns.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;More Reading&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Josh Smith has a fantastic article talking about implementing MVVM with WPF and why MVVM is better for WPF (and by extension Silverlight). You can read it here: &lt;a title="http://msdn.microsoft.com/en-us/magazine/dd419663.aspx#id0090009" href="http://msdn.microsoft.com/en-us/magazine/dd419663.aspx#id0090009"&gt;http://msdn.microsoft.com/en-us/magazine/dd419663.aspx#id0090009&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;D&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136454"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136454" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/dlussier/aggbug/136454.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/ArBi7AKho8M" height="1" width="1"/&gt;</description><dc:creator>D'Arcy Lussier</dc:creator><feedburner:origLink>http://geekswithblogs.net/dlussier/archive/2009/11/21/136454.aspx</feedburner:origLink></item><item><title>Presentation Terrorists</title><link>http://feedproxy.google.com/~r/geekswithblogs/~3/MNIBs81rdqI/presentation-terrorists.aspx</link><pubDate>Sat, 21 Nov 2009 16:47:22 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/watsonjon/archive/2009/11/21/presentation-terrorists.aspx</guid><wfw:comment>http://geekswithblogs.net/watsonjon/comments/136453.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/watsonjon/comments/commentRss/136453.aspx</wfw:commentRss><comments>http://geekswithblogs.net/watsonjon/archive/2009/11/21/presentation-terrorists.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/watsonjon/services/trackbacks/136453.aspx</trackback:ping><source url="http://geekswithblogs.net/watsonjon/rss.aspx">Presentation Terrorists</source><description>&lt;p&gt;I am currently reading Scott Berkun’s book “Confessions of a Public Speaker” and thought this was hilarious and true:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;…unless presentation terrorists steal your microphone midsentence or put up their own projector and start showing their     &lt;br /&gt;own slide deck—designed specifically to contradict your every      &lt;br /&gt;point—you’re free from the pressures other performers face      &lt;br /&gt;nightly. Small observations like this make it easier to laugh at      &lt;br /&gt;nerves, even if they won’t go away.&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;I do quite a few presentations to companies and other groups and still get nervous before each presentation. One point Scott is trying to make is that it is natural to be nervous and that most speakers don’t have people intentionally trying to derail them. I thought the idea of “presentation terrorists” was great!&lt;/p&gt;  &lt;p&gt;Enjoy!&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136453"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136453" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/watsonjon/aggbug/136453.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/MNIBs81rdqI" height="1" width="1"/&gt;</description><dc:creator>Jon Dalberg</dc:creator><feedburner:origLink>http://geekswithblogs.net/watsonjon/archive/2009/11/21/presentation-terrorists.aspx</feedburner:origLink></item><item><title>NHibernate 2.1 Configuration for SQL 2005</title><link>http://feedproxy.google.com/~r/geekswithblogs/~3/2er9592_dHU/nhibernate-2.1-configuration-for-sql-2005.aspx</link><pubDate>Sat, 21 Nov 2009 14:35:25 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/BobPalmer/archive/2009/11/21/nhibernate-2.1-configuration-for-sql-2005.aspx</guid><wfw:comment>http://geekswithblogs.net/BobPalmer/comments/136452.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/BobPalmer/comments/commentRss/136452.aspx</wfw:commentRss><comments>http://geekswithblogs.net/BobPalmer/archive/2009/11/21/nhibernate-2.1-configuration-for-sql-2005.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/BobPalmer/services/trackbacks/136452.aspx</trackback:ping><source url="http://geekswithblogs.net/BobPalmer/rss.aspx">NHibernate 2.1 Configuration for SQL 2005</source><description>&lt;p&gt;This took a lot of google foo and twiddling, so I figured I would post this.  That, and I fully expect I'll be scratching my head a few weeks from now and wondering where I put my sample XML ;)&lt;/p&gt;
&lt;p&gt;The configuration file below assumes that you have included the bins from the following folders included with the NHibernate download (I use 2.1.1):&lt;/p&gt;
&lt;p&gt;&amp;lt;Your NHibernate install frolder&amp;gt;\Required_For_LazyLoading\Castle\*.dll&lt;br /&gt;
&amp;lt;Your NHibernate install frolder&amp;gt;\Required_Bins\*.dll&lt;/p&gt;
&lt;p&gt;And here's the App config - Adjust as needed:&lt;/p&gt;
&lt;p&gt; &amp;lt;?xml version="1.0" encoding="utf-8"?&amp;gt;&lt;br /&gt;
&amp;lt;configuration&amp;gt;&lt;br /&gt;
  &amp;lt;configSections&amp;gt;&lt;br /&gt;
    &amp;lt;section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate" /&amp;gt;&lt;br /&gt;
  &amp;lt;/configSections&amp;gt;&lt;br /&gt;
  &amp;lt;hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"&amp;gt;&lt;br /&gt;
    &amp;lt;session-factory&amp;gt;&lt;br /&gt;
      &amp;lt;property name="connection.provider"&amp;gt;NHibernate.Connection.DriverConnectionProvider&amp;lt;/property&amp;gt;&lt;br /&gt;
      &amp;lt;property name="dialect"&amp;gt;NHibernate.Dialect.MsSql2005Dialect&amp;lt;/property&amp;gt;&lt;br /&gt;
      &amp;lt;property name="connection.driver_class"&amp;gt;NHibernate.Driver.SqlClientDriver&amp;lt;/property&amp;gt;&lt;br /&gt;
      &amp;lt;property name="connection.connection_string"&amp;gt;Server=MySQLComputer;Database=MyNHibernateDatabase;Trusted_Connection=True;&amp;lt;/property&amp;gt;&lt;br /&gt;
      &amp;lt;property name='proxyfactory.factory_class'&amp;gt;NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle&amp;lt;/property&amp;gt;&lt;br /&gt;
    &amp;lt;/session-factory&amp;gt;&lt;br /&gt;
  &amp;lt;/hibernate-configuration&amp;gt;&lt;br /&gt;
&amp;lt;/configuration&amp;gt;&lt;br /&gt;
 &lt;/p&gt;
&lt;p&gt;Enjoy!&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136452"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136452" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/BobPalmer/aggbug/136452.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/2er9592_dHU" height="1" width="1"/&gt;</description><dc:creator>BobPalmer</dc:creator><feedburner:origLink>http://geekswithblogs.net/BobPalmer/archive/2009/11/21/nhibernate-2.1-configuration-for-sql-2005.aspx</feedburner:origLink></item><item><title>Type constraints sadness</title><link>http://feedproxy.google.com/~r/geekswithblogs/~3/A5X03zmT8Gc/type-constraints-sadness.aspx</link><pubDate>Sat, 21 Nov 2009 21:17:58 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/argot/archive/2009/11/21/type-constraints-sadness.aspx</guid><wfw:comment>http://geekswithblogs.net/argot/comments/136451.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/argot/comments/commentRss/136451.aspx</wfw:commentRss><comments>http://geekswithblogs.net/argot/archive/2009/11/21/type-constraints-sadness.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/argot/services/trackbacks/136451.aspx</trackback:ping><source url="http://geekswithblogs.net/argot/rss.aspx">Type constraints sadness</source><description>&lt;div style="margin: 0cm 0cm 10pt"&gt;Although delegate type and Enum type are class types, we can not inherit from them as they are sealed classes after compile,&lt;/div&gt;
&lt;div style="line-height: normal"&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt; &lt;span style="color: blue"&gt;delegate &lt;span style="color: blue"&gt;void&lt;/span&gt; &lt;span style="color: #2b91af"&gt;DelegateTestType&lt;/span&gt;();&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin: 0cm 0cm 10pt"&gt; &lt;/div&gt;
&lt;div style="margin: 0cm 0cm 10pt"&gt;//Compile time error&lt;/div&gt;
&lt;div style="line-height: normal"&gt;&lt;span style="color: blue"&gt;class&lt;/span&gt; &lt;span style="color: #2b91af"&gt;myTest : DelegateTestType&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal"&gt;{&lt;/div&gt;
&lt;div style="line-height: normal"&gt;&lt;span&gt;     ...&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: normal"&gt;}&lt;/div&gt;
&lt;div style="margin: 0cm 0cm 10pt"&gt; &lt;/div&gt;
&lt;div style="margin: 0cm 0cm 10pt"&gt;we can not make it as a type constraint either on class or method:&lt;/div&gt;
&lt;div style="margin: 0cm 0cm 10pt"&gt;//Compile time error&lt;/div&gt;
&lt;div style="text-justify: inter-ideograph; text-align: justify; line-height: normal"&gt;&lt;span style="color: blue"&gt;class&lt;/span&gt; &lt;span style="color: #2b91af"&gt;myTest&amp;lt;T&amp;gt; &lt;span style="color: blue"&gt;where&lt;/span&gt; T : DelegateTestType&lt;/span&gt;&lt;/div&gt;
&lt;div style="text-justify: inter-ideograph; text-align: justify; line-height: normal"&gt;{&lt;/div&gt;
&lt;div style="text-justify: inter-ideograph; text-align: justify; line-height: normal"&gt;&lt;span&gt;       &lt;/span&gt;&lt;/div&gt;
&lt;div style="text-justify: inter-ideograph; text-align: justify; line-height: normal"&gt;}&lt;/div&gt;
&lt;div style="line-height: normal"&gt; &lt;/div&gt;
&lt;div style="line-height: 130%"&gt;&lt;span style="line-height: 130%; color: black; font-size: 11pt"&gt;From the &lt;a href="http://download.microsoft.com/download/9/8/f/98fdf0c7-2bbd-40d3-9fd1-5a4159fa8044/CSharp%202.0%20Specification_Sept_2005.doc"&gt;&lt;span style="color: #0077cc; text-decoration: none; text-underline: none"&gt;C# 2.0 specification&lt;/span&gt;&lt;/a&gt; we can read (20.7, Constraints):&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: 130%"&gt; &lt;/div&gt;
&lt;div style="line-height: 130%; margin: 0cm 0cm 12pt"&gt;&lt;span style="color: black"&gt;A class-type constraint must satisfy the following rules:&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: 130%; text-indent: -18pt; margin: 0cm 0cm 10pt 22.5pt"&gt;&lt;span style="line-height: 130%; color: black; font-size: 10pt"&gt;·&lt;span style="font: 7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black"&gt;The type must be a class type.&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: 130%; text-indent: -18pt; margin: 0cm 0cm 10pt 22.5pt"&gt;&lt;span style="line-height: 130%; color: black; font-size: 10pt"&gt;·&lt;span style="font: 7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black"&gt;The type must not be sealed.&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: 130%; text-indent: -18pt; margin: 0cm 0cm 10pt 22.5pt"&gt;&lt;span style="line-height: 130%; color: black; font-size: 10pt"&gt;·&lt;span style="font: 7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="color: black"&gt;The type must not be one of the following types: System.Array, System.Delegate, System.Enum, or System.ValueType&lt;/span&gt;&lt;/b&gt;&lt;span style="color: black"&gt;.&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: 130%; text-indent: -18pt; margin: 0cm 0cm 10pt 22.5pt"&gt;&lt;span style="line-height: 130%; color: black; font-size: 10pt"&gt;·&lt;span style="font: 7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black"&gt;The type must not be object. Because all types derive from object, such a constraint would have no effect if it were permitted.&lt;/span&gt;&lt;/div&gt;
&lt;div style="line-height: 130%; text-indent: -18pt; margin: 0cm 0cm 10pt 22.5pt"&gt;&lt;span style="line-height: 130%; color: black; font-size: 10pt"&gt;·&lt;span style="font: 7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;span style="color: black"&gt;At most one constraint for a given type parameter can be a class type.&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin: 0cm 0cm 10pt"&gt;In c# world we have to use some indirect ways, like type casting, wrapper class or examine the type is Delegate type, it is still a problem in C# 4.0, this is a bit sad as C++ can do it more than happily!&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136451"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136451" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/argot/aggbug/136451.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/A5X03zmT8Gc" height="1" width="1"/&gt;</description><dc:creator>argot</dc:creator><feedburner:origLink>http://geekswithblogs.net/argot/archive/2009/11/21/type-constraints-sadness.aspx</feedburner:origLink></item><item><title>Put It On a Shirt</title><link>http://feedproxy.google.com/~r/geekswithblogs/~3/dKcJ_fz8TTs/136450.aspx</link><pubDate>Sat, 21 Nov 2009 02:27:20 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/liammclennan/archive/2009/11/21/136450.aspx</guid><wfw:comment>http://geekswithblogs.net/liammclennan/comments/136450.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/liammclennan/comments/commentRss/136450.aspx</wfw:commentRss><comments>http://geekswithblogs.net/liammclennan/archive/2009/11/21/136450.aspx#comment</comments><slash:comments>1</slash:comments><trackback:ping>http://geekswithblogs.net/liammclennan/services/trackbacks/136450.aspx</trackback:ping><source url="http://geekswithblogs.net/liammclennan/rss.aspx">Put It On a Shirt</source><description>&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/liammclennan/WindowsLiveWriter/PutItOnaShirt_1032C/refactoring_happens_2.jpg"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; margin-left: 0px; border-left-width: 0px; margin-right: 0px" title="refactoring_happens" border="0" alt="refactoring_happens" align="left" src="http://geekswithblogs.net/images/geekswithblogs_net/liammclennan/WindowsLiveWriter/PutItOnaShirt_1032C/refactoring_happens_thumb.jpg" width="237" height="244" /&gt;&lt;/a&gt; Sometimes you have a t-shirt idea, but there is no way to try it out – until now. Introducing &lt;a href="http://onashirt.net/" target="_blank"&gt;OnAShirt.net&lt;/a&gt;. It is a simple app I coded in a couple of hours today that allows the user to place &lt;a href="http://onashirt.net/OnAShirt.htm?slogan=dGV4dA%3D%3D" target="_blank"&gt;text&lt;/a&gt; over a picture of a t-shirt, or even to conduct t-shirt &lt;a href="http://onashirt.net/OnAShirt.htm?slogan=dGhpcyBzaXRlIGlzIHdlYWs%3D" target="_blank"&gt;conversations&lt;/a&gt; with &lt;a href="http://onashirt.net/OnAShirt.htm?slogan=Li4uYW5kIHNlbGYtZGVwcmVjYXRpbmc%3D" target="_blank"&gt;themself&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Thanks to jQuery for making this sort of thing so easy.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136450"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136450" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/liammclennan/aggbug/136450.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/dKcJ_fz8TTs" height="1" width="1"/&gt;</description><dc:creator>Liam McLennan</dc:creator><feedburner:origLink>http://geekswithblogs.net/liammclennan/archive/2009/11/21/136450.aspx</feedburner:origLink></item><item><title>Processing Excel uploads with BizTalk and nServiceBus</title><link>http://feedproxy.google.com/~r/geekswithblogs/~3/QS3c767kncE/processing-excel-uploads-with-biztalk-and-nservicebus.aspx</link><pubDate>Sat, 21 Nov 2009 07:57:56 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/EltonStoneman/archive/2009/11/21/processing-excel-uploads-with-biztalk-and-nservicebus.aspx</guid><wfw:comment>http://geekswithblogs.net/EltonStoneman/comments/136449.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/EltonStoneman/comments/commentRss/136449.aspx</wfw:commentRss><comments>http://geekswithblogs.net/EltonStoneman/archive/2009/11/21/processing-excel-uploads-with-biztalk-and-nservicebus.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/EltonStoneman/services/trackbacks/136449.aspx</trackback:ping><source url="http://geekswithblogs.net/EltonStoneman/rss.aspx">Processing Excel uploads with BizTalk and nServiceBus</source><description>&lt;p&gt; &lt;/p&gt;
&lt;p class="MsoNormal" align="center" style="margin: 0cm 0cm 10pt; text-align: center"&gt;&lt;font face="Calibri"&gt;&lt;span lang="EN-GB" style="font-size: 10pt"&gt;[Source: &lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;a href="http://geekswithblogs.net/EltonStoneman"&gt;&lt;span style="font-size: 10pt"&gt;&lt;font color="#800080"&gt;http://geekswithblogs.net/EltonStoneman&lt;/font&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span lang="EN-GB" style="font-size: 10pt"&gt;]&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0cm 0cm 10pt"&gt;&lt;span lang="EN-GB"&gt;&lt;font face="Calibri"&gt;Following on from the sample for &lt;/font&gt;&lt;a href="http://geekswithblogs.net/EltonStoneman/archive/2009/11/18/processing-an-excel-upload-with-nservicebus.aspx"&gt;&lt;font face="Calibri"&gt;processing Excel uploads with nServiceBus&lt;/font&gt;&lt;/a&gt;&lt;font face="Calibri"&gt;, I have a comparable version using BizTalk on MSDN Code Gallery here: &lt;/font&gt;&lt;a href="http://code.msdn.microsoft.com/BTSAndNSBExcelUpload"&gt;&lt;font face="Calibri" color="#800080"&gt;BizTalk and nServiceBus Excel Upload&lt;/font&gt;&lt;/a&gt;&lt;font face="Calibri"&gt;. The BizTalk (2006 R2) sample uses a FILE receive port with a simple pipeline component to disassemble the Excel file into separate messages. A SQL send port subscribes to the messages, and with an outbound map calls the AdventureWorks stored procedure to insert each product.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0cm 0cm 10pt"&gt;&lt;span lang="EN-GB"&gt;&lt;font face="Calibri"&gt;Processing Excel in BizTalk is nothing new, but I wanted to do a comparison against the nServiceBus example, and also see how BizTalk and nServiceBus could be integrated. My original thinking was that the trigger in the nServiceBus solution relies on a FileSystemWatcher, which is less reliable and less flexible than BizTalk’s FILE adapter. A hybrid solution could use the FILE adapter to receive and parse the upload, then send each row as an AddProduct message to MSMQ, which the nServiceBus handler subscribes to.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0cm 0cm 10pt"&gt;&lt;span lang="EN-GB"&gt;&lt;font face="Calibri"&gt;Running this on the same environment (a Windows Server 2003 VM running under VirtualBox in Ubuntu 9.04), the BizTalk solution processes the 3,500 row Excel file in 3 mins 10 seconds (compared to 4m 15s for the distributed NSB running with 5 threads), and the 12,000 row file in 11m 14s (compared to 14m 0s). I was surprised to find the BizTalk solution running more quickly, as the original NSB was using non-recoverable messaging, so all messages were in memory, while BizTalk had the latency of writing to the message box. &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0cm 0cm 10pt"&gt;&lt;i style="mso-bidi-font-style: normal"&gt;&lt;span lang="EN-GB"&gt;&lt;font face="Calibri"&gt;Performance Comparison&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0cm 0cm 10pt"&gt;&lt;span lang="EN-GB"&gt;&lt;font face="Calibri"&gt;This is not an intended to be a thorough benchmark of NSB and BizTalk – both sample projects are basic, untuned implementations, and the tests are on a single box rather than two or three. But for comparison, I ran the 3,500 row upload repeatedly under different configurations:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpFirst" style="margin: 0cm 0cm 0pt 36pt; text-indent: -18pt; mso-list: l2 level1 lfo1"&gt;&lt;span lang="EN-GB" style="mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font face="Calibri"&gt;1.&lt;/font&gt;&lt;span style="font: 7pt 'Times New Roman'"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;font face="Calibri"&gt;NSB with distributor – host and distributor using 20 threads&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 36pt; text-indent: -18pt; mso-list: l2 level1 lfo1"&gt;&lt;span lang="EN-GB" style="mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font face="Calibri"&gt;2.&lt;/font&gt;&lt;span style="font: 7pt 'Times New Roman'"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;font face="Calibri"&gt;NSB with distributor – host and distributor using 20 threads, recoverable messaging&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 36pt; text-indent: -18pt; mso-list: l2 level1 lfo1"&gt;&lt;span lang="EN-GB" style="mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font face="Calibri"&gt;3.&lt;/font&gt;&lt;span style="font: 7pt 'Times New Roman'"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;font face="Calibri"&gt;NSB without distributor – host using 20 threads&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 36pt; text-indent: -18pt; mso-list: l2 level1 lfo1"&gt;&lt;span lang="EN-GB" style="mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font face="Calibri"&gt;4.&lt;/font&gt;&lt;span style="font: 7pt 'Times New Roman'"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;font face="Calibri"&gt;NSB without distributor – host using 20 threads, recoverable messaging&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 36pt; text-indent: -18pt; mso-list: l2 level1 lfo1"&gt;&lt;span lang="EN-GB" style="mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font face="Calibri"&gt;5.&lt;/font&gt;&lt;span style="font: 7pt 'Times New Roman'"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;font face="Calibri"&gt;BizTalk FILE receive and SQL send&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 36pt; text-indent: -18pt; mso-list: l2 level1 lfo1"&gt;&lt;span lang="EN-GB" style="mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font face="Calibri"&gt;6.&lt;/font&gt;&lt;span style="font: 7pt 'Times New Roman'"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;font face="Calibri"&gt;NSB parsing Excel file, BizTalk subscribing to AddProduct messages – MSMQ receive using batches of 100&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpLast" style="margin: 0cm 0cm 10pt 36pt; text-indent: -18pt; mso-list: l2 level1 lfo1"&gt;&lt;span lang="EN-GB" style="mso-fareast-font-family: Calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: Calibri; mso-bidi-theme-font: minor-latin"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font face="Calibri"&gt;7.&lt;/font&gt;&lt;span style="font: 7pt 'Times New Roman'"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;font face="Calibri"&gt;BizTalk parsing Excel file, NSB without distributor subscribing to AddProduct messages – host using 20 threads&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0cm 0cm 10pt"&gt;&lt;span lang="EN-GB"&gt;&lt;font face="Calibri"&gt;Which gave these averaged results:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0cm 0cm 10pt"&gt;&lt;span style="mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-no-proof: yes"&gt;&lt;v:shapetype id="_x0000_t75" stroked="f" filled="f" path="m@4@5l@4@11@9@11@9@5xe" o:preferrelative="t" o:spt="75" coordsize="21600,21600"&gt;&lt;v:stroke joinstyle="miter"&gt;&lt;/v:stroke&gt;&lt;v:formulas&gt;&lt;v:f eqn="if lineDrawn pixelLineWidth 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @0 1 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum 0 0 @1"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @2 1 2"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @3 21600 pixelWidth"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @3 21600 pixelHeight"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @0 0 1"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @6 1 2"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @7 21600 pixelWidth"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @8 21600 0"&gt;&lt;/v:f&gt;&lt;v:f eqn="prod @7 21600 pixelHeight"&gt;&lt;/v:f&gt;&lt;v:f eqn="sum @10 21600 0"&gt;&lt;/v:f&gt;&lt;/v:formulas&gt;&lt;v:path o:connecttype="rect" gradientshapeok="t" o:extrusionok="f"&gt;&lt;/v:path&gt;&lt;o:lock aspectratio="t" v:ext="edit"&gt;&lt;/o:lock&gt;&lt;/v:shapetype&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0cm 0cm 10pt"&gt;&lt;span lang="EN-GB"&gt;&lt;font face="Calibri"&gt;&lt;img height="282" width="456" alt="" src="/images/geekswithblogs_net/EltonStoneman/NSBBTSChart.PNG" /&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0cm 0cm 10pt"&gt;&lt;span lang="EN-GB"&gt;&lt;font face="Calibri"&gt;Boosting the number of threads dramatically improved the NSB performance, and removing the distributor halved the duration. I would expect that running the distributor on a separate node would yield similarly good results on each processing node. The hybrid BizTalk/NSB configurations were the slowest – to be expected, as you have the latency of the message box and the latency of MSMQ saving to disk. NSB configurations without recoverable messaging were only marginally slower than the recoverable version, which seems incorrect based on &lt;/font&gt;&lt;a href="http://www.udidahan.com/2008/05/21/nservicebus-performance/"&gt;&lt;font face="Calibri" color="#800080"&gt;Udi Dahan’s performance benchmark&lt;/font&gt;&lt;/a&gt;&lt;font face="Calibri"&gt;, so I’ll need to look into that further.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0cm 0cm 10pt"&gt;&lt;span lang="EN-GB"&gt;&lt;font face="Calibri"&gt;There’s plenty of scope for improving performance in both solutions. BizTalk can be endlessly tuned (the &lt;/font&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa475435(BTS.10).aspx"&gt;&lt;font face="Calibri"&gt;2004 guidelines&lt;/font&gt;&lt;/a&gt;&lt;font face="Calibri"&gt; still apply as a good starting point). By modifying the NSB solution to send the AddProduct messages in one opration and using 80 threads for the handler, duration fell to 25 seconds – 140 messages per second.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0cm 0cm 10pt"&gt;&lt;i style="mso-bidi-font-style: normal"&gt;&lt;span lang="EN-GB"&gt;&lt;font face="Calibri"&gt;Integrating BizTalk and nServiceBus&lt;/font&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0cm 0cm 10pt"&gt;&lt;span lang="EN-GB"&gt;&lt;font face="Calibri"&gt;Despite having the worst performance, integrating BizTalk and nServiceBus is a viable option which may be very useful in some cases. It would allow you to leverage BizTalk’s adapter suite and mapping functionality to join LOB systems into an nServiceBus estate. Integration is actually very straightforward. By default NSB uses MSMQ, so to publish messages from BizTalk to an NSB subscriber just means configuring an MSMQ send port with the expected queue, and mapping your message to NSB format – which is an envelope containing one or messages:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 9pt; color: blue; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="font-size: 9pt; color: #a31515; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;xml&lt;/span&gt;&lt;span style="font-size: 9pt; color: blue; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt; &lt;/span&gt;&lt;span style="font-size: 9pt; color: red; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;version&lt;/span&gt;&lt;span style="font-size: 9pt; color: blue; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;=&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;"&lt;span style="color: blue"&gt;1.0&lt;/span&gt;"&lt;span style="color: blue"&gt; ?&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 9pt; color: blue; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #a31515; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;Messages&lt;/span&gt;&lt;span style="font-size: 9pt; color: blue; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt; &lt;/span&gt;&lt;span style="font-size: 9pt; color: red; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;xmlns:xsi&lt;/span&gt;&lt;span style="font-size: 9pt; color: blue; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;=&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;"&lt;span style="color: blue"&gt;http://www.w3.org/2001/XMLSchema-instance&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;xmlns:xsd&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;http://www.w3.org/2001/XMLSchema&lt;/span&gt;"&lt;span style="color: blue"&gt; &lt;/span&gt;&lt;span style="color: red"&gt;xmlns&lt;/span&gt;&lt;span style="color: blue"&gt;=&lt;/span&gt;"&lt;span style="color: blue"&gt;http://tempuri.net/ExcelUpload.Messages&lt;/span&gt;"&lt;span style="color: blue"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 9pt; color: blue; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #a31515; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;AddProduct&lt;/span&gt;&lt;span style="font-size: 9pt; color: blue; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 9pt; color: blue; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #a31515; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;BatchId&lt;/span&gt;&lt;span style="font-size: 9pt; color: blue; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;7a80fed4-9d30-44fe-95b0-08218c5f328e&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;BatchId&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 9pt; color: blue; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #a31515; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;RegistrationIndex&lt;/span&gt;&lt;span style="font-size: 9pt; color: blue; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;58&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;RegistrationIndex&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 9pt; color: blue; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #a31515; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;RegistrationsInBatch&lt;/span&gt;&lt;span style="font-size: 9pt; color: blue; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;254&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;RegistrationsInBatch&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 9pt; color: blue; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #a31515; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;BatchSourcePath&lt;/span&gt;&lt;span style="font-size: 9pt; color: blue; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;E:\ExcelUpload\1.0.0.0\Binaries\Drops\ProductUpload.xls&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;BatchSourcePath&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 9pt; color: blue; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #a31515; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;OriginatorDestination&lt;/span&gt;&lt;span style="font-size: 9pt; color: blue; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;ExcelUpload.Client.InputQueue@WIN2003R2-VM&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;OriginatorDestination&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 9pt; color: blue; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #a31515; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;Name&lt;/span&gt;&lt;span style="font-size: 9pt; color: blue; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;new product 58&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;Name&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 9pt; color: blue; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #a31515; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;ProductNumber&lt;/span&gt;&lt;span style="font-size: 9pt; color: blue; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;xlu-np-58&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;ProductNumber&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 9pt; color: blue; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #a31515; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;SafetyStockLevel&lt;/span&gt;&lt;span style="font-size: 9pt; color: blue; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;100&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;SafetyStockLevel&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 9pt; color: blue; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #a31515; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;ReorderPoint&lt;/span&gt;&lt;span style="font-size: 9pt; color: blue; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;20&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;ReorderPoint&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 9pt; color: blue; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #a31515; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;StandardCost&lt;/span&gt;&lt;span style="font-size: 9pt; color: blue; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;10&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;StandardCost&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 9pt; color: blue; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #a31515; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;ListPrice&lt;/span&gt;&lt;span style="font-size: 9pt; color: blue; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;15.5&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;ListPrice&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 9pt; color: blue; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #a31515; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;DaysToManufacture&lt;/span&gt;&lt;span style="font-size: 9pt; color: blue; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;60&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;DaysToManufacture&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 9pt; color: blue; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;    &lt;/span&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: #a31515; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;SellStartDate&lt;/span&gt;&lt;span style="font-size: 9pt; color: blue; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;2005-02-27T00:00:00.0000000&lt;span style="color: blue"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #a31515"&gt;SellStartDate&lt;/span&gt;&lt;span style="color: blue"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 9pt; color: blue; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;&lt;span style="mso-spacerun: yes"&gt;  &lt;/span&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 9pt; color: #a31515; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;AddProduct&lt;/span&gt;&lt;span style="font-size: 9pt; color: blue; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0cm 0cm 10pt"&gt;&lt;span style="font-size: 9pt; color: blue; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 9pt; color: #a31515; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;Messages&lt;/span&gt;&lt;span style="font-size: 9pt; color: blue; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0cm 0cm 10pt"&gt;&lt;span lang="EN-GB"&gt;&lt;font face="Calibri"&gt;The MSMQ adapter lets you specify Recoverable and Transactional flags, so your BizTalk-generated messages have the same durability options. When an NSB handler is listening at the queue, it processes the BizTalk messages in the same way as NSB messages.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0cm 0cm 10pt"&gt;&lt;span lang="EN-GB"&gt;&lt;font face="Calibri"&gt;Publishing NSB messages to BizTalk is trickier, as the Send and Publish methods from NSB check to see if there are any subscribers before they write to the queue (compare this to the &lt;/font&gt;&lt;a href="http://ayende.com/Blog/archive/2008/12/17/rhino-service-bus.aspx"&gt;&lt;font face="Calibri"&gt;Notify method in RhinoServiceBus&lt;/font&gt;&lt;/a&gt;&lt;font face="Calibri"&gt;). If a BizTalk MSMQ receive port is the only handler, no subscribers will be registered with NSB and the message won’t be published. So you need to either call Send with a named queue (&lt;/font&gt;&lt;/span&gt;&lt;span style="font-size: 9pt; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-no-proof: yes"&gt;Bus.Send&amp;lt;&lt;span style="color: #2b91af"&gt;AddProduct&lt;/span&gt;&amp;gt;(&lt;span style="color: #a31515"&gt;"ExcelUpload.AddProductService.1.InputQueue"&lt;/span&gt;, m =&amp;gt;...)&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;font face="Calibri"&gt;, or send a subscription message from BizTalk to register a subscriber. In the the second option you’d need to specify the message type in the subscription:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 9pt; color: blue; font-family: 'Courier New'; mso-ansi-language: EN-US"&gt;&amp;lt;?xml version="1.0" ?&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt; mso-layout-grid-align: none"&gt;&lt;span style="font-size: 9pt; color: blue; font-family: 'Courier New'; mso-ansi-language: EN-US"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: firebrick; font-family: 'Courier New'; mso-ansi-language: EN-US"&gt;string&lt;/span&gt;&lt;span style="font-size: 9pt; color: blue; font-family: 'Courier New'; mso-ansi-language: EN-US"&gt;&amp;gt;&lt;/span&gt;&lt;span style="font-size: 9pt; color: black; font-family: 'Courier New'; mso-ansi-language: EN-US; mso-bidi-font-weight: bold"&gt;ExcelUpload&lt;b&gt;.&lt;/b&gt;Messages.StartBatchUpload, ExcelUpload.Messages, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null&lt;/span&gt;&lt;span style="font-size: 9pt; color: blue; font-family: 'Courier New'; mso-ansi-language: EN-US"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="font-size: 9pt; color: firebrick; font-family: 'Courier New'; mso-ansi-language: EN-US"&gt;string&lt;/span&gt;&lt;span style="font-size: 9pt; color: blue; font-family: 'Courier New'; mso-ansi-language: EN-US"&gt;&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0cm 0cm 0pt"&gt;&lt;i style="mso-bidi-font-style: normal"&gt;&lt;span lang="EN-GB"&gt;&lt;o:p&gt;&lt;font face="Calibri"&gt; &lt;/font&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0cm 0cm 10pt"&gt;&lt;i style="mso-bidi-font-style: normal"&gt;&lt;span lang="EN-GB"&gt;&lt;font face="Calibri"&gt;Running the Sample&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0cm 0cm 10pt"&gt;&lt;span lang="EN-GB"&gt;&lt;font face="Calibri"&gt;(If you haven’t seen &lt;/font&gt;&lt;a href="http://geekswithblogs.net/EltonStoneman/archive/2009/11/18/processing-an-excel-upload-with-nservicebus.aspx"&gt;&lt;font face="Calibri"&gt;the original NSB sample&lt;/font&gt;&lt;/a&gt;&lt;font face="Calibri"&gt;, have a read as it details the pre-requisites).&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0cm 0cm 10pt"&gt;&lt;span lang="EN-GB"&gt;&lt;font face="Calibri"&gt;To run the BizTalk solution, download ExcelUpload.BizTalk.Binaries.zip, unzip it and:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpFirst" style="margin: 0cm 0cm 0pt 36pt; text-indent: -18pt; mso-list: l0 level1 lfo2"&gt;&lt;span lang="EN-GB" style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;·&lt;span style="font: 7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;font face="Calibri"&gt;Copy &lt;i style="mso-bidi-font-style: normal"&gt;ExcelUpload.PipelineComponents.dll&lt;/i&gt; to your pipeline components directory – e.g. &lt;i style="mso-bidi-font-style: normal"&gt;C:\Program Files\Microsoft BizTalk Server 2006\Pipeline Components&lt;/i&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 36pt; text-indent: -18pt; mso-list: l0 level1 lfo2"&gt;&lt;span lang="EN-GB" style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;·&lt;span style="font: 7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;font face="Calibri"&gt;If you haven’t done so from the previous sample, run &lt;i style="mso-bidi-font-style: normal"&gt;uspInsertProduct.CREATE.sql&lt;/i&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 36pt; text-indent: -18pt; mso-list: l0 level1 lfo2"&gt;&lt;span lang="EN-GB" style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;·&lt;span style="font: 7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;font face="Calibri"&gt;Run &lt;i style="mso-bidi-font-style: normal"&gt;uspInsertProduct.CREATESYNONYM.sql&lt;/i&gt; &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 36pt; text-indent: -18pt; mso-list: l0 level1 lfo2"&gt;&lt;span lang="EN-GB" style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;·&lt;span style="font: 7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;font face="Calibri"&gt;Import the MSI into BizTalk&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 36pt; text-indent: -18pt; mso-list: l0 level1 lfo2"&gt;&lt;span lang="EN-GB" style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;·&lt;span style="font: 7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;font face="Calibri"&gt;Run the MSI&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 36pt; text-indent: -18pt; mso-list: l0 level1 lfo2"&gt;&lt;span lang="EN-GB" style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;·&lt;span style="font: 7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;font face="Calibri"&gt;Start send port SendInsertProduct.SQL (you’ll need to change the connection details)&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 36pt; text-indent: -18pt; mso-list: l0 level1 lfo2"&gt;&lt;span lang="EN-GB" style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;·&lt;span style="font: 7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;font face="Calibri"&gt;Enable receive location ReceiveStartUpload.FILE.XLS (monitors c:\drops\ExcelUpload)&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpLast" style="margin: 0cm 0cm 10pt 36pt; text-indent: -18pt; mso-list: l0 level1 lfo2"&gt;&lt;span lang="EN-GB" style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;·&lt;span style="font: 7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;font face="Calibri"&gt;Drop an Excel file&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0cm 0cm 10pt"&gt;&lt;span lang="EN-GB"&gt;&lt;font face="Calibri"&gt;As before, you’ll need to clear down the database between runs if you drop the same file repeatedly.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0cm 0cm 10pt"&gt;&lt;span lang="EN-GB"&gt;&lt;font face="Calibri"&gt;If you want to run the hybrid solutions, you should use the binaries in the new download rather than the original, as these run without a distributor. Run &lt;i style="mso-bidi-font-style: normal"&gt;start.cmd&lt;/i&gt; and there are three windows – Client (the file watcher), Host (the StartBatchUpload handler) and AddProductService (this is the AddProduct handler). &lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0cm 0cm 10pt"&gt;&lt;span lang="EN-GB"&gt;&lt;font face="Calibri"&gt;To run configuration 6 – NSB parsing the file and BizTalk handling the AddProduct messages:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpFirst" style="margin: 0cm 0cm 0pt 38.25pt; text-indent: -18pt; mso-add-space: auto; mso-list: l1 level1 lfo3"&gt;&lt;span lang="EN-GB" style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;·&lt;span style="font: 7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;font face="Calibri"&gt;Run start.cmd&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 38.25pt; text-indent: -18pt; mso-add-space: auto; mso-list: l1 level1 lfo3"&gt;&lt;span lang="EN-GB" style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;·&lt;span style="font: 7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;font face="Calibri"&gt;Kill the AddProductService console&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 38.25pt; text-indent: -18pt; mso-add-space: auto; mso-list: l1 level1 lfo3"&gt;&lt;span lang="EN-GB" style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;·&lt;span style="font: 7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;font face="Calibri"&gt;Disable receive location ReceiveStartUpload.FILE.XLS&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 38.25pt; text-indent: -18pt; mso-add-space: auto; mso-list: l1 level1 lfo3"&gt;&lt;span lang="EN-GB" style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;·&lt;span style="font: 7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;font face="Calibri"&gt;Enable receive location ReceiveAddProduct.MSMQ&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 38.25pt; text-indent: -18pt; mso-add-space: auto; mso-list: l1 level1 lfo3"&gt;&lt;span lang="EN-GB" style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;·&lt;span style="font: 7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;font face="Calibri"&gt;Unenlist send port SendAddProduct.MSMQ&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 38.25pt; text-indent: -18pt; mso-add-space: auto; mso-list: l1 level1 lfo3"&gt;&lt;span lang="EN-GB" style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;·&lt;span style="font: 7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;font face="Calibri"&gt;Start send port SendInsertProduct.SQL&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpLast" style="margin: 0cm 0cm 10pt 38.25pt; text-indent: -18pt; mso-add-space: auto; mso-list: l1 level1 lfo3"&gt;&lt;span lang="EN-GB" style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;·&lt;span style="font: 7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;font face="Calibri"&gt;Drop an Excel file&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0cm 0cm 10pt"&gt;&lt;span lang="EN-GB"&gt;&lt;font face="Calibri"&gt;To run configuration 7 – BizTalk parsing the file and NSB handling the AddProduct messages:&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpFirst" style="margin: 0cm 0cm 0pt 38.25pt; text-indent: -18pt; mso-add-space: auto; mso-list: l1 level1 lfo3"&gt;&lt;span lang="EN-GB" style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;·&lt;span style="font: 7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;font face="Calibri"&gt;Run start.cmd&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 38.25pt; text-indent: -18pt; mso-add-space: auto; mso-list: l1 level1 lfo3"&gt;&lt;span lang="EN-GB" style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;·&lt;span style="font: 7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;font face="Calibri"&gt;Kill the Host and Client consoles&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 38.25pt; text-indent: -18pt; mso-add-space: auto; mso-list: l1 level1 lfo3"&gt;&lt;span lang="EN-GB" style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;·&lt;span style="font: 7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;font face="Calibri"&gt;Enable receive location ReceiveStartUpload.FILE.XLS&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 38.25pt; text-indent: -18pt; mso-add-space: auto; mso-list: l1 level1 lfo3"&gt;&lt;span lang="EN-GB" style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;·&lt;span style="font: 7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;font face="Calibri"&gt;Disable receive location ReceiveAddProduct.MSMQ&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 38.25pt; text-indent: -18pt; mso-add-space: auto; mso-list: l1 level1 lfo3"&gt;&lt;span lang="EN-GB" style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;·&lt;span style="font: 7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;font face="Calibri"&gt;Start send port SendAddProduct.MSMQ&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpMiddle" style="margin: 0cm 0cm 0pt 38.25pt; text-indent: -18pt; mso-add-space: auto; mso-list: l1 level1 lfo3"&gt;&lt;span lang="EN-GB" style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;·&lt;span style="font: 7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;font face="Calibri"&gt;Unenlist send port SendInsertProduct.SQL&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoListParagraphCxSpLast" style="margin: 0cm 0cm 10pt 38.25pt; text-indent: -18pt; mso-add-space: auto; mso-list: l1 level1 lfo3"&gt;&lt;span lang="EN-GB" style="font-family: Symbol; mso-fareast-font-family: Symbol; mso-bidi-font-family: Symbol"&gt;&lt;span style="mso-list: Ignore"&gt;·&lt;span style="font: 7pt 'Times New Roman'"&gt;         &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-GB"&gt;&lt;font face="Calibri"&gt;Drop an Excel file&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0cm 0cm 10pt"&gt;&lt;i style="mso-bidi-font-style: normal"&gt;&lt;span lang="EN-GB"&gt;&lt;font face="Calibri"&gt;Source Code&lt;o:p&gt;&lt;/o:p&gt;&lt;/font&gt;&lt;/span&gt;&lt;/i&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="margin: 0cm 0cm 10pt"&gt;&lt;span lang="EN-GB"&gt;&lt;font face="Calibri"&gt;The source and referenced assemblies are in &lt;i style="mso-bidi-font-style: normal"&gt;ExcelUpload.BizTalk.Source.zip&lt;/i&gt;. There is a VS 2008 solution for the nServiceBus components, and a VS 2005 solution for the BizTalk components.&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136449"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136449" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/EltonStoneman/aggbug/136449.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/QS3c767kncE" height="1" width="1"/&gt;</description><dc:creator>EltonStoneman</dc:creator><feedburner:origLink>http://geekswithblogs.net/EltonStoneman/archive/2009/11/21/processing-excel-uploads-with-biztalk-and-nservicebus.aspx</feedburner:origLink></item><item><title>Quick &amp;amp; Dirty SharePoint Email Templates</title><link>http://feedproxy.google.com/~r/geekswithblogs/~3/hxo6xRUDml8/quick-amp-dirty-sharepoint-email-templates.aspx</link><pubDate>Sat, 21 Nov 2009 04:52:06 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/SoYouKnow/archive/2009/11/20/quick-amp-dirty-sharepoint-email-templates.aspx</guid><wfw:comment>http://geekswithblogs.net/SoYouKnow/comments/136448.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/SoYouKnow/comments/commentRss/136448.aspx</wfw:commentRss><comments>http://geekswithblogs.net/SoYouKnow/archive/2009/11/20/quick-amp-dirty-sharepoint-email-templates.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/SoYouKnow/services/trackbacks/136448.aspx</trackback:ping><source url="http://geekswithblogs.net/SoYouKnow/rss.aspx">Quick &amp;amp; Dirty SharePoint Email Templates</source><description>&lt;p&gt;Good news, this is my first video post, so less typing for me!  Bad news, you have to hear my eloquent voice.  Regardless, I thought I’d try it out and see how it flies.&lt;/p&gt;  &lt;p&gt;So, a requirement popped up to allow the business to store “Contact Us” information in SharePoint and use workflows to manually send emails to the people who submitted the contact information.  Very easy.. nothing spectacular.  They also wanted the ability to send pre-formatted email templates as responses.  Also fairly easy to do creating an SPD workflow for each template, right?  Well.. what do you do so that you don’t have to open up SPD every time the user wants to add or modify a template?  I came up with the following solution.  You could take what I did here and build upon it to make it much more elaborate.  I’m sure you could format the emails more professionally.  You could auto populate more fields like the subject and signature. Hey, I got it started, you can make it world class.&lt;/p&gt;  &lt;p&gt;So, in a nutshell here is what I did:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;1. Create a list to contain “Contact Us” information&lt;/li&gt;    &lt;li&gt;2. Create a list to hold “Email Templates”&lt;/li&gt;    &lt;li&gt;3. Create a manual workflow called “Send Email” in SPD on the “Contact Us” list that has a “Message” initiation variable&lt;/li&gt;    &lt;li&gt;4. Create one action that sends an email to the email address from the “Contact Us” list and the body of the email is the “Message” from the initiation variable&lt;/li&gt;    &lt;li&gt;5. Open up the .aspx file for the “Send Mail” workflow and add the “Email Templates” list to it.&lt;/li&gt;    &lt;li&gt;6. Set up a web part connection between the “Message” initiation variable and the “Email Templates” list&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;That’s it! nothing earth shattering.  So, without further ado, here’s the video.  Please let me know your thoughts on whether I should do this more often or make this a one time occurrence.   &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:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:54ea8b9b-c999-4bb7-b0d7-7e8c40993695" class="wlWriterEditableSmartContent"&gt;&lt;div id="bc1ac2b5-9013-414c-83b6-8407870054f2" style="margin: 0px; padding: 0px; display: inline;"&gt;&lt;div&gt;&lt;a href="http://www.youtube.com/watch?v=B6ifiMNt_cg" target="_new"&gt;&lt;img src="http://geekswithblogs.net/images/geekswithblogs_net/SoYouKnow/WindowsLiveWriter/QuickDirtySharePointEmailTemplates_14190/video2aedcfeeaee6.jpg" style="border-style: none" galleryimg="no" onload="var downlevelDiv = document.getElementById('bc1ac2b5-9013-414c-83b6-8407870054f2'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;object width=\&amp;quot;453\&amp;quot; height=\&amp;quot;378\&amp;quot;&amp;gt;&amp;lt;param name=\&amp;quot;movie\&amp;quot; value=\&amp;quot;http://www.youtube.com/v/B6ifiMNt_cg&amp;amp;hl=en\&amp;quot;&amp;gt;&amp;lt;\/param&amp;gt;&amp;lt;embed src=\&amp;quot;http://www.youtube.com/v/B6ifiMNt_cg&amp;amp;hl=en\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; width=\&amp;quot;453\&amp;quot; height=\&amp;quot;378\&amp;quot;&amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/object&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt="" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136448"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136448" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/SoYouKnow/aggbug/136448.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/hxo6xRUDml8" height="1" width="1"/&gt;</description><dc:creator>Mark Rackley</dc:creator><feedburner:origLink>http://geekswithblogs.net/SoYouKnow/archive/2009/11/20/quick-amp-dirty-sharepoint-email-templates.aspx</feedburner:origLink></item><item><title>Installing VS2010 Beta 2 on my MacBook Pro</title><link>http://feedproxy.google.com/~r/geekswithblogs/~3/N05i7EqZ448/136447.aspx</link><pubDate>Sat, 21 Nov 2009 03:05:02 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/jreis/archive/2009/11/20/136447.aspx</guid><wfw:comment>http://geekswithblogs.net/jreis/comments/136447.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/jreis/comments/commentRss/136447.aspx</wfw:commentRss><comments>http://geekswithblogs.net/jreis/archive/2009/11/20/136447.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/jreis/services/trackbacks/136447.aspx</trackback:ping><source url="http://geekswithblogs.net/jreis/rss.aspx">Installing VS2010 Beta 2 on my MacBook Pro</source><description>&lt;p&gt;I use Boot Camp on my MacBook Pro to run Windows 7.  Last night I thought I would try installing Visual Studio 2010 Beta 2.  Sadly, the install kept failing with an "access denied" error.  I was determined to figure it out.  I ran Process Monitor to see what was going on and looked at some of the log files it was writing to.  One of them said it found drive E: to have the most space, but failed when it attempted to write to it.  Drive E: was my OS X partition.  So, I fired up disk manager in Windows 7 (diskmgmt.msc) and clicked the Remove button on the Change Drive Letter dialog box.  After removing the E: drive from Windows, I tried installing VS2010 again, and it worked perfectly.  Here's to being persistent.&lt;/p&gt;
&lt;p&gt;I hope this helps someone out there.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136447"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136447" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/jreis/aggbug/136447.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/N05i7EqZ448" height="1" width="1"/&gt;</description><dc:creator>Jason Reis</dc:creator><feedburner:origLink>http://geekswithblogs.net/jreis/archive/2009/11/20/136447.aspx</feedburner:origLink></item><item><title>To P2V or not to P2V</title><link>http://feedproxy.google.com/~r/geekswithblogs/~3/vlJz6MmrpwU/to-p2v-or-not-to-p2v.aspx</link><pubDate>Sat, 21 Nov 2009 01:12:16 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/cajunmcse/archive/2009/11/20/to-p2v-or-not-to-p2v.aspx</guid><wfw:comment>http://geekswithblogs.net/cajunmcse/comments/136446.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/cajunmcse/comments/commentRss/136446.aspx</wfw:commentRss><comments>http://geekswithblogs.net/cajunmcse/archive/2009/11/20/to-p2v-or-not-to-p2v.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/cajunmcse/services/trackbacks/136446.aspx</trackback:ping><source url="http://geekswithblogs.net/cajunmcse/rss.aspx">To P2V or not to P2V</source><description>&lt;p&gt;With the release of Windows 2008 R2, highly available Hyper V deployments have increased in popularity.  One of the big questions during these deployments is what to virtualize and what to leave on physical hardware and in particular when it refers to domain controllers.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Domain controllers are basically highly transactional database servers which service most basic network functions including authentication, name resolution, replication, and of course many secondary services like DHCP or Radius.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;In my opinion as long as one domain controller is left on local physical hardware or a remote host, the rest can be virtual.  The reasoning behind leaving one is the Hyper V host servers running 2008 R2 or 2008 R2 Server Core will belong to the domain.  These machines need to function if all the virtual machines are stopped or in a failed state.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;As most organizations have more than one domain controller, there should still be a few to virtualize. Lets take a look at the considerations when virtualizing a domain controller.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;First the P2V process itself.  Since DC’s are highly transactional, it’s necessary to P2V using offline mode.  This mode will install an agent and a bootable kernel to the machine, then reboot the machine, much like a password reset disk, and begin the process while all of its transactional processes are stopped.  This requires that the hardware be pretty standard so that it’s compatible with the booting kernel especially the network controller.   Once the P2V is finished, the agent and kernel will be removed, the host machine will be automatically turned off, and the virtual machine will be started.  Please make sure to not bring the physical machine back online while it’s connected to the network since this will give you duplicate domain controllers on the same network.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;Second is the VM configuration itself.  There are quite a few options when choosing your hardware configuration in a VM.   The type of disk controller, emulated or synthetic, dynamic VHD, fixed VHD, or pass-through disk.  Pass-through Disk actually allows the VM direct access to a host attached disk and is considered the optimal configuration, however it’s not always a feasible solution depending on the environment. For a virtual disk based domain controller, a virtual SCSI controller is the preferred method. Also a synthetic controller is preferred over emulated, however you will need to have the VM guest additions installed before you’re able to create this controller.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;VHD type and placement are also important.  Fixed size VHD is extremely more efficient than a dynamic VHD.  Since the size of active directory will undoubtedly grow, a fixed size VHD is the way to go.   Also the VHD should be placed on it’s own LUN or physical disk and shouldn’t share with another VM or the host operating system.  Sharing a LUN between VMs or with the host OS will greatly decrease performance and could have adverse affects on Active Directory.  If the VHD is to be placed on IDE physical storage, make sure that write-back caching is disabled.&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;So virtual domain controllers aren’t necessarily a bad thing, just remember  Pass-through Disk &amp;gt; Fixed size VHD &amp;gt; Dynamic VHD.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136446"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136446" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/cajunmcse/aggbug/136446.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/vlJz6MmrpwU" height="1" width="1"/&gt;</description><dc:creator>cajunmcse</dc:creator><feedburner:origLink>http://geekswithblogs.net/cajunmcse/archive/2009/11/20/to-p2v-or-not-to-p2v.aspx</feedburner:origLink></item><item><title> Why I started using Skribit!</title><link>http://feedproxy.google.com/~r/geekswithblogs/~3/Ep7MiML2l6M/136445.aspx</link><pubDate>Sat, 21 Nov 2009 00:37:43 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/nharrison/archive/2009/11/20/136445.aspx</guid><wfw:comment>http://geekswithblogs.net/nharrison/comments/136445.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/nharrison/comments/commentRss/136445.aspx</wfw:commentRss><comments>http://geekswithblogs.net/nharrison/archive/2009/11/20/136445.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/nharrison/services/trackbacks/136445.aspx</trackback:ping><source url="http://geekswithblogs.net/nharrison/rss.aspx"> Why I started using Skribit!</source><description>&lt;p&gt;I recently saw several folks whose blogs I follow incorporate Sribit so I got curious.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Sribit allows readers to suggest blog topics. It provides another mechanism for a blogger and the reader to interact.&lt;/p&gt;
&lt;p&gt;You can always comment on existing blog posts.   Now you can also suggest blog posts.&lt;/p&gt;
&lt;p&gt;You can ask questions about topics that I have never posted about or haven't posted on in a while.&lt;/p&gt;
&lt;p&gt;So if you have a topic that you would like to see me blog about, by all means suggest away.&lt;/p&gt;
&lt;p&gt;I will make every effort to at least respond to every suggestion.&lt;/p&gt;
&lt;p&gt;So let me what you think.    What posts would you like to see?&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136445"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136445" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/nharrison/aggbug/136445.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/Ep7MiML2l6M" height="1" width="1"/&gt;</description><dc:creator>Nick Harrison</dc:creator><feedburner:origLink>http://geekswithblogs.net/nharrison/archive/2009/11/20/136445.aspx</feedburner:origLink></item><item><title>Redirect for SharePoint Page</title><link>http://feedproxy.google.com/~r/geekswithblogs/~3/kj9pi7K3H4c/redirect-for-sharepoint-page.aspx</link><pubDate>Fri, 20 Nov 2009 19:51:04 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/SharePointCherie/archive/2009/11/20/redirect-for-sharepoint-page.aspx</guid><wfw:comment>http://geekswithblogs.net/SharePointCherie/comments/136444.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/SharePointCherie/comments/commentRss/136444.aspx</wfw:commentRss><comments>http://geekswithblogs.net/SharePointCherie/archive/2009/11/20/redirect-for-sharepoint-page.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/SharePointCherie/services/trackbacks/136444.aspx</trackback:ping><source url="http://geekswithblogs.net/SharePointCherie/rss.aspx">Redirect for SharePoint Page</source><description>&lt;p&gt;To redirect to a specific SharePoint site or page:&lt;/p&gt;
&lt;p&gt;1. Create c-name entry in DNS and point to SharePoint server&lt;/p&gt;
&lt;p&gt;2. Create directory in c:\inetpub\wwwroot and create one html file called "index.htm" in the folder with this content:&lt;/p&gt;
&lt;p&gt;&amp;lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"&amp;gt;&lt;/p&gt;
&lt;p&gt;&amp;lt;html&amp;gt;&lt;br /&gt;
&amp;lt;head&amp;gt;&lt;br /&gt;
 &amp;lt;title&amp;gt;Redirecting Page&amp;lt;/title&amp;gt;&lt;br /&gt;
 &amp;lt;META HTTP-EQUIV="Refresh" CONTENT="0;URL=http://sharepoint/sites/default.aspx"&amp;gt;&lt;br /&gt;
&amp;lt;/head&amp;gt;&amp;lt;body&amp;gt;&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;/p&gt;
&lt;p&gt;3. Open IIS and create a new Web site.  The port is the same as the default Web application.  Fill in a host header value- make it the same as you specified in the c-name entry.  Also, add a host header for the FQDN.  Specify the Home Directroy as the same folder that was created in step one.&lt;/p&gt;
&lt;p&gt;4. Start the Web site in IIS.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136444"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136444" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/SharePointCherie/aggbug/136444.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/kj9pi7K3H4c" height="1" width="1"/&gt;</description><dc:creator>Cherie Riesberg</dc:creator><feedburner:origLink>http://geekswithblogs.net/SharePointCherie/archive/2009/11/20/redirect-for-sharepoint-page.aspx</feedburner:origLink></item><item><title>Setting up ODP.net with Windows 7 x64 and VS2008</title><link>http://feedproxy.google.com/~r/geekswithblogs/~3/kL8jBRa27og/setting-up-odp.net-with-windows-7-x64-and-vs2008.aspx</link><pubDate>Fri, 20 Nov 2009 17:30:38 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/mbcrump/archive/2009/11/20/setting-up-odp.net-with-windows-7-x64-and-vs2008.aspx</guid><wfw:comment>http://geekswithblogs.net/mbcrump/comments/136443.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/mbcrump/comments/commentRss/136443.aspx</wfw:commentRss><comments>http://geekswithblogs.net/mbcrump/archive/2009/11/20/setting-up-odp.net-with-windows-7-x64-and-vs2008.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/mbcrump/services/trackbacks/136443.aspx</trackback:ping><source url="http://geekswithblogs.net/mbcrump/rss.aspx">Setting up ODP.net with Windows 7 x64 and VS2008</source><description>&lt;p&gt;Its very simple to setup the latest ODP.NET with Windows 7 and VS2008.&lt;/p&gt;
&lt;p&gt;Just do the following:&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Download the following: &lt;a href="http://www.oracle.com/technology/software/tech/dotnet/utilsoft.html"&gt;www.oracle.com/technology/software/tech/dotnet/utilsoft.html&lt;/a&gt; from oracle and install it.&lt;/li&gt;
    &lt;li&gt;&lt;span class="parahead1"&gt;Oracle 11&lt;i&gt;g&lt;/i&gt; ODAC and Oracle Developer Tools for Visual Studio 11.1.0.7.20&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;table cellspacing="0" cellpadding="0" border="0" id="Table4"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td width="35"&gt; &lt;/td&gt;
            &lt;td&gt;
            &lt;p&gt;&lt;span class="boldbodycopy"&gt;Download Includes&lt;/span&gt;&lt;/p&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td width="35"&gt; &lt;/td&gt;
            &lt;td width="35"&gt;&lt;img height="12" width="35" alt="" src="http://www.oracle.com/technology/images/bullets_and_symbols/blk_line_bullet_35.gif" /&gt;&lt;/td&gt;
            &lt;td&gt;&lt;span class="bodycopy"&gt;Oracle Developer Tools for Visual Studio 11.1.0.7.20&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td width="35"&gt; &lt;/td&gt;
            &lt;td width="35"&gt;&lt;img height="12" width="35" alt="" src="http://www.oracle.com/technology/images/bullets_and_symbols/blk_line_bullet_35.gif" /&gt;&lt;/td&gt;
            &lt;td&gt;&lt;span class="bodycopy"&gt;Oracle Data Provider for .NET 2.0 11.1.0.7.20&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td width="35"&gt; &lt;/td&gt;
            &lt;td width="35"&gt;&lt;img height="12" width="35" alt="" src="http://www.oracle.com/technology/images/bullets_and_symbols/blk_line_bullet_35.gif" /&gt;&lt;/td&gt;
            &lt;td&gt;&lt;span class="bodycopy"&gt;Oracle Providers for ASP.NET 11.1.0.7.20&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td width="35"&gt; &lt;/td&gt;
            &lt;td width="35"&gt;&lt;img height="12" width="35" alt="" src="http://www.oracle.com/technology/images/bullets_and_symbols/blk_line_bullet_35.gif" /&gt;&lt;/td&gt;
            &lt;td&gt;&lt;span class="bodycopy"&gt;Oracle Database Extensions for .NET 2.0 11.1.0.7.20 -- for upgrade only&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td width="35"&gt; &lt;/td&gt;
            &lt;td width="35"&gt;&lt;img height="12" width="35" alt="" src="http://www.oracle.com/technology/images/bullets_and_symbols/blk_line_bullet_35.gif" /&gt;&lt;/td&gt;
            &lt;td&gt;&lt;span class="bodycopy"&gt;Oracle Provider for OLE DB 11.1.0.7.20&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td width="35"&gt; &lt;/td&gt;
            &lt;td width="35"&gt;&lt;img height="12" width="35" alt="" src="http://www.oracle.com/technology/images/bullets_and_symbols/blk_line_bullet_35.gif" /&gt;&lt;/td&gt;
            &lt;td&gt;&lt;span class="bodycopy"&gt;Oracle Objects for OLE 11.1.0.7.20&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td width="35"&gt; &lt;/td&gt;
            &lt;td width="35"&gt;&lt;img height="12" width="35" alt="" src="http://www.oracle.com/technology/images/bullets_and_symbols/blk_line_bullet_35.gif" /&gt;&lt;/td&gt;
            &lt;td&gt;&lt;span class="bodycopy"&gt;Oracle Services for Microsoft Transaction Server 11.1.0.7.20&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td width="35"&gt; &lt;/td&gt;
            &lt;td width="35"&gt;&lt;img height="12" width="35" alt="" src="http://www.oracle.com/technology/images/bullets_and_symbols/blk_line_bullet_35.gif" /&gt;&lt;/td&gt;
            &lt;td&gt;&lt;span class="bodycopy"&gt;Oracle ODBC Driver 11.1.0.7.0&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td width="35"&gt; &lt;/td&gt;
            &lt;td width="35"&gt;&lt;img height="12" width="35" alt="" src="http://www.oracle.com/technology/images/bullets_and_symbols/blk_line_bullet_35.gif" /&gt;&lt;/td&gt;
            &lt;td&gt;&lt;span class="bodycopy"&gt;Oracle SQL*Plus 11.1.0.7.0&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td width="35"&gt; &lt;/td&gt;
            &lt;td width="35"&gt;&lt;img height="12" width="35" alt="" src="http://www.oracle.com/technology/images/bullets_and_symbols/blk_line_bullet_35.gif" /&gt;&lt;/td&gt;
            &lt;td&gt;&lt;span class="bodycopy"&gt;Oracle Instant Client 11.1.0.7.0&lt;/span&gt;&lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;ul&gt;
    &lt;li&gt;Go to the following folder and setup your tnsnames.ora&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;C:\app\&amp;lt;user&amp;gt;\product\11.1.0\client_1\Network\Admin&lt;/p&gt;
&lt;p&gt;It should look simular to this: &lt;/p&gt;
&lt;p&gt;xxxxx =&lt;br /&gt;
  (DESCRIPTION =&lt;br /&gt;
    (ADDRESS_LIST =&lt;br /&gt;
      (ADDRESS = (PROTOCOL = TCP)(HOST = xxxxx)(PORT = xxxxx))&lt;br /&gt;
    )&lt;br /&gt;
    (CONNECT_DATA =&lt;br /&gt;
      (SERVICE_NAME = xxxxx)&lt;br /&gt;
    )&lt;br /&gt;
  )&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;Next Reboot your machine and try to connect via Toad or Server Browser in VS2008.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136443"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136443" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/mbcrump/aggbug/136443.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/kL8jBRa27og" height="1" width="1"/&gt;</description><dc:creator>mbcrump</dc:creator><feedburner:origLink>http://geekswithblogs.net/mbcrump/archive/2009/11/20/setting-up-odp.net-with-windows-7-x64-and-vs2008.aspx</feedburner:origLink></item><item><title>Silverlight Cream for November 20, 2009 -- #737</title><link>http://feedproxy.google.com/~r/geekswithblogs/~3/bgGFY43Z2Ok/136441.aspx</link><pubDate>Fri, 20 Nov 2009 15:26:03 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/WynApseTechnicalMusings/archive/2009/11/20/136441.aspx</guid><wfw:comment>http://geekswithblogs.net/WynApseTechnicalMusings/comments/136441.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/WynApseTechnicalMusings/comments/commentRss/136441.aspx</wfw:commentRss><comments>http://geekswithblogs.net/WynApseTechnicalMusings/archive/2009/11/20/136441.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/WynApseTechnicalMusings/services/trackbacks/136441.aspx</trackback:ping><source url="http://geekswithblogs.net/WynApseTechnicalMusings/rss.aspx">Silverlight Cream for November 20, 2009 -- #737</source><description>&lt;p&gt;&lt;font face="tahoma"&gt;In this Issue:       &lt;a href="#20091120Michael Wolf"&gt;&lt;u&gt;Michael Wolf&lt;/u&gt;&lt;/a&gt;,            &lt;a href="#20091120Colin Blair"&gt;&lt;u&gt;Colin Blair&lt;/u&gt;&lt;/a&gt;,            &lt;a href="#20091120John Papa"&gt;&lt;u&gt;John Papa&lt;/u&gt;&lt;/a&gt;,            &lt;a href="#20091120Ning Zhang"&gt;&lt;u&gt;Ning Zhang&lt;/u&gt;&lt;/a&gt;,            &lt;a href="#20091120Andy Beaulieu"&gt;&lt;u&gt;Andy Beaulieu&lt;/u&gt;&lt;/a&gt;, and           &lt;a href="#20091120Tomasz Janczuk"&gt;&lt;u&gt;Tomasz Janczuk&lt;/u&gt;&lt;/a&gt;. &lt;br /&gt;
&lt;br /&gt;
Shoutouts: &lt;br /&gt;
&lt;br /&gt;
In case you missed it in the rush the other day, &lt;b&gt;Robby Ingebretsen&lt;/b&gt; announced the release of &lt;a href="http://blog.nerdplusart.com/archives/seesmic-for-windows"&gt;&lt;u&gt;Seesmic for Windows &lt;/u&gt;&lt;/a&gt; ... that's going on my laptop this weekend! &lt;br /&gt;
&lt;br /&gt;
The &lt;b&gt;Microsoft Expression Blog&lt;/b&gt; has a great tutorial upon the use of &lt;a href="http://expression.microsoft.com/en-us/library/cc295195(Expression.30).aspx"&gt;&lt;u&gt;Panels&lt;/u&gt;&lt;/a&gt; in Expression Web. &lt;br /&gt;
&lt;br /&gt;
Don't forget, I have all Silverlight 4B articles tagged at &lt;a href="http://www.wynapse.com/TagContent.aspx?Tag=Silverlight4"&gt;&lt;u&gt;WynApse.com&lt;/u&gt;&lt;/a&gt;, along with lots (&amp;gt;7600 posts) of other stuff :) &lt;br /&gt;
&lt;br /&gt;
&lt;/font&gt;&lt;/p&gt;
&lt;center&gt;&lt;hr width="50%" /&gt;
&lt;/center&gt;
&lt;p&gt;&lt;font face="tahoma"&gt;From &lt;a href="http://www.silverlightcream.com"&gt;&lt;u&gt;SilverlightCream.com&lt;/u&gt;&lt;/a&gt;:  &lt;/font&gt;&lt;/p&gt;
&lt;dl&gt;  &lt;font face="tahoma"&gt;
    &lt;dt&gt;&lt;a name="20091120Michael Wolf"&gt;                &lt;/a&gt;&lt;a title="http://www.cynergysystems.com/blogs/page/michaelwolf?entry=silverlight_4_beta_and_web" href="http://www.silverlightcream.com/SilverlightCreamRedirect.aspx?LinkID=4564"&gt;&lt;u&gt;Silverlight 4 beta and web cam support&lt;/u&gt;&lt;/a&gt;            &lt;/dt&gt;
    &lt;dd&gt;WebCam support ... well... now that SL4B has it, wonder what everyone will be screaming for :) .. &lt;b&gt;Michael Wolf&lt;/b&gt; has a post up describing it's use. He has a video on the post that's actually pretty cool showing the user experience.&lt;/dd&gt;
    &lt;dt&gt;&lt;a name="20091120Colin Blair"&gt;                &lt;/a&gt;&lt;a title="http://www.riaservicesblog.com/Blog/post/A-guide-to-the-new-features-of-WCF-RIA-Services.aspx" href="http://www.silverlightcream.com/SilverlightCreamRedirect.aspx?LinkID=4563"&gt;&lt;u&gt;A guide to new features of WCF RIA Services&lt;/u&gt;&lt;/a&gt;            &lt;/dt&gt;
    &lt;dd&gt;&lt;b&gt;Colin Blair&lt;/b&gt; has a post up showing the differences you should know in the transition from .NET RIA Services to WCF RIA Services in Silverlight 4.&lt;/dd&gt;
    &lt;dt&gt;&lt;a name="20091120John Papa"&gt;                &lt;/a&gt;&lt;a title="http://johnpapa.net/silverlight/enabling-validation-in-silverlight-4-with-idataerrorinfo/" href="http://www.silverlightcream.com/SilverlightCreamRedirect.aspx?LinkID=4562"&gt;&lt;u&gt;Enabling Validation in Silverlight 4 with IDataErrorInfo&lt;/u&gt;&lt;/a&gt;            &lt;/dt&gt;
    &lt;dd&gt;&lt;b&gt;John Papa&lt;/b&gt; has a short article and code up explaining the use of IDataErrorInfo in Silverlight 4. &lt;/dd&gt;
    &lt;dt&gt;&lt;a name="20091120Ning Zhang"&gt;                &lt;/a&gt;&lt;a title="http://www.ningzhang.org/2009/11/18/silverlight-clipboard-api/" href="http://www.silverlightcream.com/SilverlightCreamRedirect.aspx?LinkID=4561"&gt;&lt;u&gt;Silverlight Clipboard API&lt;/u&gt;&lt;/a&gt;            &lt;/dt&gt;
    &lt;dd&gt;Find out what Clipboard support in Silverlight 4 really means. &lt;b&gt;Ning Zhang&lt;/b&gt; explains what we've got and how to use it. Yikes... lots of moving parts to worry about!&lt;/dd&gt;
    &lt;dt&gt;&lt;a name="20091120Andy Beaulieu"&gt;                &lt;/a&gt;&lt;a title="http://www.andybeaulieu.com/Home/tabid/67/EntryID/179/Default.aspx" href="http://www.silverlightcream.com/SilverlightCreamRedirect.aspx?LinkID=4560"&gt;&lt;u&gt;Silverlight 4 Beta, RIA Services... and Beer!&lt;/u&gt;&lt;/a&gt;            &lt;/dt&gt;
    &lt;dd&gt;Ready for a long Friday morning Silverlight 4 RIA application tutorial? &lt;b&gt;Andy Beaulieu&lt;/b&gt; has a great one up... lots of details and hints... required reading!&lt;/dd&gt;
    &lt;dt&gt;&lt;a name="20091120Tomasz Janczuk"&gt;                &lt;/a&gt;&lt;a title="http://tomasz.janczuk.org/2009/11/pubsub-sample-with-wcf-nettcp-protocol.html" href="http://www.silverlightcream.com/SilverlightCreamRedirect.aspx?LinkID=4559"&gt;&lt;u&gt;Pub/sub sample with WCF net.tcp protocol in Silverlight 4&lt;/u&gt;&lt;/a&gt;            &lt;/dt&gt;
    &lt;dd&gt;&lt;b&gt;Tomasz Janczuk&lt;/b&gt; continues with discussion of net.tcp and describes the conversion of a previous sample from HTTP Polling Duplex to the new WCF net.tcp protocol.&lt;/dd&gt;
    &lt;/font&gt;&lt;/dl&gt;
    &lt;p&gt;&lt;font face="tahoma"&gt;&lt;br /&gt;
    &lt;font color="#0000ff"&gt;&lt;strong&gt;Stay in the 'Light!&lt;/strong&gt;&lt;/font&gt;&lt;br /&gt;
    &lt;/font&gt;&lt;/p&gt;
    &lt;center&gt; &lt;font face="tahoma"&gt;  &lt;/font&gt;&lt;hr width="50%" /&gt;
    &lt;font face="tahoma"&gt;  &lt;a href="http://twitter.com/SilverlightNews"&gt;&lt;u&gt;Twitter SilverlightNews&lt;/u&gt;&lt;/a&gt; |    &lt;a href="http://twitter.com/WynApse"&gt;&lt;u&gt;Twitter WynApse&lt;/u&gt;&lt;/a&gt; |    &lt;a href="http://www.wynapse.com"&gt;&lt;u&gt;WynApse.com&lt;/u&gt;&lt;/a&gt; |    &lt;a href="http://www.wynapse.com/TaggedPosts.aspx"&gt;&lt;u&gt;Tagged Posts&lt;/u&gt;&lt;/a&gt; |    &lt;a href="http://www.silverlightcream.com"&gt;&lt;u&gt;SilverlightCream&lt;/u&gt;&lt;/a&gt; &lt;br /&gt;
    &lt;a href="http://tech.groups.yahoo.com/group/SilverlightCream/join"&gt;&lt;u&gt;Join me @ SilverlightCream&lt;/u&gt;&lt;/a&gt; |    &lt;a href="http://www.phoenixsilverlight.net"&gt;&lt;u&gt;Phoenix Silverlight User Group&lt;/u&gt;&lt;/a&gt;   &lt;br /&gt;
    &lt;/font&gt;&lt;/center&gt;
    &lt;p&gt;&lt;font face="tahoma"&gt;  &lt;br /&gt;
    &lt;br /&gt;
    Technorati Tags:     &lt;a rel="tag" href="http://technorati.com/tag/Silverlight"&gt;&lt;img alt=" " src="http://static.technorati.com/static/img/pub/icon-utag-16x13.png?tag=Silverlight" style="border: 0pt none ; vertical-align: middle; margin-left: 0.4em;" /&gt;Silverlight&lt;/a&gt;        &lt;a rel="tag" href="http://technorati.com/tag/silverlight-3"&gt;&lt;img alt=" " src="http://static.technorati.com/static/img/pub/icon-utag-16x13.png?tag=silverlight-3" style="border: 0pt none ; vertical-align: middle; margin-left: 0.4em;" /&gt;Silverlight 3&lt;/a&gt;        &lt;a rel="tag" href="http://technorati.com/tag/silverlight-4"&gt;&lt;img alt=" " src="http://static.technorati.com/static/img/pub/icon-utag-16x13.png?tag=silverlight-4" style="border: 0pt none ; vertical-align: middle; margin-left: 0.4em;" /&gt;Silverlight 4&lt;/a&gt;        &lt;a rel="tag" href="http://technorati.com/tag/SilverlightCream"&gt;&lt;img alt=" " src="http://static.technorati.com/static/img/pub/icon-utag-16x13.png?tag=SilverlightCream" style="border: 0pt none ; vertical-align: middle; margin-left: 0.4em;" /&gt;SilverlightCream&lt;/a&gt;  &lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136441"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136441" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/WynApseTechnicalMusings/aggbug/136441.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/bgGFY43Z2Ok" height="1" width="1"/&gt;</description><dc:creator>Dave Campbell</dc:creator><feedburner:origLink>http://geekswithblogs.net/WynApseTechnicalMusings/archive/2009/11/20/136441.aspx</feedburner:origLink></item><item><title>Hosted exception collection for .NET applications made easy – Exceptioneer.com</title><link>http://feedproxy.google.com/~r/geekswithblogs/~3/WsJTIDp3PgU/136439.aspx</link><pubDate>Fri, 20 Nov 2009 13:32:54 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/twickers/archive/2009/11/20/136439.aspx</guid><wfw:comment>http://geekswithblogs.net/twickers/comments/136439.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/twickers/comments/commentRss/136439.aspx</wfw:commentRss><comments>http://geekswithblogs.net/twickers/archive/2009/11/20/136439.aspx#comment</comments><slash:comments>1</slash:comments><trackback:ping>http://geekswithblogs.net/twickers/services/trackbacks/136439.aspx</trackback:ping><source url="http://geekswithblogs.net/twickers/rss.aspx">Hosted exception collection for .NET applications made easy – Exceptioneer.com</source><description>&lt;p&gt;I own a company, Tiger Computer Services Ltd, which is an Independent Software Vendor (ISV) providing .NET software solutions to clients in the London area.&lt;/p&gt;
&lt;p&gt;One of the most significant considerations when running a small ISV is the cost of supporting software in the field. For some clients, support is not a billable item, especially if the fault is within the software we have provided. This means that every time the telephone rings, we bleed money, and if we have to actually go on site to resolve an issue it gets worse.&lt;/p&gt;
&lt;p&gt;Whether the software solution is ‘packaged’ or is a custom solution, all our clients run the software on their own equipment at their own premises.  We have never asked for VPN access into their network.  We take the view that if you cannot easily VPN into a system you have a real incentive to write reliable software that works first time and doesn’t need continuous intervention.&lt;/p&gt;
&lt;p&gt;However, although all the clients can be reached within about one hour by public transport, an on-site visit is bad for many reasons;&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;It costs money; either to ourselves or to the client (the latter is even worse if someone has to approve the cost in advance of the visit)&lt;/li&gt;
    &lt;li&gt;It takes time, which can lead to more issues; i.e. data corruption through continued use of the software&lt;/li&gt;
    &lt;li&gt;It is highly disruptive of work being undertaken for other clients&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Exception handling is a good thing&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;This may sound obvious, but however good your programming is, it’ll generate exceptions.  It is impossible to account for all eventualities and you need to be ready to handle them and log the state of the system when they occurred.&lt;/p&gt;
&lt;p&gt;The solutions we deliver are generally a combination of ASP.NET web applications, Windows Services (Windows Forms applications with no user interface) and usually with some database server in the background (SQL Server, MySQL or Oracle).  Our exception handling is wrapped up in a set of reporting libraries whose history dates back to before Visual Basic 6.&lt;/p&gt;
&lt;p&gt;The reporting libraries were overhauled in the transfer to C#, and they provide a simple method for logging messages and exceptions simultaneously to the Windows Event Log, text based log file, SMTP e-mail and interactive dialogs (for Windows Forms applications with a user interface).&lt;/p&gt;
&lt;p&gt;The libraries consist of a central reporting engine, into which various reporters are plugged and these handle all the various methods for recording exceptions.  One call to the reporting engine to display a message or exception calls all the reporters in turn.  This allows new methods of reporting exceptions to be added quickly, and for various methods to be turned off as required (such as disabling writing to the Event Log on shared hosting providers).&lt;/p&gt;
&lt;p&gt;Whether you use the Microsoft application block, log4net or some home grown exception handling, the biggest issue is getting access to the log files or event log messages once an exception has occurred.&lt;/p&gt;
&lt;p&gt;Without remote access, we rely on the client IT team to either take the text log file, or dump the Event Logs to a CSV file, and e-mail the file to us. Of course, this assumes that the client is already aware they have a problem, which means it has very likely started to affect their use of the application.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Proactive exception handling&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In an ideal world you would receive notification automatically about any exceptions in your applications, without requiring intervention from the client.&lt;/p&gt;
&lt;p style="margin-left: 40px;"&gt;&lt;em&gt;Nothing impresses a client more than when you phone &lt;strong&gt;them &lt;/strong&gt;to tell them they have an issue, &lt;strong&gt;and &lt;/strong&gt;that you have already got a solution which they can implement to fix it.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Although our reporting libraries do include an SMTP e-mail reporter which can provide some of this proactive functionality it is not always possible to persuade clients that their SMTP gateway or firewall should be ‘tweaked’ to allow support e-mails out of the building.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Exceptioneer&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Earlier this year I was kindly invited into a beta program for a ‘hosted exception collection’ service called Exceptioneer run by the good chaps at Pixel Programming, Phil Winstanley (a Microsoft MVP, no less) and Chris Gaskell.  &lt;/p&gt;
&lt;p&gt;These guys write .NET applications for a living and had already created their own centralised exception collection system for their own applications, solving the issues encountered when creating this type of solution.  Realising they had something well worth sharing, they turned their system into a packaged, hosted service for other developers and Exceptioneer was born.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;.NET support&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Exceptioneer supports ASP.NET, Windows Forms and JavaScript (although I have yet to use the JavaScript exception hander).&lt;/p&gt;
&lt;p&gt;Integration in an ASP.NET application is simple; reference the Exceptioneer web client assembly and add a few lines in the Web.Config and it will be reporting unhandled exceptions right away.  &lt;/p&gt;
&lt;p&gt;For Windows Forms, you need to reference a windows form assembly and integrate the API into whatever exception handling system you are already using.  We had it integrated with our reporting engine within an hour or so.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;What does Exceptioneer provide?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The management interface of Exceptioneer provides a very clean web interface, where you can view all your registered projects (limited to three in the free service), and drill down into the various exceptions which might have occurred, when the last occurred and what application generate the exception. &lt;/p&gt;
&lt;p&gt;Repeated exceptions are intelligently grouped with drill down for further detail, including stack traces and full source code from the PDB file if you are testing a debug compilation.  You can identify the exact line causing the issue, and 75% of the time it is possible to identify the underlying cause without even starting up Visual Studio to view the source code.&lt;/p&gt;
&lt;p&gt;Exceptioneer provides e-mail notifications, and if you are a Twitter user, Exceptioneer can even send direct messages when new exceptions occur, which tends to catch the eye even quicker than e-mails.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;... and it works&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Since integrating Exceptioneer with a new system deployed in September, it has proved invaluable for resolving issues (related to user input which was not being verified correctly) which would have come close to an on-site visit to identify exactly what was happening.&lt;/p&gt;
&lt;p&gt;Even better, on most occasions we phone the client first to inform them that they had the problem (which occurred more than once) and the IT support guys were able to fix the problem before the end user actually realised something had gone wrong.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Try it yourself&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Now the beta program has been completed, the service has been opened for everyone.  I recommend heading over to &lt;a href="http://www.exceptioneer.com"&gt;http://www.exceptioneer.com&lt;/a&gt; and registering for a free account, and giving it a spin in your own projects.&lt;br /&gt;
 &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136439"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136439" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/twickers/aggbug/136439.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/WsJTIDp3PgU" height="1" width="1"/&gt;</description><dc:creator>Liam Westley</dc:creator><feedburner:origLink>http://geekswithblogs.net/twickers/archive/2009/11/20/136439.aspx</feedburner:origLink></item><item><title>BizTalk Server 2009 - Rule deployment issue</title><link>http://feedproxy.google.com/~r/geekswithblogs/~3/np2-b2CyRu0/136438.aspx</link><pubDate>Fri, 20 Nov 2009 13:28:40 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/cyoung/archive/2009/11/20/136438.aspx</guid><wfw:comment>http://geekswithblogs.net/cyoung/comments/136438.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/cyoung/comments/commentRss/136438.aspx</wfw:commentRss><comments>http://geekswithblogs.net/cyoung/archive/2009/11/20/136438.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/cyoung/services/trackbacks/136438.aspx</trackback:ping><source url="http://geekswithblogs.net/cyoung/rss.aspx">BizTalk Server 2009 - Rule deployment issue</source><description>&lt;div style="margin: 0cm 0cm 10pt"&gt;&lt;span style="font-family: Verdana"&gt;&lt;span style="font-size: small"&gt;There is a small configuration issue with the Microsoft Business Rules Composer in BizTalk Server 2009.   This will only affect you if you deploy the rules engine by itself without the rest of BizTalk Server.   In a full installation of BizTalk Server, BTS provides a set of BTS-specific Rule Framework components in as assembly called Microsoft.BizTalk.RuleEngineExtensions. This includes a RuleSetDeploymentDriver component that manages deployment of rules via the SQL Server repository.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin: 0cm 0cm 10pt"&gt;&lt;span style="font-family: Verdana"&gt;&lt;span style="font-size: small"&gt;The BTS-specific RuleSetDeploymentDriver has a dependency on WMI (Windows Management Instrumentation). In a full BTS installation, BTS creates an instance of a CIM class called MSBTS_GroupSetting and populates various property values from the BizTalk management database.   This includes the assembly and class name of a RuleSetDeploymentDriver.   If you install only the rule processing components, there is no BizTalk management database, and no instance of this class is created. Unfortunately, this means that, whenever you try to deploy a rule set from the Rules Composer, you get a rude message saying:&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;
&lt;div style="margin: 0cm 0cm 10pt 40px"&gt;&lt;span style="font-family: Verdana"&gt;&lt;span style="font-size: small"&gt;The database "&amp;lt;server&amp;gt;:&amp;lt;database&amp;gt;" associated with the deployment driver does not match the database ":" specified during product configuration&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;
&lt;div style="margin: 0cm 0cm 10pt"&gt;&lt;span style="font-family: Verdana"&gt;&lt;span style="font-size: small"&gt;The message is entirely correct. Microsoft's BTS-specific RuleSetDeploymentDriver component performs this check presumably to ensure that registry settings for the rule repository database name and server name are identical to those configured in the BizTalk management database.   This ensures that the Rule Engine Update Service is using the same BTS-specific RuleSetDeploymentDriver component.&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;
&lt;div style="margin: 0cm 0cm 10pt"&gt;&lt;span style="font-family: Verdana"&gt;&lt;span style="font-size: small"&gt;When you install only the rule processing components, the registry is unfortunately configured as if a full BizTalk installation had been done. The Rule Composer tries to use the BTS-specific RuleSetDeploymentDriver component to deploy rule sets and fails because no instance of MSBTS_GroupSetting has been created in the CIM store.&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;
&lt;div style="margin: 0cm 0cm 10pt"&gt;&lt;span style="font-family: Verdana"&gt;&lt;span style="font-size: small"&gt;Fortunately, this is a simple problem to fix. Microsoft provides a non BTS-specific RuleSetDeploymentDriver component for the rule repository database.   All you need to do is change the registry settings to use this instead.&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;
&lt;div style="margin: 0cm 0cm 10pt"&gt;&lt;span style="font-family: Verdana"&gt;&lt;span style="font-size: small"&gt;Open the Registry Editor (regedit) and locate the following key:&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;
&lt;div style="margin: 0cm 0cm 10pt 36pt"&gt;&lt;span style="font-family: Verdana"&gt;&lt;span style="font-size: small"&gt;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\BusinessRules\3.0&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;
&lt;div style="margin: 0cm 0cm 10pt"&gt;&lt;span style="font-family: Verdana"&gt;&lt;span style="font-size: small"&gt;If you have installed the rule processing components on a 64-bit version of Windows, they key will be at:&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;
&lt;div style="margin: 0cm 0cm 10pt 36pt"&gt;&lt;span style="font-family: Verdana"&gt;&lt;span style="font-size: small"&gt;HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\BusinessRules\3.0&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style="margin: 0cm 0cm 10pt"&gt;&lt;span style="font-family: Verdana"&gt;&lt;span style="font-size: small"&gt;You should find the DeploymentDriverAssembly and DeploymentDriverClass values under the key.   These should be changed to the following values, respectively:&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;span style="font-family: Verdana"&gt;&lt;span style="font-size: small"&gt;&lt;span style="font: 7pt 'Times New Roman'"&gt; &lt;/span&gt;Microsoft.RuleEngine, Version=3.0.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
    &lt;li&gt;&lt;span style="font-family: Verdana"&gt;&lt;span style="font-size: small"&gt;&lt;span style="font: 7pt 'Times New Roman'"&gt; &lt;/span&gt;Microsoft.RuleEngine.RuleSetDeploymentDriver&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style="margin: 0cm 0cm 10pt"&gt;&lt;span style="font-family: Verdana"&gt;&lt;span style="font-size: small"&gt;&lt;span style="line-height: 115%"&gt;That's it. The Rule Composer should now be able to deploy rule sets.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136438"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136438" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/cyoung/aggbug/136438.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/np2-b2CyRu0" height="1" width="1"/&gt;</description><dc:creator>Charles Young</dc:creator><feedburner:origLink>http://geekswithblogs.net/cyoung/archive/2009/11/20/136438.aspx</feedburner:origLink></item><item><title>Microsoft PDC 2009 &amp;ndash; Day Two Keynote</title><link>http://feedproxy.google.com/~r/geekswithblogs/~3/do5u7uDCv60/136436.aspx</link><pubDate>Fri, 20 Nov 2009 12:36:54 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/evjen/archive/2009/11/20/136436.aspx</guid><wfw:comment>http://geekswithblogs.net/evjen/comments/136436.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/evjen/comments/commentRss/136436.aspx</wfw:commentRss><comments>http://geekswithblogs.net/evjen/archive/2009/11/20/136436.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/evjen/services/trackbacks/136436.aspx</trackback:ping><source url="http://geekswithblogs.net/evjen/rss.aspx">Microsoft PDC 2009 &amp;ndash; Day Two Keynote</source><description>&lt;p&gt;The second day keynote at PDC 2009 in Lost Angeles was shared by &lt;a href="http://www.microsoft.com/presspass/exec/ssinofsky/" target="_blank"&gt;Steven Sinofsky&lt;/a&gt; and &lt;a href="http://www.microsoft.com/presspass/exec/guthrie/" target="_blank"&gt;Scott Guthrie&lt;/a&gt;. Steven is the &lt;em&gt;President of Windows and Windows Live Division&lt;/em&gt; and it really must have been a great day for him as he came out for the first time in a major conference with the new Windows 7 launched and the old Vista problems just fading away into Microsoft’s past. There is a lot of excitement for Windows 7 and there is excitement for the new &lt;a href="http://code.msdn.microsoft.com/WindowsAPICodePack" target="_blank"&gt;Windows 7 APIs&lt;/a&gt; that are available for developers to work with to take advantage of the new features that this new OS offers.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/evjen/WindowsLiveWriter/MicrosoftPDC2009DayTwoKeynote_E86E/image_2.png"&gt;&lt;img style="border-right-width: 0px; margin: 0px 10px 10px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" align="left" src="http://geekswithblogs.net/images/geekswithblogs_net/evjen/WindowsLiveWriter/MicrosoftPDC2009DayTwoKeynote_E86E/image_thumb.png" width="90" height="117" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The big thing that Steven brought forth was the achievement that was Windows 7’s release. He was rather excited about how they developed this OS. One of the big changes in the development process was the introduction of the &lt;a href="http://blogs.msdn.com/e7/" target="_blank"&gt;Windows 7 Engineering blog&lt;/a&gt;. This was a tool that the Windows 7 used to let people know what they were thinking and how things were going to work. The team got considerable comments from this blog and it helped shape what they were doing. For me, I did find it interesting in how open they were to their process and how they got the community involved in the process. I can see how that would be hard to do given the fact that Microsoft probably doesn’t want to give much information to their competitors on what they are doing. But they put out quite a bit of information that in the end – really made a difference.&lt;/p&gt;  &lt;p&gt;There were also some interesting stats on the Win7 development process that Steven outlined. These included:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;1,729,890 people pressed the send feedback reports button &lt;/li&gt;    &lt;li&gt;91,521 external devices were plugged in &lt;/li&gt;    &lt;li&gt;14,057 unique printers were plugged in &lt;/li&gt;    &lt;li&gt;883,612 unique applications were used &lt;/li&gt;    &lt;li&gt;8,107,258 installations were done &lt;/li&gt;    &lt;li&gt;4,357156 installations of the RC were done &lt;/li&gt;    &lt;li&gt;10,427,189 aggregated Windows Error Reports were sent in &lt;/li&gt;    &lt;li&gt;4,753 code changes were made because of these WERs &lt;/li&gt;    &lt;li&gt;6,114 SQM Measurement Points &lt;/li&gt;    &lt;li&gt;~900,000,000 SQM Sessions (Logon to Logoff/Standby) &lt;/li&gt;    &lt;li&gt;514,253,176 times the Start menu button was clicked in the last 6 months &lt;/li&gt;    &lt;li&gt;46,447,784 times Aero Snap and Shake were used &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;It is important to note that these stats are only collected during the pre-RTM releases and are not something that Microsoft collects off of the production release of the OS.&lt;/p&gt;  &lt;p&gt;After this, Steven then went through some hardware with another Microsoft worker and in the end help up a laptop – a not yet released Acer Aspire 1420P. It had the following stats: it is a convertible TabletPC with a Core2 Duo U2300 processor, Mobile Intel GS45 video, 2GB of DDR3 1066 MHz memory (supports up to 8GB), an 11.6" 1366x768 multitouch screen, webcam/mic, 3G WWAN, WLAN (supporting up to Draft-N), S/PDIF for digital speakers, 3 USB, 250GB HDD, card reader, and even an HDMI port. Then he said he was offering us a deal on the laptop for the price of &lt;strong&gt;FREE!&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;I was totally shocked! Here is me with my new laptop:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/evjen/WindowsLiveWriter/MicrosoftPDC2009DayTwoKeynote_E86E/image_4.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/evjen/WindowsLiveWriter/MicrosoftPDC2009DayTwoKeynote_E86E/image_thumb_1.png" width="359" height="269" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;I see why Microsoft did this. They just introduced all the cool features that you can do with the new Windows 7 APIs including multitouch and more. Most developers don’t even have computers to deal with this or some of the other capabilities. If Microsoft really wants development in this space, there isn’t a better way to spur the development than by giving some of your community’s best developers the equipment to get the job done? Perfect.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/evjen/WindowsLiveWriter/MicrosoftPDC2009DayTwoKeynote_E86E/image_6.png"&gt;&lt;img style="border-right-width: 0px; margin: 0px 0px 10px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" align="right" src="http://geekswithblogs.net/images/geekswithblogs_net/evjen/WindowsLiveWriter/MicrosoftPDC2009DayTwoKeynote_E86E/image_thumb_2.png" width="95" height="144" /&gt;&lt;/a&gt; Next up was ScottGu – all .NET developer’s hero. He continued on with the &lt;a href="http://geekswithblogs.net/evjen/archive/2009/11/17/136363.aspx" target="_blank"&gt;day 1 keynote message&lt;/a&gt; from Ray Ozzie and talked about the Silverlight everywhere message. The biggest message was the release of Silverlight 4 Beta. This is now available and includes a plethora of new features. These new features include things like:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Media      &lt;ul&gt;       &lt;li&gt;Continuing to invest in the rich media stack &lt;/li&gt;        &lt;li&gt;Media stack is by far the most feature rich of any media stack out there &lt;/li&gt;        &lt;li&gt;Winter Olympics will be coming on Silverlight &lt;/li&gt;        &lt;li&gt;Adding          &lt;ul&gt;           &lt;li&gt;Webcam and microphone &lt;/li&gt;            &lt;li&gt;Multicast &lt;/li&gt;            &lt;li&gt;H.264 Output Protection &lt;/li&gt;            &lt;li&gt;Offline DRM &lt;/li&gt;         &lt;/ul&gt;       &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;Business Applications      &lt;ul&gt;       &lt;li&gt;Printing &lt;/li&gt;        &lt;li&gt;Rich Text &lt;/li&gt;        &lt;li&gt;Clipboard Access &lt;/li&gt;        &lt;li&gt;Right click &lt;/li&gt;        &lt;li&gt;Mouse wheel &lt;/li&gt;        &lt;li&gt;Implicit styles &lt;/li&gt;        &lt;li&gt;VS 2010 &lt;/li&gt;        &lt;li&gt;Drag/Drop &lt;/li&gt;        &lt;li&gt;Bidi &amp;amp; RTL - Right to left layout &lt;/li&gt;        &lt;li&gt;Updated Controls &lt;/li&gt;        &lt;li&gt;Data Binding - Support for string formatters &lt;/li&gt;        &lt;li&gt;Networking &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;Beyond the Browser      &lt;ul&gt;       &lt;li&gt;Windowing APIs &lt;/li&gt;        &lt;li&gt;Notification Popups &lt;/li&gt;        &lt;li&gt;HTML Support &lt;/li&gt;        &lt;li&gt;Drop Target &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;ul&gt;   &lt;li&gt;Trusted applications      &lt;ul&gt;       &lt;li&gt;Custom Window Chrome &lt;/li&gt;        &lt;li&gt;Local File System &lt;/li&gt;        &lt;li&gt;Cross-Site Networking &lt;/li&gt;        &lt;li&gt;Full Screen Keyboard &lt;/li&gt;        &lt;li&gt;Hardware Device Access &lt;/li&gt;        &lt;li&gt;COM Automation Support &lt;/li&gt;        &lt;li&gt;Office Integration &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;As you can see, there is a lot to this release! Though, as Ray Ozzie really said in the first keynote – this PDC was really about touching the “three screens” – mobile, PC, and TV&amp;amp;game console, etc. Ray pointed out that Silverlight was the technology to get you there and Scott spent his keynote really showcasing Silverlight and its future in this regards. Again, it is interesting to note that there wasn’t any mention of WPF and it’s role in this revolution. &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136436"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136436" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/evjen/aggbug/136436.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/do5u7uDCv60" height="1" width="1"/&gt;</description><dc:creator>Bill Evjen</dc:creator><feedburner:origLink>http://geekswithblogs.net/evjen/archive/2009/11/20/136436.aspx</feedburner:origLink></item><item><title>More "Getting started with managed code (C#) development for Windows Mobile" articles</title><link>http://feedproxy.google.com/~r/geekswithblogs/~3/8JbIzZSuy28/more-getting-started-with-managed-code-c-development-for-windows.aspx</link><pubDate>Fri, 20 Nov 2009 11:53:14 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/TechTwaddle/archive/2009/11/20/more-getting-started-with-managed-code-c-development-for-windows.aspx</guid><wfw:comment>http://geekswithblogs.net/TechTwaddle/comments/136435.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/TechTwaddle/comments/commentRss/136435.aspx</wfw:commentRss><comments>http://geekswithblogs.net/TechTwaddle/archive/2009/11/20/more-getting-started-with-managed-code-c-development-for-windows.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/TechTwaddle/services/trackbacks/136435.aspx</trackback:ping><source url="http://geekswithblogs.net/TechTwaddle/rss.aspx">More "Getting started with managed code (C#) development for Windows Mobile" articles</source><description>&lt;p style="text-align: justify"&gt;&lt;span style="font-family: Comic Sans MS"&gt;Last year &lt;/span&gt;&lt;a href="http://www.cjcraft.com/blog/default.aspx"&gt;&lt;span style="font-family: Comic Sans MS"&gt;Chris Craft&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Comic Sans MS"&gt; wrote this excellent "&lt;/span&gt;&lt;a href="http://www.cjcraft.com/blog/default,month,2008-06.aspx"&gt;&lt;span style="font-family: Comic Sans MS"&gt;30 days of .NET&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Comic Sans MS"&gt;" articles where he wrote 30 .NET applications in C# each day. I have gone through the initial few and plan to complete the list as and when I find time. He hasn't actually explained the code and the application logic in detail and that would surely be some task if you are doing 30 apps in 30 days (; You couldn't ask for more.&lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align: justify"&gt;&lt;span style="font-family: Comic Sans MS"&gt;The source code for all the applications is available. So just &lt;/span&gt;&lt;a href="http://www.cjcraft.com/blog/2008/06/02/30DaysOfNETWindowsMobileApplicationsDay01MinutesToMidnightCountdown.aspx"&gt;&lt;span style="font-family: Comic Sans MS"&gt;download'em and dig through&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Comic Sans MS"&gt;. There's no better way to learn than to dive-in and experiment.&lt;br /&gt;
&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136435"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136435" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/TechTwaddle/aggbug/136435.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/8JbIzZSuy28" height="1" width="1"/&gt;</description><dc:creator>TechTwaddle</dc:creator><feedburner:origLink>http://geekswithblogs.net/TechTwaddle/archive/2009/11/20/more-getting-started-with-managed-code-c-development-for-windows.aspx</feedburner:origLink></item><item><title>Windows Mobile 6.5 Gestures : Introduction (C++)</title><link>http://feedproxy.google.com/~r/geekswithblogs/~3/6LV7SnELasY/windows-mobile-6.5-gestures--introduction-c.aspx</link><pubDate>Fri, 20 Nov 2009 11:38:12 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/TechTwaddle/archive/2009/11/20/windows-mobile-6.5-gestures--introduction-c.aspx</guid><wfw:comment>http://geekswithblogs.net/TechTwaddle/comments/136434.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/TechTwaddle/comments/commentRss/136434.aspx</wfw:commentRss><comments>http://geekswithblogs.net/TechTwaddle/archive/2009/11/20/windows-mobile-6.5-gestures--introduction-c.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/TechTwaddle/services/trackbacks/136434.aspx</trackback:ping><source url="http://geekswithblogs.net/TechTwaddle/rss.aspx">Windows Mobile 6.5 Gestures : Introduction (C++)</source><description>&lt;p&gt;&lt;span style="font-family: Comic Sans MS"&gt;Found a nice article on &lt;/span&gt;&lt;a href="http://www.codeproject.com/KB/mobile/IntroToGesturesAPI.aspx?msg=3279054#xx3279054xx"&gt;&lt;span style="font-family: Comic Sans MS"&gt;Code Project&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Comic Sans MS"&gt; about using gesture API's on Windows Mobile 6.5 devices.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.codeproject.com/KB/mobile/IntroToGesturesAPI.aspx?msg=3279054#xx3279054xx"&gt;&lt;span style="font-family: Comic Sans MS"&gt;Hit the link&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Comic Sans MS"&gt; and give it a read.&lt;/span&gt; &lt;span style="font-family: Comic Sans MS"&gt;And off I go to try the program out.&lt;/span&gt;&lt;br /&gt;
 &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136434"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136434" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/TechTwaddle/aggbug/136434.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/6LV7SnELasY" height="1" width="1"/&gt;</description><dc:creator>TechTwaddle</dc:creator><feedburner:origLink>http://geekswithblogs.net/TechTwaddle/archive/2009/11/20/windows-mobile-6.5-gestures--introduction-c.aspx</feedburner:origLink></item><item><title>T4 Templates and the answer to life, the universe and everything</title><link>http://feedproxy.google.com/~r/geekswithblogs/~3/Q-BOVJiyNr0/t4-templates-and-the-answer-to-life-the-universe-and.aspx</link><pubDate>Fri, 20 Nov 2009 09:22:31 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/iupdateable/archive/2009/11/20/t4-templates-and-the-answer-to-life-the-universe-and.aspx</guid><wfw:comment>http://geekswithblogs.net/iupdateable/comments/136433.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/iupdateable/comments/commentRss/136433.aspx</wfw:commentRss><comments>http://geekswithblogs.net/iupdateable/archive/2009/11/20/t4-templates-and-the-answer-to-life-the-universe-and.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/iupdateable/services/trackbacks/136433.aspx</trackback:ping><source url="http://geekswithblogs.net/iupdateable/rss.aspx">T4 Templates and the answer to life, the universe and everything</source><description>&lt;p&gt;[This is the third in a &lt;a href="http://geekswithblogs.net/iupdateable/category/10944.aspx"&gt;series of posts&lt;/a&gt; on getting started with the new features in Entity Framework 4 based on the demos I did in my session at TechEd Europe in Berlin last week (Nov 2009).]&lt;/p&gt;  &lt;p&gt;Entity Framework 4 relies significantly on the Text Template Transformation Toolkit (T4) to generate code from the EDM.&lt;/p&gt;  &lt;p&gt;I thought it would be useful to show a really simple example of T4 in action which is nothing to do with Entity Framework.&lt;/p&gt;  &lt;p&gt;In a Visual Studio 2008/2010 solution, add a new item of type &lt;em&gt;Text Template&lt;/em&gt;:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/iupdateable/WindowsLiveWriter/T4Templates_1372B/image_2.png" rel="lightbox"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/iupdateable/WindowsLiveWriter/T4Templates_1372B/image_thumb.png" width="640" height="443" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Edit the “output extension=” pragma to generate a “.cs” file and add some C# code for a very simple class which has a single method &lt;em&gt;TheAnswer &lt;/em&gt;which contains a single &lt;em&gt;WriteLine&lt;/em&gt;. In the WriteLine use a T4 &amp;lt;#= #&amp;gt; block. &amp;lt;#= represents the start of a simple evaluation block, in this case the evaluation is to add 41+1:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/iupdateable/WindowsLiveWriter/T4Templates_1372B/image_4.png" rel="lightbox"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/iupdateable/WindowsLiveWriter/T4Templates_1372B/image_thumb_1.png" width="642" height="194" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;NB: I am using the &lt;a href="http://geekswithblogs.net/iupdateable/archive/2009/11/20/tangible-t4-editor-ndash-a-life-saver.aspx"&gt;Tangible T4 editor&lt;/a&gt; to give me syntax highlighting and intellisense. You will need to add this into Visual Studio &lt;a href="http://geekswithblogs.net/iupdateable/archive/2009/11/20/tangible-t4-editor-ndash-a-life-saver.aspx"&gt;using the Extensions Manager&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Next build the project or click on Transform Templates in the Solution Explorer:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/iupdateable/WindowsLiveWriter/T4Templates_1372B/image_8.png" rel="lightbox"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/iupdateable/WindowsLiveWriter/T4Templates_1372B/image_thumb_3.png" width="331" height="218" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;You will now see a new C# file in your project,&lt;em&gt; SimpleTemaplate.cs&lt;/em&gt;:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/iupdateable/WindowsLiveWriter/T4Templates_1372B/image_6.png" rel="lightbox"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/iupdateable/WindowsLiveWriter/T4Templates_1372B/image_thumb_2.png" width="642" height="190" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;In summary a T4 template is composed of: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Blocks of text: text that simply is copied into the output file(s) &lt;/li&gt;    &lt;li&gt;Directives: meta information for the template such as “output extension=” enclosed in &amp;lt;#@ … #&amp;gt; &lt;/li&gt;    &lt;li&gt;Statements: code enclosed in &amp;lt;#...#&amp;gt; &lt;/li&gt;    &lt;li&gt;Expressions: code that is evaluated to a string &amp;lt;#= …#&amp;gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;The above is pretty much the most basic example of T4 I could come up with. However there are plenty of other great resources on T4 out there. &lt;a href="http://www.olegsych.com"&gt;Oleg Sych&lt;/a&gt; has been heavily involved with T4 for many years and has many great posts. You may want to start with &lt;a href="http://www.olegsych.com/2008/09/t4-tutorial-creatating-your-first-code-generator/"&gt;this tutorial&lt;/a&gt; done as a series of posts.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136433"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136433" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/iupdateable/aggbug/136433.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/Q-BOVJiyNr0" height="1" width="1"/&gt;</description><dc:creator>Eric Nelson</dc:creator><feedburner:origLink>http://geekswithblogs.net/iupdateable/archive/2009/11/20/t4-templates-and-the-answer-to-life-the-universe-and.aspx</feedburner:origLink></item><item><title>Tangible T4 Editor &amp;ndash; a life saver</title><link>http://feedproxy.google.com/~r/geekswithblogs/~3/O1C6OX5ybmk/tangible-t4-editor-ndash-a-life-saver.aspx</link><pubDate>Fri, 20 Nov 2009 09:18:04 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/iupdateable/archive/2009/11/20/tangible-t4-editor-ndash-a-life-saver.aspx</guid><wfw:comment>http://geekswithblogs.net/iupdateable/comments/136432.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/iupdateable/comments/commentRss/136432.aspx</wfw:commentRss><comments>http://geekswithblogs.net/iupdateable/archive/2009/11/20/tangible-t4-editor-ndash-a-life-saver.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/iupdateable/services/trackbacks/136432.aspx</trackback:ping><source url="http://geekswithblogs.net/iupdateable/rss.aspx">Tangible T4 Editor &amp;ndash; a life saver</source><description>&lt;p&gt;I have been working with T4 (Text Template Transformation Toolkit) lately thanks to the Entity Framework team &lt;a href="http://geekswithblogs.net/iupdateable/archive/2009/11/19/getting-started-with-entity-framework-4---templated-code-generation.aspx"&gt;moving their code generation model over to T4&lt;/a&gt; in Visual Studio 2010. However by default Visual Studio 2008 and 2010 do not include syntax highlighting or intellisense support for T4 files, which makes it rather difficult to work with them (very difficult at times!). Thankfully there are partners who address this. The one I am using with Beta 2 of Visual Studio 2010 is the &lt;a href="http://t4-editor.tangible-engineering.com/Readme_FMT_B2.htm"&gt;Tangible T4 editor&lt;/a&gt;. You can easily add this into Visual Studio using the Extensions Manager from the Tools menu:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/iupdateable/WindowsLiveWriter/TangibleT4Editoralifesaver_82BB/image_2.png" rel="lightbox"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/iupdateable/WindowsLiveWriter/TangibleT4Editoralifesaver_82BB/image_thumb.png" width="640" height="442" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Once added, it will change this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/iupdateable/WindowsLiveWriter/TangibleT4Editoralifesaver_82BB/image_4.png" rel="lightbox"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/iupdateable/WindowsLiveWriter/TangibleT4Editoralifesaver_82BB/image_thumb_1.png" width="518" height="208" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Into this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/iupdateable/WindowsLiveWriter/TangibleT4Editoralifesaver_82BB/image_6.png" rel="lightbox"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/iupdateable/WindowsLiveWriter/TangibleT4Editoralifesaver_82BB/image_thumb_2.png" width="612" height="237" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Sweet!&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136432"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136432" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/iupdateable/aggbug/136432.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/O1C6OX5ybmk" height="1" width="1"/&gt;</description><dc:creator>Eric Nelson</dc:creator><feedburner:origLink>http://geekswithblogs.net/iupdateable/archive/2009/11/20/tangible-t4-editor-ndash-a-life-saver.aspx</feedburner:origLink></item><item><title>PDC 2009 Hangover</title><link>http://feedproxy.google.com/~r/geekswithblogs/~3/3yfwv31fa-M/136431.aspx</link><pubDate>Fri, 20 Nov 2009 08:38:45 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/mikehuguet/archive/2009/11/20/136431.aspx</guid><wfw:comment>http://geekswithblogs.net/mikehuguet/comments/136431.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/mikehuguet/comments/commentRss/136431.aspx</wfw:commentRss><comments>http://geekswithblogs.net/mikehuguet/archive/2009/11/20/136431.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/mikehuguet/services/trackbacks/136431.aspx</trackback:ping><source url="http://geekswithblogs.net/mikehuguet/rss.aspx">PDC 2009 Hangover</source><description>&lt;p&gt;For the first time in my career I have attended a major conference and it was well worth the wait.  I had a handful of major objectives in attending of which all were met.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Gain an understanding of Azure and how we can leverage it for our small and mid market customers. &lt;/li&gt;    &lt;li&gt;Gain more detailed insight into changes in SharePoint 2010 that will impact customizations and solutions that we provide our customers. &lt;/li&gt;    &lt;li&gt;Have some dialog with some of the MS data team members and others to understand MS’ vision for data store interaction. &lt;/li&gt;    &lt;li&gt;Meet people and make some great contacts. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;There are a few things that became VERY clear as early as the first day. &lt;/p&gt;  &lt;h3&gt;MS’ Vision is “clouded.”  (***pun intended***)&lt;/h3&gt;  &lt;p&gt;Microsoft has made major investments in software (across a large portion of product lines), hardware, and relationships in order to make their vision of &lt;strong&gt;&lt;font color="#800080" size="4"&gt;3 screens and a cloud &lt;/font&gt;&lt;/strong&gt;a reality.  They now have a modular datacenter in which they will be reselling at some point in the future.  You can see an installation at &lt;a title="http://www.microsoft.com/video/en/us/details/bafe5c0f-8651-4609-8c71-24c733ce628b" href="http://www.microsoft.com/video/en/us/details/bafe5c0f-8651-4609-8c71-24c733ce628b"&gt;http://www.microsoft.com/video/en/us/details/bafe5c0f-8651-4609-8c71-24c733ce628b&lt;/a&gt;.  It is essentially a data center in a box that can be delivered like a POD storage unit.  It can be “plugged” into your existing datacenter or it can be standalone.  In either case Windows Azure is the operating system for the data center.  It has services that facilitates many features, but an example is support for quick scale out of servers.  This is controlled by a customer developer portal that only takes a few configuration changes in the browser and clicking a button to increase the number of servers.  Silverlight is being highlighted as part of this vision as it enriches the browser experience and will soon find its way to a mobile device.&lt;/p&gt;  &lt;h3&gt;There is a Focus on OS Usability with Win 7&lt;/h3&gt;  &lt;p&gt;Microsoft has gone back to the basics and spent much time and effort in improving the usability of their consumer operating system.  They want Windows 7 to be successful so much that they gave us each a laptop loaded with the Ultimate edition that supports all features including the multi-touch display.  They spent a decent chunk of time on this during the second day keynote.&lt;/p&gt;  &lt;h3&gt;There is a Push for SharePoint Adoption by Developers&lt;/h3&gt;  &lt;p&gt;The development environment for SharePoint customizations is now a first class citizen in Visual Studio and SharePoint.  While there seem to be a few kinks to work out between now and the release of MSS 2010 and VS 2010, it is VERY exciting.  It was unfortunate to see that a good portion of developers left the keynote when they started talking about Office and SharePoint 2010.  For every session block there seemed to be a session on something SharePoint related.&lt;/p&gt;  &lt;h3&gt;The Data team (as they are now called) has heard our pain of getting something drastically new annually&lt;/h3&gt;  &lt;p&gt;In listening to the keynote and several sessions as well as speaking with &lt;a href="http://blogs.msdn.com/elisaj"&gt;Elisa Flasko&lt;/a&gt; from the data team it became evident that one of the main reasons for them introducing oData was to make things more consistent and transparent.  This will allow us to have one consistent API/Protocol to use instead of having to choose from between ADO.NET Data Services, REST Services, etc.  I was pretty impressed with what I saw.  Check out the new data site on MSDN, &lt;a title="http://msdn.microsoft.com/en-us/data/default.aspx" href="http://msdn.microsoft.com/en-us/data/default.aspx"&gt;http://msdn.microsoft.com/en-us/data/default.aspx&lt;/a&gt;.  &lt;/p&gt;  &lt;p&gt;Thanks again to &lt;a href="http://chriskoenig.net"&gt;Chris Koenig&lt;/a&gt;, MS Developer Evangelist, for letting a newbie hang around!&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136431"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136431" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/mikehuguet/aggbug/136431.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/3yfwv31fa-M" height="1" width="1"/&gt;</description><dc:creator>Mike Huguet</dc:creator><feedburner:origLink>http://geekswithblogs.net/mikehuguet/archive/2009/11/20/136431.aspx</feedburner:origLink></item><item><title>Silverlight Cream for November 19, 2009 - 2 -- #736</title><link>http://feedproxy.google.com/~r/geekswithblogs/~3/A_IV3Kjfi4M/136430.aspx</link><pubDate>Fri, 20 Nov 2009 05:28:15 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/WynApseTechnicalMusings/archive/2009/11/19/136430.aspx</guid><wfw:comment>http://geekswithblogs.net/WynApseTechnicalMusings/comments/136430.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/WynApseTechnicalMusings/comments/commentRss/136430.aspx</wfw:commentRss><comments>http://geekswithblogs.net/WynApseTechnicalMusings/archive/2009/11/19/136430.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/WynApseTechnicalMusings/services/trackbacks/136430.aspx</trackback:ping><source url="http://geekswithblogs.net/WynApseTechnicalMusings/rss.aspx">Silverlight Cream for November 19, 2009 - 2 -- #736</source><description>&lt;p&gt;&lt;font face="tahoma"&gt;In this Issue: &lt;a href="#20091119Rob Houweling"&gt;&lt;u&gt;Rob Houweling&lt;/u&gt;&lt;/a&gt;, &lt;a href="#20091119Michael Washington"&gt;&lt;u&gt;Michael Washington&lt;/u&gt;&lt;/a&gt;, &lt;a href="#20091119Colin Eberhardt"&gt;&lt;u&gt;Colin Eberhardt&lt;/u&gt;&lt;/a&gt;, &lt;a href="#20091119Laurent Bugnion"&gt;&lt;u&gt;Laurent Bugnion&lt;/u&gt;&lt;/a&gt;, &lt;a href="#20091119Tomasz Janczuk"&gt;&lt;u&gt;Tomasz Janczuk&lt;/u&gt;&lt;/a&gt;, &lt;a href="#20091119Jeremy Likness"&gt;&lt;u&gt;Jeremy Likness&lt;/u&gt;&lt;/a&gt;, and &lt;a href="#20091119Andy Beaulieu"&gt;&lt;u&gt;Andy Beaulieu&lt;/u&gt;&lt;/a&gt;. &lt;br /&gt;
&lt;br /&gt;
&lt;/font&gt;
&lt;/p&gt;&lt;p&gt; &lt;/p&gt;

&lt;center&gt;&lt;hr width="50%" /&gt;
&lt;/center&gt;
&lt;p&gt;From &lt;a href="http://www.silverlightcream.com"&gt;&lt;u&gt;SilverlightCream.com&lt;/u&gt;&lt;/a&gt;:&lt;/p&gt;
&lt;dl&gt;
    &lt;dt&gt;&lt;a name="20091119Rob Houweling"&gt;&lt;/a&gt;&lt;a title="http://sixin.nl/rob-houweling-blog/09-11-19/Silverlight_4_ndash_Using_the_webcam.aspx" href="http://www.silverlightcream.com/SilverlightCreamRedirect.aspx?LinkID=4558"&gt;&lt;u&gt;Silverlight 4 – Using the webcam &lt;/u&gt;&lt;/a&gt;&lt;/dt&gt;
    &lt;dd&gt;&lt;b&gt;Rob Houweling&lt;/b&gt; has a tutorial up on using the webcam in Silverlight 4 Beta ... all good stuff, and hmm... I'm not following their new site, so that brings the total up to 397 :) &lt;/dd&gt;
    &lt;dt&gt;&lt;a name="20091119Michael Washington"&gt;&lt;/a&gt;&lt;a title="http://openlightgroup.net/Blog/tabid/58/EntryId/45/Silverlight-Bridge-A-Silverlight-4-File-Manager.aspx" href="http://www.silverlightcream.com/SilverlightCreamRedirect.aspx?LinkID=4557"&gt;&lt;u&gt;Silverlight Bridge - A Silverlight 4 File Manager&lt;/u&gt;&lt;/a&gt; &lt;/dt&gt;
    &lt;dd&gt;Access your local file system and drag-and-drop, and OOB in Silverlight? --- wow, check out the work &lt;b&gt;Michael Washington&lt;/b&gt;'s been up to! &lt;/dd&gt;
    &lt;dt&gt;&lt;a name="20091119Colin Eberhardt"&gt;&lt;/a&gt;&lt;a title="http://www.scottlogic.co.uk/blog/colin/2009/11/silverlight-4-beta-released-leaving-flex-behind/" href="http://www.silverlightcream.com/SilverlightCreamRedirect.aspx?LinkID=4556"&gt;&lt;u&gt;Silverlight 4 beta released leaving Flex behind&lt;/u&gt;&lt;/a&gt; &lt;/dt&gt;
    &lt;dd&gt;&lt;b&gt;Colin Eberhardt&lt;/b&gt; goes so far as to say Silverlight has now left Flex behind... check it out and see if you agree... don't ask me, I drank the Kool-Aid :) -- and thanks for the shoutout, Colin! &lt;/dd&gt;
    &lt;dt&gt;&lt;a name="20091119Laurent Bugnion"&gt;&lt;/a&gt;&lt;a title="http://blog.galasoft.ch/archive/2009/11/18/silverlight-4-beta-released-at-pdc09.aspx" href="http://www.silverlightcream.com/SilverlightCreamRedirect.aspx?LinkID=4555"&gt;&lt;u&gt;Silverlight 4 beta released at #PDC09&lt;/u&gt;&lt;/a&gt; &lt;/dt&gt;
    &lt;dd&gt;I held back &lt;b&gt;Laurent Bugnion&lt;/b&gt;'s post about Silverlight 4 this morning because he discusses what's on many people's mind, and that's "what does this mean for WPF?" &lt;/dd&gt;
    &lt;dt&gt;&lt;a name="20091119Tomasz Janczuk"&gt;&lt;/a&gt;&lt;a title="http://tomasz.janczuk.org/2009/11/wcf-nettcp-protocol-in-silverlight-4.html" href="http://www.silverlightcream.com/SilverlightCreamRedirect.aspx?LinkID=4554"&gt;&lt;u&gt;WCF net.tcp protocol in Silverlight 4&lt;/u&gt;&lt;/a&gt; &lt;/dt&gt;
    &lt;dd&gt;&lt;b&gt;Tomasz Janczuk&lt;/b&gt; discusses the new WCF service capability in Silverlight 4 Beta using net.tcp &lt;/dd&gt;
    &lt;dt&gt;&lt;a name="20091119Jeremy Likness"&gt;&lt;/a&gt;&lt;a title="http://csharperimage.jeremylikness.com/2009/11/dynamic-module-loading-with-silverlight.html" href="http://www.silverlightcream.com/SilverlightCreamRedirect.aspx?LinkID=4553"&gt;&lt;u&gt;Dynamic Module Loading with Silverlight Navigation using Prism&lt;/u&gt;&lt;/a&gt; &lt;/dt&gt;
    &lt;dd&gt;&lt;b&gt;Jeremy Likness&lt;/b&gt; has a post up on Prism and Silverlight, Dynamic Modules, and Navigation. This is a farily involved tutorial, so give yourself time to read. &lt;/dd&gt;
    &lt;dt&gt;&lt;a name="20091119Andy Beaulieu"&gt;&lt;/a&gt;&lt;a title="http://www.andybeaulieu.com/Home/tabid/67/EntryID/180/Default.aspx" href="http://www.silverlightcream.com/SilverlightCreamRedirect.aspx?LinkID=4552"&gt;&lt;u&gt;Silverlight 4 Beta: Implicit Styles&lt;/u&gt;&lt;/a&gt; &lt;/dt&gt;
    &lt;dd&gt;&lt;b&gt;Andy Beaulieu&lt;/b&gt; has a post up talking about the new Implicit Styles in Silverlight 4 Beta with code examples and Blend examples. &lt;/dd&gt;
&lt;/dl&gt;
&lt;p&gt;&lt;br /&gt;
&lt;font color="#0000ff"&gt;&lt;strong&gt;Stay in the 'Light!&lt;/strong&gt;&lt;/font&gt;&lt;br /&gt;
 &lt;/p&gt;
&lt;center&gt;&lt;hr width="50%" /&gt;
&lt;a href="http://twitter.com/SilverlightNews"&gt;&lt;u&gt;Twitter SilverlightNews&lt;/u&gt;&lt;/a&gt; | &lt;a href="http://twitter.com/WynApse"&gt;&lt;u&gt;Twitter WynApse&lt;/u&gt;&lt;/a&gt; | &lt;a href="http://www.wynapse.com"&gt;&lt;u&gt;WynApse.com&lt;/u&gt;&lt;/a&gt; | &lt;a href="http://www.wynapse.com/TaggedPosts.aspx"&gt;&lt;u&gt;Tagged Posts&lt;/u&gt;&lt;/a&gt; | &lt;a href="http://www.silverlightcream.com"&gt;&lt;u&gt;SilverlightCream&lt;/u&gt;&lt;/a&gt; &lt;br /&gt;
&lt;a href="http://tech.groups.yahoo.com/group/SilverlightCream/join"&gt;&lt;u&gt;Join me @ SilverlightCream&lt;/u&gt;&lt;/a&gt; | &lt;a href="http://www.phoenixsilverlight.net"&gt;&lt;u&gt;Phoenix Silverlight User Group&lt;/u&gt;&lt;/a&gt; &lt;br /&gt;
&lt;/center&gt;
&lt;p&gt;&lt;br /&gt;
&lt;br /&gt;
Technorati Tags: &lt;a rel="tag" href="http://technorati.com/tag/Silverlight"&gt;&lt;img alt=" " style="border-bottom: 0pt; border-left: 0pt; margin-left: 0.4em; vertical-align: middle; border-top: 0pt; border-right: 0pt" src="http://static.technorati.com/static/img/pub/icon-utag-16x13.png?tag=Silverlight" /&gt;Silverlight&lt;/a&gt;    &lt;a rel="tag" href="http://technorati.com/tag/silverlight-3"&gt;&lt;img alt=" " style="border-bottom: 0pt; border-left: 0pt; margin-left: 0.4em; vertical-align: middle; border-top: 0pt; border-right: 0pt" src="http://static.technorati.com/static/img/pub/icon-utag-16x13.png?tag=silverlight-3" /&gt;Silverlight 3&lt;/a&gt;    &lt;a rel="tag" href="http://technorati.com/tag/silverlight-4"&gt;&lt;img alt=" " style="border-bottom: 0pt; border-left: 0pt; margin-left: 0.4em; vertical-align: middle; border-top: 0pt; border-right: 0pt" src="http://static.technorati.com/static/img/pub/icon-utag-16x13.png?tag=silverlight-4" /&gt;Silverlight 4&lt;/a&gt;    &lt;a rel="tag" href="http://technorati.com/tag/SilverlightCream"&gt;&lt;img alt=" " style="border-bottom: 0pt; border-left: 0pt; margin-left: 0.4em; vertical-align: middle; border-top: 0pt; border-right: 0pt" src="http://static.technorati.com/static/img/pub/icon-utag-16x13.png?tag=SilverlightCream" /&gt;SilverlightCream&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136430"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136430" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/WynApseTechnicalMusings/aggbug/136430.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/A_IV3Kjfi4M" height="1" width="1"/&gt;</description><dc:creator>Dave Campbell</dc:creator><feedburner:origLink>http://geekswithblogs.net/WynApseTechnicalMusings/archive/2009/11/19/136430.aspx</feedburner:origLink></item><item><title>SharePoint Saturday Cleveland 2009 Recap</title><link>http://feedproxy.google.com/~r/geekswithblogs/~3/CCzfmNrlG5U/sharepoint-saturday-cleveland-2009-recap.aspx</link><pubDate>Fri, 20 Nov 2009 05:02:36 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/bjackett/archive/2009/11/20/sharepoint-saturday-cleveland-2009-recap.aspx</guid><wfw:comment>http://geekswithblogs.net/bjackett/comments/136429.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/bjackett/comments/commentRss/136429.aspx</wfw:commentRss><comments>http://geekswithblogs.net/bjackett/archive/2009/11/20/sharepoint-saturday-cleveland-2009-recap.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/bjackett/services/trackbacks/136429.aspx</trackback:ping><source url="http://geekswithblogs.net/bjackett/rss.aspx">SharePoint Saturday Cleveland 2009 Recap</source><description>&lt;p&gt;     As noted in my &lt;a href="http://geekswithblogs.net/bjackett/archive/2009/11/15/sharepoint-saturday-cleveland-slides-and-demo-scripts-ndash-powershell.aspx"&gt;previous post&lt;/a&gt; I attended and spoke at the &lt;a href="http://www.sharepointsaturday.org/cleveland/default.aspx"&gt;SharePoint Saturday Cleveland&lt;/a&gt; 2009 conference.  For those unfamiliar, SharePoint Saturday is a community driven event where various speakers gather to present at a FREE conference on all topics related to SharePoint.  This was my first SharePoint Saturday and it was a great community event to attend.  Over the past 6 months or so I’ve been following various Twitter users talking about SharePoint Saturdays in their region so I was excited to see what all the buzz was about.&lt;/p&gt;  &lt;p&gt;    Friday night I arrived in Cleveland for the speaker (nerd) dinner at Fahrenheit in Tremont.  I was finally able to put a face (real, not just their picture online) to various names like &lt;a href="http://www.ericharlan.com/"&gt;Eric Harlan&lt;/a&gt; (@ericharlan) and &lt;a href="http://thesharepoint.spaces.live.com/"&gt;Jesse Murray&lt;/a&gt; (@lackscreativity) from the Baltimore and Detroit Sogeti offices, &lt;a href="http://ricknology.blogspot.com/"&gt;Rick Black&lt;/a&gt; (@ricknology), and also see some familiar faces again like John Ferringer (@ferringer), Sean McDonough (@spmcdonough), Callahan (@cacallahan) and Melissa Lucarelli (@smartyskirt).  Can you sense that I know too many people by their Twitter names?&lt;/p&gt;  &lt;p&gt;    Saturday started off early as I was scheduled to speak during the first session.  I gave my “The Power of PowerShell + SharePoint” presentation to about 20 people.  As most of the crowd was still waking up I threw in some jokes and funny slides to keep things lively.  They had a number of great questions as we went along and hopefully learned a good introduction to PowerShell and how to use it with SharePoint.&lt;/p&gt;  &lt;p&gt;    After my session I tried to attend talks on other topics that I hadn’t heard much about such as PerformancePoint, InfoPath Forms, SharePoint branding, and the new Metadata Manager.  I wish I could have attended more sessions, but only so much time in the day and I can only be in one place at a time.  Overall the level of content was good and I appreciate all the time and hard work each speaker put into the day.&lt;/p&gt;  &lt;p&gt;    Following the conference wrap-up session a dozen or so attendees and speakers met at The Blind Pig in downtown Cleveland for a ritual SharePint.  The Blind Pig was nice enough to host us and provide drinks and appetizers while us conference folks got to unwind from the day.  It was good to hear positive feedback from the conference and get to share SharePoint and personal stories.&lt;/p&gt;  &lt;p&gt;    As all good things must come to an end, so did my time at SharePoint Saturday Cleveland.  I was able to snap a few pictures which I’ve posted a link to below.  I’ve heard there will be a SharePoint Saturday Indianapolis early in 2010 as well as ones being planned for Pittsburgh and Columbus not far after.  If you’ve never been to a SharePoint Saturday I would highly encourage you to attend (did I mention it’s FREE!)  A final thanks to everyone who helped put on the event, spoke, sponsored, or had any hand in making this event happen.  Without you this never would have been possible.  I look forward to attending more such events and keeping the SharePoint community growing.  &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:66721397-FF69-4ca6-AEC4-17E6B3208830:7e27a092-18d9-46ac-80ea-02c215ac33fc" class="wlWriterEditableSmartContent"&gt;&lt;a style="border:0px" href="http://cid-9137d132751b949f.skydrive.live.com/redir.aspx?page=browse&amp;amp;resid=9137D132751B949F!290&amp;amp;ct=photos"&gt;&lt;img style="border:0px" alt="View SharePoint Saturday Cleveland Nov '09" src="http://geekswithblogs.net/images/geekswithblogs_net/bjackett/WindowsLiveWriter/SharePointSaturdayCleveland2009Recap_7F/InlineRepresentation615982b6-120a-4980-a105-e8fbc8f05cbf.jpg" /&gt;&lt;/a&gt;&lt;div style="width:340px;text-align:right;"&gt;&lt;a href="http://cid-9137d132751b949f.skydrive.live.com/redir.aspx?page=browse&amp;amp;resid=9137D132751B949F!290&amp;amp;ct=photos"&gt;View Full Album&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;   &lt;p&gt; &lt;/p&gt;  &lt;p&gt;       -Frog Out&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136429"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136429" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/bjackett/aggbug/136429.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/CCzfmNrlG5U" height="1" width="1"/&gt;</description><dc:creator>Brian Jackett</dc:creator><feedburner:origLink>http://geekswithblogs.net/bjackett/archive/2009/11/20/sharepoint-saturday-cleveland-2009-recap.aspx</feedburner:origLink></item><item><title>Mitch.Web Re-Branded to The Evil Little Developer's Toolbox</title><link>http://feedproxy.google.com/~r/geekswithblogs/~3/qLWsV7PMHAs/mitch.web-re-branded-to-the-evil-little-developers-toolbox.aspx</link><pubDate>Fri, 20 Nov 2009 04:48:18 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/Mitch/archive/2009/11/19/mitch.web-re-branded-to-the-evil-little-developers-toolbox.aspx</guid><wfw:comment>http://geekswithblogs.net/Mitch/comments/136428.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/Mitch/comments/commentRss/136428.aspx</wfw:commentRss><comments>http://geekswithblogs.net/Mitch/archive/2009/11/19/mitch.web-re-branded-to-the-evil-little-developers-toolbox.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/Mitch/services/trackbacks/136428.aspx</trackback:ping><source url="http://geekswithblogs.net/Mitch/rss.aspx">Mitch.Web Re-Branded to The Evil Little Developer's Toolbox</source><description>&lt;p&gt;Let's face it, it needed a rename. &lt;a title="Mitch.Web Framework" href="http://mitchweb.codeplex.com/" rel="" target="_blank"&gt;Mitch.Web&lt;/a&gt; just lacks everything in terms of marketing, so I've re-branded my (currently error logging :P) framework to "The Evil Little Developer's Toolbox" in game with my EvilDev theme. I've also made advancements (not guaranteed to work yet) on my error logging framework, mostly in terms of a new Services Project, and the Logging Service. The logging service, is a WCF Service, designed to log errors to a database.&lt;br /&gt;
&lt;br /&gt;
The idea behind it, well, I generally focus my efforts towards Web Applications, and one thing I've been looking for, and haven't had much luck in finding is, a standardized end-to-end error logging solution. I like to know when my javascript breaks, or my silverlight application has a heart attack. I like to know when my flash components fail horribly. Now, each platform has methods of error logging (let's face it, this isn't exactly a "new" concept). I haven't had much chance to play with WCF before this, so I figured I could kill two birds with one stone if you will.&lt;br /&gt;
&lt;br /&gt;
Once I solidify my service code, (and hopefully find a pleasant way to make it easily redistribute), I'll set about writing libraries for the various platforms I plan to support (I want to be able to simply include a js file in my GlobalMaster.aspx for example, and have all javascript errors logged).&lt;br /&gt;
&lt;br /&gt;
It's a rather simple Architecture, requiring only some basic error info/log message, and a Registered Application Guid (to ensure not just anybody can log to my service.&lt;/p&gt;
&lt;p&gt;Anyways, if you feel like checking it out, codeplex URL has been changed (although apparantly the old url will just redirect), so check it at:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://evildevtoolbox.codeplex.com/"&gt;http://evildevtoolbox.codeplex.com/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136428"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136428" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/Mitch/aggbug/136428.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/qLWsV7PMHAs" height="1" width="1"/&gt;</description><dc:creator>Mitchell Lee</dc:creator><feedburner:origLink>http://geekswithblogs.net/Mitch/archive/2009/11/19/mitch.web-re-branded-to-the-evil-little-developers-toolbox.aspx</feedburner:origLink></item><item><title>#PDC09 &amp;rsquo;s Final Verdict: Eyes on The Prize, Not in the Sky</title><link>http://feedproxy.google.com/~r/geekswithblogs/~3/5z_ma1UBB3Q/pdc09-rsquos-final-verdict-eyes-on-the-prize-not-in.aspx</link><pubDate>Fri, 20 Nov 2009 03:19:10 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/andrewbrust/archive/2009/11/19/pdc09-rsquos-final-verdict-eyes-on-the-prize-not-in.aspx</guid><wfw:comment>http://geekswithblogs.net/andrewbrust/comments/136427.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/andrewbrust/comments/commentRss/136427.aspx</wfw:commentRss><comments>http://geekswithblogs.net/andrewbrust/archive/2009/11/19/pdc09-rsquos-final-verdict-eyes-on-the-prize-not-in.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/andrewbrust/services/trackbacks/136427.aspx</trackback:ping><source url="http://geekswithblogs.net/andrewbrust/rss.aspx">#PDC09 &amp;rsquo;s Final Verdict: Eyes on The Prize, Not in the Sky</source><description>&lt;p&gt;&lt;font size="2"&gt;What a difference a day makes…at least to some.  While the Day 1 keynote at PDC seemed mostly like a news update on last year’s announcements, and a somewhat dry one at that, Day 2 gave developers some real “red meat.”  It began with a presentation by Steven Sinofsky on Windows 7’s progress since its launch last month, including demos of the diverse array of hardware on which it now runs.  Sinofsky then offered the ultimate crowd pleaser: he described the specs for a multi-touch Microsoft-designed laptop manufactured by Acer, and then explained that all attendees would be receiving one for free.  That greased the wheels for sure, and was followed up with a glimpse of IE9.  &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;The pièce de résistance was a presentation by developer folk hero Scott Guthrie describing features that would be in the forthcoming Silverlight 4, the beta of which he announced was being made available immediately.  We learned from Guthrie that this release of Silverlight will add an impressive array of client capabilities, from things like printing and microphone/webcam access to applications running in full trust and performing COM automation of Office.  Scott Hanselman showed us how Silverlight 4 and Visual Studio 2010’s Data Sources window make this new version of the RIA platform keenly well-suited for data-over-forms line-of-business applications.  All of this really showed the audience that WPF was becoming more and more of a technology for ISVs (and Microsoft itself), and that custom app developers will find their rich client home in Silverlight.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;After Guthrie finished his presentation, the audience was shown some of the cool new dev-features in SharePoint 2010. Much of this was a summary of stuff shown at Microsoft’s SharePoint conference a few weeks earlier.  Given that, and the fact that Guthrie’s a hard act to follow, the keynote ended somewhat anti-climactically. At about that time, &lt;/font&gt;&lt;font size="2"&gt;my live and prolific “tweeting” of the keynote encountered an anti-climax of its own: Twitter told me I had exceeded my allowance of status updates and shut me down.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;As annoyed as I was by Twitter’s forced interruption of my reports, I thought about it and realized that it was OK.  I really didn’t need to give people the blow-by-blow.  Why?  Because this Day 2 keynote, at which we saw new Internet Explorer and new Silverlight, was still really about incremental developments at Microsoft, as opposed to giant leaps.  Giant leaps are more fun to tweet.  Giant leaps are more fun to see covered at a $2000 conference.  Pondering giant leaps can invoke excitement, optimism and inspiration.  And that’s not what this PDC or this keynote, despite its improvement over Day 1’s, was about.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="2"&gt;Maybe that’s OK.  Maybe it’s alright that this PDC was more like a mid-year parent-teacher conference than starting a new grade and learning new subjects.  The pipeline of the 2010 (and 2008 R2) new releases is dizzying, and developers really need help in absorbing them.  Perhaps now is not the time for bold new vision, but rather for doing the homework and housekeeping necessary to ensure last year’s vision is implemented calmly, clearly and competently.  There’s little point in planning a new game while we’re still in an active one and we need to win.&lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136427"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136427" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/andrewbrust/aggbug/136427.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/5z_ma1UBB3Q" height="1" width="1"/&gt;</description><dc:creator>andrewbrust</dc:creator><feedburner:origLink>http://geekswithblogs.net/andrewbrust/archive/2009/11/19/pdc09-rsquos-final-verdict-eyes-on-the-prize-not-in.aspx</feedburner:origLink></item><item><title>A Pilgrim&amp;rsquo;s Diary</title><link>http://feedproxy.google.com/~r/geekswithblogs/~3/aheeXTNso0g/alfitoryrsquos-ldquoa-pilgrimrsquos-diaryquot.aspx</link><pubDate>Fri, 20 Nov 2009 03:14:51 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/kariemali/archive/2009/11/19/alfitoryrsquos-ldquoa-pilgrimrsquos-diaryquot.aspx</guid><wfw:comment>http://geekswithblogs.net/kariemali/comments/136426.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/kariemali/comments/commentRss/136426.aspx</wfw:commentRss><comments>http://geekswithblogs.net/kariemali/archive/2009/11/19/alfitoryrsquos-ldquoa-pilgrimrsquos-diaryquot.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/kariemali/services/trackbacks/136426.aspx</trackback:ping><source url="http://geekswithblogs.net/kariemali/rss.aspx">A Pilgrim&amp;rsquo;s Diary</source><description>&lt;p dir="rtl" align="right"&gt;&lt;font face="Tahoma"&gt;أحياناً أوثر الصمت لأني ربما أعجز عن إنتقاء كلمات تنقل ما أشعر به. أو ربما أظن أن الكلمات لا تكفي أحياناً. فهذه أجزاء من قصيدة  الفيتوري يوميات حاج فلتأخذ منها ما شئت فلا أرى وقتاً يوافق واقعه تلك الكلمات مثل هذا الوقت:&lt;/font&gt;&lt;/p&gt;  &lt;p dir="rtl" align="right"&gt;&lt;font face="Tahoma"&gt;قوافل يا سيدي قلوبنا إليك      &lt;br /&gt;تحج كل عام       &lt;br /&gt;هياكل مثقلة بالوجد والهيام       &lt;br /&gt;تسجد عند عتبات البيت والمقام       &lt;br /&gt;تقرئك السلام       &lt;br /&gt;يا سيدي عليك أفضل السلام       &lt;br /&gt;      &lt;br /&gt;يا سيدي عليك أفضل السلام       &lt;br /&gt;من أمة مضاعة       &lt;br /&gt;خاسرة البضاعة       &lt;br /&gt;تقذفها حضارة الخراب والظلام       &lt;br /&gt;إليك كل عام       &lt;br /&gt;لعلها تجد الشفاعة       &lt;br /&gt;لشمسها العمياء في الزحام       &lt;br /&gt;      &lt;br /&gt;يا سيدي       &lt;br /&gt;منذ ردمنا البحر بالسدود       &lt;br /&gt;وانتصبت بيننا وبينك الحدود       &lt;br /&gt;متنا       &lt;br /&gt;وداست فوقنا ماشية اليهود       &lt;br /&gt;      &lt;br /&gt;يا سيدي       &lt;br /&gt;تعلم أن كان لنا مجد وضيعناه       &lt;br /&gt;بنيته انت وهدمناه       &lt;br /&gt;واليوم ها نحن       &lt;br /&gt;أجل يا سيدي       &lt;br /&gt;نرفل في سقطتنا العظيمة       &lt;br /&gt;كأننا شواهد قديمة       &lt;br /&gt;تعيش عمرها لكي       &lt;br /&gt;تؤرخ الهزيمة  &lt;br /&gt;      &lt;br /&gt;لا جمر في عظامنا ولا رماد       &lt;br /&gt;لا ثلج لا سواد       &lt;br /&gt;لا الكفر كله ولا العبادة       &lt;br /&gt;الضعف والذلة عادة       &lt;br /&gt;يا سيدي       &lt;br /&gt;علمتنا الحب       &lt;br /&gt;فعلمنا تمرد الإرادة&lt;/font&gt;&lt;/p&gt;  &lt;p dir="rtl" align="right"&gt;&lt;font face="Tahoma"&gt; &lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136426"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136426" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/kariemali/aggbug/136426.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/aheeXTNso0g" height="1" width="1"/&gt;</description><dc:creator>kariemali</dc:creator><feedburner:origLink>http://geekswithblogs.net/kariemali/archive/2009/11/19/alfitoryrsquos-ldquoa-pilgrimrsquos-diaryquot.aspx</feedburner:origLink></item><item><title>mocra off railers t-shirt</title><link>http://feedproxy.google.com/~r/geekswithblogs/~3/z1K23Y-lE7Y/136424.aspx</link><pubDate>Thu, 19 Nov 2009 20:14:06 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/liammclennan/archive/2009/11/19/136424.aspx</guid><wfw:comment>http://geekswithblogs.net/liammclennan/comments/136424.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/liammclennan/comments/commentRss/136424.aspx</wfw:commentRss><comments>http://geekswithblogs.net/liammclennan/archive/2009/11/19/136424.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/liammclennan/services/trackbacks/136424.aspx</trackback:ping><source url="http://geekswithblogs.net/liammclennan/rss.aspx">mocra off railers t-shirt</source><description>&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/liammclennan/WindowsLiveWriter/mocraoffrailerstshirt_AC00/mocra_2.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="mocra" border="0" alt="mocra" align="left" src="http://geekswithblogs.net/images/geekswithblogs_net/liammclennan/WindowsLiveWriter/mocraoffrailerstshirt_AC00/mocra_thumb.png" width="244" height="244" /&gt;&lt;/a&gt; In a little over 5 weeks Dr Nic and the Fair-brothers will begin their Homeric &lt;a href="http://www.mocraoffrailers.com/what-is-rickshaw-run.html" target="_blank"&gt;rickshaw running adventure&lt;/a&gt; from the Himalayas to the south of India. Their adventure is raising money for &lt;a href="http://www.mocraoffrailers.com/our-charities.html" target="_blank"&gt;some worthy causes&lt;/a&gt; so please give generously.&lt;/p&gt;  &lt;p&gt;As you can see, Greg was kind enough to send me a mocra off railers t-shirt. It is very comfortable. Thanks Greg and good luck!&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136424"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136424" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/liammclennan/aggbug/136424.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/z1K23Y-lE7Y" height="1" width="1"/&gt;</description><dc:creator>Liam McLennan</dc:creator><feedburner:origLink>http://geekswithblogs.net/liammclennan/archive/2009/11/19/136424.aspx</feedburner:origLink></item><item><title>Silverlight (beta) 4.0 is here!!</title><link>http://feedproxy.google.com/~r/geekswithblogs/~3/kyGvxfhzExY/silverlight-4.0-is-here.aspx</link><pubDate>Fri, 20 Nov 2009 00:03:22 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/subodhnpushpak/archive/2009/11/20/silverlight-4.0-is-here.aspx</guid><wfw:comment>http://geekswithblogs.net/subodhnpushpak/comments/136423.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/subodhnpushpak/comments/commentRss/136423.aspx</wfw:commentRss><comments>http://geekswithblogs.net/subodhnpushpak/archive/2009/11/20/silverlight-4.0-is-here.aspx#comment</comments><slash:comments>4</slash:comments><trackback:ping>http://geekswithblogs.net/subodhnpushpak/services/trackbacks/136423.aspx</trackback:ping><source url="http://geekswithblogs.net/subodhnpushpak/rss.aspx">Silverlight (beta) 4.0 is here!!</source><description>&lt;p&gt;Silverlight has come to an age from WPF/E days and today 4.0 version was launched.&lt;/p&gt;
&lt;p&gt;Features includes:&lt;/p&gt;
&lt;p&gt;Support for enterprise applications:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Printing support&lt;/strong&gt;: Silverlight application can print itself, how the content is formatted when printed, and determine the content that will appear. It even has capabilities to print a portion of the Silverlight content.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;RichTextArea control / WebBrowser Control&lt;/strong&gt;: The RichTextArea has Bi-Di support, allows hyperlinks, XAML content, and embedding of images. It also supports changing the font size, foreground color, and making text bold, italicized, and underlined as well as many other rich text features. The WebBrowser control displays HTML in the control when running Out-of-Browser&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;WCF RIA services&lt;/strong&gt;: Exposes an object model on the server through an optimized .NET to .NET binary format as well as an open JavaScript Object Notation (JSON) format to Silverlight application. WCF RIA Services has features to assist with change tracking on the client in Silverlight, user authentication, and personalization ( a la EDM change tracking system for integration with DB!!!)..&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;MEF suuport&lt;/strong&gt;: Deploy application in multiple Silverlight applications (XAP) files. This allows the XAP files to be dynamically downloaded at runtime. MEF allows applications to be context-aware where the available parts change based on the state of the application. It also improves the general maintainability of Silverlight applications by greatly introduce loose coupling between its components.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;InBuilt support for MVVM: &lt;b&gt;Command Property on ButtonBase and Hyperlink&lt;/b&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;IDataErrorInfo, &lt;b&gt;INotifyDataErrorInfo &lt;/b&gt;: Get errors when (data) bindings fails. &lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Auto-Sizing Columns and Copy from DataGrid&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Navigation Page Loading Extensibility: introduces MVC-style navigation&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Excellent data binding support through XAML code: &lt;/strong&gt;Binding to String Indexers / SelectedValue and SelectedValuePath on the Selector / StringFormat, TargetNullValue, FallbackValue:&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Databinding Support for Dependency Objects&lt;/b&gt;: Allows bind properties on a DependencyObject (DO) and not just on FrameworkElements.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;CompositeTransform for animations:&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;ObservableCollection&amp;lt;T&amp;gt; Constructor Accepts IList and IEnumerable &lt;/b&gt;:&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Inbuilt MouseWheel Support: &lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Right Mouse Click:&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Programmatic Clipboard Access:&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Webcam and Microphone Support:&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Offline Digital Rights Management&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Notifications (Toast)&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;File System Access / COM automation for trusted applications: &lt;/strong&gt;If both return true and Microsoft Office is installed, you can create an instance of an object such as Microsoft Word&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Cross-Domain Networking Access&lt;/b&gt;: An Out-of-Browser Trusted Application can perform cross-domain network calls.&lt;/p&gt;
&lt;p&gt;It could NOT have been better than this… i wished i had all these features for a silverlight application(currently in SL3) i am involved in and SL team has delivered!!&lt;/p&gt;
&lt;p&gt;Will be blogging more on these once a have more time…&lt;/p&gt;
&lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:93371350-4797-4174-bb27-5cfa04047e76" style="margin: 0px; padding: 0px; display: inline; float: none;"&gt;Technorati Tags: &lt;a rel="tag" href="http://technorati.com/tags/Silverlight+4.0"&gt;Silverlight 4.0&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136423"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136423" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/subodhnpushpak/aggbug/136423.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/kyGvxfhzExY" height="1" width="1"/&gt;</description><dc:creator>subodhnpushpak</dc:creator><feedburner:origLink>http://geekswithblogs.net/subodhnpushpak/archive/2009/11/20/silverlight-4.0-is-here.aspx</feedburner:origLink></item><item><title>Creating a comma separated list from IEnumerable&amp;lt;T&amp;gt; &amp;hellip; again</title><link>http://feedproxy.google.com/~r/geekswithblogs/~3/lxaxnqgSllk/creating-a-comma-separated-list-from-ienumerablelttgt-hellip-again.aspx</link><pubDate>Thu, 19 Nov 2009 22:02:16 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/WillSmith/archive/2009/11/19/creating-a-comma-separated-list-from-ienumerablelttgt-hellip-again.aspx</guid><wfw:comment>http://geekswithblogs.net/WillSmith/comments/136422.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/WillSmith/comments/commentRss/136422.aspx</wfw:commentRss><comments>http://geekswithblogs.net/WillSmith/archive/2009/11/19/creating-a-comma-separated-list-from-ienumerablelttgt-hellip-again.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/WillSmith/services/trackbacks/136422.aspx</trackback:ping><source url="http://geekswithblogs.net/WillSmith/rss.aspx">Creating a comma separated list from IEnumerable&amp;lt;T&amp;gt; &amp;hellip; again</source><description>&lt;p&gt;So in response to some comments on my &lt;a href="http://geekswithblogs.net/WillSmith/archive/2008/06/26/creating-a-comma-separated-list-from-ienumerablet.aspx"&gt;original post&lt;/a&gt; on this topic, I started playing around with some other ideas.  I figured it would be cleaner to post code here, rather than the comments.&lt;/p&gt;  &lt;p&gt;How many variations on the theme can we really have?&lt;/p&gt;  &lt;p&gt;As suggested in the comments on the previous post:&lt;/p&gt;  &lt;div id="codeSnippetWrapper" class="csharpcode-wrapper"&gt;   &lt;div id="codeSnippet" class="csharpcode"&gt;     &lt;pre class="alt"&gt;&lt;span id="lnum1" class="lnum"&gt;   1:&lt;/span&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; string Join1&amp;lt;T&amp;gt;( this IEnumerable&amp;lt;T&amp;gt; items, string delimiter, Func&amp;lt;T,string&amp;gt; converter )&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alteven"&gt;&lt;span id="lnum2" class="lnum"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alt"&gt;&lt;span id="lnum3" class="lnum"&gt;   3:&lt;/span&gt;     &lt;span class="kwrd"&gt;return&lt;/span&gt; string.&lt;span class="kwrd"&gt;Join&lt;/span&gt;( delimiter,&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alteven"&gt;&lt;span id="lnum4" class="lnum"&gt;   4:&lt;/span&gt;                         items&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alt"&gt;&lt;span id="lnum5" class="lnum"&gt;   5:&lt;/span&gt;                             .&lt;span class="kwrd"&gt;Select&lt;/span&gt;( converter )&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alteven"&gt;&lt;span id="lnum6" class="lnum"&gt;   6:&lt;/span&gt;                             .&lt;span class="kwrd"&gt;Where&lt;/span&gt;( s =&amp;gt; !string.IsNullOrEmpty( s ) )&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alt"&gt;&lt;span id="lnum7" class="lnum"&gt;   7:&lt;/span&gt;                             .ToArray() );            &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alteven"&gt;&lt;span id="lnum8" class="lnum"&gt;   8:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Using Aggregate Linq extension:&lt;/p&gt;

&lt;div id="codeSnippetWrapper" class="csharpcode-wrapper"&gt;
  &lt;div id="codeSnippet" class="csharpcode"&gt;
    &lt;pre class="alt"&gt;&lt;span id="lnum1" class="lnum"&gt;   1:&lt;/span&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; string Join2&amp;lt;T&amp;gt;( this IEnumerable&amp;lt;T&amp;gt; items, string delimiter, Func&amp;lt;T, string&amp;gt; converter )&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alteven"&gt;&lt;span id="lnum2" class="lnum"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alt"&gt;&lt;span id="lnum3" class="lnum"&gt;   3:&lt;/span&gt;     &lt;span class="kwrd"&gt;return&lt;/span&gt; items&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alteven"&gt;&lt;span id="lnum4" class="lnum"&gt;   4:&lt;/span&gt;         .&lt;span class="kwrd"&gt;Aggregate&lt;/span&gt;( string.Empty,&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alt"&gt;&lt;span id="lnum5" class="lnum"&gt;   5:&lt;/span&gt;                     ( agg, &lt;span class="kwrd"&gt;next&lt;/span&gt; ) =&amp;gt;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alteven"&gt;&lt;span id="lnum6" class="lnum"&gt;   6:&lt;/span&gt;                         {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alt"&gt;&lt;span id="lnum7" class="lnum"&gt;   7:&lt;/span&gt;                             var sNext = converter( &lt;span class="kwrd"&gt;next&lt;/span&gt; );&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alteven"&gt;&lt;span id="lnum8" class="lnum"&gt;   8:&lt;/span&gt;  &lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alt"&gt;&lt;span id="lnum9" class="lnum"&gt;   9:&lt;/span&gt;                             &lt;span class="kwrd"&gt;return&lt;/span&gt; string.IsNullOrEmpty( sNext )&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alteven"&gt;&lt;span id="lnum10" class="lnum"&gt;  10:&lt;/span&gt;                                        ? agg&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alt"&gt;&lt;span id="lnum11" class="lnum"&gt;  11:&lt;/span&gt;                                        : agg + delimiter + sNext;&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alteven"&gt;&lt;span id="lnum12" class="lnum"&gt;  12:&lt;/span&gt;                         } );&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alt"&gt;&lt;span id="lnum13" class="lnum"&gt;  13:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;Aggregate again:&lt;/p&gt;

&lt;div id="codeSnippetWrapper" class="csharpcode-wrapper"&gt;
  &lt;div id="codeSnippet" class="csharpcode"&gt;
    &lt;pre class="alt"&gt;&lt;span id="lnum1" class="lnum"&gt;   1:&lt;/span&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; string Join3&amp;lt;T&amp;gt;( this IEnumerable&amp;lt;T&amp;gt; items, string delimiter, Func&amp;lt;T, string&amp;gt; converter )&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alteven"&gt;&lt;span id="lnum2" class="lnum"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alt"&gt;&lt;span id="lnum3" class="lnum"&gt;   3:&lt;/span&gt;     &lt;span class="kwrd"&gt;return&lt;/span&gt; items&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alteven"&gt;&lt;span id="lnum4" class="lnum"&gt;   4:&lt;/span&gt;         .&lt;span class="kwrd"&gt;Select&lt;/span&gt;( converter )&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alt"&gt;&lt;span id="lnum5" class="lnum"&gt;   5:&lt;/span&gt;         .&lt;span class="kwrd"&gt;Aggregate&lt;/span&gt;( ( agg, sNext ) =&amp;gt; string.IsNullOrEmpty( sNext )&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alteven"&gt;&lt;span id="lnum6" class="lnum"&gt;   6:&lt;/span&gt;                                           ? agg&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alt"&gt;&lt;span id="lnum7" class="lnum"&gt;   7:&lt;/span&gt;                                           : agg + delimiter + sNext );&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alteven"&gt;&lt;span id="lnum8" class="lnum"&gt;   8:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;And again:&lt;/p&gt;

&lt;div id="codeSnippetWrapper" class="csharpcode-wrapper"&gt;
  &lt;div id="codeSnippet" class="csharpcode"&gt;
    &lt;pre class="alt"&gt;&lt;span id="lnum1" class="lnum"&gt;   1:&lt;/span&gt; &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; string Join4&amp;lt;T&amp;gt;( this IEnumerable&amp;lt;T&amp;gt; items, string delimiter, Func&amp;lt;T, string&amp;gt; converter )&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alteven"&gt;&lt;span id="lnum2" class="lnum"&gt;   2:&lt;/span&gt; {&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alt"&gt;&lt;span id="lnum3" class="lnum"&gt;   3:&lt;/span&gt;     &lt;span class="kwrd"&gt;return&lt;/span&gt; items&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alteven"&gt;&lt;span id="lnum4" class="lnum"&gt;   4:&lt;/span&gt;         .&lt;span class="kwrd"&gt;Select&lt;/span&gt;( converter )&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alt"&gt;&lt;span id="lnum5" class="lnum"&gt;   5:&lt;/span&gt;         .&lt;span class="kwrd"&gt;Where&lt;/span&gt;( s =&amp;gt; !string.IsNullOrEmpty( s ) )&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alteven"&gt;&lt;span id="lnum6" class="lnum"&gt;   6:&lt;/span&gt;         .&lt;span class="kwrd"&gt;Aggregate&lt;/span&gt;( ( agg, &lt;span class="kwrd"&gt;next&lt;/span&gt; ) =&amp;gt; agg + delimiter + &lt;span class="kwrd"&gt;next&lt;/span&gt; );&lt;/pre&gt;
&lt;!--CRLF--&gt;

    &lt;pre class="alt"&gt;&lt;span id="lnum7" class="lnum"&gt;   7:&lt;/span&gt; }&lt;/pre&gt;
&lt;!--CRLF--&gt;&lt;/div&gt;
&lt;/div&gt;

&lt;p&gt;In the comments for my previous post, there was a decent discussion about the performance of string aggregation, and the suggestion of using StringBuilder instead.  I’m not too concerned about it.  I’m not dealing with large data sets.&lt;/p&gt;

&lt;p&gt;&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:247a46c1-6d34-43a1-83a5-2efab6f16a05" class="wlWriterEditableSmartContent"&gt;Tags: &lt;a href="http://technorati.com/tags/.Net" rel="tag"&gt;.Net&lt;/a&gt;, &lt;a href="http://technorati.com/tags/C%23" rel="tag"&gt;C#&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136422"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136422" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/WillSmith/aggbug/136422.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/lxaxnqgSllk" height="1" width="1"/&gt;</description><dc:creator>Will Smith</dc:creator><feedburner:origLink>http://geekswithblogs.net/WillSmith/archive/2009/11/19/creating-a-comma-separated-list-from-ienumerablelttgt-hellip-again.aspx</feedburner:origLink></item><item><title>Review of Ext JS 3.0 Cookbook</title><link>http://feedproxy.google.com/~r/geekswithblogs/~3/PDwC8Nvga6o/review-of-ext-js-3.0-cookbook.aspx</link><pubDate>Thu, 19 Nov 2009 15:24:32 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/joshholmes/archive/2009/11/19/review-of-ext-js-3.0-cookbook.aspx</guid><wfw:comment>http://geekswithblogs.net/joshholmes/comments/136421.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/joshholmes/comments/commentRss/136421.aspx</wfw:commentRss><comments>http://geekswithblogs.net/joshholmes/archive/2009/11/19/review-of-ext-js-3.0-cookbook.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/joshholmes/services/trackbacks/136421.aspx</trackback:ping><source url="http://geekswithblogs.net/joshholmes/rss.aspx">Review of Ext JS 3.0 Cookbook</source><description>&lt;p&gt;&lt;a href="http://www.joshholmes.com/blog/ct.ashx?id=eac3820b-5113-4df4-ace4-3dbcaa497f39&amp;amp;url=http%3a%2f%2fwww.amazon.com%2fexec%2fobidos%2fASIN%2f1847198708%2fjoshholmes-20"&gt;&lt;img style="margin: 5px 5px 0px; display: inline" border="0" align="left" src="http://images.amazon.com/images/P/1847198708.01.MZZZZZZZ.jpg" /&gt;&lt;/a&gt;For full disclosure, &lt;a href="http://www.joshholmes.com/blog/ct.ashx?id=eac3820b-5113-4df4-ace4-3dbcaa497f39&amp;amp;url=http%3a%2f%2fwww.packtpub.com"&gt;Packt Publishing&lt;/a&gt; sent me a review copy of this book. They did not ask for a positive review, just a review. &lt;/p&gt;  &lt;p&gt;This is the first book by Jorge Ramon that I’ve read. This book is exactly what the title says that it is, a Cookbook. It’s got 109 solutions to problems solved by &lt;a href="http://www.joshholmes.com/blog/ct.ashx?id=eac3820b-5113-4df4-ace4-3dbcaa497f39&amp;amp;url=http%3a%2f%2fwww.amazon.com%2fexec%2fobidos%2fASIN%2f1847198708%2fjoshholmes-20"&gt;Ext JS 3.0&lt;/a&gt;. I was expecting, like a lot of other books to get a fill of all of the philosophy behind what they are trying to promote but that wasn’t the case. This book just in with no nonsense and gets right to the code. &lt;/p&gt;  &lt;p&gt;More on my blog at &lt;a href="http://www.joshholmes.com/blog/2009/11/19/ReviewOfExtJS30Cookbook.aspx"&gt;Review of Ext JS 3.0 Cookbook&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136421"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136421" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/joshholmes/aggbug/136421.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/PDwC8Nvga6o" height="1" width="1"/&gt;</description><dc:creator>Josh Holmes</dc:creator><feedburner:origLink>http://geekswithblogs.net/joshholmes/archive/2009/11/19/review-of-ext-js-3.0-cookbook.aspx</feedburner:origLink></item><item><title>NotAtPDC Demo</title><link>http://feedproxy.google.com/~r/geekswithblogs/~3/1XJLc9G2DkM/notatpdc-demo.aspx</link><pubDate>Thu, 19 Nov 2009 21:01:52 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/danemorgridge/archive/2009/11/19/notatpdc-demo.aspx</guid><wfw:comment>http://geekswithblogs.net/danemorgridge/comments/136420.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/danemorgridge/comments/commentRss/136420.aspx</wfw:commentRss><comments>http://geekswithblogs.net/danemorgridge/archive/2009/11/19/notatpdc-demo.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/danemorgridge/services/trackbacks/136420.aspx</trackback:ping><source url="http://geekswithblogs.net/danemorgridge/rss.aspx">NotAtPDC Demo</source><description>&lt;p&gt;I just got done with my NotAtPdc Session On "Getting to Know the Entity Framework".  Of course like a good live presentation, my demo broke.  The problem was in the connection string.  When I did the model first development, I named the model something different for some reason and that caused the connection string to be out of sync in the actual application.  Someone had mentioned that was the problem in the chat, but I didn't see it until after the demo was over.  So, in case anyone else happens to run into this error down the road, be sure your connection string in the app that is using your data model is up to date.  And thanks to the person who mentioned that.  (I don't have the chat log in front of me so I don't have your name or I'd give you credit)&lt;/p&gt;  &lt;p&gt;Thanks to all that attended my session and you can download the demo code (that actually works) &lt;a href="http://danemorgridgebackup.s3.amazonaws.com/codedownload/CMAPCCDemo.zip"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136420"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136420" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/danemorgridge/aggbug/136420.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/1XJLc9G2DkM" height="1" width="1"/&gt;</description><dc:creator>Dane Morgridge</dc:creator><feedburner:origLink>http://geekswithblogs.net/danemorgridge/archive/2009/11/19/notatpdc-demo.aspx</feedburner:origLink></item><item><title>My talk at #notatpdc postponed</title><link>http://feedproxy.google.com/~r/geekswithblogs/~3/pQllfJQkaEk/my-talk-at-notatpdc-postponed.aspx</link><pubDate>Thu, 19 Nov 2009 20:16:05 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/lbugnion/archive/2009/11/19/my-talk-at-notatpdc-postponed.aspx</guid><wfw:comment>http://geekswithblogs.net/lbugnion/comments/136419.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/lbugnion/comments/commentRss/136419.aspx</wfw:commentRss><comments>http://geekswithblogs.net/lbugnion/archive/2009/11/19/my-talk-at-notatpdc-postponed.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/lbugnion/services/trackbacks/136419.aspx</trackback:ping><source url="http://geekswithblogs.net/lbugnion/rss.aspx">My talk at #notatpdc postponed</source><description>&lt;p&gt;Hey guys,&lt;/p&gt;  &lt;p&gt;I am really sorry for having to postpone my talk about Expression Blend 3 and SketchFlow. We had some huge difficulties with the NotAtPDC.com website, and unfortunately we were not able to locate the site administrator on time to solve the issue. Without a speaker login, I was able to talk to the attendees, but not share my desktop. Now I love to &lt;strong&gt;talk&lt;/strong&gt; about Blend but I love even more to &lt;strong&gt;show&lt;/strong&gt; Blend ;)&lt;/p&gt;  &lt;p&gt;Ironically, as a Microsoft MVP I do have a LiveMeeting account, so I would be able to host the talk myself, but organizing a LiveMeeting take a little time, and I didn’t want to rush into that, cut my talk short or step on the next speaker’s feet (let’s hope that the issues get solved in time for him!)&lt;/p&gt;  &lt;p&gt;We will definitely reschedule the talk, either within NotAtPDC (if we find a suitable time slot) or a bit later, so definitely stay tuned on this blog and &lt;a href="http://www.twitter.com/lbugnion"&gt;my twitter feed&lt;/a&gt; for more info.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136419"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136419" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/lbugnion/aggbug/136419.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/pQllfJQkaEk" height="1" width="1"/&gt;</description><dc:creator>Laurent Bugnion</dc:creator><feedburner:origLink>http://geekswithblogs.net/lbugnion/archive/2009/11/19/my-talk-at-notatpdc-postponed.aspx</feedburner:origLink></item><item><title>Exciting New Experiment in Data Visualization</title><link>http://feedproxy.google.com/~r/geekswithblogs/~3/EGs8BItGbZo/136418.aspx</link><pubDate>Thu, 19 Nov 2009 20:06:06 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/MSARCH/archive/2009/11/19/136418.aspx</guid><wfw:comment>http://geekswithblogs.net/MSARCH/comments/136418.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/MSARCH/comments/commentRss/136418.aspx</wfw:commentRss><comments>http://geekswithblogs.net/MSARCH/archive/2009/11/19/136418.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/MSARCH/services/trackbacks/136418.aspx</trackback:ping><source url="http://geekswithblogs.net/MSARCH/rss.aspx">Exciting New Experiment in Data Visualization</source><description>&lt;p&gt;Within the world of Business Intelligence and Analytics, data analysis can only be automated so far and manual analysis is often required to add an important component of human intelligence.  To that end, data visualization is a useful, if not critical tool to be able to absorb and understand large amounts of data.  So it came as a bit of a surprise that Microsoft’s Live Labs has a &lt;a href="http://www.getpivot.com/"&gt;research project called “Pivot”&lt;/a&gt; intended to help visually analyze data patterns on a Web scale.  What intrigues me the most about this project is that, while it is intended to operate at “Web scale” it would appear to be able to scale down to handle any size data set as long as it can be organized into “Collections,” even if the collection represent business data like customers and product orders.  While the project is very limited at this time the sample video teases a user interface that is very intuitive for any user comfortable with Web 2.0 technologies. &lt;/p&gt;
&lt;p&gt;Has anyone work with this technology yet?&lt;/p&gt;
&lt;object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="509" height="382" id="video-player"&gt;
 &lt;param name="source" value="http://www.getpivot.com/silverlight/video-player.xap" /&gt;
 &lt;param name="onError" value="onSilverlightError" /&gt;
 &lt;param name="background" value="white" /&gt;
 &lt;param name="minRuntimeVersion" value="3.0.40624.0" /&gt; 
&lt;param name="autoUpgrade" value="true" /&gt;
 &lt;param name="enableHtmlAccess" value="true" /&gt;
 &lt;param name="enableGPUAcceleration" value="true" /&gt;
 &lt;param name="initparams" value="sdStreamUrl=http://content.getpivot.com/wmv/PivotVideo_SD.wmv,sdDownloadUrl=http://content.getpivot.com/wmv/PivotVideo_SD.zip,hdStreamUrl=http://content.getpivot.com/wmv/PivotVideo_HD.wmv,hdDownloadUrl=http://content.getpivot.com/wmv/PivotVideo_HD.zip,playerSettings = &amp;lt;Playlist&amp;gt;&amp;lt;AutoLoad&amp;gt;false&amp;lt;/AutoLoad&amp;gt;&amp;lt;AutoPlay&amp;gt;false&amp;lt;/AutoPlay&amp;gt;&amp;lt;DisplayTimeCode&amp;gt;false&amp;lt;/DisplayTimeCode&amp;gt;&amp;lt;EnableCachedComposition&amp;gt;false&amp;lt;/EnableCachedComposition&amp;gt;&amp;lt;EnableCaptions&amp;gt;false&amp;lt;/EnableCaptions&amp;gt;&amp;lt;EnableOffline&amp;gt;false&amp;lt;/EnableOffline&amp;gt;&amp;lt;EnablePopOut&amp;gt;false&amp;lt;/EnablePopOut&amp;gt;&amp;lt;StartMuted&amp;gt;false&amp;lt;/StartMuted&amp;gt;&amp;lt;StretchMode&amp;gt;0&amp;lt;/StretchMode&amp;gt;&amp;lt;Items&amp;gt;&amp;lt;PlaylistItem&amp;gt;&amp;lt;IsAdaptiveStreaming&amp;gt;false&amp;lt;/IsAdaptiveStreaming&amp;gt;&amp;lt;MediaSource&amp;gt;http://content.getpivot.com/wmv/1002290_LiveLabs_111109_v03_512x384_600kbps_VBR.wmv&amp;lt;/MediaSource&amp;gt;&amp;lt;ThumbSource&amp;gt;http://www.getpivot.com/silverlight/images/videos/hero-02-pivot-screenshot-play-btn.jpg&amp;lt;/ThumbSource&amp;gt;&amp;lt;Description&amp;gt;Clicking this takes you to video 2&amp;lt;/Description&amp;gt;&amp;lt;/PlaylistItem&amp;gt;&amp;lt;/Items&amp;gt;&amp;lt;/Playlist&amp;gt;" /&gt;
 &lt;a href="http://go.microsoft.com/fwlink/?LinkID=149156&amp;amp;v=3.0.40624.0" style="text-decoration:none"&gt;
 &lt;img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style:none" /&gt;
 &lt;/a&gt;
 &lt;/object&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136418"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136418" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/MSARCH/aggbug/136418.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/EGs8BItGbZo" height="1" width="1"/&gt;</description><dc:creator>Jim Kita</dc:creator><feedburner:origLink>http://geekswithblogs.net/MSARCH/archive/2009/11/19/136418.aspx</feedburner:origLink></item><item><title>Outlook 2010 Social Networking Plugins</title><link>http://feedproxy.google.com/~r/geekswithblogs/~3/EYrRvTf69Gg/outlook-2010-social-netoworking-plugins.aspx</link><pubDate>Thu, 19 Nov 2009 19:35:06 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/MadeIT/archive/2009/11/19/outlook-2010-social-netoworking-plugins.aspx</guid><wfw:comment>http://geekswithblogs.net/MadeIT/comments/136417.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/MadeIT/comments/commentRss/136417.aspx</wfw:commentRss><comments>http://geekswithblogs.net/MadeIT/archive/2009/11/19/outlook-2010-social-netoworking-plugins.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/MadeIT/services/trackbacks/136417.aspx</trackback:ping><source url="http://geekswithblogs.net/MadeIT/rss.aspx">Outlook 2010 Social Networking Plugins</source><description>&lt;p&gt;Just moved from the Office 2010 Technical Preview to the Beta that was released last week or so and noticed a new bit of functionality in Outlook. I don't know the extent of the interoperability just yet but I look forward to seeing it in action with anything other than SharePoint.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;img src="http://i109.photobucket.com/albums/n67/tn1044/Outlook2010SocialNetworking.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;a target="_blank" href="http://officebeta.microsoft.com/en-us/outlook/connect-to-your-favorite-social-network-using-microsoft-outlook-HA101789909.aspx"&gt;MS Info Page Here&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136417"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136417" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/MadeIT/aggbug/136417.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/EYrRvTf69Gg" height="1" width="1"/&gt;</description><dc:creator>Matt deClercq</dc:creator><feedburner:origLink>http://geekswithblogs.net/MadeIT/archive/2009/11/19/outlook-2010-social-netoworking-plugins.aspx</feedburner:origLink></item><item><title>Office Communicator 2007 R2 &amp;ndash; AOL PIC Issue</title><link>http://feedproxy.google.com/~r/geekswithblogs/~3/1LQ0Fp8bx6Q/office-communicator-2007-r2-ndash-aol-pic-issue.aspx</link><pubDate>Thu, 19 Nov 2009 18:55:11 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/BWCA/archive/2009/11/19/office-communicator-2007-r2-ndash-aol-pic-issue.aspx</guid><wfw:comment>http://geekswithblogs.net/BWCA/comments/136416.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/BWCA/comments/commentRss/136416.aspx</wfw:commentRss><comments>http://geekswithblogs.net/BWCA/archive/2009/11/19/office-communicator-2007-r2-ndash-aol-pic-issue.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/BWCA/services/trackbacks/136416.aspx</trackback:ping><source url="http://geekswithblogs.net/BWCA/rss.aspx">Office Communicator 2007 R2 &amp;ndash; AOL PIC Issue</source><description>&lt;p&gt;   &lt;br /&gt;After we enabled our Office Communicator 2007 R2 Access Edge Server for Federation with AOL, Yahoo, and MSN, our Communicator 2007 R2 clients were able to chat successfully with Yahoo and MSN users and vice versa.  Also, AOL users could send instant messages to our clients.    &lt;br /&gt;    &lt;br /&gt;However, our Communicator clients could not send instant messages to or reply to IMs from AOL users.  When an AOL user would send us an instant message, we would get the following error message when we attempted to reply or when we tried to send a new instant message to an AOL user.  Also, we could not see presence information for AOL contacts in Office Communicator.    &lt;br /&gt;    &lt;br /&gt;&lt;strong&gt;The following message was not delivered to &lt;/strong&gt;&lt;a href="mailto:mikesmith1@aol.com"&gt;&lt;strong&gt;mikesmith1@aol.com&lt;/strong&gt;&lt;/a&gt;&lt;strong&gt;. More details (ID:430)     &lt;br /&gt;      &lt;br /&gt;&lt;/strong&gt;After troubleshooting the problem for a few days, I opened up a Microsoft Premier Support ticket requesting additional assistance.  It took us approximately six weeks to isolate and fix the problem.     &lt;br /&gt;    &lt;br /&gt;In a nutshell, we used the OCS 2007 R2 Logging Tool on the Access Edge Server to monitor traffic between an AOL and MOC IM conversation and vice versa to isolate the problem.  Using snooper, we noticed a &lt;strong&gt;80072746&lt;/strong&gt; error message specific to sip.oscar.aol.com when a MOC client tried to reply to an AOL user IM.  Every time a MOC client tried to send a new IM or reply to an AOL user, the AOL IM Federation Servers would refuse the connection.  With this information, Microsoft PSS opened a ticket with AOL to troubleshoot this further.    &lt;br /&gt;    &lt;br /&gt;After speaking with AOL and Microsoft, we learned that our Comodo 2048-bit signed Root CA was causing the problem in our Certificate Chain on the OCS 2007 R2 Access Edge Server.  Please note we did not have to make any changes to our 2048-bit Intermediate and 1024-bit Personal CAs.    &lt;br /&gt;    &lt;br /&gt;With this information, we worked with our CA to issue a new 1024-bit Root CA.  After receiving the new certificate, we deployed it on our Access Edge Server and restarted the services.  Shortly thereafter, our Communicator 2007 R2 clients were able to chat successfully with AOL users and vice versa.   Also, we could see presence information for our AOL contacts.  A big thanks goes to Microsoft PSS and AOL for helping us troubleshoot the problem.    &lt;br /&gt;    &lt;br /&gt;For more information regarding similar issues, you can check out a couple of postings, especially the Comments section, on Scott Oseychik’s blog.    &lt;br /&gt;    &lt;br /&gt;&lt;a title="http://blogs.msdn.com/scottos/archive/2009/07/14/federation-and-or-pic-may-fail-against-partners-using-2048-bit-signed-root-cas.aspx" href="http://blogs.msdn.com/scottos/archive/2009/07/14/federation-and-or-pic-may-fail-against-partners-using-2048-bit-signed-root-cas.aspx"&gt;http://blogs.msdn.com/scottos/archive/2009/07/14/federation-and-or-pic-may-fail-against-partners-using-2048-bit-signed-root-cas.aspx&lt;/a&gt;    &lt;br /&gt;&lt;a title="http://blogs.msdn.com/scottos/archive/2008/12/30/pic-stops-functioning-after-installing-renewing-your-certificate.aspx" href="http://blogs.msdn.com/scottos/archive/2008/12/30/pic-stops-functioning-after-installing-renewing-your-certificate.aspx"&gt;http://blogs.msdn.com/scottos/archive/2008/12/30/pic-stops-functioning-after-installing-renewing-your-certificate.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136416"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136416" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/BWCA/aggbug/136416.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/1LQ0Fp8bx6Q" height="1" width="1"/&gt;</description><dc:creator>BWCA</dc:creator><feedburner:origLink>http://geekswithblogs.net/BWCA/archive/2009/11/19/office-communicator-2007-r2-ndash-aol-pic-issue.aspx</feedburner:origLink></item><item><title>Locating your MediaElement Video Source File in a Silverlight 3 Control</title><link>http://feedproxy.google.com/~r/geekswithblogs/~3/0Wg-y2NjI-U/locating-your-mediaelement-video-source-file-in-a-silverlight-3.aspx</link><pubDate>Thu, 19 Nov 2009 18:24:37 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/RockStarCoder/archive/2009/11/19/locating-your-mediaelement-video-source-file-in-a-silverlight-3.aspx</guid><wfw:comment>http://geekswithblogs.net/RockStarCoder/comments/136415.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/RockStarCoder/comments/commentRss/136415.aspx</wfw:commentRss><comments>http://geekswithblogs.net/RockStarCoder/archive/2009/11/19/locating-your-mediaelement-video-source-file-in-a-silverlight-3.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/RockStarCoder/services/trackbacks/136415.aspx</trackback:ping><source url="http://geekswithblogs.net/RockStarCoder/rss.aspx">Locating your MediaElement Video Source File in a Silverlight 3 Control</source><description>&lt;p&gt;In this Demo I will show 3 ways to have your web page locate your MediaElement’s video file.&lt;/p&gt;
&lt;p&gt;I have created a Silverlight 3 application and let it automatically create a web site to host the control.&lt;/p&gt;
&lt;p&gt;&lt;a rel="lightbox" href="http://geekswithblogs.net/images/geekswithblogs_net/RockStarCoder/WindowsLiveWriter/LocatingyourMediaElementVideoSourceFilei_B4D4/clip_image002_2.jpg"&gt;&lt;img height="374" border="0" width="275" src="http://geekswithblogs.net/images/geekswithblogs_net/RockStarCoder/WindowsLiveWriter/LocatingyourMediaElementVideoSourceFilei_B4D4/clip_image002_thumb.jpg" alt="clip_image002" title="clip_image002" style="border-width: 0px; display: inline;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Drag a &amp;lt;MediaElement&amp;gt; onto the UserControl and set its source file attribute.&lt;/p&gt;
&lt;p&gt;&lt;a rel="lightbox" href="http://geekswithblogs.net/images/geekswithblogs_net/RockStarCoder/WindowsLiveWriter/LocatingyourMediaElementVideoSourceFilei_B4D4/clip_image004_2.jpg"&gt;&lt;img border="0" src="http://geekswithblogs.net/images/geekswithblogs_net/RockStarCoder/WindowsLiveWriter/LocatingyourMediaElementVideoSourceFilei_B4D4/clip_image004_thumb.jpg" alt="clip_image004" title="clip_image004" style="border-width: 0px; display: inline; width: 540px; height: 170px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Drag the video file using window explorer and drop it in the root of my Silverlight’s UserControl project.&lt;/p&gt;
&lt;p&gt;&lt;a rel="lightbox" href="http://geekswithblogs.net/images/geekswithblogs_net/RockStarCoder/WindowsLiveWriter/LocatingyourMediaElementVideoSourceFilei_B4D4/clip_image006_2.jpg"&gt;&lt;img height="406" border="0" width="431" src="http://geekswithblogs.net/images/geekswithblogs_net/RockStarCoder/WindowsLiveWriter/LocatingyourMediaElementVideoSourceFilei_B4D4/clip_image006_thumb.jpg" alt="clip_image006" title="clip_image006" style="border-width: 0px; display: inline;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Note the size of this file is about 25mb.&lt;/p&gt;
&lt;p&gt;&lt;a rel="lightbox" href="http://geekswithblogs.net/images/geekswithblogs_net/RockStarCoder/WindowsLiveWriter/LocatingyourMediaElementVideoSourceFilei_B4D4/clip_image008_2.jpg"&gt;&lt;img height="39" border="0" width="642" src="http://geekswithblogs.net/images/geekswithblogs_net/RockStarCoder/WindowsLiveWriter/LocatingyourMediaElementVideoSourceFilei_B4D4/clip_image008_thumb.jpg" alt="clip_image008" title="clip_image008" style="border-width: 0px; display: inline;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;I will demo 3 different methods for setting the location so that the web page can find it.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;u&gt;Method 1&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Highlight the video and set its “Build Action” to “Content”&lt;/p&gt;
&lt;p&gt;Your properties will look like below:&lt;/p&gt;
&lt;p&gt;&lt;a rel="lightbox" href="http://geekswithblogs.net/images/geekswithblogs_net/RockStarCoder/WindowsLiveWriter/LocatingyourMediaElementVideoSourceFilei_B4D4/clip_image010_2.jpg"&gt;&lt;img height="209" border="0" width="546" src="http://geekswithblogs.net/images/geekswithblogs_net/RockStarCoder/WindowsLiveWriter/LocatingyourMediaElementVideoSourceFilei_B4D4/clip_image010_thumb.jpg" alt="clip_image010" title="clip_image010" style="border-width: 0px; display: inline;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Change the source attribute to have a forward slash before the video name.&lt;/p&gt;
&lt;p&gt;&lt;a rel="lightbox" href="http://geekswithblogs.net/images/geekswithblogs_net/RockStarCoder/WindowsLiveWriter/LocatingyourMediaElementVideoSourceFilei_B4D4/clip_image012_2.jpg"&gt;&lt;img height="76" border="0" width="642" src="http://geekswithblogs.net/images/geekswithblogs_net/RockStarCoder/WindowsLiveWriter/LocatingyourMediaElementVideoSourceFilei_B4D4/clip_image012_thumb.jpg" alt="clip_image012" title="clip_image012" style="border-width: 0px; display: inline;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Build the solution.&lt;/p&gt;
&lt;p&gt;Test using the test aspx page (TestMediaTestPage.aspx) in your web project and the video should work fine.&lt;/p&gt;
&lt;p&gt;Check the size of your xap in the ClientBin folder. Notice that it &lt;u&gt;includes&lt;/u&gt; the video file.&lt;/p&gt;
&lt;p&gt;&lt;a rel="lightbox" href="http://geekswithblogs.net/images/geekswithblogs_net/RockStarCoder/WindowsLiveWriter/LocatingyourMediaElementVideoSourceFilei_B4D4/clip_image014_2.jpg"&gt;&lt;img height="39" border="0" width="642" src="http://geekswithblogs.net/images/geekswithblogs_net/RockStarCoder/WindowsLiveWriter/LocatingyourMediaElementVideoSourceFilei_B4D4/clip_image014_thumb.jpg" alt="clip_image014" title="clip_image014" style="border-width: 0px; display: inline;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;u&gt;Method 2&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Again from a fresh Silverlight solution containing the 2 projects, drag the video to the root of the Silverlight project.&lt;/p&gt;
&lt;p&gt;Highlight the video and set its “Build Action” to “Resource”.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Add a &amp;lt;MediaElement&amp;gt; onto the UserControl and set its source file attribute.&lt;/p&gt;
&lt;p&gt;In this case a slash is not used in front of the file name in the MediaElement&lt;/p&gt;
&lt;p&gt;&lt;a rel="lightbox" href="http://geekswithblogs.net/images/geekswithblogs_net/RockStarCoder/WindowsLiveWriter/LocatingyourMediaElementVideoSourceFilei_B4D4/clip_image016_2.jpg"&gt;&lt;img height="73" border="0" width="642" src="http://geekswithblogs.net/images/geekswithblogs_net/RockStarCoder/WindowsLiveWriter/LocatingyourMediaElementVideoSourceFilei_B4D4/clip_image016_thumb.jpg" alt="clip_image016" title="clip_image016" style="border-width: 0px; display: inline;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Build the solution.&lt;/p&gt;
&lt;p&gt;Once again check the size of your xap in the ClientBin folder. Notice that it &lt;u&gt;includes&lt;/u&gt; the video file.&lt;/p&gt;
&lt;p&gt;Test using the test aspx page (TestMediaTestPage.aspx) in your web project and the video should work fine.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;b&gt;&lt;u&gt;Method 3&lt;/u&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;Again from a fresh Silverlight solution containing the 2 projects, drag the video to the root of the Silverlight project.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Highlight the video and verify its “Build Action” is set to “None”.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Add a &amp;lt;MediaElement&amp;gt; onto the UserControl and set its source file attribute.&lt;/p&gt;
&lt;p&gt;It does not matter if a slash is in front of the file name or not in the MediaElement&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Build the solution and using windows explorer check the size of the xap file in the ClientBin.&lt;/p&gt;
&lt;p&gt;Notice that it does not include the video file.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;a rel="lightbox" href="http://geekswithblogs.net/images/geekswithblogs_net/RockStarCoder/WindowsLiveWriter/LocatingyourMediaElementVideoSourceFilei_B4D4/clip_image018_2.jpg"&gt;&lt;img height="29" border="0" width="642" src="http://geekswithblogs.net/images/geekswithblogs_net/RockStarCoder/WindowsLiveWriter/LocatingyourMediaElementVideoSourceFilei_B4D4/clip_image018_thumb.jpg" alt="clip_image018" title="clip_image018" style="border-width: 0px; display: inline;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Using windows explorer, drag the video file into the ClientBin folder.&lt;/p&gt;
&lt;p&gt;&lt;a rel="lightbox" href="http://geekswithblogs.net/images/geekswithblogs_net/RockStarCoder/WindowsLiveWriter/LocatingyourMediaElementVideoSourceFilei_B4D4/clip_image020_2.jpg"&gt;&lt;img height="388" border="0" width="281" src="http://geekswithblogs.net/images/geekswithblogs_net/RockStarCoder/WindowsLiveWriter/LocatingyourMediaElementVideoSourceFilei_B4D4/clip_image020_thumb.jpg" alt="clip_image020" title="clip_image020" style="border-width: 0px; display: inline;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;Test using the test aspx page (TestMediaTestPage.aspx) in your web project and the video should work fine.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://silverlight.services.live.com/110365/bigweb/video.wmv"&gt;Here&lt;/a&gt; is a video recap.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136415"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136415" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/RockStarCoder/aggbug/136415.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/0Wg-y2NjI-U" height="1" width="1"/&gt;</description><dc:creator>RockStarCoder</dc:creator><feedburner:origLink>http://geekswithblogs.net/RockStarCoder/archive/2009/11/19/locating-your-mediaelement-video-source-file-in-a-silverlight-3.aspx</feedburner:origLink></item><item><title>Silverlight Cream for November 19, 2009 -- #735</title><link>http://feedproxy.google.com/~r/geekswithblogs/~3/w7vpUwf8Zdo/136414.aspx</link><pubDate>Thu, 19 Nov 2009 17:26:49 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/WynApseTechnicalMusings/archive/2009/11/19/136414.aspx</guid><wfw:comment>http://geekswithblogs.net/WynApseTechnicalMusings/comments/136414.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/WynApseTechnicalMusings/comments/commentRss/136414.aspx</wfw:commentRss><comments>http://geekswithblogs.net/WynApseTechnicalMusings/archive/2009/11/19/136414.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/WynApseTechnicalMusings/services/trackbacks/136414.aspx</trackback:ping><source url="http://geekswithblogs.net/WynApseTechnicalMusings/rss.aspx">Silverlight Cream for November 19, 2009 -- #735</source><description>&lt;p&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;font face="tahoma"&gt;&lt;b&gt;Silverlight 4 Overview Postings&lt;/b&gt;&lt;/font&gt;&lt;/span&gt;&lt;font face="tahoma"&gt;&lt;br /&gt;
&lt;br /&gt;
Every time there's a beta or a release I try a different way to get all the good stuff out. I waited until today, and am scooping up all the overview blog posts, and posting them first in this post. I've got a few submissions I'll get out later today and then I'll start catching up with everyone as the days go on... I've tagged 63 posts so far! -- oh, and I added a "4 Beta" tag on Silverlight Cream, so that's ready to roll&lt;br /&gt;
&lt;br /&gt;
For now, here is the (SL4ß Overview) end-result of looking at 396 blogs at varying times since 5:30 this morning: &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Andy Beaulieu&lt;/b&gt; has a post up: &lt;a href="http://www.andybeaulieu.com/Home/tabid/67/EntryID/181/Default.aspx"&gt;&lt;u&gt;Silverlight 4 Beta Summary&lt;/u&gt;&lt;/a&gt; with links out to his and other posts &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Adam Kinney&lt;/b&gt; reports a &lt;a href="http://adamkinney.wordpress.com/2009/11/18/rundown-of-silverlight-4-beta-features-and-6-hands-on-labs/"&gt;&lt;u&gt;Rundown of Silverlight 4 Beta Features and 6 Hands on Labs&lt;/u&gt;&lt;/a&gt; with lots of goodies &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;David Anson&lt;/b&gt; discusses SL4: &lt;a href="http://blogs.msdn.com/delay/archive/2009/11/18/silverlight-4-beta-is-out-and-the-toolkit-has-it-covered-silverlight-toolkit-november-2009-release-now-available-for-silverlight-3-and-4.aspx"&gt;&lt;u&gt;Silverlight 4 Beta is out - and the Toolkit has it covered! [Silverlight Toolkit November 2009 release now available for Silverlight 3 and 4!]&lt;/u&gt;&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Stefan Olson&lt;/b&gt; already has a list up of &lt;a href="http://www.olsonsoft.com/blogs/stefanolson/post/Bugs-fixed-(or-not)-in-Silverlight-4-Beta.aspx"&gt;&lt;u&gt;Bugs fixed (or not) in Silverlight 4 Beta&lt;/u&gt;&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Ning Zhang&lt;/b&gt; reports and demonstrates that &lt;a href="http://www.ningzhang.org/2009/11/18/silverlight-4-adds-arabic-support/"&gt;&lt;u&gt;Silverlight 4 Adds Arabic Support&lt;/u&gt;&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;John Papa&lt;/b&gt; has some good information and links: &lt;a href="http://johnpapa.net/silverlight/silverlight-4-beta-announced-at-pdc09-great-learning-material-too/"&gt;&lt;u&gt;Silverlight 4 Beta Announced at PDC09: Great Learning Material Too!&lt;/u&gt;&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Chris Anderson&lt;/b&gt; posted this one from watching the keynote: &lt;a href="http://chrisa.wordpress.com/2009/11/19/pdc09-news/"&gt;&lt;u&gt;PDC09 News&lt;/u&gt;&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Nikhil Kothari&lt;/b&gt; has a great overview of and links to the PDC demos: &lt;a href="http://www.nikhilk.net/Silverlight4-Killer-Demos-At-PDC09.aspx"&gt;&lt;u&gt;Silverlight 4 Debuts with Killer Demos at PDC09&lt;/u&gt;&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Shawn Wildermuth&lt;/b&gt;'s post I mentioned yesterday in my mad dash to post: &lt;a href="http://wildermuth.com/2009/11/18/Silverlight_4_Beta_Announced!"&gt;&lt;u&gt;Silverlight 4 Beta Announced!&lt;/u&gt;&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Koen Zwikstra&lt;/b&gt; is nothing if not efficient... he's got a Silverlight 4 Beta version of SilverlightSpy up already: &lt;a href="http://firstfloorsoftware.com/blog/silverlight-spy-3-0-0-5/"&gt;&lt;u&gt;Silverlight Spy 3.0.0.5&lt;/u&gt;&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
And if you thought the &lt;b&gt;Expression Blend and Design&lt;/b&gt; folks were napping: &lt;a href="http://blogs.msdn.com/expression/archive/2009/11/18/download-expression-blend-preview-for-net-4.aspx"&gt;&lt;u&gt;Download Expression Blend Preview for .NET 4 &lt;/u&gt;&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Tim Heuer&lt;/b&gt;'s great post of yesterday referenced by *everyone*: &lt;a href="http://timheuer.com/blog/archive/2009/11/18/whats-new-in-silverlight-4-complete-guide-new-features.aspx"&gt;&lt;u&gt;Silverlight 4 Beta – A guide to the new features&lt;/u&gt;&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Andrea Boschin&lt;/b&gt; has a post and some sample code up: &lt;a href="http://www.silverlightplayground.org/post/2009/11/18/Silverlight-40-beta-released.aspx"&gt;&lt;u&gt;Silverlight 4.0 beta released&lt;/u&gt;&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;András Velvárt&lt;/b&gt; has a good list of what's new: &lt;a href="http://dotneteers.net/blogs/vbandi/archive/2009/11/18/discovering-silverlight-4-what-is-new.aspx"&gt;&lt;u&gt;Discovering Silverlight 4 – What is new?&lt;/u&gt;&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;The Silverlight SDK&lt;/b&gt; has a couple good posts up. First the obligatorey &lt;a href="http://blogs.msdn.com/silverlight_sdk/archive/2009/11/18/silverlight-4-beta-released.aspx"&gt;&lt;u&gt;Silverlight 4 Beta Released!&lt;/u&gt;&lt;/a&gt; with a ton of links, then &lt;a href="http://blogs.msdn.com/silverlight_sdk/archive/2009/11/05/silverlight-4-beta-bugs.aspx"&gt;&lt;u&gt;Silverlight 4 Beta Bugs&lt;/u&gt;&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Katrien De Graeve&lt;/b&gt; has a good post up with links: &lt;a href="http://blogs.msdn.com/katriend/archive/2009/11/19/silverlight-4-beta-overview-of-the-new-features.aspx"&gt;&lt;u&gt;Silverlight 4 Beta – Overview of the new features &lt;/u&gt;&lt;/a&gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;font color="#0000ff"&gt;&lt;strong&gt;Stay in the 'Light!&lt;/strong&gt;&lt;/font&gt;&lt;br /&gt;
&lt;center&gt;   &lt;hr width="50%" /&gt;
&lt;a href="http://twitter.com/SilverlightNews"&gt;&lt;u&gt;Twitter SilverlightNews&lt;/u&gt;&lt;/a&gt; |    &lt;a href="http://twitter.com/WynApse"&gt;&lt;u&gt;Twitter WynApse&lt;/u&gt;&lt;/a&gt; |    &lt;a href="http://www.wynapse.com"&gt;&lt;u&gt;WynApse.com&lt;/u&gt;&lt;/a&gt; |    &lt;a href="http://www.wynapse.com/TaggedPosts.aspx"&gt;&lt;u&gt;Tagged Posts&lt;/u&gt;&lt;/a&gt; |    &lt;a href="http://www.silverlightcream.com"&gt;&lt;u&gt;SilverlightCream&lt;/u&gt;&lt;/a&gt; &lt;br /&gt;
&lt;a href="http://tech.groups.yahoo.com/group/SilverlightCream/join"&gt;&lt;u&gt;Join me @ SilverlightCream&lt;/u&gt;&lt;/a&gt; |    &lt;a href="http://www.phoenixsilverlight.net"&gt;&lt;u&gt;Phoenix Silverlight User Group&lt;/u&gt;&lt;/a&gt;   &lt;br /&gt;
&lt;/center&gt;  &lt;br /&gt;
&lt;br /&gt;
Technorati Tags:     &lt;a rel="tag" href="http://technorati.com/tag/Silverlight"&gt;&lt;img alt=" " src="http://static.technorati.com/static/img/pub/icon-utag-16x13.png?tag=Silverlight" style="border: 0pt none ; vertical-align: middle; margin-left: 0.4em;" /&gt;Silverlight&lt;/a&gt;        &lt;a rel="tag" href="http://technorati.com/tag/silverlight-3"&gt;&lt;img alt=" " src="http://static.technorati.com/static/img/pub/icon-utag-16x13.png?tag=silverlight-3" style="border: 0pt none ; vertical-align: middle; margin-left: 0.4em;" /&gt;Silverlight 3&lt;/a&gt;        &lt;a rel="tag" href="http://technorati.com/tag/silverlight-4"&gt;&lt;img alt=" " src="http://static.technorati.com/static/img/pub/icon-utag-16x13.png?tag=silverlight-4" style="border: 0pt none ; vertical-align: middle; margin-left: 0.4em;" /&gt;Silverlight 4&lt;/a&gt;        &lt;a rel="tag" href="http://technorati.com/tag/SilverlightCream"&gt;&lt;img alt=" " src="http://static.technorati.com/static/img/pub/icon-utag-16x13.png?tag=SilverlightCream" style="border: 0pt none ; vertical-align: middle; margin-left: 0.4em;" /&gt;SilverlightCream&lt;/a&gt;  &lt;/font&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136414"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136414" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/WynApseTechnicalMusings/aggbug/136414.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/w7vpUwf8Zdo" height="1" width="1"/&gt;</description><dc:creator>Dave Campbell</dc:creator><feedburner:origLink>http://geekswithblogs.net/WynApseTechnicalMusings/archive/2009/11/19/136414.aspx</feedburner:origLink></item><item><title>Time for a new computer!</title><link>http://feedproxy.google.com/~r/geekswithblogs/~3/5tDQphObznw/time-for-a-new-computer.aspx</link><pubDate>Thu, 19 Nov 2009 15:10:19 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/mbcrump/archive/2009/11/19/time-for-a-new-computer.aspx</guid><wfw:comment>http://geekswithblogs.net/mbcrump/comments/136413.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/mbcrump/comments/commentRss/136413.aspx</wfw:commentRss><comments>http://geekswithblogs.net/mbcrump/archive/2009/11/19/time-for-a-new-computer.aspx#comment</comments><slash:comments>2</slash:comments><trackback:ping>http://geekswithblogs.net/mbcrump/services/trackbacks/136413.aspx</trackback:ping><source url="http://geekswithblogs.net/mbcrump/rss.aspx">Time for a new computer!</source><description>&lt;p&gt;I have finally completeed building my computer. So far, it is very fast. I am using Windows 7 x64 and I am amazed that I have not had many problems. Check out the build and leave comments below.&lt;/p&gt;
&lt;table cellspacing="0" cellpadding="0" border="0" style="border-collapse: collapse;"&gt;
    &lt;tbody&gt;
        &lt;tr&gt;
            &lt;td valign="top" width="221" style="border: 1pt solid black; padding: 0in 5.4pt; width: 165.45pt;"&gt;
            &lt;div&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;Part&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="210" style="border-style: solid solid solid none; border-color: black black black -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0in 5.4pt; width: 157.15pt;"&gt;
            &lt;div&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;New Machine Q4 - 2009&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="208" style="border-style: solid solid solid none; border-color: black black black -moz-use-text-color; border-width: 1pt 1pt 1pt medium; padding: 0in 5.4pt; width: 156.2pt;"&gt;
            &lt;div&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;Old Machine Q4 -2004&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top" width="221" style="border-style: none solid solid; border-color: -moz-use-text-color black black; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 165.45pt;"&gt;
            &lt;div&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;CPU&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="210" style="border-style: none solid solid none; border-color: -moz-use-text-color black black -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 157.15pt;"&gt;
            &lt;div&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;Q6600 4 Cores @ 2.4Ghz&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="208" style="border-style: none solid solid none; border-color: -moz-use-text-color black black -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 156.2pt;"&gt;
            &lt;div&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;Athlon 64 4000+&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top" width="221" style="border-style: none solid solid; border-color: -moz-use-text-color black black; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 165.45pt;"&gt;
            &lt;div&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;Motherboard&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="210" style="border-style: none solid solid none; border-color: -moz-use-text-color black black -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 157.15pt;"&gt;
            &lt;div&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;Intel G31&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="208" style="border-style: none solid solid none; border-color: -moz-use-text-color black black -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 156.2pt;"&gt;
            &lt;div&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;Abit AV8 &lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top" width="221" style="border-style: none solid solid; border-color: -moz-use-text-color black black; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 165.45pt;"&gt;
            &lt;div&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;RAM&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="210" style="border-style: none solid solid none; border-color: -moz-use-text-color black black -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 157.15pt;"&gt;
            &lt;div&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;4GB DDR2&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="208" style="border-style: none solid solid none; border-color: -moz-use-text-color black black -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 156.2pt;"&gt;
            &lt;div&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;2GB DDR&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top" width="221" style="border-style: none solid solid; border-color: -moz-use-text-color black black; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 165.45pt;"&gt;
            &lt;div&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;HardDrive 1 (SATA)&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="210" style="border-style: none solid solid none; border-color: -moz-use-text-color black black -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 157.15pt;"&gt;
            &lt;div&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;1.5TB&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="208" style="border-style: none solid solid none; border-color: -moz-use-text-color black black -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 156.2pt;"&gt;
            &lt;div&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;160GB&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top" width="221" style="border-style: none solid solid; border-color: -moz-use-text-color black black; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 165.45pt;"&gt;
            &lt;div&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;HardDrive 2 (SATA)&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="210" style="border-style: none solid solid none; border-color: -moz-use-text-color black black -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 157.15pt;"&gt;
            &lt;div&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;None&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="208" style="border-style: none solid solid none; border-color: -moz-use-text-color black black -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 156.2pt;"&gt;
            &lt;div&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;400GB&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top" width="221" style="border-style: none solid solid; border-color: -moz-use-text-color black black; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 165.45pt;"&gt;
            &lt;div&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;Video&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="210" style="border-style: none solid solid none; border-color: -moz-use-text-color black black -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 157.15pt;"&gt;
            &lt;div&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;Geforce 8600GT (PCI-E)&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="208" style="border-style: none solid solid none; border-color: -moz-use-text-color black black -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 156.2pt;"&gt;
            &lt;div&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;Geforce 6600GT (AGP)&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top" width="221" style="border-style: none solid solid; border-color: -moz-use-text-color black black; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 165.45pt;"&gt;
            &lt;div&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;CD/DVD Drive&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="210" style="border-style: none solid solid none; border-color: -moz-use-text-color black black -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 157.15pt;"&gt;
            &lt;div&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;CD/Dvd Reader&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="208" style="border-style: none solid solid none; border-color: -moz-use-text-color black black -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 156.2pt;"&gt;
            &lt;div&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;CD/Dvd Burner&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top" width="221" style="border-style: none solid solid; border-color: -moz-use-text-color black black; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 165.45pt;"&gt;
            &lt;div&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;Sound Card&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="210" style="border-style: none solid solid none; border-color: -moz-use-text-color black black -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 157.15pt;"&gt;
            &lt;div&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;7.1 Channel Surround Sound&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="208" style="border-style: none solid solid none; border-color: -moz-use-text-color black black -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 156.2pt;"&gt;
            &lt;div&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;Integrated Sound&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top" width="221" style="border-style: none solid solid; border-color: -moz-use-text-color black black; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 165.45pt;"&gt;
            &lt;div&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;TV Tuner&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="210" style="border-style: none solid solid none; border-color: -moz-use-text-color black black -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 157.15pt;"&gt;
            &lt;div&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;Hauppauge TV Tuner with Remote&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="208" style="border-style: none solid solid none; border-color: -moz-use-text-color black black -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 156.2pt;"&gt;
            &lt;div&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;None&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
            &lt;td valign="top" width="221" style="border-style: none solid solid; border-color: -moz-use-text-color black black; border-width: medium 1pt 1pt; padding: 0in 5.4pt; width: 165.45pt;"&gt;
            &lt;div&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;Total Price&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="210" style="border-style: none solid solid none; border-color: -moz-use-text-color black black -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 157.15pt;"&gt;
            &lt;div&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;Q6600 - $130&lt;/span&gt;&lt;/div&gt;
            &lt;div&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;HDD - $110&lt;/span&gt;&lt;/div&gt;
            &lt;div&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;Sound Card - $11&lt;/span&gt;&lt;/div&gt;
            &lt;div&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;TV Tuner - $51&lt;/span&gt;&lt;/div&gt;
            &lt;div&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;Total Invested $302&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
            &lt;td valign="top" width="208" style="border-style: none solid solid none; border-color: -moz-use-text-color black black -moz-use-text-color; border-width: medium 1pt 1pt medium; padding: 0in 5.4pt; width: 156.2pt;"&gt;
            &lt;div&gt;&lt;span style="color: rgb(31, 73, 125);"&gt;$800 Total Price&lt;/span&gt;&lt;/div&gt;
            &lt;/td&gt;
        &lt;/tr&gt;
    &lt;/tbody&gt;
&lt;/table&gt;
&lt;div&gt; &lt;/div&gt;
&lt;div&gt; &lt;a target="_self" href="http://img692.imageshack.us/img692/3053/capture1gb.jpg"&gt;&lt;img height="395" width="407" src="/images/geekswithblogs_net/mbcrump/Capture1.JPG" alt="" /&gt;&lt;br /&gt;
&lt;/a&gt;&lt;/div&gt;
&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136413"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136413" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/mbcrump/aggbug/136413.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/5tDQphObznw" height="1" width="1"/&gt;</description><dc:creator>mbcrump</dc:creator><feedburner:origLink>http://geekswithblogs.net/mbcrump/archive/2009/11/19/time-for-a-new-computer.aspx</feedburner:origLink></item><item><title>Hurray: NUnit's equivalent for MsTest's AssemblyInitialise is SetupFixture!</title><link>http://feedproxy.google.com/~r/geekswithblogs/~3/33vuL5oVeWQ/hurray-nunits-equivalent-for-mstests-assemblyinitialise-is-setupfixture.aspx</link><pubDate>Thu, 19 Nov 2009 14:13:02 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/marocanu2001/archive/2009/11/19/hurray-nunits-equivalent-for-mstests-assemblyinitialise-is-setupfixture.aspx</guid><wfw:comment>http://geekswithblogs.net/marocanu2001/comments/136412.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/marocanu2001/comments/commentRss/136412.aspx</wfw:commentRss><comments>http://geekswithblogs.net/marocanu2001/archive/2009/11/19/hurray-nunits-equivalent-for-mstests-assemblyinitialise-is-setupfixture.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/marocanu2001/services/trackbacks/136412.aspx</trackback:ping><source url="http://geekswithblogs.net/marocanu2001/rss.aspx">Hurray: NUnit's equivalent for MsTest's AssemblyInitialise is SetupFixture!</source><description>&lt;p&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Arial;"&gt;We used MsTest framework for a project that mainly had integration tests for Wcf Services, and found particularly useful to use &lt;span style="color: rgb(153, 204, 0);"&gt;&lt;strong&gt;AssemblyInitialise&lt;/strong&gt; &lt;/span&gt;method to start the services hosts before all the tests are run and &lt;span style="color: rgb(153, 204, 0);"&gt;&lt;strong&gt;AssemblyCleanup&lt;/strong&gt; &lt;/span&gt;to stop all the hosts after all the tests in the &lt;span style="color: rgb(153, 204, 0);"&gt;assembly &lt;/span&gt;have run.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Arial;"&gt;At some point, the company decided they would like to change this project to use NUnit instead of MsTest (for sake of uniformity, as all thi other project were using NUnit).&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Arial;"&gt;The only problem that I saw there was that I didn't find any easy way to simulate this AssemblyInitialise and AssemblyCleanup methods.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Arial;"&gt;But here we are saved, as someone told me about this &lt;span style="color: rgb(153, 204, 0);"&gt;&lt;strong&gt;SetupFixture&lt;/strong&gt; &lt;/span&gt;which works like this:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;&lt;meta content="text/html; charset=utf-8" http-equiv="Content-Type" /&gt;
&lt;meta content="Word.Document" name="ProgId" /&gt;
&lt;meta content="Microsoft Word 12" name="Generator" /&gt;
&lt;meta content="Microsoft Word 12" name="Originator" /&gt;
&lt;link href="file:///C:%5CDOCUME%7E1%5CDEVELO%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_filelist.xml" rel="File-List" /&gt;
&lt;link href="file:///C:%5CDOCUME%7E1%5CDEVELO%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_themedata.thmx" rel="themeData" /&gt;
&lt;link href="file:///C:%5CDOCUME%7E1%5CDEVELO%7E1%5CLOCALS%7E1%5CTemp%5Cmsohtmlclip1%5C01%5Cclip_colorschememapping.xml" rel="colorSchemeMapping" /&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Arial;"&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
&lt;w:WordDocument&gt;
&lt;w:View&gt;Normal&lt;/w:View&gt;
&lt;w:Zoom&gt;0&lt;/w:Zoom&gt;
&lt;w:TrackMoves /&gt;
&lt;w:TrackFormatting /&gt;
&lt;w:PunctuationKerning /&gt;
&lt;w:ValidateAgainstSchemas /&gt;
&lt;w:SaveIfXMLInvalid&gt;false&lt;/w:SaveIfXMLInvalid&gt;
&lt;w:IgnoreMixedContent&gt;false&lt;/w:IgnoreMixedContent&gt;
&lt;w:AlwaysShowPlaceholderText&gt;false&lt;/w:AlwaysShowPlaceholderText&gt;
&lt;w:DoNotPromoteQF /&gt;
&lt;w:LidThemeOther&gt;EN-GB&lt;/w:LidThemeOther&gt;
&lt;w:LidThemeAsian&gt;X-NONE&lt;/w:LidThemeAsian&gt;
&lt;w:LidThemeComplexScript&gt;X-NONE&lt;/w:LidThemeComplexScript&gt;
&lt;w:Compatibility&gt;
&lt;w:BreakWrappedTables /&gt;
&lt;w:SnapToGridInCell /&gt;
&lt;w:WrapTextWithPunct /&gt;
&lt;w:UseAsianBreakRules /&gt;
&lt;w:DontGrowAutofit /&gt;
&lt;w:SplitPgBreakAndParaMark /&gt;
&lt;w:DontVertAlignCellWithSp /&gt;
&lt;w:DontBreakConstrainedForcedTables /&gt;
&lt;w:DontVertAlignInTxbx /&gt;
&lt;w:Word11KerningPairs /&gt;
&lt;w:CachedColBalance /&gt;
&lt;/w:Compatibility&gt;
&lt;w:BrowserLevel&gt;MicrosoftInternetExplorer4&lt;/w:BrowserLevel&gt;
&lt;m:mathPr&gt;
&lt;m:mathFont m:val="Cambria Math" /&gt;
&lt;m:brkBin m:val="before" /&gt;
&lt;m:brkBinSub m:val="&amp;#45;-" /&gt;
&lt;m:smallFrac m:val="off" /&gt;
&lt;m:dispDef /&gt;
&lt;m:lMargin m:val="0" /&gt;
&lt;m:rMargin m:val="0" /&gt;
&lt;m:defJc m:val="centerGroup" /&gt;
&lt;m:wrapIndent m:val="1440" /&gt;
&lt;m:intLim m:val="subSup" /&gt;
&lt;m:naryLim m:val="undOvr" /&gt;
&lt;/m:mathPr&gt;&lt;/w:WordDocument&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;!--[if gte mso 9]&gt;&lt;xml&gt;
&lt;w:LatentStyles DefLockedState="false" DefUnhideWhenUsed="true"
DefSemiHidden="true" DefQFormat="false" DefPriority="99"
LatentStyleCount="267"&gt;
&lt;w:LsdException Locked="false" Priority="0" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Normal" /&gt;
&lt;w:LsdException Locked="false" Priority="9" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="heading 1" /&gt;
&lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 2" /&gt;
&lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 3" /&gt;
&lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 4" /&gt;
&lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 5" /&gt;
&lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 6" /&gt;
&lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 7" /&gt;
&lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 8" /&gt;
&lt;w:LsdException Locked="false" Priority="9" QFormat="true" Name="heading 9" /&gt;
&lt;w:LsdException Locked="false" Priority="39" Name="toc 1" /&gt;
&lt;w:LsdException Locked="false" Priority="39" Name="toc 2" /&gt;
&lt;w:LsdException Locked="false" Priority="39" Name="toc 3" /&gt;
&lt;w:LsdException Locked="false" Priority="39" Name="toc 4" /&gt;
&lt;w:LsdException Locked="false" Priority="39" Name="toc 5" /&gt;
&lt;w:LsdException Locked="false" Priority="39" Name="toc 6" /&gt;
&lt;w:LsdException Locked="false" Priority="39" Name="toc 7" /&gt;
&lt;w:LsdException Locked="false" Priority="39" Name="toc 8" /&gt;
&lt;w:LsdException Locked="false" Priority="39" Name="toc 9" /&gt;
&lt;w:LsdException Locked="false" Priority="35" QFormat="true" Name="caption" /&gt;
&lt;w:LsdException Locked="false" Priority="10" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Title" /&gt;
&lt;w:LsdException Locked="false" Priority="1" Name="Default Paragraph Font" /&gt;
&lt;w:LsdException Locked="false" Priority="11" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtitle" /&gt;
&lt;w:LsdException Locked="false" Priority="22" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Strong" /&gt;
&lt;w:LsdException Locked="false" Priority="20" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Emphasis" /&gt;
&lt;w:LsdException Locked="false" Priority="59" SemiHidden="false"
UnhideWhenUsed="false" Name="Table Grid" /&gt;
&lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Placeholder Text" /&gt;
&lt;w:LsdException Locked="false" Priority="1" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="No Spacing" /&gt;
&lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading" /&gt;
&lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List" /&gt;
&lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid" /&gt;
&lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1" /&gt;
&lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2" /&gt;
&lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1" /&gt;
&lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2" /&gt;
&lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1" /&gt;
&lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2" /&gt;
&lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3" /&gt;
&lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List" /&gt;
&lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading" /&gt;
&lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List" /&gt;
&lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid" /&gt;
&lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 1" /&gt;
&lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 1" /&gt;
&lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 1" /&gt;
&lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 1" /&gt;
&lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 1" /&gt;
&lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 1" /&gt;
&lt;w:LsdException Locked="false" UnhideWhenUsed="false" Name="Revision" /&gt;
&lt;w:LsdException Locked="false" Priority="34" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="List Paragraph" /&gt;
&lt;w:LsdException Locked="false" Priority="29" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Quote" /&gt;
&lt;w:LsdException Locked="false" Priority="30" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Quote" /&gt;
&lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 1" /&gt;
&lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 1" /&gt;
&lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 1" /&gt;
&lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 1" /&gt;
&lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 1" /&gt;
&lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 1" /&gt;
&lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 1" /&gt;
&lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 1" /&gt;
&lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 2" /&gt;
&lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 2" /&gt;
&lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 2" /&gt;
&lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 2" /&gt;
&lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 2" /&gt;
&lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 2" /&gt;
&lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 2" /&gt;
&lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 2" /&gt;
&lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 2" /&gt;
&lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 2" /&gt;
&lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 2" /&gt;
&lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 2" /&gt;
&lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 2" /&gt;
&lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 2" /&gt;
&lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 3" /&gt;
&lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 3" /&gt;
&lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 3" /&gt;
&lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 3" /&gt;
&lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 3" /&gt;
&lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 3" /&gt;
&lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 3" /&gt;
&lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 3" /&gt;
&lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 3" /&gt;
&lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 3" /&gt;
&lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 3" /&gt;
&lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 3" /&gt;
&lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 3" /&gt;
&lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 3" /&gt;
&lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 4" /&gt;
&lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 4" /&gt;
&lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 4" /&gt;
&lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 4" /&gt;
&lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 4" /&gt;
&lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 4" /&gt;
&lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 4" /&gt;
&lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 4" /&gt;
&lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 4" /&gt;
&lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 4" /&gt;
&lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 4" /&gt;
&lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 4" /&gt;
&lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 4" /&gt;
&lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 4" /&gt;
&lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 5" /&gt;
&lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 5" /&gt;
&lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 5" /&gt;
&lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 5" /&gt;
&lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 5" /&gt;
&lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 5" /&gt;
&lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 5" /&gt;
&lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 5" /&gt;
&lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 5" /&gt;
&lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 5" /&gt;
&lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 5" /&gt;
&lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 5" /&gt;
&lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 5" /&gt;
&lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 5" /&gt;
&lt;w:LsdException Locked="false" Priority="60" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Shading Accent 6" /&gt;
&lt;w:LsdException Locked="false" Priority="61" SemiHidden="false"
UnhideWhenUsed="false" Name="Light List Accent 6" /&gt;
&lt;w:LsdException Locked="false" Priority="62" SemiHidden="false"
UnhideWhenUsed="false" Name="Light Grid Accent 6" /&gt;
&lt;w:LsdException Locked="false" Priority="63" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 1 Accent 6" /&gt;
&lt;w:LsdException Locked="false" Priority="64" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Shading 2 Accent 6" /&gt;
&lt;w:LsdException Locked="false" Priority="65" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 1 Accent 6" /&gt;
&lt;w:LsdException Locked="false" Priority="66" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium List 2 Accent 6" /&gt;
&lt;w:LsdException Locked="false" Priority="67" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 1 Accent 6" /&gt;
&lt;w:LsdException Locked="false" Priority="68" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 2 Accent 6" /&gt;
&lt;w:LsdException Locked="false" Priority="69" SemiHidden="false"
UnhideWhenUsed="false" Name="Medium Grid 3 Accent 6" /&gt;
&lt;w:LsdException Locked="false" Priority="70" SemiHidden="false"
UnhideWhenUsed="false" Name="Dark List Accent 6" /&gt;
&lt;w:LsdException Locked="false" Priority="71" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Shading Accent 6" /&gt;
&lt;w:LsdException Locked="false" Priority="72" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful List Accent 6" /&gt;
&lt;w:LsdException Locked="false" Priority="73" SemiHidden="false"
UnhideWhenUsed="false" Name="Colorful Grid Accent 6" /&gt;
&lt;w:LsdException Locked="false" Priority="19" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Emphasis" /&gt;
&lt;w:LsdException Locked="false" Priority="21" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Emphasis" /&gt;
&lt;w:LsdException Locked="false" Priority="31" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Subtle Reference" /&gt;
&lt;w:LsdException Locked="false" Priority="32" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Intense Reference" /&gt;
&lt;w:LsdException Locked="false" Priority="33" SemiHidden="false"
UnhideWhenUsed="false" QFormat="true" Name="Book Title" /&gt;
&lt;w:LsdException Locked="false" Priority="37" Name="Bibliography" /&gt;
&lt;w:LsdException Locked="false" Priority="39" QFormat="true" Name="TOC Heading" /&gt;
&lt;/w:LatentStyles&gt;
&lt;/xml&gt;&lt;![endif]--&gt;&lt;/span&gt;&lt;/span&gt;&lt;style type="text/css"&gt;&lt;/style&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Arial;"&gt;&lt;!--[if gte mso 10]&gt;
&lt;style&gt;
/* Style Definitions */
table.MsoNormalTable
{mso-style-name:"Table Normal";
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-qformat:yes;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:11.0pt;
font-family:"Calibri","sans-serif";
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-fareast-font-family:"Times New Roman";
mso-fareast-theme-font:minor-fareast;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-bidi-font-family:"Times New Roman";
mso-bidi-theme-font:minor-bidi;}
&lt;/style&gt;
&lt;![endif]--&gt; &lt;/span&gt;&lt;/span&gt;




&lt;p&gt;
&lt;/p&gt;&lt;meta content="text/html; charset=utf-8" http-equiv="Content-Type" /&gt;
&lt;meta content="Word.Document" name="ProgId" /&gt;
&lt;meta content="Microsoft Word 12" name="Generator" /&gt;
&lt;meta content="Microsoft Word 12" name="Originator" /&gt;
&lt;p class="MsoNormal"&gt; &lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Arial;"&gt;The class with this attribute can contain a &lt;span style="color: rgb(153, 204, 0);"&gt;&lt;strong&gt;SetUp&lt;/strong&gt; &lt;/span&gt;method and a &lt;span style="color: rgb(153, 204, 0);"&gt;&lt;strong&gt;TearDown&lt;/strong&gt; &lt;/span&gt;method.&lt;br /&gt;
The setup method from the Setup fixture  is executed before all the tests from a &lt;span style="color: rgb(153, 204, 0);"&gt;namespace &lt;/span&gt;are executed, TearDown method, after all the tests in a namespace are executed.&lt;br /&gt;
&lt;br /&gt;
This was very useful for out DB integration tests as well, as we needed to setup database stuff before executing all the DB integration tests.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;span style="font-size: small;"&gt;
&lt;p&gt;&lt;span style="font-family: Arial;"&gt; &lt;/span&gt;&lt;/p&gt;
&lt;/span&gt;&lt;span style="font-family: Arial;"&gt;&lt;span style="font-size: small;"&gt;
&lt;p class="MsoNormal"&gt; &lt;/p&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;
&lt;p class="MsoNormal"&gt; &lt;/p&gt;
&lt;/span&gt;&lt;span style="font-size: small;"&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;
&lt;/span&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Arial;"&gt;  &lt;/span&gt;&lt;/span&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Arial;"&gt;So here we are, saved and NUnit is still better than MsTest ! (but not better than &lt;span style="color: rgb(153, 204, 0);"&gt;MbUnit &lt;/span&gt;, imho) :)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Arial;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;





&lt;p&gt;&lt;span style="font-size: small;"&gt;&lt;span style="font-family: Arial;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136412"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136412" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/marocanu2001/aggbug/136412.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/33vuL5oVeWQ" height="1" width="1"/&gt;</description><dc:creator>marocanu2001</dc:creator><feedburner:origLink>http://geekswithblogs.net/marocanu2001/archive/2009/11/19/hurray-nunits-equivalent-for-mstests-assemblyinitialise-is-setupfixture.aspx</feedburner:origLink></item><item><title>Getting Started with Entity Framework 4 - Templated Code Generation</title><link>http://feedproxy.google.com/~r/geekswithblogs/~3/jkGEIT95s6U/getting-started-with-entity-framework-4---templated-code-generation.aspx</link><pubDate>Thu, 19 Nov 2009 13:47:05 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/iupdateable/archive/2009/11/19/getting-started-with-entity-framework-4---templated-code-generation.aspx</guid><wfw:comment>http://geekswithblogs.net/iupdateable/comments/136411.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/iupdateable/comments/commentRss/136411.aspx</wfw:commentRss><comments>http://geekswithblogs.net/iupdateable/archive/2009/11/19/getting-started-with-entity-framework-4---templated-code-generation.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/iupdateable/services/trackbacks/136411.aspx</trackback:ping><source url="http://geekswithblogs.net/iupdateable/rss.aspx">Getting Started with Entity Framework 4 - Templated Code Generation</source><description>&lt;p&gt;[This is the second in a &lt;a href="http://geekswithblogs.net/iupdateable/category/10944.aspx"&gt;series of posts&lt;/a&gt; on getting started with the new features in Entity Framework 4 based on the demos I did in my session at TechEd Europe in Berlin last week (Nov 2009).]&lt;/p&gt;  &lt;p&gt;Code generation from the Entity Data Model (EDM) has changed significantly in version 4 of the Entity Framework. The product does retain a backwardly compatible model of code generation but also now includes T4 templates for code generation. This is a fantastic addition to the Entity Framework as many developers want to (easily) control the code generated from the EDM to meet their specific needs, which was very difficult to do in version 1 as it depended on the &lt;a href="http://msdn.microsoft.com/en-us/library/y2k85ax6.aspx"&gt;CodeDom&lt;/a&gt;. T4 gives us:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Full control over the code generation from an EDM &lt;/li&gt;    &lt;li&gt;The ability for developers to easily customise the templates produced by Microsoft &lt;/li&gt;    &lt;li&gt;The ability for Microsoft to easily add additional templates in the future &lt;/li&gt;    &lt;li&gt;The ability for developers to easily share templates between projects, teams and companies &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;T4 was first introduced in Visual Studio 2008 and stands for Text Template Transformation Toolkit – a code generation tool similar in capabilities to the likes of &lt;a href="http://www.codesmithtools.com/"&gt;CodeSmith&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;T4 was largely overlooked in Visual Studio 2008, in the main because there was no real UI for T4. In general  I come across very very few developers who have heard of or understand the power of T4. However, now that the Entity Framework team (and the ASP.NET MVC team) have adopted T4 wholeheartedly I expect T4 will itself get the attention it deserves.&lt;/p&gt;  &lt;p&gt;The EF team include a single T4 template in Beta 2 but add a further template in CTP2 for self tracking entities  (In Beta 1 they also had a singel template but added an additional two in the companion CTP1).&lt;/p&gt;  &lt;p&gt;By default you are not using T4 if you add a new EDM or if you open a version 1 EDM. You need to enable T4 code gen for your EDM. You do this by right clicking on the EDM design surface and then add in the template(s).&lt;/p&gt;  &lt;p&gt;In Beta 1 this was called (confusingly) &lt;em&gt;Add New Artifact Generation Item&lt;/em&gt;:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/iupdateable/WindowsLiveWriter/EntityFramework4TemplatedCodeGeneration_132FB/image_2.png" rel="lightbox"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/iupdateable/WindowsLiveWriter/EntityFramework4TemplatedCodeGeneration_132FB/image_thumb.png" width="471" height="334" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;In Beta 2 it is renamed to &lt;em&gt;Add Code Generation Item&lt;/em&gt;:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/iupdateable/WindowsLiveWriter/EntityFramework4TemplatedCodeGeneration_132FB/image_16.png" rel="lightbox"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/iupdateable/WindowsLiveWriter/EntityFramework4TemplatedCodeGeneration_132FB/image_thumb_7.png" width="345" height="328" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;This will display the available choices:&lt;/p&gt;  &lt;p&gt;Beta 1 with CTP 1&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/iupdateable/WindowsLiveWriter/EntityFramework4TemplatedCodeGeneration_132FB/image_4.png" rel="lightbox"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/iupdateable/WindowsLiveWriter/EntityFramework4TemplatedCodeGeneration_132FB/image_thumb_1.png" width="640" height="443" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Beta 2 with CTP 2&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/iupdateable/WindowsLiveWriter/EntityFramework4TemplatedCodeGeneration_132FB/image_18.png" rel="lightbox"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/iupdateable/WindowsLiveWriter/EntityFramework4TemplatedCodeGeneration_132FB/image_thumb_8.png" width="640" height="442" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Once you have added a template you will notice that the Custom Tool generation for the EDM is now blank (It normally is the value &lt;em&gt;EntityModelCodeGenerator&lt;/em&gt;):&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/iupdateable/WindowsLiveWriter/EntityFramework4TemplatedCodeGeneration_132FB/image_6.png" rel="lightbox"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/iupdateable/WindowsLiveWriter/EntityFramework4TemplatedCodeGeneration_132FB/image_thumb_2.png" width="256" height="172" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;In my case I have added the POCO Code Generator (which was available in CTP1 for Beta 1 and will reappear in a future CTP for Beta 2). My solution now contains two T4 files – one to generate the Object Context class and another responsible for the generation of a class (and C# file) per Entity in the EDM. Note that a single T4 template can generate several files:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/iupdateable/WindowsLiveWriter/EntityFramework4TemplatedCodeGeneration_132FB/image_10.png" rel="lightbox"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/iupdateable/WindowsLiveWriter/EntityFramework4TemplatedCodeGeneration_132FB/image_thumb_4.png" width="273" height="246" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;If we take a brief look at the contents of SimpleModel.Context.tt:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/iupdateable/WindowsLiveWriter/EntityFramework4TemplatedCodeGeneration_132FB/image_8.png" rel="lightbox"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/iupdateable/WindowsLiveWriter/EntityFramework4TemplatedCodeGeneration_132FB/image_thumb_3.png" width="630" height="482" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;We can see that the text wrapped inside &amp;lt;# #&amp;gt; is evaluated by T4 to ultimately generated the resulting C# files. The code outside is just text in the final output. This approach should feel very familiar to anyone who has developed web sites using classic ASP. For example, this section of SimpleModel.Types.tt:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/iupdateable/WindowsLiveWriter/EntityFramework4TemplatedCodeGeneration_132FB/image_20.png" rel="lightbox"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/iupdateable/WindowsLiveWriter/EntityFramework4TemplatedCodeGeneration_132FB/image_thumb_9.png" width="642" height="201" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;generates the partial class code in the C# file Order.cs:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/iupdateable/WindowsLiveWriter/EntityFramework4TemplatedCodeGeneration_132FB/image_14.png" rel="lightbox"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://geekswithblogs.net/images/geekswithblogs_net/iupdateable/WindowsLiveWriter/EntityFramework4TemplatedCodeGeneration_132FB/image_thumb_6.png" width="585" height="482" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;All pretty straightforward really – although a lot of “smarts” is contained within those .tt files! I will add a more general post on T4 shortly.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136411"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136411" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/iupdateable/aggbug/136411.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/jkGEIT95s6U" height="1" width="1"/&gt;</description><dc:creator>Eric Nelson</dc:creator><feedburner:origLink>http://geekswithblogs.net/iupdateable/archive/2009/11/19/getting-started-with-entity-framework-4---templated-code-generation.aspx</feedburner:origLink></item><item><title>RoundhousE: Version Your Database</title><link>http://feedproxy.google.com/~r/geekswithblogs/~3/PjpKDuNghwA/roundhouse-version-your-database.aspx</link><pubDate>Thu, 19 Nov 2009 07:26:05 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/robz/archive/2009/11/19/roundhouse-version-your-database.aspx</guid><wfw:comment>http://geekswithblogs.net/robz/comments/136410.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/robz/comments/commentRss/136410.aspx</wfw:commentRss><comments>http://geekswithblogs.net/robz/archive/2009/11/19/roundhouse-version-your-database.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/robz/services/trackbacks/136410.aspx</trackback:ping><source url="http://geekswithblogs.net/robz/rss.aspx">RoundhousE: Version Your Database</source><description>&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/robz/WindowsLiveWriter/RoundhousEVersionYourDatabase_5954/RoundhousE_Logo%5B1%5D_2.jpg"&gt;&lt;font size="3" face="Times New Roman"&gt;&lt;img title="RoundhousE Logo" border="0" alt="RoundhousE Logo" align="right" width="244" height="231" style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" src="http://geekswithblogs.net/images/geekswithblogs_net/robz/WindowsLiveWriter/RoundhousEVersionYourDatabase_5954/RoundhousE_Logo%5B1%5D_thumb.jpg" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Times New Roman"&gt; &lt;/font&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;font size="3" face="Times New Roman"&gt;Versioning your database is as important as versioning your code.  How much time do we waste currently before we are even productive when we have to fix or enhance something in a database?&lt;/font&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;a target="_blank" href="http://projectroundhouse.org/"&gt;&lt;font size="3" face="Times New Roman"&gt;RoundhousE&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Times New Roman"&gt; versions your database how you want. The recommended way is to version based on source control, but that may not be your solution. But for a moment let’s pretend it is. &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="3" face="Times New Roman"&gt;Why would versioning your database based on source control be a big help? What happens if you get a prod fix (or work order) to fix a view or a stored procedure (sproc)?  How do you know where in source control that is? Do you even know what repository it lives in? How can you even be sure right away that the item you have in source control directly maps to the item in production? Oh right. You can’t. At least not without doing a manual comparison (or with a diff tool).  And if you are not even familiar with the item, how do you get back to it in source control? You ask someone. And then someone else. And so on until you find someone that knows where you can find that view in source control. “Oh….Samsonite! I was WAYYYY off.”&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="3" face="Times New Roman"&gt;How much time are we using up currently before we are even productive? Probably quite a bit more than we realize. Let’s put it in perspective. You are a new hire today. If I was to point you to a database and tell you to fix a view and update the view in source control, how soon do you think you could be productive? What questions are you going to ask me?&lt;/font&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;font size="3" face="Times New Roman"&gt;Where is the view in source control? When is this needed by? etc etc&lt;/font&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;font size="3" face="Times New Roman"&gt;If your company instead used RoundhousE (RH) you could empower the new hire or any developer that suffers from can’t remember stuff (CRS)! Just point them to the database. Let’s take a moment to see what happens as we run the migration.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="4" face="Times New Roman"&gt;&lt;strong&gt;&lt;u&gt;RoundhousE Versions During Migration&lt;/u&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="3" face="Times New Roman"&gt;Remember our look at the runner? I want to concentrate in just one area.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/robz/WindowsLiveWriter/RoundhousEVersionYourDatabase_5954/image_2.png"&gt;&lt;font size="3" face="Times New Roman"&gt;&lt;img title="Versioning database with version 0.0.0.67 based on http://roundhouse.googlecode.com/svn" border="0" alt="Versioning database with version 0.0.0.67 based on http://roundhouse.googlecode.com/svn" width="644" height="295" style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" src="http://geekswithblogs.net/images/geekswithblogs_net/robz/WindowsLiveWriter/RoundhousEVersionYourDatabase_5954/image_thumb.png" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Times New Roman"&gt; &lt;/font&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;font size="2" face="Lucida Console"&gt;Attempting to &lt;strong&gt;resolve version&lt;/strong&gt; from C:\code\roundhouse\code_drop\deployment\&lt;strong&gt;_BuildInfo.xml&lt;/strong&gt; using &lt;strong&gt;//buildInfo/version&lt;/strong&gt;. &lt;br /&gt;
Found version 0.0.0.67 from C:\code\roundhouse\code_drop\deployment\_BuildInfo.xml. &lt;br /&gt;
Migrating TestRoundhousE from version 0 to 0.0.0.67. &lt;br /&gt;
&lt;strong&gt;Versioning TestRoundhousE database with version 0.0.0.67 based on &lt;/strong&gt;&lt;/font&gt;&lt;a href="http://roundhouse.googlecode.com/svn"&gt;&lt;font size="2" face="Lucida Console"&gt;&lt;strong&gt;http://roundhouse.googlecode.com/svn&lt;/strong&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size="2" face="Lucida Console"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;font size="3" face="Times New Roman"&gt;What exactly is happening here? We are looking into an xml file that contains a version.  RH also asks for the repository the versioning information comes from.  That all gets recorded in the database. &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="3" face="Times New Roman"&gt;What does that build file look like?&lt;/font&gt;&lt;/p&gt;
&lt;div&gt;
&lt;div style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;
&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;font size="3"&gt;&lt;font face="Times New Roman"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color: #800000"&gt;xml&lt;/span&gt; &lt;span style="color: #ff0000"&gt;version&lt;/span&gt;&lt;span style="color: #0000ff"&gt;="1.0"&lt;/span&gt; ?&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;strong&gt;&lt;font size="3"&gt;&lt;font face="Times New Roman"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;buildInfo&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/pre&gt;
&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;font size="3"&gt;&lt;font face="Times New Roman"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;projectName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;RoundhousE&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;projectName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;font size="3"&gt;&lt;font face="Times New Roman"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;companyName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;FerventCoder Software&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;companyName&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;font size="3"&gt;&lt;font face="Times New Roman"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;versionMajor&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;0&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;versionMajor&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;font size="3"&gt;&lt;font face="Times New Roman"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;versionMinor&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;0&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;versionMinor&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;font size="3"&gt;&lt;font face="Times New Roman"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;buildNumber&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;0&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;buildNumber&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;font size="3"&gt;&lt;font face="Times New Roman"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;revision&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;25&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;revision&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;strong&gt;&lt;font size="3"&gt;&lt;font face="Times New Roman"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;version&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;1.0.22.25&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;version&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/pre&gt;
&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;font size="3"&gt;&lt;font face="Times New Roman"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;repositoryPath&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;http://someotherplace/svn/repositoryname/&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;repositoryPath&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;font size="3"&gt;&lt;font face="Times New Roman"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;microsoftNetFramework&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;net-3.5&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;microsoftNetFramework&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;font size="3"&gt;&lt;font face="Times New Roman"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;msbuildConfiguration&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;Release&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;msbuildConfiguration&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;font size="3"&gt;&lt;font face="Times New Roman"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;msbuildPlatform&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;Any CPU&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;msbuildPlatform&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: #f4f4f4; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;font size="3"&gt;&lt;font face="Times New Roman"&gt;  &lt;span style="color: #0000ff"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000"&gt;builtWith&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;UppercuT v. 0.9.0.216&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;builtWith&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;pre style="border-bottom-style: none; padding-bottom: 0px; line-height: 12pt; border-right-style: none; background-color: white; margin: 0em; padding-left: 0px; width: 100%; padding-right: 0px; font-family: consolas, 'Courier New', courier, monospace; border-top-style: none; color: black; font-size: 8pt; border-left-style: none; overflow: visible; padding-top: 0px"&gt;&lt;font size="3"&gt;&lt;font face="Times New Roman"&gt;&lt;span style="color: #0000ff"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000"&gt;buildInfo&lt;/span&gt;&lt;span style="color: #0000ff"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;font size="3" face="Times New Roman"&gt;It is the output of an automated build product called &lt;a target="_blank" href="http://projectuppercut.org"&gt;UppercuT&lt;/a&gt;. Some of you have heard me &lt;a target="_blank" href="http://ferventcoder.com/category/uppercut.aspx"&gt;talk about it before&lt;/a&gt;. It records the version in an xml output file to be used by deployment products etc.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="3" face="Times New Roman"&gt;Now I have a way to find the query at an exact point in source control history!&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="3" face="Times New Roman"&gt;What if I don’t use UppercuT? That’s fine, create something in your automated build to create a simple xml file that contains a version. Then pass the file path and xpath for the version info to RH. &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="3" face="Times New Roman"&gt;Or another way you can get to version is to point to a DLL you have versioned based on source control. &lt;/font&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;font size="2" face="Lucida Console"&gt;Attempting to resolve assembly file version from C:\code\roundhouse\code_drop\RoundhousE\NAnt\&lt;strong&gt;roundhouse.dll&lt;/strong&gt;. &lt;br /&gt;
Migrating TestRoundhousE from version 0.0.0.67 to 0.0.0.67. &lt;br /&gt;
Versioning TestRoundhousE database with version 0.0.0.67 based on &lt;a href="http://roundhouse.googlecode.com/svn"&gt;http://roundhouse.googlecode.com/svn&lt;/a&gt;.&lt;/font&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;font size="3" face="Times New Roman"&gt;RH will automatically pull the file version from the DLL and use it to version the database.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="4" face="Times New Roman"&gt;&lt;strong&gt;&lt;u&gt;Back To Your Empowerment&lt;/u&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="3" face="Times New Roman"&gt;So you query the scripts ran table for the view. You notice version_id is 1.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/robz/WindowsLiveWriter/RoundhousEVersionYourDatabase_5954/image_4.png"&gt;&lt;font size="3" face="Times New Roman"&gt;&lt;img title="Version Id 1 for vw_Dude.sql" border="0" alt="Version Id 1 for vw_Dude.sql" width="516" height="163" style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" src="http://geekswithblogs.net/images/geekswithblogs_net/robz/WindowsLiveWriter/RoundhousEVersionYourDatabase_5954/image_thumb_1.png" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Times New Roman"&gt; &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="3" face="Times New Roman"&gt;Now you query the version table.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/robz/WindowsLiveWriter/RoundhousEVersionYourDatabase_5954/image_6.png"&gt;&lt;font size="3" face="Times New Roman"&gt;&lt;img title="Repository and Version stored in a table. Why didn't I think of that?" border="0" alt="Repository and Version stored in a table. Why didn't I think of that?" width="462" height="76" style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" src="http://geekswithblogs.net/images/geekswithblogs_net/robz/WindowsLiveWriter/RoundhousEVersionYourDatabase_5954/image_thumb_2.png" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Times New Roman"&gt; &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="3" face="Times New Roman"&gt;Boom. You have a path to a repository. You also have an exact point in source to find the item.  You can now look revision 67 versus the current revision in source control.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="3" face="Times New Roman"&gt;You now know exactly where to look. Two steps to productivity. You get that production fix done in no time and we are so impressed we give you a raise on the spot.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="4" face="Times New Roman"&gt;&lt;strong&gt;&lt;u&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/robz/WindowsLiveWriter/RoundhousEVersionYourDatabase_5954/image_10.png"&gt;&lt;img title="Database name is always in source control before the scripts" border="0" alt="Database name is always in source control before the scripts" align="right" width="366" height="343" style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" src="http://geekswithblogs.net/images/geekswithblogs_net/robz/WindowsLiveWriter/RoundhousEVersionYourDatabase_5954/image_thumb_4.png" /&gt;&lt;/a&gt;One Repository – Multiple Databases&lt;/u&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="3" face="Times New Roman"&gt;That’s great, but I hit multiple databases when I deploy. Easy as pie. Do you remember &lt;a target="_blank" href="http://ferventcoder.com/archive/2009/11/15/roundhouse-configuration.aspx"&gt;last time how we said&lt;/a&gt; to always include the database name before the scripts (see the picture to the right)? For each database, it is just another call to RH to run telling it the specific information about the next database. Super simple.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="4" face="Times New Roman"&gt;&lt;strong&gt;&lt;u&gt;Multiple Repositories – One Database&lt;/u&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="3" face="Times New Roman"&gt;What if I have multiple repositories that address the same database? We got you covered. If you have more than one repository versioning a database, they will version the database independently.&lt;/font&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;font size="2" face="Lucida Console"&gt;Found version 1.0.22.25 from C:\code\roundhouse\code_drop\deployment\_BuildInfo.xml. &lt;br /&gt;
Migrating TestRoundhousE from version 0 to 1.0.22.25. &lt;br /&gt;
&lt;strong&gt;Versioning TestRoundhousE database with&lt;/strong&gt; &lt;strong&gt;version 1.0.22.25 based on &lt;/strong&gt;&lt;/font&gt;&lt;a href="http://someotherplace/svn/repositoryname/"&gt;&lt;font size="2" face="Lucida Console"&gt;&lt;strong&gt;http://someotherplace/svn/repositoryname/&lt;/strong&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Times New Roman"&gt;&lt;font size="2" face="Lucida Console"&gt;&lt;strong&gt;.&lt;/strong&gt;&lt;/font&gt; &lt;br /&gt;
&lt;/font&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;font size="3" face="Times New Roman"&gt;Notice how RH said the prior version was 0. That’s because versioning is based on repository. That repository had never ran against this database before. Now looking in the version table, we see two different repositories with two different versions.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://geekswithblogs.net/images/geekswithblogs_net/robz/WindowsLiveWriter/RoundhousEVersionYourDatabase_5954/image_8.png"&gt;&lt;font size="3" face="Times New Roman"&gt;&lt;img title="Two repositories. Two different versions" border="0" alt="Two repositories. Two different versions" width="487" height="86" style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" src="http://geekswithblogs.net/images/geekswithblogs_net/robz/WindowsLiveWriter/RoundhousEVersionYourDatabase_5954/image_thumb_3.png" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="Times New Roman"&gt; &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="4" face="Times New Roman"&gt;&lt;strong&gt;&lt;u&gt;Conclusion&lt;/u&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;&lt;font size="3" face="Times New Roman"&gt;Versioning your database is as important as versioning your code. &lt;/font&gt;&lt;font size="3" face="Times New Roman"&gt;RoundhousE is a very powerful product for migrating your database (rivaling even some paid alternatives). And it’s free. &lt;/font&gt;&lt;font size="3" face="Times New Roman"&gt;RoundhousE is just going to keep getting better. So why not give it a try? DBAs approve. It makes auditors smile. I heard it once helped a lady walk again.&lt;/font&gt;&lt;/p&gt;
&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fferventcoder.com%2farchive%2f2009%2f11%2f19%2froundhouse-version-your-database.aspx"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fferventcoder.com%2farchive%2f2009%2f11%2f19%2froundhouse-version-your-database.aspx" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt; &lt;a rev="vote-for" href="http://dotnetshoutout.com/RoundhousE-Version-Your-Database"&gt;&lt;img alt="Shout it" src="http://dotnetshoutout.com/image.axd?url=http%3A%2F%2Fferventcoder.com%2Farchive%2F2009%2F11%2F19%2Froundhouse-version-your-database.aspx" style="border:0px" /&gt;&lt;/a&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136410"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136410" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/robz/aggbug/136410.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/PjpKDuNghwA" height="1" width="1"/&gt;</description><dc:creator>Robz / Fervent Coder</dc:creator><feedburner:origLink>http://geekswithblogs.net/robz/archive/2009/11/19/roundhouse-version-your-database.aspx</feedburner:origLink></item><item><title>The gem in the BizTalk Administrators toolbox</title><link>http://feedproxy.google.com/~r/geekswithblogs/~3/DBBFUlHmKrk/the-gem-in-the-biztalk-administrators-toolbox.aspx</link><pubDate>Thu, 19 Nov 2009 12:14:02 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/BizTalkMonitoring/archive/2009/11/19/the-gem-in-the-biztalk-administrators-toolbox.aspx</guid><wfw:comment>http://geekswithblogs.net/BizTalkMonitoring/comments/136409.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/BizTalkMonitoring/comments/commentRss/136409.aspx</wfw:commentRss><comments>http://geekswithblogs.net/BizTalkMonitoring/archive/2009/11/19/the-gem-in-the-biztalk-administrators-toolbox.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/BizTalkMonitoring/services/trackbacks/136409.aspx</trackback:ping><source url="http://geekswithblogs.net/BizTalkMonitoring/rss.aspx">The gem in the BizTalk Administrators toolbox</source><description>&lt;div style="margin: 0cm 0cm 10pt"&gt;There seems to be a too strong trend in too many product development organizations: This is the trend to only deliver; don’t get me wrong, delivering quality software on time and within budget is a good thing. The issue is that there is in many cases only focus on delivery of applications and not too much though and focus on how the operational aspect of that software will work.&lt;/div&gt;
&lt;div style="margin: 0cm 0cm 10pt"&gt;This observation applies to almost all types of projects, with integration projects being no exception. Probably one of the most important factors after releasing your well coded and QA’ed system is ensuring that it meets a required level of uptime. The point I am trying to make is that no product development lifecycle can be complete without taking into consideration the monitoring of the product in the intended production environment. Very often system implementations are seen as less than successful due to the fact that a production system has gone down without anyone (except of course the users or downstream systems!) knowing about it.&lt;/div&gt;
&lt;div style="margin: 0cm 0cm 10pt"&gt;BizTalk or any other integration solution for that fact is no different. In fact the potential problem of downtime and system failure can be multiplied by a factor of the number of systems being integrated. This is where the vision of &lt;a href="http://www.ragingbulltech.com/index.php?option=com_content&amp;amp;view=article&amp;amp;id=46&amp;amp;Itemid=53"&gt;&lt;b&gt;Minotaur&lt;/b&gt; &lt;/a&gt;was born.&lt;/div&gt;
&lt;div style="margin: 0cm 0cm 10pt"&gt;Minotaur is an essential component in your operational toolbox that will not only provide your BizTalk administrators with up to the minute monitoring metrics via email and a dashboard, but also provide your administrators with proactive monitoring data to try and ensure that your integration systems stay available and healthy.&lt;/div&gt;
&lt;div style="margin: 0cm 0cm 10pt"&gt;Minotaur takes BizTalk monitoring to the next level; Minotaur will not only monitor your custom built BizTalk product, but also the overall BizTalk Server environment including the BizTalk databases, services and performance metrics. Minotaur can then also be configured to monitor any peripheral applications and services including SOA services that your BizTalk solution depends on. The end result is complete end to end monitoring of BizTalk centric solutions, not just BizTalk application monitoring; A feature that differentiates Minotaur from the rest.&lt;/div&gt;
&lt;div style="margin: 0cm 0cm 10pt"&gt;The &lt;a href="http://www.ragingbulltech.com/"&gt;Raging Bull Tech &lt;/a&gt;vision is also to make effective monitoring of BizTalk Server available not only to big budget organizations, but also to smaller companies. This is why Minotaur has a competitive once-off pricing model. I invite you to visit the Minotaur product page and look at the product yourself, I am sure you will find that takes &lt;b&gt;monitoring BizTalk server&lt;/b&gt; to the next level; Minotaur was designed to be a differentiator in the BizTalk monitoring tool market after all.&lt;/div&gt;
&lt;div style="margin: 0cm 0cm 10pt"&gt;Having now just gone through this shameless punt of the system I am affiliated with, I have to take some time to add that there are a few products in the market today that will provide BizTalk monitoring capabilities. Many of these products are good products, and dependant on your requirements, may or may not fulfil your requirements. I suggest doing your research on &lt;a href="http://www.google.co.uk/search?hl=en&amp;amp;q=BizTalk+Monitoring+Software&amp;amp;meta=&amp;amp;rlz=1I7GZAZ_en"&gt;&lt;b&gt;BizTalk monitoring software&lt;/b&gt; &lt;/a&gt;and evaluating each one based on a set of logical predefined criteria:&lt;/div&gt;
&lt;div style="text-indent: -18pt; margin: 0cm 0cm 0pt 37.8pt"&gt;&lt;span&gt;·&lt;span style="font: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;Product features&lt;/div&gt;
&lt;div style="text-indent: -18pt; margin: 0cm 0cm 0pt 37.8pt"&gt;&lt;span&gt;·&lt;span style="font: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;Pricing model&lt;/div&gt;
&lt;div style="text-indent: -18pt; margin: 0cm 0cm 10pt 37.8pt"&gt;&lt;span&gt;·&lt;span style="font: 7pt 'Times New Roman'"&gt;        &lt;/span&gt;&lt;/span&gt;Vendor support&lt;/div&gt;
&lt;div style="margin: 0cm 0cm 10pt"&gt;Happy BizTalk monitoring!&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136409"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136409" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/BizTalkMonitoring/aggbug/136409.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/DBBFUlHmKrk" height="1" width="1"/&gt;</description><dc:creator>BizTalkMonitoring</dc:creator><feedburner:origLink>http://geekswithblogs.net/BizTalkMonitoring/archive/2009/11/19/the-gem-in-the-biztalk-administrators-toolbox.aspx</feedburner:origLink></item><item><title>Not sure if you need the Professional version of DotNetNuke?</title><link>http://feedproxy.google.com/~r/geekswithblogs/~3/jhu2DQ-ugGg/136408.aspx</link><pubDate>Thu, 19 Nov 2009 12:14:23 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/bscarbeau/archive/2009/11/19/136408.aspx</guid><wfw:comment>http://geekswithblogs.net/bscarbeau/comments/136408.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/bscarbeau/comments/commentRss/136408.aspx</wfw:commentRss><comments>http://geekswithblogs.net/bscarbeau/archive/2009/11/19/136408.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/bscarbeau/services/trackbacks/136408.aspx</trackback:ping><source url="http://geekswithblogs.net/bscarbeau/rss.aspx">Not sure if you need the Professional version of DotNetNuke?</source><description>&lt;p&gt;The DotNetNuke web hosters at &lt;a target="_blank" href="http://www.powerdnn.com/"&gt;PowerDNN&lt;/a&gt; have put together a nice 3 minute &lt;a target="_blank" href="http://www.powerdnn.com/DotNetNukeProfessionalCalculator/tabid/406/Default.aspx"&gt;survey&lt;/a&gt; to analyze your needs on what version of DotNetNuke that you might need to have.&lt;/p&gt;
&lt;p&gt;The survey has 3 categories.&lt;/p&gt;
&lt;p&gt;1. Website Size&lt;/p&gt;
&lt;p&gt;2. Website Usage&lt;/p&gt;
&lt;p&gt;3. Project Details&lt;/p&gt;
&lt;p&gt;With an easy UI of drop down lists, you just answer the questions listed in each category and then submit them to the site.&lt;/p&gt;
&lt;p&gt;After you submit, you'll get reasons why you should use either the Community or Professional Edition of DotNetNuke.&lt;/p&gt;
&lt;p&gt;Here's an example of the results that I received based on my input:&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;You should use DotNetNuke Community Edition because:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;DotNetNuke Community Edition is designed for &lt;u&gt;Small Business Websites&lt;/u&gt;.&lt;/p&gt;
&lt;p&gt;DotNetNuke Community Edition is recommended for websites using &lt;u&gt;only 1GB or Less of disk space&lt;/u&gt;.&lt;/p&gt;
&lt;p&gt;DotNetNuke Community Edition is recommended for websites using &lt;u&gt;only 1GB or Less of database space&lt;/u&gt;.&lt;/p&gt;
&lt;p&gt;DotNetNuke Community Edition is recommended for websites with &lt;u&gt;only 1 Portal&lt;/u&gt;.&lt;/p&gt;
&lt;p&gt;DotNetNuke Community Edition is designed for small websites with &lt;u&gt;only 25 - 100 User Accounts&lt;/u&gt;.&lt;/p&gt;
&lt;p&gt;DotNetNuke Community Edition does not contain content approval workflows because it would overburden &lt;u&gt;2 - 5 Content Editors&lt;/u&gt;.&lt;/p&gt;
&lt;p&gt;DotNetNuke Community Edition is designed for websites with &lt;u&gt;only 1 Web Server&lt;/u&gt;.&lt;/p&gt;
&lt;p&gt;DotNetNuke Community Edition is free and will not impact a &lt;u&gt;small budget of $0 - $3k&lt;/u&gt;.&lt;/p&gt;
&lt;p&gt;DotNetNuke Community Edition is much simpler for an organization with &lt;u&gt;only 1 - 15 Employees&lt;/u&gt; to adequately leverage.&lt;/p&gt;
&lt;p&gt;DotNetNuke Community Edition does not include legal indemnification which may be acceptable because your &lt;u&gt;organization is small&lt;/u&gt;.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;You may consider DotNetNuke Professional Edition because:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;DotNetNuke Professional Edition's content management is designed for websites that have &lt;u&gt;25 - 50 Pages or more&lt;/u&gt;.&lt;/p&gt;
&lt;p&gt;DotNetNuke Professional Edition is optimized for heavy usage which includes &lt;u&gt;100 - 500 Concurrent Users or more&lt;/u&gt;.&lt;/p&gt;
&lt;p&gt;DotNetNuke Professional Edition's advanced security model is recommended for &lt;u&gt;high-security and VPN environments&lt;/u&gt;.&lt;/p&gt;
&lt;p&gt;DotNetNuke Professional Edition's Unlimited Support and Guaranteed Issue Resolution will reduce maintainance costs once the &lt;u&gt;outsourced project is complete&lt;/u&gt;.&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;The results were very honest and PowerDNN was not trying to sell me the Professional version of DotNetNuke. Great idea to have for those that really don't know what version they should get.&lt;/p&gt;
&lt;p&gt;Check it out!&lt;/p&gt;
&lt;p&gt;&lt;span style="background-color: Yellow;"&gt;SOME MEMBERS OF THE DOTNETNUKE COMMUNITY HAVE INFORMED ME THAT THERE ARE SOME MISLEADINGS IN THE RESULTS THAT YOU GET FROM THIS SURVEY AND TONY VALENTI FROM POWER DNN IS LOOKING INTO THEM AND I AM SURE HE WILL FIX THE SURVEY TO GET BETTER RESULTS. &lt;br /&gt;
&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="background-color: Yellow;"&gt;USE AT YOUR OWN RISK IS MY ADVICE.&lt;/span&gt;&lt;/p&gt;
&lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:a8c46d3b-0a58-41c6-8223-8eecb0aa9afc" style="margin: 0px; padding: 0px; display: inline;"&gt;Technorati Tags: &lt;a rel="tag" href="http://technorati.com/tags/DotNetNuke"&gt;DotNetNuke&lt;/a&gt;, &lt;a rel="tag" href="http://technorati.com/tags/PowerDNN"&gt;PowerDNN&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136408"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136408" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/bscarbeau/aggbug/136408.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/jhu2DQ-ugGg" height="1" width="1"/&gt;</description><dc:creator>Brian Scarbeau</dc:creator><feedburner:origLink>http://geekswithblogs.net/bscarbeau/archive/2009/11/19/136408.aspx</feedburner:origLink></item><item><title>SQL Azure slides and links from EdgeUG session</title><link>http://feedproxy.google.com/~r/geekswithblogs/~3/SylZwfc2DLU/sql-azure-slides-and-links-from-edgeug-session.aspx</link><pubDate>Thu, 19 Nov 2009 11:42:52 GMT</pubDate><guid isPermaLink="false">http://geekswithblogs.net/iupdateable/archive/2009/11/19/sql-azure-slides-and-links-from-edgeug-session.aspx</guid><wfw:comment>http://geekswithblogs.net/iupdateable/comments/136407.aspx</wfw:comment><wfw:commentRss>http://geekswithblogs.net/iupdateable/comments/commentRss/136407.aspx</wfw:commentRss><comments>http://geekswithblogs.net/iupdateable/archive/2009/11/19/sql-azure-slides-and-links-from-edgeug-session.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://geekswithblogs.net/iupdateable/services/trackbacks/136407.aspx</trackback:ping><source url="http://geekswithblogs.net/iupdateable/rss.aspx">SQL Azure slides and links from EdgeUG session</source><description>&lt;p&gt;A big thanks to all those who attended &lt;a href="http://edgeug.net/"&gt;http://edgeug.net/&lt;/a&gt; last night to hear about SQL Azure and SQL Server 2008 R2. I really enjoyed it and once again “Merry Christmas”!&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Links&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;a title="http://bit.ly/startazure" href="http://bit.ly/startazure"&gt;http://bit.ly/startazure&lt;/a&gt;&lt;strong&gt; &lt;/strong&gt; takes you to the getting started page for SQL Azure (and Windows Azure)&lt;/li&gt;
    &lt;li&gt;&lt;a href="http://geekswithblogs.net/iupdateable/archive/2009/11/11/sql-server-management-studio-now-supports-sql-azure.aspx"&gt;Download SQL Server Management Studio R2&lt;/a&gt; which works with SQL Azure&lt;/li&gt;
    &lt;li&gt;Brief &lt;a href="http://geekswithblogs.net/iupdateable/archive/2009/11/13/using-sql-server-management-studio-r2-with-sql-azure.aspx"&gt;walkthrough of using SSMS R2 with SQL Azure&lt;/a&gt; (nice screenshots similar to what I showed in the first demo)&lt;/li&gt;
    &lt;li&gt;&lt;a href="http://sqlazuremw.codeplex.com/"&gt;Download the SQL Azure Migration Wizard&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="http://twitter.com/ericnel"&gt;http://twitter.com/ericnel&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href="http://twitter.com/ukmsdn"&gt;http://twitter.com/ukmsdn&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;The &lt;a href="http://geekswithblogs.net/iupdateable/category/9967.aspx"&gt;UK MSDN Flash Podcast&lt;/a&gt; which I tinker with :-) Slowly moving &lt;a href="http://channel9.msdn.com/tags/UKMSDNPodcast/"&gt;onto Channel 9&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;Slides&lt;/strong&gt;&lt;/p&gt;
&lt;div id="__ss_2535529" style="text-align: left; width: 425px"&gt;&lt;a title="SQL Azure Overview - ericnel" style="margin: 12px 0px 3px; display: block; font: 14px helvetica,arial,sans-serif; text-decoration: underline" href="http://www.slideshare.net/ukdpe/sql-azure-overview-ericnel"&gt;SQL Azure Overview - ericnel&lt;/a&gt;&lt;object width="425" height="355" style="margin: 0px"&gt;
&lt;param value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=sqlazure-ericnel-091119053426-phpapp02&amp;amp;rel=0&amp;amp;stripped_title=sql-azure-overview-ericnel" name="movie" /&gt;
&lt;param value="true" name="allowFullScreen" /&gt;
&lt;param value="always" name="allowScriptAccess" /&gt;&lt;embed width="425" height="355" allowfullscreen="true" allowscriptaccess="always" type="application/x-shockwave-flash" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=sqlazure-ericnel-091119053426-phpapp02&amp;amp;rel=0&amp;amp;stripped_title=sql-azure-overview-ericnel"&gt;&lt;/embed&gt;&lt;/object&gt;
&lt;div style="font-family: tahoma,arial; height: 26px; font-size: 11px; padding-top: 2px"&gt;View more &lt;a style="text-decoration: underline" href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a style="text-decoration: underline" href="http://www.slideshare.net/ukdpe"&gt;ukdpe&lt;/a&gt;.&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136407"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=6cda6ad746d942b9a1110d0715a4fa12&amp;u=136407" border="0"/&gt;&lt;/a&gt;&lt;/p&gt;&lt;iframe src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;PageID=31016&amp;amp;SiteID=1" width=1 height=1 Marginwidth=0 Marginheight=0 Hspace=0 Vspace=0 Frameborder=0 Scrolling=No&gt;
&lt;script language='javascript1.1' src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Browser=NETSCAPE4&amp;amp;NoCache=True&amp;PageID=31016&amp;amp;SiteID=1"&gt;&lt;/script&gt;
&lt;noscript&gt;&lt;a href="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Click&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" target="_blank"&gt;
&lt;img src="http://ads.geekswithblogs.net/a.aspx?ZoneID=5&amp;amp;Task=Get&amp;amp;Mode=HTML&amp;amp;SiteID=1&amp;amp;PageID=31016" width="1" height="1" border="0"  alt=""&gt;&lt;/a&gt;
&lt;/noscript&gt;
&lt;/iframe&gt;
&lt;img src="http://geekswithblogs.net/iupdateable/aggbug/136407.aspx" width="1" height="1" /&gt;&lt;img src="http://feeds.feedburner.com/~r/geekswithblogs/~4/SylZwfc2DLU" height="1" width="1"/&gt;</description><dc:creator>Eric Nelson</dc:creator><feedburner:origLink>http://geekswithblogs.net/iupdateable/archive/2009/11/19/sql-azure-slides-and-links-from-edgeug-session.aspx</feedburner:origLink></item></channel></rss>
