<?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.paulomorgado.net/~d/styles/itemcontent.css"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Paulo Morgado [EN]</title><link>http://paulomorgado.net/en/</link><description>.NET and Software Architecture and Engeneering</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license><image><link>http://paulomorgado.net/en/</link><url>http://paulomorgado.net/images/paulomorgado_80x100.png</url><title>Paulo Morgado [EN]</title></image><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.paulomorgado.net/PauloMorgado/Blogs/EN" type="application/rss+xml" /><feedburner:emailServiceId>PauloMorgado/Blogs/EN</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.paulomorgado.net%2FPauloMorgado%2FBlogs%2FEN" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.paulomorgado.net%2FPauloMorgado%2FBlogs%2FEN" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.paulomorgado.net%2FPauloMorgado%2FBlogs%2FEN" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.paulomorgado.net/PauloMorgado/Blogs/EN" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.paulomorgado.net%2FPauloMorgado%2FBlogs%2FEN" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.paulomorgado.net%2FPauloMorgado%2FBlogs%2FEN" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.paulomorgado.net%2FPauloMorgado%2FBlogs%2FEN" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://www.plusmo.com/add?url=http%3A%2F%2Ffeeds.paulomorgado.net%2FPauloMorgado%2FBlogs%2FEN" src="http://plusmo.com/res/graphics/fbplusmo.gif">Subscribe with Plusmo</feedburner:feedFlare><feedburner:feedFlare href="http://www.thefreedictionary.com/_/hp/AddRSS.aspx?http%3A%2F%2Ffeeds.paulomorgado.net%2FPauloMorgado%2FBlogs%2FEN" src="http://img.tfd.com/hp/addToTheFreeDictionary.gif">Subscribe with The Free Dictionary</feedburner:feedFlare><feedburner:feedFlare href="http://www.bitty.com/manual/?contenttype=rssfeed&amp;contentvalue=http%3A%2F%2Ffeeds.paulomorgado.net%2FPauloMorgado%2FBlogs%2FEN" src="http://www.bitty.com/img/bittychicklet_91x17.gif">Subscribe with Bitty Browser</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsalloy.com/?rss=http%3A%2F%2Ffeeds.paulomorgado.net%2FPauloMorgado%2FBlogs%2FEN" src="http://www.newsalloy.com/subrss3.gif">Subscribe with NewsAlloy</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.paulomorgado.net%2FPauloMorgado%2FBlogs%2FEN" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare href="http://mix.excite.eu/add?feedurl=http%3A%2F%2Ffeeds.paulomorgado.net%2FPauloMorgado%2FBlogs%2FEN" src="http://image.excite.co.uk/mix/addtomix.gif">Subscribe with Excite MIX</feedburner:feedFlare><feedburner:feedFlare href="http://www.yourminis.com/subscribe.aspx?u=http%3A%2F%2Ffeeds.paulomorgado.net%2FPauloMorgado%2FBlogs%2FEN" src="http://www.yourminis.com/images/addtoyourminisbadge.gif">Subscribe with Yourminis.com</feedburner:feedFlare><feedburner:feedFlare href="http://download.attensa.com/app/get_attensa.html?feedurl=http%3A%2F%2Ffeeds.paulomorgado.net%2FPauloMorgado%2FBlogs%2FEN" src="http://www.attensa.com/blogs/attensa/WindowsLiveWriter/BadgeredintoBadges_10C02/attensa_feed_button5.gif">Subscribe with Attensa for Outlook</feedburner:feedFlare><feedburner:feedFlare href="http://www.webwag.com/wwgthis.php?url=http%3A%2F%2Ffeeds.paulomorgado.net%2FPauloMorgado%2FBlogs%2FEN" src="http://www.webwag.com/images/wwgthis.gif">Subscribe with Webwag</feedburner:feedFlare><feedburner:feedFlare href="http://hub.netomat.net/account/account.autoSubscribe.jspa?urls=http%3A%2F%2Ffeeds.paulomorgado.net%2FPauloMorgado%2FBlogs%2FEN" src="http://www.netomat.net/blogger/images/icon_netomat_feedbutton.gif">Subscribe with netomat Hub</feedburner:feedFlare><feedburner:feedFlare href="http://www.podcastready.com/oneclick_bookmark.php?url=http%3A%2F%2Ffeeds.paulomorgado.net%2FPauloMorgado%2FBlogs%2FEN" src="http://www.podcastready.com/images/podcastready_button.gif">Subscribe with Podcast Ready</feedburner:feedFlare><feedburner:feedFlare href="http://www.flurry.com/pushRssFeed.do?r=fb&amp;url=http%3A%2F%2Ffeeds.paulomorgado.net%2FPauloMorgado%2FBlogs%2FEN" src="http://www.flurry.com/images/flurry_rss_logo2.gif">Subscribe with Flurry</feedburner:feedFlare><feedburner:feedFlare href="http://www.wikio.com/subscribe?url=http%3A%2F%2Ffeeds.paulomorgado.net%2FPauloMorgado%2FBlogs%2FEN" src="http://www.wikio.com/shared/img/add2wikio.gif">Subscribe with Wikio</feedburner:feedFlare><feedburner:feedFlare href="http://www.dailyrotation.com/index.php?feed=http%3A%2F%2Ffeeds.paulomorgado.net%2FPauloMorgado%2FBlogs%2FEN" src="http://www.dailyrotation.com/rss-dr2.gif">Subscribe with Daily Rotation</feedburner:feedFlare><feedburner:browserFriendly>.NET and Software Architecture and Engeneering</feedburner:browserFriendly><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item><title>Hurrah! MVP for the seventh consecutive year!</title><link>http://feeds.paulomorgado.net/~r/PauloMorgadoEN/~3/FYSSFrc-86k/hurrah-mvp-for-the-seventh-consecutive-year.aspx</link><pubDate>Thu, 02 Jul 2009 00:31:46 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1697525</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>1</slash:comments><wfw:commentRss>http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1697525</wfw:commentRss><wfw:comment>http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1697525</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2009/07/02/hurrah-mvp-for-the-seventh-consecutive-year.aspx#comments</comments><description>&lt;p&gt;After all these years, it&amp;#39;s still an honor, a privilege ... and a few stressful days.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1697525" width="1" height="1"&gt;
&lt;div class="feed_ad"&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=cf9aef0715954372b326ea8526e04393&amp;u=1697525" class="feed_ad"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=cf9aef0715954372b326ea8526e04393&amp;u=1697525" border="0" class="feed_ad"/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=MJ5G70sttDs:xHhlDq3pwKo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=MJ5G70sttDs:xHhlDq3pwKo:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=MJ5G70sttDs:xHhlDq3pwKo:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=MJ5G70sttDs:xHhlDq3pwKo:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=MJ5G70sttDs:xHhlDq3pwKo:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=MJ5G70sttDs:xHhlDq3pwKo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=MJ5G70sttDs:xHhlDq3pwKo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=MJ5G70sttDs:xHhlDq3pwKo:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=MJ5G70sttDs:xHhlDq3pwKo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=MJ5G70sttDs:xHhlDq3pwKo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=MJ5G70sttDs:xHhlDq3pwKo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=MJ5G70sttDs:xHhlDq3pwKo:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=MJ5G70sttDs:xHhlDq3pwKo:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=MJ5G70sttDs:xHhlDq3pwKo:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=MJ5G70sttDs:xHhlDq3pwKo:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=MJ5G70sttDs:xHhlDq3pwKo:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=MJ5G70sttDs:xHhlDq3pwKo:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PauloMorgado/Blogs/EN/~4/MJ5G70sttDs" height="1" width="1"/&gt;&lt;img src="http://feeds.feedburner.com/~r/PauloMorgadoEN/~4/FYSSFrc-86k" height="1" width="1"/&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Community/default.aspx">Community</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/MVP/default.aspx">MVP</category><feedburner:origLink>http://msmvps.com/blogs/paulomorgado/archive/2009/07/02/hurrah-mvp-for-the-seventh-consecutive-year.aspx</feedburner:origLink><feedburner:origLink>http://feeds.paulomorgado.net/~r/PauloMorgado/Blogs/EN/~3/MJ5G70sttDs/hurrah-mvp-for-the-seventh-consecutive-year.aspx</feedburner:origLink></item><item><title>Microsoft Tech•Ed Europe 2009 Registration Opened</title><link>http://feeds.paulomorgado.net/~r/PauloMorgadoEN/~3/h44sV2-RhMw/microsoft-tech-ed-europe-2009-registration-opened.aspx</link><pubDate>Mon, 22 Jun 2009 22:42:44 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1696253</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1696253</wfw:commentRss><wfw:comment>http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1696253</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2009/06/22/microsoft-tech-ed-europe-2009-registration-opened.aspx#comments</comments><description>&lt;div style="background-image:url(http://www.msteched.com/resources/Content_Files/EU_Header_screen.jpg);width:950px;background-repeat:no-repeat;height:240px;"&gt;   &lt;div style="margin:20px 20px 19px;width:180px;height:199px;"&gt;&lt;a style="width:180px;height:199px;" title="Microsoft Tech•Ed Europe 2009" href="http://www.msteched.com/europe/Public/default.aspx"&gt;&lt;img style="border-bottom-style:none;border-right-style:none;width:180px;border-top-style:none;height:199px;border-left-style:none;" alt="Microsoft Tech•Ed Europe 2009" src="http://www.msteched.com/resources/Content_Files/TechEd_Europe_Blog_L_MVPs.gif" width="180" height="199" /&gt; &lt;/a&gt;&lt;/div&gt; &lt;/div&gt;  &lt;p align="justify"&gt;&lt;a title="Microsoft Tech•Ed Europe 2009" href="http://www.msteched.com/europe/Public/default.aspx" target="_blank"&gt;Microsoft Tech•Ed Europe 2009&lt;/a&gt; &lt;a title="Microsoft Tech•Ed Europe 2009 Registration Info" href="http://www.msteched.com/europe/public/registration-info.aspx" target="_blank"&gt;Registration&lt;/a&gt; is now open.&lt;/p&gt;  &lt;p align="justify"&gt;There are a few novelties this year:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;div align="justify"&gt;Due to attendee feedback, both the Developer and IT Pro editions will take place at the same time (November, 9-13).&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="justify"&gt;The registration site uses &lt;a title="Windows Live™ ID" href="https://accountservices.passport.net/reg.srf?wa=wsignin1.0&amp;amp;rpsnv=10&amp;amp;ct=1244819257&amp;amp;rver=5.0.3265.0&amp;amp;wp=MCMBI&amp;amp;wreply=https%3A//profile.microsoft.com/RegSysProfileCenter/ContactPref.aspx?LCID=1033&amp;amp;cb=Lcid=1033&amp;amp;Brand=microsoft&amp;amp;SubBrand=profile%20center&amp;amp;cru=https%3A//profile.microsoft.com/RegSysProfileCenter/ContactPref.aspx?LCID=1033&amp;amp;id=42814&amp;amp;sl=1&amp;amp;lc=2057" target="_blank"&gt;Windows Live™ ID&lt;/a&gt; for authentication.&lt;/div&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;div align="justify"&gt;Registration prices are based on a tiered approach with the earlier you registration the more you will save. Register first, save the most!&lt;/div&gt;   &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;Top Reasons To Attend Tech·Ed Europe 2009&lt;/h3&gt;  &lt;ul&gt;   &lt;li&gt;     &lt;p align="left"&gt;EVERYONE CAN LEARN MORE ABOUT:&lt;/p&gt;      &lt;ul&gt;       &lt;li&gt;         &lt;p align="left"&gt;&lt;strong&gt;MICROSOFT WINDOWS 7 - Learn about Microsoft&amp;#39;s next-generation operating system&lt;/strong&gt;&lt;/p&gt;          &lt;p align="justify"&gt;Advancements Windows 7 brings to user productivity, security and PC management - all of which save businesses time and money.&lt;/p&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;p align="left"&gt;&lt;strong&gt;MICROSOFT OFFICE and new ways to maximize business productivity&lt;/strong&gt;&lt;/p&gt;          &lt;p align="justify"&gt;The Office System track will help you deploy, adopt and develop on business productivity applications.&lt;/p&gt;          &lt;p align="justify"&gt;Learn about deploying Microsoft Office to your users, building pervasive Microsoft Office SharePoint solutions and managing your work with Microsoft Business Productivity Visio.&lt;/p&gt;       &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p align="left"&gt;DEVELOPERS CAN LEARN MORE ABOUT:&lt;/p&gt;      &lt;ul&gt;       &lt;li&gt;         &lt;p align="left"&gt;&lt;strong&gt;STREAMLINING your way to cloud applications&lt;/strong&gt;&lt;/p&gt;          &lt;p align="justify"&gt;Find out how The Azure™ Services Platform reduces the need for up-front technology purchases, and enables developers to quickly and easily create applications running in the cloud.&lt;/p&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;p align="left"&gt;&lt;strong&gt;SECURITY that helps cut application support costs&lt;/strong&gt;&lt;/p&gt;          &lt;p align="justify"&gt;Find out how Microsoft’s ForeFront technologies can secure your IT environment faster, and help you write more secure code to eliminate application support costs.&lt;/p&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;p align="left"&gt;&lt;strong&gt;TRUTH about maximizing deployments and search&lt;/strong&gt;&lt;/p&gt;          &lt;p align="justify"&gt;Find out how SharePoint can help create that central repository, maximizing deployments and search that eliminates multiple versions and misunderstandings about the source of the &amp;quot;truth&amp;quot; on any given project.&lt;/p&gt;       &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt;    &lt;li&gt;     &lt;p&gt;IT PROFESSIONALS CAN LEARN MORE ABOUT:&lt;/p&gt;      &lt;ul&gt;       &lt;li&gt;         &lt;p align="left"&gt;&lt;strong&gt;VIRTUALISATION that helps leverage existing investments&lt;/strong&gt;&lt;/p&gt;          &lt;p align="justify"&gt;Get an in-depth understanding of today’s low-cost virtualization technologies and how they can help you make the most of your current software and hardware investments.&lt;/p&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;p align="left"&gt;&lt;strong&gt;HOSTING for economies of scale&lt;/strong&gt;&lt;/p&gt;          &lt;p align="justify"&gt;Learn how to take advantage of Microsoft’s hosted services to scale your IT department’s communications and collaboration offering. You’ll also lower your hardware, management and power costs.&lt;/p&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;p align="left"&gt;&lt;strong&gt;UNIFYING to reduce costs and help increase efficiencies&lt;/strong&gt;&lt;/p&gt;          &lt;p align="justify"&gt;Truly unified communications create a single communication infrastructure. That means reduced costs for PBX enhancements while improving productivity through unified inboxes along with rules that help workers manage interruptions.&lt;/p&gt;       &lt;/li&gt;        &lt;li&gt;         &lt;p align="left"&gt;&lt;strong&gt;DEPLOYMENT - maximize your existing IT infrastructure and do more with what you&amp;#39;ve got&lt;/strong&gt;&lt;/p&gt;          &lt;p align="justify"&gt;Learn how to get maximum value out of your existing IT infrastructure. &lt;/p&gt;       &lt;/li&gt;     &lt;/ul&gt;   &lt;/li&gt; &lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1696253" width="1" height="1"&gt;
&lt;div class="feed_ad"&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=cf9aef0715954372b326ea8526e04393&amp;u=1696253" class="feed_ad"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=cf9aef0715954372b326ea8526e04393&amp;u=1696253" border="0" class="feed_ad"/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=YtSGnOn82BM:17tYuhvmI30:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=YtSGnOn82BM:17tYuhvmI30:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=YtSGnOn82BM:17tYuhvmI30:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=YtSGnOn82BM:17tYuhvmI30:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=YtSGnOn82BM:17tYuhvmI30:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=YtSGnOn82BM:17tYuhvmI30:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=YtSGnOn82BM:17tYuhvmI30:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=YtSGnOn82BM:17tYuhvmI30:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=YtSGnOn82BM:17tYuhvmI30:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=YtSGnOn82BM:17tYuhvmI30:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=YtSGnOn82BM:17tYuhvmI30:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=YtSGnOn82BM:17tYuhvmI30:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=YtSGnOn82BM:17tYuhvmI30:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=YtSGnOn82BM:17tYuhvmI30:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=YtSGnOn82BM:17tYuhvmI30:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=YtSGnOn82BM:17tYuhvmI30:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=YtSGnOn82BM:17tYuhvmI30:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PauloMorgado/Blogs/EN/~4/YtSGnOn82BM" height="1" width="1"/&gt;&lt;img src="http://feeds.feedburner.com/~r/PauloMorgadoEN/~4/h44sV2-RhMw" height="1" width="1"/&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Events/default.aspx">Events</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/MSDN/default.aspx">MSDN</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/TechNet/default.aspx">TechNet</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/TechEd/default.aspx">TechEd</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/TechEd2009/default.aspx">TechEd2009</category><feedburner:origLink>http://msmvps.com/blogs/paulomorgado/archive/2009/06/22/microsoft-tech-ed-europe-2009-registration-opened.aspx</feedburner:origLink><feedburner:origLink>http://feeds.paulomorgado.net/~r/PauloMorgado/Blogs/EN/~3/YtSGnOn82BM/microsoft-tech-ed-europe-2009-registration-opened.aspx</feedburner:origLink></item><item><title>Playing With SQL Server CLR Integration – Part IV (Deploying To SQL Server 2005)</title><link>http://feeds.paulomorgado.net/~r/PauloMorgadoEN/~3/xZDr2tp-G8Y/playing-with-sql-server-clr-integration-part-iv-deploying-to-sql-server-2005.aspx</link><pubDate>Sat, 13 Jun 2009 08:39:10 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1695185</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1695185</wfw:commentRss><wfw:comment>http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1695185</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2009/06/13/playing-with-sql-server-clr-integration-part-iv-deploying-to-sql-server-2005.aspx#comments</comments><description>&lt;p&gt;With all developed and tested on my laptop using &lt;a title="Microsoft SQL Server" href="http://www.microsoft.com/sqlserver/" target="_blank"&gt;SQL Server&lt;/a&gt; 2008, it’s time to deploy to the company’s test machine running SQL Server 2005.&lt;/p&gt;  &lt;p&gt;The first thing I ran into when executing:&lt;/p&gt;  &lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;CREATE ASSEMBLY &lt;/span&gt;[MyAssembly]
&lt;span style="color:blue;"&gt;AUTHORIZATION &lt;/span&gt;[dbo]
&lt;span style="color:blue;"&gt;FROM &lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;...\MyAssembly.dll&amp;#39;
&lt;/span&gt;&lt;span style="color:blue;"&gt;WITH PERMISSION_SET &lt;/span&gt;&lt;span style="color:gray;"&gt;= &lt;/span&gt;&lt;span style="color:blue;"&gt;SAFE
GO&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;was:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color:red;"&gt;Msg 10327, Level 14, State 1, Line 1
Assembly &amp;#39;MyAssembly&amp;#39; references assembly &amp;#39;system.xml.linq, version=3.5.0.0, culture=neutral, publickeytoken=b77a5c561934e089.&amp;#39;,
which is not present in the current database.
SQL Server attempted to locate and automatically load the referenced assembly from the same location where referring assembly came from,
but that operation has failed (reason: 2(The system cannot find the file specified.)).
Please load the referenced assembly into the current database and retry your request.&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;Looks like SQL Server 2005 doesn’t know about &lt;a title="Microsoft .NET" href="http://cli.gs/cligs/Microsoft-NET" target="_blank"&gt;.NET Framework&lt;/a&gt; 3.5. I’d just load the assemblies being used: &lt;strong&gt;System.Core&lt;/strong&gt; and &lt;strong&gt;System.Linq.Xml&lt;/strong&gt;:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;CREATE ASSEMBLY &lt;/span&gt;[System.Core]
&lt;span style="color:blue;"&gt;AUTHORIZATION &lt;/span&gt;[dbo]
&lt;span style="color:blue;"&gt;FROM &lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.5\System.Core.dll&amp;#39;
&lt;/span&gt;&lt;span style="color:blue;"&gt;WITH PERMISSION_SET &lt;/span&gt;&lt;span style="color:gray;"&gt;= &lt;/span&gt;&lt;span style="color:blue;"&gt;SAFE
GO
&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;Not so easy:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color:black;"&gt;Warning: The Microsoft .Net frameworks assembly &amp;#39;system.core, version=3.5.0.0, culture=neutral, publickeytoken=b77a5c561934e089, processorarchitecture=msil.&amp;#39; you are registering is not fully tested in SQL Server hosted environment.&lt;/span&gt;
&lt;span style="color:red;"&gt;Msg 6218, Level 16, State 2, Line 1
CREATE ASSEMBLY for assembly &amp;#39;System.Core&amp;#39; failed because assembly &amp;#39;System.Core&amp;#39; failed verification. Check if the referenced assemblies are up-to-date and trusted (for external_access or unsafe) to execute in the database. CLR Verifier error messages if any will follow this message
[ : System.Diagnostics.Eventing.EventProvider::EtwRegister][mdToken=0x600003b][offset 0x0000003D][found Native Int][expected unmanaged pointer] Unexpected type on the stack.
[ : System.Diagnostics.Eventing.EventProvider::EncodeObject][mdToken=0x6000046][offset 0x00000000] Unmanaged pointers are not a verifiable type.
[ : System.Diagnostics.Eventing.EventProvider::WriteMessageEvent][mdToken=0x6000047][offset 0x0000003C][found ref &amp;#39;System.String&amp;#39;] Expected numeric type on the stack.
[ : System.Diagnostics.Eventing.EventProvider::WriteEvent][mdToken=0x6000049][offset 0x0000012E] Instruction cannot be verified.
[ : System.Diagnostics.Eventing.EventProvider::WriteEvent][mdToken=0x6000049][offset 0x00000030] Instruction cannot be verified.
[ : System.Diagnostics.Eventing.EventProvider::WriteEvent][mdToken=0x600004a][offset 0x0000005F][found ref &amp;#39;System.String&amp;#39;] Expected numeric type on the stack.
[ : System.Diagnostics.Eventing.EventProvider::WriteEvent][mdToken=0x600004b][offset 0x00000010][found unmanaged pointer][expected unmanaged pointer] Unexpected type on the stack.
[ : System.Diagnostics.Eventing.EventProvider::WriteTransferEvent][mdToken=0x600004c][offset 0x0000007D] Instruction cannot be verified.
[ : System.Diagnostics.Eventing.EventProvider::WriteTransferEvent][mdToken=0x600004c][offset 0x00000309][found Native Int][expected unmanaged pointer] Unexpected type on the stack.
[ : System.Diagnostics.Eventing.EventProvider::WriteTransferEvent][mdToken=0x600004d][offset 0x0000001B][found unmanaged pointer][expected unmanaged pointer] Unexpected type on the stack.
[ : System.Security.Cryptography.CapiNative::ImportSymmetricKey][mdToken=0x60007c2][offset 0x00000071][found address of Byte] Expected numeric type on the stac...&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;Ok. I’d just load it with &lt;strong&gt;PERMISSION_SET = UNSAFE&lt;/strong&gt;:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;CREATE ASSEMBLY &lt;/span&gt;[MyAssembly]
&lt;span style="color:blue;"&gt;AUTHORIZATION &lt;/span&gt;[dbo]
&lt;span style="color:blue;"&gt;FROM &lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;...\MyAssembly.dll&amp;#39;
&lt;/span&gt;&lt;span style="color:blue;"&gt;WITH PERMISSION_SET &lt;/span&gt;&lt;span style="color:gray;"&gt;= &lt;/span&gt;&lt;span style="color:blue;"&gt;UNSAFE
GO&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;Not yet:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color:black;"&gt;Warning: The Microsoft .Net frameworks assembly &amp;#39;system.core, version=3.5.0.0, culture=neutral, publickeytoken=b77a5c561934e089, processorarchitecture=msil.&amp;#39; you are registering is not fully tested in SQL Server hosted environment.&lt;/span&gt;
&lt;span style="color:red;"&gt;Msg 10327, Level 14, State 1, Line 1
CREATE ASSEMBLY for assembly &amp;#39;System.Core&amp;#39; failed because assembly &amp;#39;System.Core&amp;#39; is not authorized for PERMISSION_SET = UNSAFE.
The assembly is authorized when either of the following is true: the database owner (DBO) has UNSAFE ASSEMBLY permission and the database has the TRUSTWORTHY database property on; or the assembly is signed with a certificate or an asymmetric key that has a corresponding login with UNSAFE ASSEMBLY permission.
If you have restored or attached this database, make sure the database owner is mapped to the correct login on this server.
If not, use sp_changedbowner to fix the problem.&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;Solved:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;ALTER DATABASE &lt;/span&gt;MyDatabase &lt;span style="color:blue;"&gt;SET TRUSTWORTHY ON
GO&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;Only than I was able to load the .NET 3.5 assemblies:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;CREATE ASSEMBLY &lt;/span&gt;[System.Core]
&lt;span style="color:blue;"&gt;AUTHORIZATION &lt;/span&gt;[dbo]
&lt;span style="color:blue;"&gt;FROM &lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.5\System.Core.dll&amp;#39;
&lt;/span&gt;&lt;span style="color:blue;"&gt;WITH PERMISSION_SET &lt;/span&gt;&lt;span style="color:gray;"&gt;= &lt;/span&gt;&lt;span style="color:blue;"&gt;UNSAFE
GO

CREATE ASSEMBLY &lt;/span&gt;[System.Xml.Linq]
&lt;span style="color:blue;"&gt;AUTHORIZATION &lt;/span&gt;[dbo]
&lt;span style="color:blue;"&gt;FROM &lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;C:\Program Files\Reference Assemblies\Microsoft\Framework\v3.5\System.Xml.Linq.dll&amp;#39;
&lt;/span&gt;&lt;span style="color:blue;"&gt;WITH PERMISSION_SET &lt;/span&gt;&lt;span style="color:gray;"&gt;= &lt;/span&gt;&lt;span style="color:blue;"&gt;UNSAFE
GO&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;With all dependencies in place, I tried to load the assembly with &lt;strong&gt;PERMISSION_SET = SAFE&lt;/strong&gt; with no luck:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color:red;"&gt;Msg 6212, Level 16, State 1, Line 1
CREATE ASSEMBLY failed because method &amp;#39;ShortPropsToXml&amp;#39; on type &amp;#39;ShortProps&amp;#39;  in safe assembly &amp;#39;Esi.SA.Encyclopedia&amp;#39; is storing to a static field.
Storing to a static field is not allowed in safe assemblies.&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;It had to be with &lt;strong&gt;PERMISSION_SET = UNSAFE&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;After successfully loading the assemblies, I was finally able to create the &lt;a title="Transact-SQL Overview" href="http://cli.gs/Transact-SQL" target="_blank"&gt;Transact-SQL&lt;/a&gt; definitions for the functions (see &lt;a title="Playing With SQL Server CLR Integration - Part I" href="http://cli.gs/gupt5m" target="_blank"&gt;Part I&lt;/a&gt; and &lt;a title="Playing With SQL Server CLR Integration - Part II" href="http://cli.gs/2gs6GD" target="_blank"&gt;Part II&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Now the DBAs won’t definitely let me use this, but it was fun to build it.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1695185" width="1" height="1"&gt;
&lt;div class="feed_ad"&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=cf9aef0715954372b326ea8526e04393&amp;u=1695185" class="feed_ad"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=cf9aef0715954372b326ea8526e04393&amp;u=1695185" border="0" class="feed_ad"/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=K34rgB7zWfo:qQszCWqoKBc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=K34rgB7zWfo:qQszCWqoKBc:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=K34rgB7zWfo:qQszCWqoKBc:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=K34rgB7zWfo:qQszCWqoKBc:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=K34rgB7zWfo:qQszCWqoKBc:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=K34rgB7zWfo:qQszCWqoKBc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=K34rgB7zWfo:qQszCWqoKBc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=K34rgB7zWfo:qQszCWqoKBc:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=K34rgB7zWfo:qQszCWqoKBc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=K34rgB7zWfo:qQszCWqoKBc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=K34rgB7zWfo:qQszCWqoKBc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=K34rgB7zWfo:qQszCWqoKBc:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=K34rgB7zWfo:qQszCWqoKBc:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=K34rgB7zWfo:qQszCWqoKBc:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=K34rgB7zWfo:qQszCWqoKBc:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=K34rgB7zWfo:qQszCWqoKBc:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=K34rgB7zWfo:qQszCWqoKBc:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PauloMorgado/Blogs/EN/~4/K34rgB7zWfo" height="1" width="1"/&gt;&lt;img src="http://feeds.feedburner.com/~r/PauloMorgadoEN/~4/xZDr2tp-G8Y" height="1" width="1"/&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SoftDev/default.aspx">SoftDev</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/MSDN/default.aspx">MSDN</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SQLServer/default.aspx">SQLServer</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SQLServer2005/default.aspx">SQLServer2005</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SQLCLR/default.aspx">SQLCLR</category><feedburner:origLink>http://msmvps.com/blogs/paulomorgado/archive/2009/06/13/playing-with-sql-server-clr-integration-part-iv-deploying-to-sql-server-2005.aspx</feedburner:origLink><feedburner:origLink>http://feeds.paulomorgado.net/~r/PauloMorgado/Blogs/EN/~3/K34rgB7zWfo/playing-with-sql-server-clr-integration-part-iv-deploying-to-sql-server-2005.aspx</feedburner:origLink></item><item><title>Playing With SQL Server CLR Integration – Part III</title><link>http://feeds.paulomorgado.net/~r/PauloMorgadoEN/~3/G5SnvDlM1bM/playing-with-sql-server-clr-integration-part-iii.aspx</link><pubDate>Fri, 12 Jun 2009 00:11:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1695056</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1695056</wfw:commentRss><wfw:comment>http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1695056</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2009/06/12/playing-with-sql-server-clr-integration-part-iii.aspx#comments</comments><description>&lt;p&gt;You might have noticed that I used &lt;a title="Language-Integrated Query (LINQ)" href="http://msdn2.microsoft.com/library/bb397926.aspx" target="_blank"&gt;LINQ&lt;/a&gt; in my last Playing With SQL Server CLR Integration posts (&lt;a title="Playing With SQL Server CLR Integration - Part I" href="http://cli.gs/gupt5m" target="_blank"&gt;Part I&lt;/a&gt;, &lt;a title="Playing With SQL Server CLR Integration - Part II" href="http://cli.gs/2gs6GD" target="_blank"&gt;Part II&lt;/a&gt;).&lt;/p&gt;  &lt;p&gt;I couldn’t make it work with the standard &lt;a title="Microsoft Visual Studio" href="http://cli.gs/vstudio" target="_blank"&gt;Visual Studio&lt;/a&gt; 2008 SQL CLR project template. Changing the &lt;strong&gt;Target Framework&lt;/strong&gt; to &lt;a title=".NET Framework" href="http://cli.gs/netframework" target="_blank"&gt;&lt;/a&gt;&lt;a title="Microsoft .NET" href="http://cli.gs/cligs/Microsoft-NET" target="_blank"&gt;.NET Framework&lt;/a&gt; 3.5&lt;/a&gt; wasn’t enough. I had to edit the &lt;strong&gt;.csproj&lt;/strong&gt; file by hand:&lt;/p&gt;  &lt;pre class="code"&gt;&lt;p&gt;&lt;span style="color:blue;"&gt;&amp;lt;?&lt;/span&gt;&lt;span style="color:#a31515;"&gt;xml &lt;/span&gt;&lt;span style="color:red;"&gt;version&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;1.0&lt;/span&gt;&amp;quot; &lt;span style="color:red;"&gt;encoding&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;utf-8&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;?&amp;gt;
&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Project &lt;/span&gt;&lt;span style="color:red;"&gt;ToolsVersion&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;3.5&lt;/span&gt;&amp;quot; &lt;span style="color:red;"&gt;DefaultTargets&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;Build&lt;/span&gt;&amp;quot; &lt;span style="color:red;"&gt;xmlns&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;http://schemas.microsoft.com/developer/msbuild/2003&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;&amp;gt;&lt;span style="color:blue;"&gt;&lt;/span&gt;
&lt;span style="color:blue;"&gt;  &amp;lt;!—&lt;/span&gt;&lt;span style="color:green;"&gt; ... &lt;span style="color:blue;"&gt;--&lt;/span&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:blue;"&gt;  &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ItemGroup&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;&lt;span style="color:blue;"&gt;!—&lt;/span&gt;&lt;span style="color:green;"&gt; ... &lt;span style="color:blue;"&gt;--&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
&lt;strong&gt;    &amp;lt;&lt;/strong&gt;&lt;/span&gt;&lt;strong&gt;&lt;span style="color:#a31515;"&gt;Reference &lt;/span&gt;&lt;span style="color:red;"&gt;Include&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;System.Core&lt;/span&gt;&amp;quot;&lt;/strong&gt;&lt;strong&gt;&lt;span style="color:blue;"&gt;&amp;gt;
      &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;RequiredTargetFramework&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;3.5&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;RequiredTargetFramework&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="color:blue;"&gt;&amp;gt;
    &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Reference&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="color:blue;"&gt;&amp;gt;
&lt;/span&gt;&lt;span style="color:blue;"&gt;    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Reference &lt;/span&gt;&lt;span style="color:red;"&gt;Include&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;System.Xml.Linq&lt;/span&gt;&amp;quot;&lt;/strong&gt;&lt;strong&gt;&lt;span style="color:blue;"&gt;&amp;gt;
      &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;RequiredTargetFramework&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;3.5&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;RequiredTargetFramework&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;&lt;span style="color:blue;"&gt;&amp;gt;
    &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Reference&lt;/span&gt;&lt;/strong&gt;&lt;span style="color:blue;"&gt;&lt;strong&gt;&amp;gt;&lt;/strong&gt;
  &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ItemGroup&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
&lt;/span&gt;&lt;span style="color:blue;"&gt;  &amp;lt;&lt;span style="color:blue;"&gt;!—&lt;/span&gt;&lt;span style="color:green;"&gt; ... &lt;span style="color:blue;"&gt;--&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Project&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1695056" width="1" height="1"&gt;
&lt;div class="feed_ad"&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=cf9aef0715954372b326ea8526e04393&amp;u=1695056" class="feed_ad"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=cf9aef0715954372b326ea8526e04393&amp;u=1695056" border="0" class="feed_ad"/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=8Fl0OWBTb7o:iISu9rup9no:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=8Fl0OWBTb7o:iISu9rup9no:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=8Fl0OWBTb7o:iISu9rup9no:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=8Fl0OWBTb7o:iISu9rup9no:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=8Fl0OWBTb7o:iISu9rup9no:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=8Fl0OWBTb7o:iISu9rup9no:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=8Fl0OWBTb7o:iISu9rup9no:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=8Fl0OWBTb7o:iISu9rup9no:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=8Fl0OWBTb7o:iISu9rup9no:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=8Fl0OWBTb7o:iISu9rup9no:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=8Fl0OWBTb7o:iISu9rup9no:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=8Fl0OWBTb7o:iISu9rup9no:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=8Fl0OWBTb7o:iISu9rup9no:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=8Fl0OWBTb7o:iISu9rup9no:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=8Fl0OWBTb7o:iISu9rup9no:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=8Fl0OWBTb7o:iISu9rup9no:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=8Fl0OWBTb7o:iISu9rup9no:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PauloMorgado/Blogs/EN/~4/8Fl0OWBTb7o" height="1" width="1"/&gt;&lt;img src="http://feeds.feedburner.com/~r/PauloMorgadoEN/~4/G5SnvDlM1bM" height="1" width="1"/&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SoftDev/default.aspx">SoftDev</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/MSDN/default.aspx">MSDN</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SQLServer/default.aspx">SQLServer</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/LINQ/default.aspx">LINQ</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SQLServer2008/default.aspx">SQLServer2008</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SQLServer2005/default.aspx">SQLServer2005</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SQLCLR/default.aspx">SQLCLR</category><feedburner:origLink>http://msmvps.com/blogs/paulomorgado/archive/2009/06/12/playing-with-sql-server-clr-integration-part-iii.aspx</feedburner:origLink><feedburner:origLink>http://feeds.paulomorgado.net/~r/PauloMorgado/Blogs/EN/~3/8Fl0OWBTb7o/playing-with-sql-server-clr-integration-part-iii.aspx</feedburner:origLink></item><item><title>Playing With SQL Server CLR Integration – Part II</title><link>http://feeds.paulomorgado.net/~r/PauloMorgadoEN/~3/8RLDbDByxwI/playing-with-sql-server-clr-integration-part-ii.aspx</link><pubDate>Thu, 11 Jun 2009 23:52:37 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1695052</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1695052</wfw:commentRss><wfw:comment>http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1695052</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2009/06/12/playing-with-sql-server-clr-integration-part-ii.aspx#comments</comments><description>&lt;p align="justify"&gt;On my last &lt;a title="Playing With SQL Server CLR Integration – Part I" href="http://cli.gs/gupt5m" target="_blank"&gt;post&lt;/a&gt;, I showed how to convert a property bag stored in text to a &lt;a title="CLR Table-Valued Functions" href="http://cli.gs/DGRt9u" target="_blank"&gt;CLR Table-Valued Function&lt;/a&gt;.&lt;/p&gt;  &lt;p align="justify"&gt;I started thinking that I could retrieve the property values, but I couldn’t change them or add new properties.&lt;/p&gt;  &lt;p align="justify"&gt;Passing a table as a parameter is still not possible in &lt;a title="Microsoft SQL Server" href="http://www.microsoft.com/sqlserver/" target="_blank"&gt;SQL Server&lt;/a&gt; 2005. And that would force me to load the table into a variable, change it and load it back into the property bag.&lt;/p&gt;  &lt;p align="justify"&gt;Or I could create functions to Create, Update and Delete properties from the property bag.&lt;/p&gt;  &lt;p align="justify"&gt;Or I could just use XML. All it takes is creating a &lt;a title="CLR Scalar-Valued Functions" href="http://cli.gs/ySuXMU" target="_blank"&gt;CLR Scalar-Valued Function&lt;/a&gt; to convert the property bag to an XML representation and another to convert the XML back to the property bag format.&lt;/p&gt;  &lt;p align="justify"&gt;It still makes me load the property bag into a variable if I want to change it, but it’s usable in SQL Server 2005, which was the targeted platform.&lt;/p&gt;  &lt;p align="justify"&gt;Converting the property bag to an XML document is easy using the previously created enumerator:&lt;/p&gt;  &lt;pre class="code"&gt;[Microsoft.SqlServer.Server.&lt;span style="color:#2b91af;"&gt;SqlFunction&lt;/span&gt;(
    Name = &lt;span style="color:#a31515;"&gt;&amp;quot;ShortPropsToXml&amp;quot;&lt;/span&gt;,
    IsDeterministic = &lt;span style="color:blue;"&gt;true&lt;/span&gt;,
    IsPrecise = &lt;span style="color:blue;"&gt;false&lt;/span&gt;,
    DataAccess = &lt;span style="color:#2b91af;"&gt;DataAccessKind&lt;/span&gt;.None,
    SystemDataAccess = &lt;span style="color:#2b91af;"&gt;SystemDataAccessKind&lt;/span&gt;.None)]
&lt;span style="color:blue;"&gt;public static &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;SqlXml &lt;/span&gt;ShortPropsToXml(&lt;span style="color:blue;"&gt;string &lt;/span&gt;shortPropsText)
{
    &lt;span style="color:blue;"&gt;var &lt;/span&gt;xml = &lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;XElement&lt;/span&gt;(&lt;span style="color:#a31515;"&gt;&amp;quot;ShortProps&amp;quot;&lt;/span&gt;,
        &lt;span style="color:blue;"&gt;from &lt;/span&gt;shortProp &lt;span style="color:blue;"&gt;in &lt;/span&gt;ShortPropsEnumerable(shortPropsText)
        &lt;span style="color:blue;"&gt;select new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;XElement&lt;/span&gt;(&lt;span style="color:#a31515;"&gt;&amp;quot;p&amp;quot;&lt;/span&gt;,
            &lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;XAttribute&lt;/span&gt;(&lt;span style="color:#a31515;"&gt;&amp;quot;n&amp;quot;&lt;/span&gt;, shortProp.Key),
            &lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;XCData&lt;/span&gt;(shortProp.Value)));

    &lt;span style="color:blue;"&gt;using &lt;/span&gt;(&lt;span style="color:blue;"&gt;var &lt;/span&gt;buffer = &lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;MemoryStream&lt;/span&gt;())
    {
        &lt;span style="color:blue;"&gt;using &lt;/span&gt;(&lt;span style="color:blue;"&gt;var &lt;/span&gt;xmlWriter = &lt;span style="color:#2b91af;"&gt;XmlWriter&lt;/span&gt;.Create(buffer, &lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;XmlWriterSettings &lt;/span&gt;{ CheckCharacters = &lt;span style="color:blue;"&gt;false &lt;/span&gt;}))
        {
            xml.WriteTo(xmlWriter);
        }

        buffer.Position = 0;

        &lt;span style="color:blue;"&gt;using &lt;/span&gt;(&lt;span style="color:#2b91af;"&gt;XmlReader &lt;/span&gt;xmlReader = &lt;span style="color:#2b91af;"&gt;XmlReader&lt;/span&gt;.Create(buffer, &lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;XmlReaderSettings &lt;/span&gt;{ CheckCharacters = &lt;span style="color:blue;"&gt;false &lt;/span&gt;}))
        {
            &lt;span style="color:blue;"&gt;return new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;SqlXml&lt;/span&gt;(xmlReader);
        }
    }
}&lt;/pre&gt;

&lt;p align="justify"&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;Converting the an XML document back into the property bag format is also easy:&lt;/p&gt;

&lt;pre class="code"&gt;[Microsoft.SqlServer.Server.&lt;span style="color:#2b91af;"&gt;SqlFunction&lt;/span&gt;(
    Name = &lt;span style="color:#a31515;"&gt;&amp;quot;XmlToShortProps&amp;quot;&lt;/span&gt;,
    IsDeterministic = &lt;span style="color:blue;"&gt;true&lt;/span&gt;,
    IsPrecise = &lt;span style="color:blue;"&gt;false&lt;/span&gt;,
    DataAccess = &lt;span style="color:#2b91af;"&gt;DataAccessKind&lt;/span&gt;.None,
    SystemDataAccess = &lt;span style="color:#2b91af;"&gt;SystemDataAccessKind&lt;/span&gt;.None)]
&lt;span style="color:blue;"&gt;public static &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;SqlChars &lt;/span&gt;XmlToShortProps(&lt;span style="color:#2b91af;"&gt;SqlXml &lt;/span&gt;shortPropsXml)
{
    &lt;span style="color:blue;"&gt;var &lt;/span&gt;xml = &lt;span style="color:#2b91af;"&gt;XDocument&lt;/span&gt;.Parse(shortPropsXml.Value);

    &lt;span style="color:blue;"&gt;var &lt;/span&gt;textBuilder = &lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;StringBuilder&lt;/span&gt;();
    &lt;span style="color:blue;"&gt;foreach &lt;/span&gt;(&lt;span style="color:blue;"&gt;var &lt;/span&gt;item &lt;span style="color:blue;"&gt;in &lt;/span&gt;xml.Document.Element(&lt;span style="color:#a31515;"&gt;&amp;quot;ShortProps&amp;quot;&lt;/span&gt;).Elements(&lt;span style="color:#a31515;"&gt;&amp;quot;p&amp;quot;&lt;/span&gt;))
    {
        textBuilder.AppendFormat(&lt;span style="color:#a31515;"&gt;&amp;quot;[[[{1}]]]{0}{2}{0}&amp;quot;&lt;/span&gt;, &lt;span style="color:#2b91af;"&gt;Environment&lt;/span&gt;.NewLine, item.Attribute(&lt;span style="color:#a31515;"&gt;&amp;quot;n&amp;quot;&lt;/span&gt;).Value, item.Value);
    }

    &lt;span style="color:blue;"&gt;return new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;SqlChars&lt;/span&gt;(textBuilder.ToString().ToCharArray());
}&lt;/pre&gt;

&lt;p align="justify"&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;Now it’s just uploading the new version of the assembly to the database:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;ALTER ASSEMBLY &lt;/span&gt;[MyAssembly]
&lt;span style="color:blue;"&gt;FROM &lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;...\MyAssembly.dll&amp;#39;
&lt;/span&gt;&lt;span style="color:blue;"&gt;GO&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;And defining the Scalar-Valued Functions in &lt;a title="Transact-SQL Overview" href="http://cli.gs/Transact-SQL" target="_blank"&gt;Transact-SQL&lt;/a&gt;:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;CREATE FUNCTION &lt;/span&gt;[dbo]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShortPropsToXml]&lt;span style="color:gray;"&gt;(&lt;/span&gt;@shortPropsText [nvarchar]&lt;span style="color:gray;"&gt;(&lt;/span&gt;4000&lt;span style="color:gray;"&gt;))
&lt;/span&gt;&lt;span style="color:blue;"&gt;RETURNS &lt;/span&gt;[xml] &lt;span style="color:blue;"&gt;WITH EXECUTE AS CALLER
AS 
EXTERNAL &lt;/span&gt;NAME [Esi.SA.Encyclopedia]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShortProps]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShortPropsToXml]
&lt;span style="color:blue;"&gt;GO
&lt;/span&gt;
&lt;span style="color:blue;"&gt;CREATE FUNCTION &lt;/span&gt;[dbo]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[XmlToShortProps]&lt;span style="color:gray;"&gt;(&lt;/span&gt;@shortPropsXml [xml]&lt;span style="color:gray;"&gt;)
&lt;/span&gt;&lt;span style="color:blue;"&gt;RETURNS &lt;/span&gt;[nvarchar]&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:magenta;"&gt;max&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;WITH EXECUTE AS CALLER
AS 
EXTERNAL &lt;/span&gt;NAME [Esi.SA.Encyclopedia]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShortProps]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[XmlToShortProps]
&lt;span style="color:blue;"&gt;GO
&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p align="justify"&gt;And it’s all set to go.&lt;/p&gt;

&lt;p align="justify"&gt;Now, given this property bag definition:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;declare &lt;/span&gt;@text &lt;span style="color:blue;"&gt;nvarchar&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:magenta;"&gt;max&lt;/span&gt;&lt;span style="color:gray;"&gt;)=&lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;[[[name1]]]
value1
[[[name2]]]
value2
[[[name3]]]
value3
&amp;#39;
&lt;/span&gt;&lt;/pre&gt;

&lt;p align="justify"&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;I can change it into XML:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;DECLARE &lt;/span&gt;@xml [xml] &lt;span style="color:gray;"&gt;= &lt;/span&gt;dbo&lt;span style="color:gray;"&gt;.&lt;/span&gt;ShortPropsToXml&lt;span style="color:gray;"&gt;(&lt;/span&gt;@text&lt;span style="color:gray;"&gt;)&lt;/span&gt;&lt;/pre&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;div align="justify"&gt;Update: &lt;/div&gt;

    &lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;set &lt;/span&gt;@xml&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:blue;"&gt;modify&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;replace value of (/ShortProps/p[@n=&amp;quot;name2&amp;quot;]/text())[1] with &amp;quot;new value2&amp;quot;&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;)
&lt;/span&gt;&lt;/pre&gt;
  &lt;/li&gt;

  &lt;li&gt;
    &lt;div align="justify"&gt;Insert: &lt;/div&gt;

    &lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;set &lt;/span&gt;@xml&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:blue;"&gt;modify&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;insert &amp;lt;p n=&amp;quot;name4&amp;quot;&amp;gt;Value4.1
Value4.2&amp;lt;/p&amp;gt; after (/ShortProps/p[@n=&amp;quot;name2&amp;quot;])[1]&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;)&lt;/span&gt;&lt;/pre&gt;
  &lt;/li&gt;

  &lt;li&gt;
    &lt;div align="justify"&gt;Delete &lt;/div&gt;

    &lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;set &lt;/span&gt;@xml&lt;span style="color:gray;"&gt;.&lt;/span&gt;&lt;span style="color:blue;"&gt;modify&lt;/span&gt;&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;delete (/ShortProps/p[@n=&amp;quot;name3&amp;quot;])[1]&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;)&lt;/span&gt;&lt;/pre&gt;
  &lt;/li&gt;

  &lt;li&gt;
    &lt;p align="justify"&gt;Convert back to the property bag format: &lt;/p&gt;

    &lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;print &lt;/span&gt;dbo&lt;span style="color:gray;"&gt;.&lt;/span&gt;XmlToShortProps&lt;span style="color:gray;"&gt;(&lt;/span&gt;@xml&lt;span style="color:gray;"&gt;)&lt;/span&gt;&lt;/pre&gt;
    &lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

    &lt;pre class="code"&gt;[[[name1]]]
value1
[[[name2]]]
new value2
[[[name4]]]
Value4.1
Value4.2&lt;/pre&gt;
    &lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;p align="justify"&gt;Query as a table: &lt;/p&gt;

    &lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;select &lt;/span&gt;T&lt;span style="color:gray;"&gt;.&lt;/span&gt;C&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;./@n&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;nvarchar(max)&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;as &lt;/span&gt;Name&lt;span style="color:gray;"&gt;, &lt;/span&gt;T&lt;span style="color:gray;"&gt;.&lt;/span&gt;C&lt;span style="color:gray;"&gt;.&lt;/span&gt;value&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;.&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;nvarchar(max)&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;as &lt;/span&gt;Value &lt;span style="color:blue;"&gt;from &lt;/span&gt;@xml&lt;span style="color:gray;"&gt;.&lt;/span&gt;nodes&lt;span style="color:gray;"&gt;(&lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;/ShortProps/p&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;) &lt;/span&gt;T&lt;span style="color:gray;"&gt;(&lt;/span&gt;C&lt;span style="color:gray;"&gt;)&lt;/span&gt;&lt;/pre&gt;

    &lt;table style="border-bottom:black thin solid;border-left:black thin solid;border-top:black thin solid;border-right:black thin solid;"&gt;&lt;tbody&gt;
        &lt;tr&gt;
          &lt;th style="border-bottom:black thin solid;border-left:black thin solid;border-top:black thin solid;border-right:black thin solid;"&gt;Name&lt;/th&gt;

          &lt;th style="border-bottom:black thin solid;border-left:black thin solid;border-top:black thin solid;border-right:black thin solid;"&gt;Value&lt;/th&gt;
        &lt;/tr&gt;

        &lt;tr&gt;
          &lt;td style="border-bottom:black thin solid;border-left:black thin solid;border-top:black thin solid;border-right:black thin solid;"&gt;name1&lt;/td&gt;

          &lt;td style="border-bottom:black thin solid;border-left:black thin solid;border-top:black thin solid;border-right:black thin solid;"&gt;value1&lt;/td&gt;
        &lt;/tr&gt;

        &lt;tr&gt;
          &lt;td style="border-bottom:black thin solid;border-left:black thin solid;border-top:black thin solid;border-right:black thin solid;"&gt;name2&lt;/td&gt;

          &lt;td style="border-bottom:black thin solid;border-left:black thin solid;border-top:black thin solid;border-right:black thin solid;"&gt;new value2&lt;/td&gt;
        &lt;/tr&gt;

        &lt;tr&gt;
          &lt;td style="border-bottom:black thin solid;border-left:black thin solid;border-top:black thin solid;border-right:black thin solid;"&gt;name4&lt;/td&gt;

          &lt;td style="border-bottom:black thin solid;border-left:black thin solid;border-top:black thin solid;border-right:black thin solid;"&gt;Value4.1 
            &lt;br /&gt;Value4.2&lt;/td&gt;
        &lt;/tr&gt;
      &lt;/tbody&gt;&lt;/table&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p align="justify"&gt;Unfortunately, the application uses characters that are invalid to SQL Server as XML characters and I can’t use it on that application. I’ll have to understand those values better and add other fields to the table and XML.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1695052" width="1" height="1"&gt;
&lt;div class="feed_ad"&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=cf9aef0715954372b326ea8526e04393&amp;u=1695052" class="feed_ad"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=cf9aef0715954372b326ea8526e04393&amp;u=1695052" border="0" class="feed_ad"/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=BQTnkXKzmaI:OSkC8VgDt_I:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=BQTnkXKzmaI:OSkC8VgDt_I:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=BQTnkXKzmaI:OSkC8VgDt_I:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=BQTnkXKzmaI:OSkC8VgDt_I:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=BQTnkXKzmaI:OSkC8VgDt_I:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=BQTnkXKzmaI:OSkC8VgDt_I:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=BQTnkXKzmaI:OSkC8VgDt_I:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=BQTnkXKzmaI:OSkC8VgDt_I:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=BQTnkXKzmaI:OSkC8VgDt_I:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=BQTnkXKzmaI:OSkC8VgDt_I:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=BQTnkXKzmaI:OSkC8VgDt_I:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=BQTnkXKzmaI:OSkC8VgDt_I:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=BQTnkXKzmaI:OSkC8VgDt_I:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=BQTnkXKzmaI:OSkC8VgDt_I:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=BQTnkXKzmaI:OSkC8VgDt_I:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=BQTnkXKzmaI:OSkC8VgDt_I:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=BQTnkXKzmaI:OSkC8VgDt_I:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PauloMorgado/Blogs/EN/~4/BQTnkXKzmaI" height="1" width="1"/&gt;&lt;img src="http://feeds.feedburner.com/~r/PauloMorgadoEN/~4/8RLDbDByxwI" height="1" width="1"/&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SoftDev/default.aspx">SoftDev</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/MSDN/default.aspx">MSDN</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SQLServer/default.aspx">SQLServer</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/XML/default.aspx">XML</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SQLServer2008/default.aspx">SQLServer2008</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SQLServer2005/default.aspx">SQLServer2005</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SQLCLR/default.aspx">SQLCLR</category><feedburner:origLink>http://msmvps.com/blogs/paulomorgado/archive/2009/06/12/playing-with-sql-server-clr-integration-part-ii.aspx</feedburner:origLink><feedburner:origLink>http://feeds.paulomorgado.net/~r/PauloMorgado/Blogs/EN/~3/BQTnkXKzmaI/playing-with-sql-server-clr-integration-part-ii.aspx</feedburner:origLink></item><item><title>Playing With SQL Server CLR Integration – Part I</title><link>http://feeds.paulomorgado.net/~r/PauloMorgadoEN/~3/buKfT-SZRQ0/playing-with-sql-server-clr-integration-part-i.aspx</link><pubDate>Thu, 11 Jun 2009 23:41:14 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1695049</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1695049</wfw:commentRss><wfw:comment>http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1695049</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2009/06/12/playing-with-sql-server-clr-integration-part-i.aspx#comments</comments><description>&lt;p align="justify"&gt;I’m currently working with an application that stores a property bag in a &lt;a title="Microsoft SQL Server" href="http://www.microsoft.com/sqlserver/" target="_blank"&gt;SQL Server&lt;/a&gt; column like this:&lt;/p&gt;  &lt;pre class="code"&gt;&lt;span style="color:black;"&gt;[[[name1]]]
value1
[[[name2]]]
value2.1
value2.2
[[[name3]]]
value3&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p align="justify"&gt;Don’t ask me why it’s done like this. It just is.&lt;/p&gt;

&lt;p align="justify"&gt;The application decodes this property bag into its inner structures and all works fine.&lt;/p&gt;

&lt;p align="justify"&gt;Sometimes I would like to query the database directly or do some reporting on those properties and just can’t.&lt;/p&gt;

&lt;p align="justify"&gt;So, I thought this was a good use case for SQL Server &lt;a title="Overview of CLR Integration" href="http://cli.gs/rDr0Yj" target="_blank"&gt;CLR Integration&lt;/a&gt;. I decided to build a &lt;a title="CLR Table-Valued Functions" href="http://cli.gs/DGRt9u" target="_blank"&gt;CLR Table-Valued Function&lt;/a&gt; that would return the property bag as a two column table.&lt;/p&gt;

&lt;p align="justify"&gt;Parsing the property bag text can easily be achieved with a simple regular expression:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Regex&lt;/span&gt;(
        &lt;span style="color:blue;"&gt;string&lt;/span&gt;.Format(&lt;span style="color:#a31515;"&gt;@&amp;quot;(?&amp;lt;Name&amp;gt;(?&amp;lt;=\[\[\[).*(?=\]\]\]{0}))\]\]\]{0}(?&amp;lt;Value&amp;gt;(([\s\S]*?(?={0}\[\[\[))|([\s\S]*?(?={0}$))))&amp;quot;&lt;/span&gt;, &lt;span style="color:#2b91af;"&gt;Environment&lt;/span&gt;.NewLine),
        &lt;span style="color:#2b91af;"&gt;RegexOptions&lt;/span&gt;.Multiline | &lt;span style="color:#2b91af;"&gt;RegexOptions&lt;/span&gt;.ExplicitCapture | &lt;span style="color:#2b91af;"&gt;RegexOptions&lt;/span&gt;.CultureInvariant | &lt;span style="color:#2b91af;"&gt;RegexOptions&lt;/span&gt;.Compiled);&lt;/pre&gt;

&lt;p align="justify"&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;a title="Ultrapico" href="http://cli.gs/Ultrapico" target="_blank"&gt;Ultrapico&lt;/a&gt;’s &lt;a title="Ultrapico&amp;#39;s Expresso" href="http://cli.gs/Ultrapico-Expresso" target="_blank"&gt;Expresso&lt;/a&gt; was a big help when developing this regular expression.&lt;/p&gt;

&lt;p align="justify"&gt;In case you don’t know, the way CLR Table-Valued Function are built is using an initial method to take the input and return an IEnumerable and row filler method the receives the enumerator item and outputs the column values.&lt;/p&gt;

&lt;p align="justify"&gt;Since these are really key-value pairs of strings, I decided to use &lt;a title="KeyValuePair&amp;lt;(Of &amp;lt;(TKey, TValue&amp;gt;)&amp;gt;) Structure" href="http://msdn.microsoft.com/library/5tbh8a42.aspx" target="_blank"&gt;)&amp;gt;) Structure&amp;quot; href=&amp;quot;http://msdn.microsoft.com/library/5tbh8a42.aspx&amp;quot; target=_blank&amp;gt;KeyValuePair&lt;/a&gt;&amp;lt;string, string&amp;gt; instances to store each item and the enumerator became simply this:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;private static &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;IEnumerable&lt;/span&gt;&amp;lt;&lt;span style="color:#2b91af;"&gt;KeyValuePair&lt;/span&gt;&amp;lt;&lt;span style="color:blue;"&gt;string&lt;/span&gt;, &lt;span style="color:blue;"&gt;string&lt;/span&gt;&amp;gt;&amp;gt; ShortPropsEnumerable(&lt;span style="color:blue;"&gt;string &lt;/span&gt;shortPropsText)
{
    &lt;span style="color:blue;"&gt;return from &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Match &lt;/span&gt;m &lt;span style="color:blue;"&gt;in &lt;/span&gt;shortPropsRegex.Matches(shortPropsText)
           &lt;span style="color:blue;"&gt;select new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;KeyValuePair&lt;/span&gt;&amp;lt;&lt;span style="color:blue;"&gt;string&lt;/span&gt;, &lt;span style="color:blue;"&gt;string&lt;/span&gt;&amp;gt;(m.Groups[&lt;span style="color:#a31515;"&gt;&amp;quot;Name&amp;quot;&lt;/span&gt;].Value, m.Groups[&lt;span style="color:#a31515;"&gt;&amp;quot;Value&amp;quot;&lt;/span&gt;].Value);
}&lt;/pre&gt;

&lt;p align="justify"&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;And the implementation of the CLR Table-Valued Function is as simple as this: &lt;/p&gt;

&lt;pre class="code"&gt;[Microsoft.SqlServer.Server.&lt;span style="color:#2b91af;"&gt;SqlFunction&lt;/span&gt;(
    Name = &lt;span style="color:#a31515;"&gt;&amp;quot;ShortPropsToTable&amp;quot;&lt;/span&gt;,
    FillRowMethodName = &lt;span style="color:#a31515;"&gt;&amp;quot;ShortPropsToTableFillRow&amp;quot;&lt;/span&gt;,
    TableDefinition = &lt;span style="color:#a31515;"&gt;&amp;quot;Name NVARCHAR(4000), Value NVARCHAR(4000)&amp;quot;&lt;/span&gt;,
    IsDeterministic = &lt;span style="color:blue;"&gt;true&lt;/span&gt;,
    IsPrecise = &lt;span style="color:blue;"&gt;false&lt;/span&gt;,
    DataAccess = &lt;span style="color:#2b91af;"&gt;DataAccessKind&lt;/span&gt;.None,
    SystemDataAccess = &lt;span style="color:#2b91af;"&gt;SystemDataAccessKind&lt;/span&gt;.None)]
&lt;span style="color:blue;"&gt;public static &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;IEnumerable &lt;/span&gt;ShortPropsToTable(&lt;span style="color:blue;"&gt;string &lt;/span&gt;shortPropsText)
{
    &lt;span style="color:blue;"&gt;return &lt;/span&gt;ShortPropsEnumerable(shortPropsText);
}

&lt;span style="color:blue;"&gt;public static void &lt;/span&gt;ShortPropsToTableFillRow(&lt;span style="color:blue;"&gt;object &lt;/span&gt;item, &lt;span style="color:blue;"&gt;out &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;SqlChars &lt;/span&gt;name, &lt;span style="color:blue;"&gt;out &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;SqlChars &lt;/span&gt;value)
{
    &lt;span style="color:#2b91af;"&gt;KeyValuePair&lt;/span&gt;&amp;lt;&lt;span style="color:blue;"&gt;string&lt;/span&gt;, &lt;span style="color:blue;"&gt;string&lt;/span&gt;&amp;gt; shortProp = (&lt;span style="color:#2b91af;"&gt;KeyValuePair&lt;/span&gt;&amp;lt;&lt;span style="color:blue;"&gt;string&lt;/span&gt;, &lt;span style="color:blue;"&gt;string&lt;/span&gt;&amp;gt;)item;

    name = &lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;SqlChars&lt;/span&gt;(shortProp.Key);
    value = &lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;SqlChars&lt;/span&gt;(shortProp.Value);
}&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p align="justify"&gt;To use this in SQL Server a few simple steps are need:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;
    &lt;div align="justify"&gt;Load the assembly into the database: &lt;/div&gt;

    &lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;CREATE ASSEMBLY &lt;/span&gt;[MyAssembly]
&lt;span style="color:blue;"&gt;AUTHORIZATION &lt;/span&gt;[dbo]
&lt;span style="color:blue;"&gt;FROM &lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;...\MyAssembly.dll&amp;#39;
&lt;/span&gt;&lt;span style="color:blue;"&gt;WITH PERMISSION_SET &lt;/span&gt;&lt;span style="color:gray;"&gt;= &lt;/span&gt;&lt;span style="color:blue;"&gt;SAFE
GO&lt;/span&gt;&lt;/pre&gt;
    &lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/li&gt;

  &lt;li&gt;
    &lt;div align="justify"&gt;Defining the &lt;a title="Table-Valued User-Defined Functions" href="http://cli.gs/GngXhh" target="_blank"&gt;Table-Valued User-Defined Function&lt;/a&gt; in &lt;a title="Transact-SQL Overview" href="http://cli.gs/Transact-SQL" target="_blank"&gt;Transact-SQL&lt;/a&gt;: &lt;/div&gt;

    &lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;CREATE FUNCTION &lt;/span&gt;[dbo]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShortPropsToTable]&lt;span style="color:gray;"&gt;(&lt;/span&gt;@shortPropsText [nvarchar]&lt;span style="color:gray;"&gt;(&lt;/span&gt;4000&lt;span style="color:gray;"&gt;))
&lt;/span&gt;&lt;span style="color:blue;"&gt;RETURNS  TABLE &lt;/span&gt;&lt;span style="color:gray;"&gt;(
    &lt;/span&gt;[Name] [nvarchar]&lt;span style="color:gray;"&gt;(&lt;/span&gt;4000&lt;span style="color:gray;"&gt;) NULL,
    &lt;/span&gt;[Value] [nvarchar]&lt;span style="color:gray;"&gt;(&lt;/span&gt;4000&lt;span style="color:gray;"&gt;) NULL
) &lt;/span&gt;&lt;span style="color:blue;"&gt;WITH EXECUTE AS CALLER
AS 
EXTERNAL &lt;/span&gt;NAME [MyAssembly]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShortProps]&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShortPropsToTable]
&lt;span style="color:blue;"&gt;GO
&lt;/span&gt;&lt;/pre&gt;
    &lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/li&gt;

  &lt;li&gt;
    &lt;div align="justify"&gt;Enable CLR Integration: &lt;/div&gt;

    &lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;EXEC &lt;/span&gt;&lt;span style="color:maroon;"&gt;sp_configure &lt;/span&gt;&lt;span style="color:red;"&gt;&amp;#39;clr enabled&amp;#39;&lt;/span&gt;&lt;span style="color:gray;"&gt;, &lt;/span&gt;1
&lt;span style="color:blue;"&gt;GO
RECONFIGURE
GO
&lt;/span&gt;&lt;/pre&gt;
  &lt;/li&gt;
&lt;/ol&gt;

&lt;p align="justify"&gt;And all is set to go.&lt;/p&gt;

&lt;p align="justify"&gt;Now I can just query the property bag as a table:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;SELECT
    &lt;/span&gt;e&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ID]&lt;span style="color:gray;"&gt;,
    &lt;/span&gt;e&lt;span style="color:gray;"&gt;.&lt;/span&gt;[Name]&lt;span style="color:gray;"&gt;,
    &lt;/span&gt;e&lt;span style="color:gray;"&gt;.&lt;/span&gt;[Class]&lt;span style="color:gray;"&gt;,
    &lt;/span&gt;e&lt;span style="color:gray;"&gt;.&lt;/span&gt;[Type]&lt;span style="color:gray;"&gt;,
    &lt;/span&gt;p&lt;span style="color:gray;"&gt;.&lt;/span&gt;[Name]&lt;span style="color:gray;"&gt;,
    &lt;/span&gt;p&lt;span style="color:gray;"&gt;.&lt;/span&gt;[Value]
&lt;span style="color:blue;"&gt;FROM
    &lt;/span&gt;dbo&lt;span style="color:gray;"&gt;.&lt;/span&gt;Entity &lt;span style="color:blue;"&gt;as &lt;/span&gt;e
    &lt;span style="color:gray;"&gt;CROSS APPLY &lt;/span&gt;dbo&lt;span style="color:gray;"&gt;.&lt;/span&gt;ShortPropsToTable&lt;span style="color:gray;"&gt;(&lt;/span&gt;e&lt;span style="color:gray;"&gt;.&lt;/span&gt;[ShortProps]&lt;span style="color:gray;"&gt;) &lt;/span&gt;&lt;span style="color:blue;"&gt;as &lt;/span&gt;p&lt;/pre&gt;

&lt;p align="justify"&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;Just for curiosity, for a little over 50000 entities (that can be retrieved on about 1 second on my laptop), I got a little under 630000 properties in les then 40 seconds.&lt;/p&gt;

&lt;p align="justify"&gt;40 seconds might seem a lot compared to the 1 second, but I would like to see better times using T-SQL. And develop and test the TVF in just a couple of hours.&lt;/p&gt;

&lt;p align="justify"&gt;Now, if only he DBAs would allow me to use it. It doesn’t fit into the company’s “security policy”, you know.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1695049" width="1" height="1"&gt;
&lt;div class="feed_ad"&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=cf9aef0715954372b326ea8526e04393&amp;u=1695049" class="feed_ad"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=cf9aef0715954372b326ea8526e04393&amp;u=1695049" border="0" class="feed_ad"/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=q6CasKE5XBo:3HqOfp6zjv8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=q6CasKE5XBo:3HqOfp6zjv8:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=q6CasKE5XBo:3HqOfp6zjv8:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=q6CasKE5XBo:3HqOfp6zjv8:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=q6CasKE5XBo:3HqOfp6zjv8:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=q6CasKE5XBo:3HqOfp6zjv8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=q6CasKE5XBo:3HqOfp6zjv8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=q6CasKE5XBo:3HqOfp6zjv8:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=q6CasKE5XBo:3HqOfp6zjv8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=q6CasKE5XBo:3HqOfp6zjv8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=q6CasKE5XBo:3HqOfp6zjv8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=q6CasKE5XBo:3HqOfp6zjv8:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=q6CasKE5XBo:3HqOfp6zjv8:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=q6CasKE5XBo:3HqOfp6zjv8:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=q6CasKE5XBo:3HqOfp6zjv8:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=q6CasKE5XBo:3HqOfp6zjv8:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=q6CasKE5XBo:3HqOfp6zjv8:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PauloMorgado/Blogs/EN/~4/q6CasKE5XBo" height="1" width="1"/&gt;&lt;img src="http://feeds.feedburner.com/~r/PauloMorgadoEN/~4/buKfT-SZRQ0" height="1" width="1"/&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SoftDev/default.aspx">SoftDev</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/MSDN/default.aspx">MSDN</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SQLServer/default.aspx">SQLServer</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SQLServer2008/default.aspx">SQLServer2008</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SQLServer2005/default.aspx">SQLServer2005</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SQLCLR/default.aspx">SQLCLR</category><feedburner:origLink>http://msmvps.com/blogs/paulomorgado/archive/2009/06/12/playing-with-sql-server-clr-integration-part-i.aspx</feedburner:origLink><feedburner:origLink>http://feeds.paulomorgado.net/~r/PauloMorgado/Blogs/EN/~3/q6CasKE5XBo/playing-with-sql-server-clr-integration-part-i.aspx</feedburner:origLink></item><item><title>Microsoft URL Rewrite Module 1.1 For IIS 7 To The Rescue</title><link>http://feeds.paulomorgado.net/~r/PauloMorgadoEN/~3/Wstj-A2KksE/microsoft-url-rewrite-module-1-1-for-iis-7-to-the-rescue.aspx</link><pubDate>Mon, 01 Jun 2009 00:10:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1693499</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1693499</wfw:commentRss><wfw:comment>http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1693499</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2009/06/01/microsoft-url-rewrite-module-1-1-for-iis-7-to-the-rescue.aspx#comments</comments><description>&lt;p&gt;We are migrating the &lt;a title="[:: PontoNetPT - .NET em Português(PT) ::]" href="http://www.pontonetpt.com/" target="_blank"&gt;PontoNetPT&lt;/a&gt; community from an old .TEXT version to the latest &lt;a title="Community Software by Telligent" href="http://communityserver.com/" target="_blank"&gt;Community Server&lt;/a&gt; (CS).&lt;/p&gt;  &lt;p&gt;Because &lt;strong&gt;PontoNetPT&lt;/strong&gt; has nearly 200 blogs with I don’t know how any posts, commentaries, trackbacks, etc., we are using the &lt;a title="Community Server API - Extending the platform just got easier..." href="http://api.communityserver.com/" target="_blank"&gt;Community Server REST API&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;The problem with using this API is that it doesn’t create the folder that CS can be configured to create with a default.aspx file for each blog created using it’s web site administration.&lt;/p&gt;  &lt;p&gt;The importance of this folder and file is for &lt;a title="IIS.net : The Official Microsoft IIS Site" href="http://www.iis.net/" target="_blank"&gt;IIS&lt;/a&gt; to be able to handle the requests &lt;strong&gt;http://&amp;lt;your community&amp;gt;/blogs/&amp;lt;your blog&amp;gt;&lt;/strong&gt; or &lt;strong&gt;http://&amp;lt;your community&amp;gt;/blogs/&amp;lt;your blog&amp;gt;/&lt;/strong&gt; as if was a request to &lt;strong&gt;http://&amp;lt;your community&amp;gt;/blogs/&amp;lt;your blog&amp;gt;/default.aspx&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;Fortunately, we are running on &lt;a title="Microsoft Windows Server 2008" href="http://cli.gs/Microsoft-Windows-Server-2008" target="_blank"&gt;Windows 2008&lt;/a&gt; and IIS 7 and all it took was to install the &lt;a title="Microsoft URL Rewrite Module 1.1 For IIS 7" href="http://cli.gs/Microsoft-IIS7-URL-Rewrite-Module" target="_blank"&gt;Microsoft URL Rewrite Module 1.1 For IIS 7&lt;/a&gt; and configure it:&lt;/p&gt;  &lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;configuration&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
  &amp;lt;!--&lt;/span&gt;&lt;span style="color:green;"&gt;...&lt;/span&gt;&lt;span style="color:blue;"&gt;--&amp;gt;
  &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;system.webServer&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
    &amp;lt;!--&lt;/span&gt;&lt;span style="color:green;"&gt;...&lt;/span&gt;&lt;span style="color:blue;"&gt;--&amp;gt;
    &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;rewrite&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
      &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;rules&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
        &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;rule &lt;/span&gt;&lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;Add Default.aspx to blog root URLs&lt;/span&gt;&amp;quot; &lt;span style="color:red;"&gt;stopProcessing&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;false&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;&amp;gt;
          &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;match &lt;/span&gt;&lt;span style="color:red;"&gt;url&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;^blogs/([^/]*)(/?)$&lt;/span&gt;&amp;quot; &lt;span style="color:blue;"&gt;/&amp;gt;
          &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;action &lt;/span&gt;&lt;span style="color:red;"&gt;type&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;Rewrite&lt;/span&gt;&amp;quot; &lt;span style="color:red;"&gt;url&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;blogs/{R:1}/Default.aspx&lt;/span&gt;&amp;quot; &lt;span style="color:blue;"&gt;/&amp;gt;
        &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;rule&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
      &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;rules&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
    &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;rewrite&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
    &amp;lt;!--&lt;/span&gt;&lt;span style="color:green;"&gt;...&lt;/span&gt;&lt;span style="color:blue;"&gt;--&amp;gt;
  &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;system.webServer&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;
  &amp;lt;!--&lt;/span&gt;&lt;span style="color:green;"&gt;...&lt;/span&gt;&lt;span style="color:blue;"&gt;--&amp;gt;
&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;configuration&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1693499" width="1" height="1"&gt;
&lt;div class="feed_ad"&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=cf9aef0715954372b326ea8526e04393&amp;u=1693499" class="feed_ad"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=cf9aef0715954372b326ea8526e04393&amp;u=1693499" border="0" class="feed_ad"/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=zliHubRDUFI:sxgGpbFLDO4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=zliHubRDUFI:sxgGpbFLDO4:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=zliHubRDUFI:sxgGpbFLDO4:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=zliHubRDUFI:sxgGpbFLDO4:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=zliHubRDUFI:sxgGpbFLDO4:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=zliHubRDUFI:sxgGpbFLDO4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=zliHubRDUFI:sxgGpbFLDO4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=zliHubRDUFI:sxgGpbFLDO4:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=zliHubRDUFI:sxgGpbFLDO4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=zliHubRDUFI:sxgGpbFLDO4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=zliHubRDUFI:sxgGpbFLDO4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=zliHubRDUFI:sxgGpbFLDO4:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=zliHubRDUFI:sxgGpbFLDO4:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=zliHubRDUFI:sxgGpbFLDO4:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=zliHubRDUFI:sxgGpbFLDO4:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=zliHubRDUFI:sxgGpbFLDO4:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=zliHubRDUFI:sxgGpbFLDO4:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PauloMorgado/Blogs/EN/~4/zliHubRDUFI" height="1" width="1"/&gt;&lt;img src="http://feeds.feedburner.com/~r/PauloMorgadoEN/~4/Wstj-A2KksE" height="1" width="1"/&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/IIS7/default.aspx">IIS7</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/CommunityServer/default.aspx">CommunityServer</category><feedburner:origLink>http://msmvps.com/blogs/paulomorgado/archive/2009/06/01/microsoft-url-rewrite-module-1-1-for-iis-7-to-the-rescue.aspx</feedburner:origLink><feedburner:origLink>http://feeds.paulomorgado.net/~r/PauloMorgado/Blogs/EN/~3/zliHubRDUFI/microsoft-url-rewrite-module-1-1-for-iis-7-to-the-rescue.aspx</feedburner:origLink></item><item><title>Typemock Is Launching The ASP.NET Bundle – Get Free Licenses</title><link>http://feeds.paulomorgado.net/~r/PauloMorgadoEN/~3/lwaTEqQB2MU/typemock-is-launching-the-asp-net-bundle-get-free-licenses.aspx</link><pubDate>Mon, 18 May 2009 22:57:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1692642</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1692642</wfw:commentRss><wfw:comment>http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1692642</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2009/05/18/typemock-is-launching-the-asp-net-bundle-get-free-licenses.aspx#comments</comments><description>&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p align="justify"&gt;&lt;a title="Typemock - Simplify Unit Testing!" href="http://cli.gs/Typemock" target="_blank"&gt;Typemock&lt;/a&gt; is launching a new product for ASP.NET developers – the &lt;strong&gt;ASP.NET Bundle&lt;/strong&gt; - and for the launch they are giving out &lt;strong&gt;FREE licenses&lt;/strong&gt; to bloggers and their readers.&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p align="justify"&gt;The ASP.NET Bundle is the ultimate ASP.NET unit testing solution, and offers both Typemock &lt;a title="Typemock Isolator" href="http://cli.gs/TypemockIsolator" target="_blank"&gt;Isolator&lt;/a&gt; and &lt;a title="Ivonna - ASP.NET Unit Testing Tool" href="http://cli.gs/Ivonna" target="_blank"&gt;Ivonna&lt;/a&gt;, the ASP.NET Isolator add-on, for a discounted price.&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p align="justify"&gt;&lt;strong&gt;ASP.NET Bundle launch giveaway:&lt;/strong&gt; &lt;br /&gt;For the ASP.NET Bundle launch Typemock are giving away free licenses to bloggers and their readers.&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p align="justify"&gt;&lt;strong&gt;How do I get the free license?&lt;/strong&gt;&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p align="justify"&gt;Are you a blogger, webmaster, or internet columnist? Get your free license by helping&amp;nbsp;Typemock launch&amp;nbsp;their new ASP.NET Bundle, the ultimate ASP.NET unit testing solution.&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p align="justify"&gt;Post the text below on your blog (as is, with links) and &lt;a href="mailto:asp@typemock.com"&gt;tell them about it&lt;/a&gt; . If you are in the first 60 to mail us after posting, your license will be on its way!&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p align="justify"&gt;If you have an ASP.NET dedicated blog, you&amp;#39;ll get a license automatically (even if more than 60 submit) during the first week of this announcement.&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p align="justify"&gt;8 bloggers will also get an additional 2 licenses (each) to give away / raffle to their readers or friends.&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p align="justify"&gt;A few simple requirements:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;div align="justify"&gt;You must own a website, blog space or internet column, older than 2 months, or get permission from the owner of such a site.&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;div align="justify"&gt;Your post must include the text below (including the links) between *Begin* and *End*.&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p align="justify"&gt;&lt;strong&gt;*Begin*&lt;/strong&gt;&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p style="TEXT-ALIGN:justify;MARGIN-LEFT:20px;"&gt;&lt;a href="http://www.typemock.com/" target="_blank"&gt;Unit Testing&lt;/a&gt; ASP.NET? &lt;a href="http://www.typemock.com/ASP.NET_unit_testing_page.php" target="_blank"&gt;ASP.NET unit testing&lt;/a&gt; has never been this easy.&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p style="TEXT-ALIGN:justify;MARGIN-LEFT:20px;"&gt;Typemock is launching a new product for ASP.NET developers – the &lt;strong&gt;ASP.NET Bundle&lt;/strong&gt; - and for the launch will be giving out &lt;strong&gt;FREE licenses&lt;/strong&gt; to bloggers and their readers.&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p style="TEXT-ALIGN:justify;MARGIN-LEFT:20px;"&gt;The ASP.NET Bundle is the ultimate ASP.NET unit testing solution, and offers both &lt;a href="http://www.typemock.com/" target="_blank"&gt;Typemock Isolator&lt;/a&gt;, a &lt;a href="http://www.typemock.com/" target="_blank"&gt;unit test&lt;/a&gt; tool and &lt;a href="http://sm-art.biz/Ivonna.aspx" target="_blank"&gt;Ivonna&lt;/a&gt;, the Isolator add-on for &lt;a href="http://sm-art.biz/Ivonna.aspx" target="_blank"&gt;ASP.NET unit testing&lt;/a&gt;, for a bargain price.&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p style="TEXT-ALIGN:justify;MARGIN-LEFT:20px;"&gt;Typemock Isolator is a leading &lt;a href="http://www.typemock.com/" target="_blank"&gt;.NET unit testing&lt;/a&gt; tool (C# and VB.NET) for many ‘hard to test’ technologies such as &lt;a href="http://typemock.com/sharepointpage.php" target="_blank"&gt;SharePoint&lt;/a&gt;, &lt;a href="http://www.typemock.com/ASP.NET_unit_testing_page.php" target="_blank"&gt;ASP.NET&lt;/a&gt;, &lt;a href="http://www.typemock.com/ASP.NET_unit_testing_page.php" target="_blank"&gt;MVC&lt;/a&gt;, &lt;a href="http://www.typemock.com/wcfpage.php" target="_blank"&gt;WCF&lt;/a&gt;, WPF, &lt;a href="http://www.typemock.com/Silverlight_unit_testing_page.php" target="_blank"&gt;Silverlight&lt;/a&gt; and more. Note that for &lt;a href="http://www.typemock.com/Silverlight_unit_testing_page.php" target="_blank"&gt;unit testing Silverlight&lt;/a&gt; there is an open source Isolator add-on called &lt;a href="http://www.typemock.com/Silverlight_unit_testing_page.php" target="_blank"&gt;SilverUnit&lt;/a&gt;.&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p style="TEXT-ALIGN:justify;MARGIN-LEFT:20px;"&gt;The first 60 bloggers who will blog this text in their blog and &lt;a href="http://blog.typemock.com/2009/05/get-free-typemock-licenses-aspnet.html" target="_blank"&gt;tell us about it&lt;/a&gt;, will get a Free Isolator ASP.NET Bundle license (Typemock Isolator + Ivonna). If you post this in an ASP.NET &lt;strong&gt;dedicated&lt;/strong&gt; blog, you&amp;#39;ll get a license automatically (even if more than 60 submit) during the first week of this announcement.&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p style="TEXT-ALIGN:justify;MARGIN-LEFT:20px;"&gt;Also 8 bloggers will get an &lt;strong&gt;additional 2 licenses&lt;/strong&gt; (each) to give away to their readers / friends.&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p style="TEXT-ALIGN:justify;MARGIN-LEFT:20px;"&gt;Go ahead, click the following link for &lt;a href="http://blog.typemock.com/2009/05/get-free-typemock-licenses-aspnet.html" target="_blank"&gt;more information&lt;/a&gt; on how to get your free license.&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p align="justify"&gt;&lt;strong&gt;*End*&lt;/strong&gt;&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p align="justify"&gt;Once you post this in your site, just drop them a line at &lt;a href="mailto:asp@typemock.com"&gt;asp@typemock.com&lt;/a&gt; with your name and the post URL to get your free license.&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p align="justify"&gt;Hurry up – this offer is limited to the first 60 bloggers, or to ASP.NET dedicated bloggers who will post this in the first week.&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p align="justify"&gt;Make sure to follow their &lt;a title="The Typemock Inseider - The Official Typemock Blog, by the Typemock developers" href="http://cli.gs/TypemockInsiderBlog" target="_blank"&gt;Blog&lt;/a&gt;, &lt;a title="Typemock - Simplify Unit Testing!" href="http://cli.gs/Typemock" target="_blank"&gt;Site&lt;/a&gt; or &lt;a title="Typemock Twitter" href="http://cli.gs/TypemockTwitter" target="_blank"&gt;Twitter&lt;/a&gt; for updates on this event.&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p&gt;&lt;a title="Unit Test Today! Get Typemock Isolator!" href="http://www.typemock.com/cart.php?p=Commercial&amp;amp;maint=on&amp;amp;quantity=1&amp;amp;referrer=485128" target="_blank"&gt;&lt;img alt="Unit Test Today! Get Typemock Isolator!" src="https://secure.plimus.com//developers//485128/Typemock_button_blue.jpg" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1692642" width="1" height="1"&gt;
&lt;div class="feed_ad"&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=cf9aef0715954372b326ea8526e04393&amp;u=1692642" class="feed_ad"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=cf9aef0715954372b326ea8526e04393&amp;u=1692642" border="0" class="feed_ad"/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=lprKlR2VnEU:x5CQeNJwElY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=lprKlR2VnEU:x5CQeNJwElY:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=lprKlR2VnEU:x5CQeNJwElY:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=lprKlR2VnEU:x5CQeNJwElY:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=lprKlR2VnEU:x5CQeNJwElY:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=lprKlR2VnEU:x5CQeNJwElY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=lprKlR2VnEU:x5CQeNJwElY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=lprKlR2VnEU:x5CQeNJwElY:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=lprKlR2VnEU:x5CQeNJwElY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=lprKlR2VnEU:x5CQeNJwElY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=lprKlR2VnEU:x5CQeNJwElY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=lprKlR2VnEU:x5CQeNJwElY:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=lprKlR2VnEU:x5CQeNJwElY:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=lprKlR2VnEU:x5CQeNJwElY:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=lprKlR2VnEU:x5CQeNJwElY:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=lprKlR2VnEU:x5CQeNJwElY:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=lprKlR2VnEU:x5CQeNJwElY:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PauloMorgado/Blogs/EN/~4/lprKlR2VnEU" height="1" width="1"/&gt;&lt;img src="http://feeds.feedburner.com/~r/PauloMorgadoEN/~4/lwaTEqQB2MU" height="1" width="1"/&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SoftDev/default.aspx">SoftDev</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Tools/default.aspx">Tools</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Testing/default.aspx">Testing</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/UnitTests/default.aspx">UnitTests</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/TypeMock/default.aspx">TypeMock</category><feedburner:origLink>http://msmvps.com/blogs/paulomorgado/archive/2009/05/18/typemock-is-launching-the-asp-net-bundle-get-free-licenses.aspx</feedburner:origLink><feedburner:origLink>http://feeds.paulomorgado.net/~r/PauloMorgado/Blogs/EN/~3/lprKlR2VnEU/typemock-is-launching-the-asp-net-bundle-get-free-licenses.aspx</feedburner:origLink></item><item><title>LINQ With C# Book Is Finally Out</title><link>http://feeds.paulomorgado.net/~r/PauloMorgadoEN/~3/-VnB69eVsEs/linq-with-c-book-is-finally-out.aspx</link><pubDate>Sun, 17 May 2009 23:39:51 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1692586</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1692586</wfw:commentRss><wfw:comment>http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1692586</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2009/05/18/linq-with-c-book-is-finally-out.aspx#comments</comments><description>&lt;p align="justify"&gt;It’s finally out!&lt;/p&gt;  &lt;p align="justify"&gt;The &lt;strong&gt;&lt;a title="Livro LINQ Com C#" href="http://cli.gs/Livro-LINQ-Com-Charp" target="_blank"&gt;LINQ Com C#&lt;/a&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt; (LINQ With C#) book that &lt;a title="Luís Abreu" href="http://cli.gs/LuisAbreu" target="_blank"&gt;Luís&lt;/a&gt; and I wrote is out. Well, mostly Luís than I.&lt;/p&gt;  &lt;p align="justify"&gt;This book, published by &lt;a title="FCA- Livros de Informática / TI para todos os níveis" href="http://www.fca.pt/" target="_blank"&gt;FCA&lt;/a&gt;, is targeted at anyone that already knows &lt;a title="Microsoft Visual C#" href="http://cli.gs/vcsharp" target="_blank"&gt;C#&lt;/a&gt; 2.0 and wants to know learn the new features introduced with C# 3.0 that made possible &lt;a title="Language-Integrated Query (LINQ)" href="http://msdn2.microsoft.com/library/bb397926.aspx" target="_blank"&gt;LINQ&lt;/a&gt; (Language INtegrated Query). The examples in the book are written in C#, but &lt;a title="Visual Basic Developer Center" href="http://msdn.microsoft.com/vbasic/" target="_blank"&gt;Visual Basic&lt;/a&gt; get be get from the book’s site.&lt;/p&gt;  &lt;div&gt;   &lt;table&gt;       &lt;tr&gt;         &lt;td style="padding-right:10px;" rowspan="5"&gt;&lt;a title="Livro LINQ Com C#" href="http://cli.gs/Livro-LINQ-Com-Charp" target="_blank"&gt;&lt;img border="0" alt="Livro LINQ Com C#" src="http://www.fca.pt/ximages/722_547.gif" /&gt;&lt;/a&gt;&lt;/td&gt;          &lt;td style="text-align:right;padding-right:10px;"&gt;Title:&lt;/td&gt;          &lt;td&gt;&lt;strong&gt;&lt;a title="Livro LINQ Com C#" href="http://cli.gs/Livro-LINQ-Com-Charp" target="_blank"&gt;LINQ Com C#&lt;/a&gt;&lt;/strong&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td style="text-align:right;padding-right:10px;"&gt;Authors:&lt;/td&gt;          &lt;td&gt;&lt;a title="Luís Abreu" href="http://cli.gs/LuisAbreu" target="_blank"&gt;Luís Abreu&lt;/a&gt; / &lt;a title="Paulo Morgado" href="http://paulomorgado.net/" target="_blank"&gt;Paulo Morgado&lt;/a&gt;&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td style="text-align:right;padding-right:10px;"&gt;ISBN:&lt;/td&gt;          &lt;td&gt;978-972-722-547-7&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td style="text-align:right;padding-right:10px;"&gt;Number of Pages:&lt;/td&gt;          &lt;td&gt;216&lt;/td&gt;       &lt;/tr&gt;        &lt;tr&gt;         &lt;td style="text-align:right;padding-right:10px;"&gt;Format:&lt;/td&gt;          &lt;td&gt;17,0 x 24,0 x 1,3 cm (6.7 x 9.4 x 0.5 in)&lt;/td&gt;       &lt;/tr&gt;     &lt;/table&gt; &lt;/div&gt;  &lt;p&gt;The book can be found here:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://cli.gs/Livro-LINQ-Com-Charp"&gt;FCA&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://cli.gs/LYJEVY"&gt;WOOK&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://cli.gs/8ApGrH"&gt;fnac&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1692586" width="1" height="1"&gt;
&lt;div class="feed_ad"&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=cf9aef0715954372b326ea8526e04393&amp;u=1692586" class="feed_ad"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=cf9aef0715954372b326ea8526e04393&amp;u=1692586" border="0" class="feed_ad"/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=M-kGeETzbvU:xOf8yRyRT6I:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=M-kGeETzbvU:xOf8yRyRT6I:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=M-kGeETzbvU:xOf8yRyRT6I:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=M-kGeETzbvU:xOf8yRyRT6I:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=M-kGeETzbvU:xOf8yRyRT6I:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=M-kGeETzbvU:xOf8yRyRT6I:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=M-kGeETzbvU:xOf8yRyRT6I:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=M-kGeETzbvU:xOf8yRyRT6I:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=M-kGeETzbvU:xOf8yRyRT6I:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=M-kGeETzbvU:xOf8yRyRT6I:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=M-kGeETzbvU:xOf8yRyRT6I:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=M-kGeETzbvU:xOf8yRyRT6I:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=M-kGeETzbvU:xOf8yRyRT6I:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=M-kGeETzbvU:xOf8yRyRT6I:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=M-kGeETzbvU:xOf8yRyRT6I:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=M-kGeETzbvU:xOf8yRyRT6I:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=M-kGeETzbvU:xOf8yRyRT6I:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PauloMorgado/Blogs/EN/~4/M-kGeETzbvU" height="1" width="1"/&gt;&lt;img src="http://feeds.feedburner.com/~r/PauloMorgadoEN/~4/-VnB69eVsEs" height="1" width="1"/&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SoftDev/default.aspx">SoftDev</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/LINQ/default.aspx">LINQ</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/VisualBasic/default.aspx">VisualBasic</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Books/default.aspx">Books</category><feedburner:origLink>http://msmvps.com/blogs/paulomorgado/archive/2009/05/18/linq-with-c-book-is-finally-out.aspx</feedburner:origLink><feedburner:origLink>http://feeds.paulomorgado.net/~r/PauloMorgado/Blogs/EN/~3/M-kGeETzbvU/linq-with-c-book-is-finally-out.aspx</feedburner:origLink></item><item><title>Getting The Folder Path Into The Windows Search Results Windows</title><link>http://feeds.paulomorgado.net/~r/PauloMorgadoEN/~3/89J51nm3zik/getting-the-folder-path-into-the-windows-search-results-windows.aspx</link><pubDate>Sun, 17 May 2009 19:45:07 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1692578</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1692578</wfw:commentRss><wfw:comment>http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1692578</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2009/05/17/getting-the-folder-path-into-the-windows-search-results-windows.aspx#comments</comments><description>&lt;p&gt;Unlike it happened on &lt;a title="Microsoft Windows XP" href="http://cli.gs/Microsoft-Windows-XP" target="_blank"&gt;Windows XP&lt;/a&gt;, on &lt;a title="Microsoft Windows Vista" href="http://cli.gs/Microsoft-Windows-Vista" target="_blank"&gt;Windows Vista&lt;/a&gt; and &lt;a title="Microsoft Windows 7" href="http://cli.gs/Microsoft-Windows-7" target="_blank"&gt;Windows 7&lt;/a&gt;, the search results window doesn’t have (by default) a column with the folder path of the found items. Instead, it has a column named &lt;strong&gt;Folder&lt;/strong&gt; in the form of &lt;strong&gt;Folder name (folder’s containing folder path)&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;I don’t know the reason behind this decision, I just know that it makes hard to sort the found files by its path.&lt;/p&gt;  &lt;p&gt;Fortunately, the folder path of the found items can be added to the list view by right clicking on any list column and selecting the folder path to be shown.&lt;/p&gt;  &lt;p&gt;Unfortunately, I couldn’t find a way to make it permanent. I need to do that for every search.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1692578" width="1" height="1"&gt;
&lt;div class="feed_ad"&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=cf9aef0715954372b326ea8526e04393&amp;u=1692578" class="feed_ad"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=cf9aef0715954372b326ea8526e04393&amp;u=1692578" border="0" class="feed_ad"/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=KXny5rWtCJs:aWS6cCrbBWQ:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=KXny5rWtCJs:aWS6cCrbBWQ:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=KXny5rWtCJs:aWS6cCrbBWQ:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=KXny5rWtCJs:aWS6cCrbBWQ:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=KXny5rWtCJs:aWS6cCrbBWQ:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=KXny5rWtCJs:aWS6cCrbBWQ:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=KXny5rWtCJs:aWS6cCrbBWQ:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=KXny5rWtCJs:aWS6cCrbBWQ:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=KXny5rWtCJs:aWS6cCrbBWQ:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=KXny5rWtCJs:aWS6cCrbBWQ:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=KXny5rWtCJs:aWS6cCrbBWQ:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=KXny5rWtCJs:aWS6cCrbBWQ:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=KXny5rWtCJs:aWS6cCrbBWQ:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=KXny5rWtCJs:aWS6cCrbBWQ:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=KXny5rWtCJs:aWS6cCrbBWQ:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=KXny5rWtCJs:aWS6cCrbBWQ:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=KXny5rWtCJs:aWS6cCrbBWQ:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PauloMorgado/Blogs/EN/~4/KXny5rWtCJs" height="1" width="1"/&gt;&lt;img src="http://feeds.feedburner.com/~r/PauloMorgadoEN/~4/89J51nm3zik" height="1" width="1"/&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Windows/default.aspx">Windows</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/WindowsVista/default.aspx">WindowsVista</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Windows7/default.aspx">Windows7</category><feedburner:origLink>http://msmvps.com/blogs/paulomorgado/archive/2009/05/17/getting-the-folder-path-into-the-windows-search-results-windows.aspx</feedburner:origLink><feedburner:origLink>http://feeds.paulomorgado.net/~r/PauloMorgado/Blogs/EN/~3/KXny5rWtCJs/getting-the-folder-path-into-the-windows-search-results-windows.aspx</feedburner:origLink></item><item><title>System Backup vs. Business Backup</title><link>http://feeds.paulomorgado.net/~r/PauloMorgadoEN/~3/1aUDPMTRAMw/system-backup-vs-business-backup.aspx</link><pubDate>Sun, 10 May 2009 22:38:29 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1692157</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1692157</wfw:commentRss><wfw:comment>http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1692157</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2009/05/10/system-backup-vs-business-backup.aspx#comments</comments><description>&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;Most enterprises backup their data on a regular basis and stored those backups for some amount of time.&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;But, beyond restoring last day’s backup or part of a previous recent backup, are these backups real useful? Will they be useful 3, 4, 5 or 10 years from now?&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;Nowadays, the tendency is to virtualize almost every machine which increases the probability of a successful restore in the future. But some software packages come with timed and online checking licenses and one might end up with a successful restore of an unusable system.&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;And what if the hardware to run the system (virtualized or not) no longer exists?&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;The solution is to backup the business data (instead of the system data) in a interoperable format like XML (that can contain both data and metadata).&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;The added benefit beyond disaster recovery is system or application migrations.&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;That doesn’t mean that systems don’t need to be backed up. They do, but only for operational purposes.&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1692157" width="1" height="1"&gt;
&lt;div class="feed_ad"&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=cf9aef0715954372b326ea8526e04393&amp;u=1692157" class="feed_ad"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=cf9aef0715954372b326ea8526e04393&amp;u=1692157" border="0" class="feed_ad"/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=-8_73SHgofQ:vJXEf737wxM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=-8_73SHgofQ:vJXEf737wxM:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=-8_73SHgofQ:vJXEf737wxM:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=-8_73SHgofQ:vJXEf737wxM:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=-8_73SHgofQ:vJXEf737wxM:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=-8_73SHgofQ:vJXEf737wxM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=-8_73SHgofQ:vJXEf737wxM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=-8_73SHgofQ:vJXEf737wxM:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=-8_73SHgofQ:vJXEf737wxM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=-8_73SHgofQ:vJXEf737wxM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=-8_73SHgofQ:vJXEf737wxM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=-8_73SHgofQ:vJXEf737wxM:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=-8_73SHgofQ:vJXEf737wxM:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=-8_73SHgofQ:vJXEf737wxM:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=-8_73SHgofQ:vJXEf737wxM:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=-8_73SHgofQ:vJXEf737wxM:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=-8_73SHgofQ:vJXEf737wxM:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PauloMorgado/Blogs/EN/~4/-8_73SHgofQ" height="1" width="1"/&gt;&lt;img src="http://feeds.feedburner.com/~r/PauloMorgadoEN/~4/1aUDPMTRAMw" height="1" width="1"/&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Architecture/default.aspx">Architecture</category><feedburner:origLink>http://msmvps.com/blogs/paulomorgado/archive/2009/05/10/system-backup-vs-business-backup.aspx</feedburner:origLink><feedburner:origLink>http://feeds.paulomorgado.net/~r/PauloMorgado/Blogs/EN/~3/-8_73SHgofQ/system-backup-vs-business-backup.aspx</feedburner:origLink></item><item><title>Tip: Connecting To A Database Using Windows Authentication With Different Credentials Using SQL Server Management Studio</title><link>http://feeds.paulomorgado.net/~r/PauloMorgadoEN/~3/tjHJhxiyhkI/tip-connecting-to-a-database-using-windows-authentication-with-different-credentials-using-sql-server-management-studio.aspx</link><pubDate>Sun, 03 May 2009 23:34:19 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1691800</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1691800</wfw:commentRss><wfw:comment>http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1691800</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2009/05/04/tip-connecting-to-a-database-using-windows-authentication-with-different-credentials-using-sql-server-management-studio.aspx#comments</comments><description>&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;It is a good security practice to use &lt;a title="Microsoft Windows" href="http://cli.gs/Microsoft-Windows" target="_blank"&gt;Windows&lt;/a&gt; Authentication to connect to &lt;a title="Microsoft SQL Server" href="http://www.microsoft.com/sqlserver/" target="_blank"&gt;SQL Server&lt;/a&gt; because you don’t need to write the password on some configuration file or registry entry.&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;This practice also brings governance benefits. Managing users becomes part of domain administration and not part of each SQL Server instance’s administration.&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;But this becomes an hassle to users (in this context, the user is someone that needs to perform administration task of some kind – a &lt;a title="Introducing SQL Server Management Studio" href="http://msdn.microsoft.com/library/ms174173.aspx" target="_blank"&gt;SQL Server Management Studio&lt;/a&gt; user) who need to connect to databases using different credentials.&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;One workaround is using the &lt;a title="Runas" href="http://technet.microsoft.com/library/bb490994.aspx" target="_blank"&gt;runas&lt;/a&gt; command:&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;pre class="code"&gt;runas /user:&lt;em&gt;DOMAIN\USERNAME&lt;/em&gt; &amp;quot;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\Ssms.exe&amp;quot;&lt;/pre&gt;
&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;

&lt;p&gt;But if you are working on an environment were there are several domains and your machine does not belong to the domain of the ser account you want to use, you’ll get the folloing error:&lt;/p&gt;
&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;

&lt;pre class="code"&gt;RUNAS ERROR: Unable to run - C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\Ssms.exe
1787: The security database on the server does not have a computer account for this workstation trust relationship.&lt;/pre&gt;
&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;

&lt;p align="justify"&gt;But not everything is lost. Because you want to make a remote connection, you can use the &lt;strong&gt;/netonly&lt;/strong&gt; switch, and it works just fine:&lt;/p&gt;
&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;

&lt;pre class="code"&gt;runas /netonly /user:&lt;em&gt;DOMAIN\USERNAME&lt;/em&gt; &amp;quot;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\Ssms.exe&amp;quot;&lt;/pre&gt;
&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;

&lt;p align="justify"&gt;SQL Server Management Studio still shows all the databases in the server (unlike what happens if you connect from a machine logged in as the user you want to access to the SQL Server instance), but &lt;a title="Apex SQL Edit : A complete Editor / IDE for SQL Server" href="http://cli.gs/ApexSQL-Edit" target="_blank"&gt;ApexSQL Edit&lt;/a&gt; will only show the databases that account has access to.&lt;/p&gt;
&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1691800" width="1" height="1"&gt;
&lt;div class="feed_ad"&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=cf9aef0715954372b326ea8526e04393&amp;u=1691800" class="feed_ad"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=cf9aef0715954372b326ea8526e04393&amp;u=1691800" border="0" class="feed_ad"/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=xUJLFY6eucI:rCL8txc9S08:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=xUJLFY6eucI:rCL8txc9S08:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=xUJLFY6eucI:rCL8txc9S08:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=xUJLFY6eucI:rCL8txc9S08:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=xUJLFY6eucI:rCL8txc9S08:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=xUJLFY6eucI:rCL8txc9S08:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=xUJLFY6eucI:rCL8txc9S08:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=xUJLFY6eucI:rCL8txc9S08:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=xUJLFY6eucI:rCL8txc9S08:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=xUJLFY6eucI:rCL8txc9S08:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=xUJLFY6eucI:rCL8txc9S08:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=xUJLFY6eucI:rCL8txc9S08:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=xUJLFY6eucI:rCL8txc9S08:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=xUJLFY6eucI:rCL8txc9S08:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=xUJLFY6eucI:rCL8txc9S08:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=xUJLFY6eucI:rCL8txc9S08:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=xUJLFY6eucI:rCL8txc9S08:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PauloMorgado/Blogs/EN/~4/xUJLFY6eucI" height="1" width="1"/&gt;&lt;img src="http://feeds.feedburner.com/~r/PauloMorgadoEN/~4/tjHJhxiyhkI" height="1" width="1"/&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SQLServer/default.aspx">SQLServer</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Windows/default.aspx">Windows</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/TipsAndTricks/default.aspx">TipsAndTricks</category><feedburner:origLink>http://msmvps.com/blogs/paulomorgado/archive/2009/05/04/tip-connecting-to-a-database-using-windows-authentication-with-different-credentials-using-sql-server-management-studio.aspx</feedburner:origLink><feedburner:origLink>http://feeds.paulomorgado.net/~r/PauloMorgado/Blogs/EN/~3/xUJLFY6eucI/tip-connecting-to-a-database-using-windows-authentication-with-different-credentials-using-sql-server-management-studio.aspx</feedburner:origLink></item><item><title>Talking About Windows</title><link>http://feeds.paulomorgado.net/~r/PauloMorgadoEN/~3/bmtrks3lhLM/talking-about-windows.aspx</link><pubDate>Mon, 27 Apr 2009 23:25:35 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1691416</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1691416</wfw:commentRss><wfw:comment>http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1691416</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2009/04/28/talking-about-windows.aspx#comments</comments><description>&lt;h4&gt;The Next Generation of Windows® is almost here!&lt;/h4&gt;  &lt;p align="justify"&gt;&lt;a title="Microsoft Corporation" href="http://www.microsoft.com/" target="_blank"&gt;Microsoft&lt;/a&gt; is setting up a video blog that will officially debut in early May called &lt;strong&gt;Talking About Windows&lt;/strong&gt;.&lt;/p&gt;  &lt;p align="justify"&gt;This video blog provides insight on Windows 7 from the Microsoft engineers who helped build the product.&lt;/p&gt;  &lt;p align="justify"&gt;Additionally, it provides real-world commentary from IT professionals who have chosen to shift to a modern OS.&lt;/p&gt;  &lt;p align="justify"&gt;You can watch the videos and participate by commenting in the spaces below each video and help spread the word about this exciting endeavor to build community.&lt;/p&gt;  &lt;p align="justify"&gt;Too bad the site doesn’t provide a feed to subscribe to the videos on my &lt;a title="Zune.net | What is Zune?" href="http://www.zune.net/products/whatiszune.htm" target="_blank"&gt;Zune&lt;/a&gt;.&lt;/p&gt;  &lt;p align="justify"&gt;Watch. Connect.    &lt;br /&gt;&lt;a title="Talking About Windows" href="http://www.talkingaboutwindows.com" target="_blank"&gt;www.talkingaboutwindows.com&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1691416" width="1" height="1"&gt;
&lt;div class="feed_ad"&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=cf9aef0715954372b326ea8526e04393&amp;u=1691416" class="feed_ad"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=cf9aef0715954372b326ea8526e04393&amp;u=1691416" border="0" class="feed_ad"/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=aeiHZbZ4_eo:6UmUARolniA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=aeiHZbZ4_eo:6UmUARolniA:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=aeiHZbZ4_eo:6UmUARolniA:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=aeiHZbZ4_eo:6UmUARolniA:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=aeiHZbZ4_eo:6UmUARolniA:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=aeiHZbZ4_eo:6UmUARolniA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=aeiHZbZ4_eo:6UmUARolniA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=aeiHZbZ4_eo:6UmUARolniA:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=aeiHZbZ4_eo:6UmUARolniA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=aeiHZbZ4_eo:6UmUARolniA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=aeiHZbZ4_eo:6UmUARolniA:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=aeiHZbZ4_eo:6UmUARolniA:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=aeiHZbZ4_eo:6UmUARolniA:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=aeiHZbZ4_eo:6UmUARolniA:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=aeiHZbZ4_eo:6UmUARolniA:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=aeiHZbZ4_eo:6UmUARolniA:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=aeiHZbZ4_eo:6UmUARolniA:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PauloMorgado/Blogs/EN/~4/aeiHZbZ4_eo" height="1" width="1"/&gt;&lt;img src="http://feeds.feedburner.com/~r/PauloMorgadoEN/~4/bmtrks3lhLM" height="1" width="1"/&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Windows/default.aspx">Windows</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Windows7/default.aspx">Windows7</category><feedburner:origLink>http://msmvps.com/blogs/paulomorgado/archive/2009/04/28/talking-about-windows.aspx</feedburner:origLink><feedburner:origLink>http://feeds.paulomorgado.net/~r/PauloMorgado/Blogs/EN/~3/aeiHZbZ4_eo/talking-about-windows.aspx</feedburner:origLink></item><item><title>MSDN Code Search Preview</title><link>http://feeds.paulomorgado.net/~r/PauloMorgadoEN/~3/v9fUehj4oME/msdn-code-search-preview.aspx</link><pubDate>Mon, 30 Mar 2009 23:38:21 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1683098</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1683098</wfw:commentRss><wfw:comment>http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1683098</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2009/03/31/msdn-code-search-preview.aspx#comments</comments><description>&lt;p&gt;(Just read about this on &lt;a title=":: CoDe Magazine ::" href="http://cli.gs/code-magazine" target="_blank"&gt;CoDe Magazine&lt;/a&gt;)&lt;/p&gt;  &lt;p&gt;&lt;a title="Microsoft Corporation" href="http://www.microsoft.com/" target="_blank"&gt;Microsoft&lt;/a&gt; launched &lt;a title="MSDN Code Search Preview" href="http://cli.gs/Msdn-Code-Search-Preview" target="_blank"&gt;MSDN Code Search Preview&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;The MSDN Code Search Preview lets you search for code in the MSDN Library, MSDN Code Gallery, and CodePlex.&lt;/p&gt;  &lt;p&gt;You can read all about it on the &lt;a title="About MSDN Code Search Preview" href="http://msdn.microsoft.com/cc974253.aspx" target="_blank"&gt;about page&lt;/a&gt; or &lt;a title="Released: faster search, code search, and product/version info on results!" href="http://cli.gs/Eg4uWZ" target="_blank"&gt;this post&lt;/a&gt; from the &lt;a title="MSDN &amp;amp; TechNet Search Blog" href="http://blogs.msdn.com/msdnsearchblog/default.aspx" target="_blank"&gt;MSDN &amp;amp; TechNet Search Blog&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1683098" width="1" height="1"&gt;
&lt;div class="feed_ad"&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=cf9aef0715954372b326ea8526e04393&amp;u=1683098" class="feed_ad"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=cf9aef0715954372b326ea8526e04393&amp;u=1683098" border="0" class="feed_ad"/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=LEyhWuNKBF8:7kSpoNkjqLs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=LEyhWuNKBF8:7kSpoNkjqLs:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=LEyhWuNKBF8:7kSpoNkjqLs:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=LEyhWuNKBF8:7kSpoNkjqLs:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=LEyhWuNKBF8:7kSpoNkjqLs:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=LEyhWuNKBF8:7kSpoNkjqLs:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=LEyhWuNKBF8:7kSpoNkjqLs:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=LEyhWuNKBF8:7kSpoNkjqLs:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=LEyhWuNKBF8:7kSpoNkjqLs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=LEyhWuNKBF8:7kSpoNkjqLs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=LEyhWuNKBF8:7kSpoNkjqLs:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=LEyhWuNKBF8:7kSpoNkjqLs:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=LEyhWuNKBF8:7kSpoNkjqLs:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=LEyhWuNKBF8:7kSpoNkjqLs:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=LEyhWuNKBF8:7kSpoNkjqLs:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=LEyhWuNKBF8:7kSpoNkjqLs:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=LEyhWuNKBF8:7kSpoNkjqLs:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PauloMorgado/Blogs/EN/~4/LEyhWuNKBF8" height="1" width="1"/&gt;&lt;img src="http://feeds.feedburner.com/~r/PauloMorgadoEN/~4/v9fUehj4oME" height="1" width="1"/&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/MSDN/default.aspx">MSDN</category><feedburner:origLink>http://msmvps.com/blogs/paulomorgado/archive/2009/03/31/msdn-code-search-preview.aspx</feedburner:origLink><feedburner:origLink>http://feeds.paulomorgado.net/~r/PauloMorgado/Blogs/EN/~3/LEyhWuNKBF8/msdn-code-search-preview.aspx</feedburner:origLink></item><item><title>redgate .NET Reflector 5.1.5.0 Released</title><link>http://feeds.paulomorgado.net/~r/PauloMorgadoEN/~3/1SQbzFhzHEo/redgate-net-reflector-5-1-5-0-released.aspx</link><pubDate>Mon, 30 Mar 2009 22:47:35 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1683080</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1683080</wfw:commentRss><wfw:comment>http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1683080</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2009/03/30/redgate-net-reflector-5-1-5-0-released.aspx#comments</comments><description>&lt;p align="justify"&gt;Today &lt;a title="redgate - ingeniously simple tools" href="http://www.red-gate.com/" target="_blank"&gt;redgate&lt;/a&gt; released version 5.1.5.0 of &lt;a title=".NET Reflector" href="http://cli.gs/netReflector" target="_blank"&gt;.NET Reflector&lt;/a&gt;.&lt;/p&gt;  &lt;p align="justify"&gt;It was a bumpy release. Early today, at work, as soon as &lt;a title="antsprofiler twitter" href="http://twitter.com/antsprofiler" target="_blank"&gt;@antsprofiler&lt;/a&gt; was announced the deployment of the new version I tried to upgrade and was offered an upgrade to the version 5.1.4.0 over and over again.&lt;/p&gt;  &lt;p align="justify"&gt;Early tonight, at home, when I tried to upgrade I was offered to upgrade to 5.1.5.0.&lt;/p&gt;  &lt;p align="justify"&gt;The funny thing is that, if I try to run it from &lt;strong&gt;C:\Program Files&lt;/strong&gt; I get a UAC dialog the mentions &lt;strong&gt;Reflector 5.1.3&lt;/strong&gt;.&lt;/p&gt;  &lt;p align="justify"&gt;Just moved to my &lt;strong&gt;&lt;a title="Adobe Reader Fails To Upgrade/Install" href="http://msmvps.com/blogs/paulomorgado/archive/2009/03/30/adobe-reader-fails-to-upgrade-install.aspx" target="_blank"&gt;C:\Program Files (Utils)&lt;/a&gt;&lt;/strong&gt; and it all works fine.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1683080" width="1" height="1"&gt;
&lt;div class="feed_ad"&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=cf9aef0715954372b326ea8526e04393&amp;u=1683080" class="feed_ad"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=cf9aef0715954372b326ea8526e04393&amp;u=1683080" border="0" class="feed_ad"/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=C5AA12EXJac:TLk77HYBuxs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=C5AA12EXJac:TLk77HYBuxs:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=C5AA12EXJac:TLk77HYBuxs:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=C5AA12EXJac:TLk77HYBuxs:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=C5AA12EXJac:TLk77HYBuxs:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=C5AA12EXJac:TLk77HYBuxs:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=C5AA12EXJac:TLk77HYBuxs:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=C5AA12EXJac:TLk77HYBuxs:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=C5AA12EXJac:TLk77HYBuxs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=C5AA12EXJac:TLk77HYBuxs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=C5AA12EXJac:TLk77HYBuxs:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=C5AA12EXJac:TLk77HYBuxs:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=C5AA12EXJac:TLk77HYBuxs:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=C5AA12EXJac:TLk77HYBuxs:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=C5AA12EXJac:TLk77HYBuxs:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=C5AA12EXJac:TLk77HYBuxs:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=C5AA12EXJac:TLk77HYBuxs:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PauloMorgado/Blogs/EN/~4/C5AA12EXJac" height="1" width="1"/&gt;&lt;img src="http://feeds.feedburner.com/~r/PauloMorgadoEN/~4/1SQbzFhzHEo" height="1" width="1"/&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/redgate/default.aspx">redgate</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Reflector/default.aspx">Reflector</category><feedburner:origLink>http://msmvps.com/blogs/paulomorgado/archive/2009/03/30/redgate-net-reflector-5-1-5-0-released.aspx</feedburner:origLink><feedburner:origLink>http://feeds.paulomorgado.net/~r/PauloMorgado/Blogs/EN/~3/C5AA12EXJac/redgate-net-reflector-5-1-5-0-released.aspx</feedburner:origLink></item><item><title>Adobe Reader Fails To Upgrade/Install</title><link>http://feeds.paulomorgado.net/~r/PauloMorgadoEN/~3/fh67zypdjRQ/adobe-reader-fails-to-upgrade-install.aspx</link><pubDate>Mon, 30 Mar 2009 22:41:21 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1683077</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>2</slash:comments><wfw:commentRss>http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1683077</wfw:commentRss><wfw:comment>http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1683077</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2009/03/30/adobe-reader-fails-to-upgrade-install.aspx#comments</comments><description>&lt;p align="justify"&gt;Yesterday I was offered an update to &lt;a title="Adobe Reader" href="http://get.adobe.com/reader/" target="_blank"&gt;Adobe Reader&lt;/a&gt; (the latest version for &lt;a title="Windows Vista" href="http://www.microsoft.com/windowsvista/" target="_blank"&gt;Windows Vista&lt;/a&gt; is version 9.1) on my company’s laptop.&lt;/p&gt;  &lt;p align="justify"&gt;I accepted the update but it failed. It was late and a failed update to Adobe Reader was the least of my worries at the time.&lt;/p&gt;  &lt;p align="justify"&gt;Today, when I tried to use Adobe Reader, I noticed it had been uninstalled.&lt;/p&gt;  &lt;p align="justify"&gt;It’s not nice having to download and install something like Adobe Reader when I need to open a document, but the worst came when I tried to install it.&lt;/p&gt;  &lt;p align="justify"&gt;Adobe Reader requires elevated privileges to install but, due to the way the installer works, being a local administrator (I running Vista x64 Enterprise joined to a corporate domain) is not enough to install Adobe Reader on &lt;strong&gt;C:\Program Files (x86)&lt;/strong&gt;, because it was still failing.&lt;/p&gt;  &lt;p align="justify"&gt;I had already created &lt;strong&gt;C:\Program Files (Utils)&lt;/strong&gt;, to install the &lt;a title="Windows Sysinternals" href="http://cli.gs/Sysinternals" target="_blank"&gt;Windows Sysinternals&lt;/a&gt; tools (in particular, &lt;a title="Windows Sysinternals Process Explorer" href="http://cli.gs/SysinternalsProcessExplorer" target="_blank"&gt;Process Explorer&lt;/a&gt;) and did the same for Adobe Reader.&lt;/p&gt;  &lt;p align="justify"&gt;Do you know what was the first name I thought of for this folder? &lt;strong&gt;C:\Program Files (Bad)&lt;/strong&gt;&lt;/p&gt;  &lt;p align="justify"&gt;Just blame it on Vista.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1683077" width="1" height="1"&gt;
&lt;div class="feed_ad"&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=cf9aef0715954372b326ea8526e04393&amp;u=1683077" class="feed_ad"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=cf9aef0715954372b326ea8526e04393&amp;u=1683077" border="0" class="feed_ad"/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=c-_11WPGViQ:WDPSRB7PLLo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=c-_11WPGViQ:WDPSRB7PLLo:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=c-_11WPGViQ:WDPSRB7PLLo:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=c-_11WPGViQ:WDPSRB7PLLo:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=c-_11WPGViQ:WDPSRB7PLLo:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=c-_11WPGViQ:WDPSRB7PLLo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=c-_11WPGViQ:WDPSRB7PLLo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=c-_11WPGViQ:WDPSRB7PLLo:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=c-_11WPGViQ:WDPSRB7PLLo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=c-_11WPGViQ:WDPSRB7PLLo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=c-_11WPGViQ:WDPSRB7PLLo:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=c-_11WPGViQ:WDPSRB7PLLo:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=c-_11WPGViQ:WDPSRB7PLLo:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=c-_11WPGViQ:WDPSRB7PLLo:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=c-_11WPGViQ:WDPSRB7PLLo:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=c-_11WPGViQ:WDPSRB7PLLo:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=c-_11WPGViQ:WDPSRB7PLLo:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PauloMorgado/Blogs/EN/~4/c-_11WPGViQ" height="1" width="1"/&gt;&lt;img src="http://feeds.feedburner.com/~r/PauloMorgadoEN/~4/fh67zypdjRQ" height="1" width="1"/&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/WindowsVista/default.aspx">WindowsVista</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Sysinternals/default.aspx">Sysinternals</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/AdobeReader/default.aspx">AdobeReader</category><feedburner:origLink>http://msmvps.com/blogs/paulomorgado/archive/2009/03/30/adobe-reader-fails-to-upgrade-install.aspx</feedburner:origLink><feedburner:origLink>http://feeds.paulomorgado.net/~r/PauloMorgado/Blogs/EN/~3/c-_11WPGViQ/adobe-reader-fails-to-upgrade-install.aspx</feedburner:origLink></item><item><title>MIX09 Session Presentation Slides</title><link>http://feeds.paulomorgado.net/~r/PauloMorgadoEN/~3/G6ZzH510gcw/mix09-session-presentation-slides.aspx</link><pubDate>Thu, 26 Mar 2009 01:51:20 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1681475</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1681475</wfw:commentRss><wfw:comment>http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1681475</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2009/03/26/mix09-session-presentation-slides.aspx#comments</comments><description>&lt;p&gt;On a &lt;a title="MIX09 Session Videos" href="http://www.arquitecturadesoftware.org/blogs/paulomorgado/archive/2009/03/23/v-deos-das-sess-es-do-mix09.aspxhttp://msmvps.com/blogs/paulomorgado/archive/2009/03/23/mix09-session-videos.aspx" target="_blank"&gt;previous post&lt;/a&gt; I introduced the feeds I created to subscribe to Mix09 session videos.&lt;/p&gt;  &lt;p&gt;I’ve decided to also create a feed for the presentation slides:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;PPTX:&lt;/strong&gt; &lt;a title="MIX Presentations" href="http://feeds.paulomorgado.net/PauloMorgado/Events/Mix09/SessionSlides" target="_blank"&gt;http://feeds.paulomorgado.net/PauloMorgado/Events/Mix09/SessionSlides&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1681475" width="1" height="1"&gt;
&lt;div class="feed_ad"&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=cf9aef0715954372b326ea8526e04393&amp;u=1681475" class="feed_ad"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=cf9aef0715954372b326ea8526e04393&amp;u=1681475" border="0" class="feed_ad"/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=df-CE8GEQzo:Vu9qRmKCz10:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=df-CE8GEQzo:Vu9qRmKCz10:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=df-CE8GEQzo:Vu9qRmKCz10:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=df-CE8GEQzo:Vu9qRmKCz10:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=df-CE8GEQzo:Vu9qRmKCz10:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=df-CE8GEQzo:Vu9qRmKCz10:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=df-CE8GEQzo:Vu9qRmKCz10:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=df-CE8GEQzo:Vu9qRmKCz10:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=df-CE8GEQzo:Vu9qRmKCz10:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=df-CE8GEQzo:Vu9qRmKCz10:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=df-CE8GEQzo:Vu9qRmKCz10:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=df-CE8GEQzo:Vu9qRmKCz10:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=df-CE8GEQzo:Vu9qRmKCz10:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=df-CE8GEQzo:Vu9qRmKCz10:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=df-CE8GEQzo:Vu9qRmKCz10:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=df-CE8GEQzo:Vu9qRmKCz10:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=df-CE8GEQzo:Vu9qRmKCz10:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PauloMorgado/Blogs/EN/~4/df-CE8GEQzo" height="1" width="1"/&gt;&lt;img src="http://feeds.feedburner.com/~r/PauloMorgadoEN/~4/G6ZzH510gcw" height="1" width="1"/&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Events/default.aspx">Events</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/MSDN/default.aspx">MSDN</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Web/default.aspx">Web</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Mix/default.aspx">Mix</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Mix09/default.aspx">Mix09</category><feedburner:origLink>http://msmvps.com/blogs/paulomorgado/archive/2009/03/26/mix09-session-presentation-slides.aspx</feedburner:origLink><feedburner:origLink>http://feeds.paulomorgado.net/~r/PauloMorgado/Blogs/EN/~3/df-CE8GEQzo/mix09-session-presentation-slides.aspx</feedburner:origLink></item><item><title>MIX09 Session Videos – How I Did It</title><link>http://feeds.paulomorgado.net/~r/PauloMorgadoEN/~3/027_fGAy29o/mix09-session-videos-how-i-did-it.aspx</link><pubDate>Mon, 23 Mar 2009 01:04:04 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1680499</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1680499</wfw:commentRss><wfw:comment>http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1680499</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2009/03/23/mix09-session-videos-how-i-did-it.aspx#comments</comments><description>&lt;p&gt;On my &lt;a title="MIX09 Session Videos" href="http://www.arquitecturadesoftware.org/blogs/paulomorgado/archive/2009/03/23/v-deos-das-sess-es-do-mix09.aspxhttp://msmvps.com/blogs/paulomorgado/archive/2009/03/23/mix09-session-videos.aspx" target="_blank"&gt;last post&lt;/a&gt; I introduced the feeds I created to subscribe to Mix09 session videos.&lt;/p&gt;  &lt;p&gt;In case someone is interested on how I did it, here it is:&lt;/p&gt;  &lt;pre style="overflow:auto;" class="code"&gt;&lt;span style="background:#ffee62;"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="color:blue;"&gt;@ &lt;/span&gt;&lt;span style="color:#a31515;"&gt;WebHandler &lt;/span&gt;&lt;span style="color:red;"&gt;Language&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;C#&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;Class&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;mix09&amp;quot; &lt;/span&gt;&lt;span style="background:#ffee62;"&gt;%&amp;gt;&lt;/span&gt;

&lt;span style="color:blue;"&gt;using &lt;/span&gt;System;
&lt;span style="color:blue;"&gt;using &lt;/span&gt;System.IO;
&lt;span style="color:blue;"&gt;using &lt;/span&gt;System.Web;
&lt;span style="color:blue;"&gt;using &lt;/span&gt;System.Linq;
&lt;span style="color:blue;"&gt;using &lt;/span&gt;System.Xml.Linq;
&lt;span style="color:blue;"&gt;using &lt;/span&gt;System.Net;
&lt;span style="color:blue;"&gt;using &lt;/span&gt;System.Xml;

&lt;span style="color:blue;"&gt;public class &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;mix09 &lt;/span&gt;: &lt;span style="color:#2b91af;"&gt;IHttpHandler&lt;/span&gt;, &lt;span style="color:#2b91af;"&gt;IHttpAsyncHandler
&lt;/span&gt;{
    &lt;span style="color:blue;"&gt;class &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;WebClientOpenReadAsyncResult &lt;/span&gt;: &lt;span style="color:#2b91af;"&gt;IAsyncResult
    &lt;/span&gt;{
        &lt;span style="color:blue;"&gt;private &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;AsyncCallback &lt;/span&gt;callback;

        &lt;span style="color:blue;"&gt;public &lt;/span&gt;WebClientOpenReadAsyncResult()
        {
            &lt;span style="color:blue;"&gt;this&lt;/span&gt;.IsCompleted = &lt;span style="color:blue;"&gt;true&lt;/span&gt;;
            &lt;span style="color:blue;"&gt;this&lt;/span&gt;.CompletedSynchronously = &lt;span style="color:blue;"&gt;true&lt;/span&gt;;
        }

        &lt;span style="color:blue;"&gt;public &lt;/span&gt;WebClientOpenReadAsyncResult(&lt;span style="color:#2b91af;"&gt;AsyncCallback &lt;/span&gt;callback)
        {
            &lt;span style="color:blue;"&gt;this&lt;/span&gt;.callback = callback;
            &lt;span style="color:blue;"&gt;this&lt;/span&gt;.IsCompleted = &lt;span style="color:blue;"&gt;false&lt;/span&gt;;
            &lt;span style="color:blue;"&gt;this&lt;/span&gt;.CompletedSynchronously = &lt;span style="color:blue;"&gt;false&lt;/span&gt;;
        }

        &lt;span style="color:blue;"&gt;public object &lt;/span&gt;AsyncState
        {
            &lt;span style="color:blue;"&gt;get &lt;/span&gt;{ &lt;span style="color:blue;"&gt;return null&lt;/span&gt;; }
        }

        &lt;span style="color:blue;"&gt;public bool &lt;/span&gt;CompletedSynchronously { &lt;span style="color:blue;"&gt;get&lt;/span&gt;; &lt;span style="color:blue;"&gt;private set&lt;/span&gt;; }

        &lt;span style="color:blue;"&gt;public &lt;/span&gt;System.Threading.&lt;span style="color:#2b91af;"&gt;WaitHandle &lt;/span&gt;AsyncWaitHandle
        {
            &lt;span style="color:blue;"&gt;get &lt;/span&gt;{ &lt;span style="color:blue;"&gt;throw new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;InvalidOperationException&lt;/span&gt;(&lt;span style="color:#a31515;"&gt;&amp;quot;ASP.NET should not use this property .&amp;quot;&lt;/span&gt;); }
        }

        &lt;span style="color:blue;"&gt;public bool &lt;/span&gt;IsCompleted { &lt;span style="color:blue;"&gt;get&lt;/span&gt;; &lt;span style="color:blue;"&gt;private set&lt;/span&gt;; }

        &lt;span style="color:blue;"&gt;public &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Stream &lt;/span&gt;Stream { &lt;span style="color:blue;"&gt;get&lt;/span&gt;; &lt;span style="color:blue;"&gt;private set&lt;/span&gt;; }

        &lt;span style="color:blue;"&gt;public void &lt;/span&gt;Completed(&lt;span style="color:blue;"&gt;object &lt;/span&gt;sender, &lt;span style="color:#2b91af;"&gt;OpenReadCompletedEventArgs &lt;/span&gt;e)
        {
            &lt;span style="color:blue;"&gt;this&lt;/span&gt;.IsCompleted = &lt;span style="color:blue;"&gt;true&lt;/span&gt;;
            &lt;span style="color:blue;"&gt;this&lt;/span&gt;.Stream = e.Result;
            &lt;span style="color:blue;"&gt;if &lt;/span&gt;(&lt;span style="color:blue;"&gt;this&lt;/span&gt;.callback != &lt;span style="color:blue;"&gt;null&lt;/span&gt;)
            {
                &lt;span style="color:blue;"&gt;this&lt;/span&gt;.callback(&lt;span style="color:blue;"&gt;this&lt;/span&gt;);
            }
        }

    }

    &lt;span style="color:blue;"&gt;private static &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Uri &lt;/span&gt;mixSessionsUri = &lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Uri&lt;/span&gt;(&lt;span style="color:#a31515;"&gt;&amp;quot;http://sessions.visitmix.com/RSS&amp;quot;&lt;/span&gt;);

    &lt;span style="color:blue;"&gt;private &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;HttpContext &lt;/span&gt;context;

    &lt;span style="color:blue;"&gt;private string &lt;/span&gt;type;

    &lt;span style="color:blue;"&gt;#region &lt;/span&gt;IHttpHandler Members

    &lt;span style="color:blue;"&gt;public bool &lt;/span&gt;IsReusable
    {
        &lt;span style="color:blue;"&gt;get &lt;/span&gt;{ &lt;span style="color:blue;"&gt;return true&lt;/span&gt;; }
    }

    &lt;span style="color:blue;"&gt;public void &lt;/span&gt;ProcessRequest(&lt;span style="color:#2b91af;"&gt;HttpContext &lt;/span&gt;context)
    {
        &lt;span style="color:#2b91af;"&gt;WebClient &lt;/span&gt;wc = InitializeRequest(context);

        &lt;span style="color:blue;"&gt;if &lt;/span&gt;(wc == &lt;span style="color:blue;"&gt;null&lt;/span&gt;)
        {
            &lt;span style="color:blue;"&gt;return&lt;/span&gt;;
        }

        OutputFeed(wc.OpenRead(mixSessionsUri));
    }

    &lt;span style="color:blue;"&gt;#endregion

    #region &lt;/span&gt;IHttpAsyncHandler Members

    &lt;span style="color:blue;"&gt;public &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;IAsyncResult &lt;/span&gt;BeginProcessRequest(&lt;span style="color:#2b91af;"&gt;HttpContext &lt;/span&gt;context, &lt;span style="color:#2b91af;"&gt;AsyncCallback &lt;/span&gt;cb, &lt;span style="color:blue;"&gt;object &lt;/span&gt;extraData)
    {
        &lt;span style="color:#2b91af;"&gt;WebClient &lt;/span&gt;wc = InitializeRequest(context);

        &lt;span style="color:blue;"&gt;if &lt;/span&gt;(wc == &lt;span style="color:blue;"&gt;null&lt;/span&gt;)
        {
            &lt;span style="color:blue;"&gt;return new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;WebClientOpenReadAsyncResult&lt;/span&gt;();
        }

        &lt;span style="color:#2b91af;"&gt;WebClientOpenReadAsyncResult &lt;/span&gt;ar = &lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;WebClientOpenReadAsyncResult&lt;/span&gt;(cb);

        wc.OpenReadCompleted += ar.Completed;

        wc.OpenReadAsync(mixSessionsUri, extraData);

        &lt;span style="color:blue;"&gt;return &lt;/span&gt;ar;
    }

    &lt;span style="color:blue;"&gt;public void &lt;/span&gt;EndProcessRequest(&lt;span style="color:#2b91af;"&gt;IAsyncResult &lt;/span&gt;result)
    {
        &lt;span style="color:#2b91af;"&gt;Stream &lt;/span&gt;stream = (result &lt;span style="color:blue;"&gt;as &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;WebClientOpenReadAsyncResult&lt;/span&gt;).Stream;

        &lt;span style="color:blue;"&gt;if &lt;/span&gt;(stream != &lt;span style="color:blue;"&gt;null&lt;/span&gt;)
        {
            OutputFeed(stream);
        }
    }

    &lt;span style="color:blue;"&gt;#endregion

    private &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;WebClient &lt;/span&gt;InitializeRequest(&lt;span style="color:#2b91af;"&gt;HttpContext &lt;/span&gt;context)
    {
        &lt;span style="color:blue;"&gt;this&lt;/span&gt;.context = context;
        &lt;span style="color:blue;"&gt;this&lt;/span&gt;.type = context.Request.QueryString[&lt;span style="color:#a31515;"&gt;&amp;quot;type&amp;quot;&lt;/span&gt;];

        &lt;span style="color:blue;"&gt;if &lt;/span&gt;(&lt;span style="color:blue;"&gt;string&lt;/span&gt;.IsNullOrEmpty(&lt;span style="color:blue;"&gt;this&lt;/span&gt;.type))
        {
            &lt;span style="color:blue;"&gt;return null&lt;/span&gt;;
        }

        &lt;span style="color:#2b91af;"&gt;WebClient &lt;/span&gt;wc = &lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;WebClient&lt;/span&gt;();
        wc.Headers[&lt;span style="color:#2b91af;"&gt;HttpRequestHeader&lt;/span&gt;.UserAgent] = &lt;span style="color:#a31515;"&gt;&amp;quot;Required User Agent&amp;quot;&lt;/span&gt;;
        &lt;span style="color:blue;"&gt;return &lt;/span&gt;wc;
    }

    &lt;span style="color:blue;"&gt;private void &lt;/span&gt;OutputFeed(&lt;span style="color:#2b91af;"&gt;Stream &lt;/span&gt;source)
    {
        &lt;span style="color:#2b91af;"&gt;XmlReader &lt;/span&gt;feedReader = &lt;span style="color:#2b91af;"&gt;XmlReader&lt;/span&gt;.Create(source);

        &lt;span style="color:#2b91af;"&gt;XDocument &lt;/span&gt;feed = &lt;span style="color:#2b91af;"&gt;XDocument&lt;/span&gt;.Load(feedReader);

        &lt;span style="color:blue;"&gt;var &lt;/span&gt;rss = feed.Element(&lt;span style="color:#a31515;"&gt;&amp;quot;rss&amp;quot;&lt;/span&gt;);
        &lt;span style="color:blue;"&gt;var &lt;/span&gt;channel = rss.Element(&lt;span style="color:#a31515;"&gt;&amp;quot;channel&amp;quot;&lt;/span&gt;);
        &lt;span style="color:blue;"&gt;var &lt;/span&gt;title = channel.Element(&lt;span style="color:#a31515;"&gt;&amp;quot;title&amp;quot;&lt;/span&gt;);

        title.Value = &lt;span style="color:blue;"&gt;string&lt;/span&gt;.Format(&lt;span style="color:#a31515;"&gt;&amp;quot;{0} ({1})&amp;quot;&lt;/span&gt;, title.Value, &lt;span style="color:blue;"&gt;this&lt;/span&gt;.type.ToUpper());
        channel.Element(&lt;span style="color:#a31515;"&gt;&amp;quot;link&amp;quot;&lt;/span&gt;).Value = &lt;span style="color:#a31515;"&gt;&amp;quot;http://cli.gs/Mix09Sessions&amp;quot;&lt;/span&gt;;

        &lt;span style="color:blue;"&gt;foreach &lt;/span&gt;(&lt;span style="color:blue;"&gt;var &lt;/span&gt;item &lt;span style="color:blue;"&gt;in &lt;/span&gt;channel.Elements(&lt;span style="color:#a31515;"&gt;&amp;quot;item&amp;quot;&lt;/span&gt;))
        {
            &lt;span style="color:blue;"&gt;string &lt;/span&gt;link = item.Element(&lt;span style="color:#a31515;"&gt;&amp;quot;link&amp;quot;&lt;/span&gt;).Value;
            &lt;span style="color:blue;"&gt;string &lt;/span&gt;session = link.Substring(link.LastIndexOf(&lt;span style="color:#a31515;"&gt;&amp;#39;/&amp;#39;&lt;/span&gt;) + 1).ToLower();
            &lt;span style="color:blue;"&gt;string &lt;/span&gt;enclosureUrl = &lt;span style="color:blue;"&gt;string&lt;/span&gt;.Format(&lt;span style="color:#a31515;"&gt;&amp;quot;http://mschannel9.vo.msecnd.net/o9/mix/09/{0}/{1}.wmv&amp;quot;&lt;/span&gt;, &lt;span style="color:blue;"&gt;this&lt;/span&gt;.type.ToLower(), session);

            item.Add(
                &lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;XElement&lt;/span&gt;(&lt;span style="color:#a31515;"&gt;&amp;quot;enclosure&amp;quot;&lt;/span&gt;,
                    &lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;XAttribute&lt;/span&gt;(&lt;span style="color:#a31515;"&gt;&amp;quot;url&amp;quot;&lt;/span&gt;, enclosureUrl)));
        }

        &lt;span style="color:blue;"&gt;this&lt;/span&gt;.context.Response.Write(feed.ToString());

        &lt;span style="color:blue;"&gt;this&lt;/span&gt;.context.Response.ContentType = &lt;span style="color:#a31515;"&gt;&amp;quot;application/rss+xml&amp;quot;&lt;/span&gt;;

        &lt;span style="color:#2b91af;"&gt;HttpCachePolicy &lt;/span&gt;cache = &lt;span style="color:blue;"&gt;this&lt;/span&gt;.context.Response.Cache;
        cache.SetCacheability(&lt;span style="color:#2b91af;"&gt;HttpCacheability&lt;/span&gt;.ServerAndPrivate);
        cache.SetExpires(&lt;span style="color:#2b91af;"&gt;DateTime&lt;/span&gt;.Now.AddHours(1));
        cache.VaryByParams[&lt;span style="color:#a31515;"&gt;&amp;quot;type&amp;quot;&lt;/span&gt;] = &lt;span style="color:blue;"&gt;true&lt;/span&gt;;
        cache.SetValidUntilExpires(&lt;span style="color:blue;"&gt;true&lt;/span&gt;);
    }
}&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1680499" width="1" height="1"&gt;
&lt;div class="feed_ad"&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=cf9aef0715954372b326ea8526e04393&amp;u=1680499" class="feed_ad"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=cf9aef0715954372b326ea8526e04393&amp;u=1680499" border="0" class="feed_ad"/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=yekCAqb_tk0:NFIAXfI8rNM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=yekCAqb_tk0:NFIAXfI8rNM:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=yekCAqb_tk0:NFIAXfI8rNM:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=yekCAqb_tk0:NFIAXfI8rNM:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=yekCAqb_tk0:NFIAXfI8rNM:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=yekCAqb_tk0:NFIAXfI8rNM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=yekCAqb_tk0:NFIAXfI8rNM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=yekCAqb_tk0:NFIAXfI8rNM:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=yekCAqb_tk0:NFIAXfI8rNM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=yekCAqb_tk0:NFIAXfI8rNM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=yekCAqb_tk0:NFIAXfI8rNM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=yekCAqb_tk0:NFIAXfI8rNM:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=yekCAqb_tk0:NFIAXfI8rNM:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=yekCAqb_tk0:NFIAXfI8rNM:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=yekCAqb_tk0:NFIAXfI8rNM:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=yekCAqb_tk0:NFIAXfI8rNM:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=yekCAqb_tk0:NFIAXfI8rNM:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PauloMorgado/Blogs/EN/~4/yekCAqb_tk0" height="1" width="1"/&gt;&lt;img src="http://feeds.feedburner.com/~r/PauloMorgadoEN/~4/027_fGAy29o" height="1" width="1"/&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Events/default.aspx">Events</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/MSDN/default.aspx">MSDN</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Web/default.aspx">Web</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Podcasts/default.aspx">Podcasts</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Mix/default.aspx">Mix</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Mix09/default.aspx">Mix09</category><feedburner:origLink>http://msmvps.com/blogs/paulomorgado/archive/2009/03/23/mix09-session-videos-how-i-did-it.aspx</feedburner:origLink><feedburner:origLink>http://feeds.paulomorgado.net/~r/PauloMorgado/Blogs/EN/~3/yekCAqb_tk0/mix09-session-videos-how-i-did-it.aspx</feedburner:origLink></item><item><title>MIX09 Session Videos</title><link>http://feeds.paulomorgado.net/~r/PauloMorgadoEN/~3/Mj4le67mZpY/mix09-session-videos.aspx</link><pubDate>Mon, 23 Mar 2009 00:06:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1680495</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1680495</wfw:commentRss><wfw:comment>http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1680495</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2009/03/23/mix09-session-videos.aspx#comments</comments><description>&lt;p&gt;&lt;strong&gt;Updated (2009Mar25):&lt;/strong&gt; Added MP4 feed.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Mix09 is over and I would like to watch some sessions.&lt;/p&gt;
&lt;p&gt;I like to watch these kind of videos by subscribing them using the &lt;a title="Zune Software" href="http://www.zune.net/software/" target="_blank"&gt;Zune Software&lt;/a&gt; as a podcast. I like the Zune Software because it downloads the “episodes” and I can watch them in any order and it never forgets where I was – even if I was watching it in the &lt;a title="Zune.net | What is Zune?" href="http://www.zune.net/products/whatiszune.htm" target="_blank"&gt;Zune&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Unfortunately, the only feed available (&lt;a title="MIX Videos" href="http://sessions.visitmix.com/RSS" target="_blank"&gt;http://sessions.visitmix.com/RSS&lt;/a&gt;) does not include the videos.&lt;/p&gt;
&lt;p&gt;Fortunately, the address of the videos is very predictable and I was able to build my own feeds:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="MIN-WIDTH:100px;"&gt;WMV-HQ: &lt;/span&gt;&lt;a title="MIX Videos (WMV-HQ)" href="http://feeds.paulomorgado.net/PauloMorgado/Events/Mix09/SessionVideos/wmv-hq"&gt;http://feeds.paulomorgado.net/PauloMorgado/Events/Mix09/SessionVideos/wmv-hq&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;span style="MIN-WIDTH:100px;"&gt;WMV: &lt;/span&gt;&lt;a title="MIX Videos (WMV)" href="http://feeds.paulomorgado.net/PauloMorgado/Events/Mix09/SessionVideos/wmv"&gt;http://feeds.paulomorgado.net/PauloMorgado/Events/Mix09/SessionVideos/wmv&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;span style="MIN-WIDTH:100px;"&gt;ZUNE: &lt;/span&gt;&lt;a title="MIX Videos (ZUNE)" href="http://feeds.paulomorgado.net/PauloMorgado/Events/Mix09/SessionVideos/zune"&gt;http://feeds.paulomorgado.net/PauloMorgado/Events/Mix09/SessionVideos/zune&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;span style="MIN-WIDTH:100px;"&gt;MP4: &lt;/span&gt;&lt;a title="MIX Videos (ZUNE)" href="http://feeds.paulomorgado.net/PauloMorgado/Events/Mix09/SessionVideos/mp4"&gt;http://feeds.paulomorgado.net/PauloMorgado/Events/Mix09/SessionVideos/mp4&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;The session videos are not available in all formats for every session (at least, not now) but, if you subscribe to all, you’ll get videos for all the sessions.&lt;/p&gt;
&lt;p&gt;Subscribe and enjoy.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1680495" width="1" height="1"&gt;
&lt;div class="feed_ad"&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=cf9aef0715954372b326ea8526e04393&amp;u=1680495" class="feed_ad"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=cf9aef0715954372b326ea8526e04393&amp;u=1680495" border="0" class="feed_ad"/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=VwzcjbSvTD8:-drvef8lC48:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=VwzcjbSvTD8:-drvef8lC48:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=VwzcjbSvTD8:-drvef8lC48:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=VwzcjbSvTD8:-drvef8lC48:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=VwzcjbSvTD8:-drvef8lC48:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=VwzcjbSvTD8:-drvef8lC48:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=VwzcjbSvTD8:-drvef8lC48:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=VwzcjbSvTD8:-drvef8lC48:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=VwzcjbSvTD8:-drvef8lC48:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=VwzcjbSvTD8:-drvef8lC48:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=VwzcjbSvTD8:-drvef8lC48:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=VwzcjbSvTD8:-drvef8lC48:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=VwzcjbSvTD8:-drvef8lC48:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=VwzcjbSvTD8:-drvef8lC48:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=VwzcjbSvTD8:-drvef8lC48:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=VwzcjbSvTD8:-drvef8lC48:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=VwzcjbSvTD8:-drvef8lC48:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PauloMorgado/Blogs/EN/~4/VwzcjbSvTD8" height="1" width="1"/&gt;&lt;img src="http://feeds.feedburner.com/~r/PauloMorgadoEN/~4/Mj4le67mZpY" height="1" width="1"/&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Events/default.aspx">Events</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/MSDN/default.aspx">MSDN</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Web/default.aspx">Web</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Podcasts/default.aspx">Podcasts</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Mix/default.aspx">Mix</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Mix09/default.aspx">Mix09</category><feedburner:origLink>http://msmvps.com/blogs/paulomorgado/archive/2009/03/23/mix09-session-videos.aspx</feedburner:origLink><feedburner:origLink>http://feeds.paulomorgado.net/~r/PauloMorgado/Blogs/EN/~3/VwzcjbSvTD8/mix09-session-videos.aspx</feedburner:origLink></item><item><title>ASP.NET Futures: Control ClientID Generation</title><link>http://feeds.paulomorgado.net/~r/PauloMorgadoEN/~3/EDO8XsRptFw/asp-net-futures-control-clientid-generation.aspx</link><pubDate>Wed, 18 Mar 2009 01:44:50 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1678872</guid><dc:creator>Paulo Morgado</dc:creator><slash:comments>0</slash:comments><wfw:commentRss>http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1678872</wfw:commentRss><wfw:comment>http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1678872</wfw:comment><comments>http://msmvps.com/blogs/paulomorgado/archive/2009/03/18/asp-net-futures-control-clientid-generation.aspx#comments</comments><description>&lt;p&gt;&lt;a title="ASP.NET Developer Center" href="http://msdn.microsoft.com/asp.net/" target="_blank"&gt;ASP.NET&lt;/a&gt; is expected to have some &lt;a title="ASP.NET 4.0 ClientID Overview" href="http://cli.gs/0ZX9W7" target="_blank"&gt;improvements on the generation of client IDs&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Although this is a major improvement, it comes short by not allowing the generation of shorter client IDs for server controls.&lt;/p&gt;  &lt;p&gt;My good friend &lt;a title="Nuno Gomes {Code Adventures}" href="http://cli.gs/NunoGomes" target="_blank"&gt;Nuno Gomes&lt;/a&gt; has done some work on generating shorter client IDs for controls (*).&lt;/p&gt;  &lt;p&gt;&lt;a title="jeff chin xyz" href="http://cli.gs/2EJjzX" target="_blank"&gt;Jeff&lt;/a&gt; has taken it one step further with his &lt;a title="How to shorten ASP.NET automatically generated control IDs" href="http://cli.gs/EpT9Bt" target="_blank"&gt;How to shorten ASP.NET automatically generated control IDs&lt;/a&gt; article on &lt;a title="The Code Project - Your Development Resource" href="http://www.codeproject.com/" target="_blank"&gt;CodeProject&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;If you want to see a running example, check out &lt;a title="http://www.biocompare.com/" href="http://www.biocompare.com/" target="_blank"&gt;http://www.biocompare.com/&lt;/a&gt;.&lt;/p&gt;  &lt;div style="border-top:1px solid;"&gt;(*)    &lt;ul&gt;     &lt;li&gt;&lt;a title="ASP.NET Controls - Improving automatic ID generation : Introduction ( Part 1)" href="http://cli.gs/qGgq3X" target="_blank"&gt;ASP.NET Controls - Improving automatic ID generation : Introduction ( Part 1)&lt;/a&gt; &lt;/li&gt;      &lt;li&gt;&lt;a title="ASP.NET Controls - Improving automatic ID generation : Concept ( Part 2)" href="http://cli.gs/JLteEZ" target="_blank"&gt;ASP.NET Controls - Improving automatic ID generation : Concept ( Part 2)&lt;/a&gt; &lt;/li&gt;      &lt;li&gt;&lt;a title="ASP.NET Controls - Improving automatic ID generation - Architectural Changes ( Part 3)" href="http://cli.gs/TSE9Jv"&gt;ASP.NET Controls - Improving automatic ID generation - Architectural Changes ( Part 3)&lt;/a&gt; &lt;/li&gt;      &lt;li&gt;&lt;a title="ASP.NET Controls - Improving automatic ID generation : The ShortIDs Naming Provider (Part 4)" href="http://cli.gs/7rEWmy" target="_blank"&gt;ASP.NET Controls - Improving automatic ID generation : The ShortIDs Naming Provider (Part 4)&lt;/a&gt; &lt;/li&gt;   &lt;/ul&gt; &lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1678872" width="1" height="1"&gt;
&lt;div class="feed_ad"&gt;&lt;a href="http://www.pheedo.com/click.phdo?x=cf9aef0715954372b326ea8526e04393&amp;u=1678872" class="feed_ad"&gt;&lt;img src="http://www.pheedo.com/img.phdo?x=cf9aef0715954372b326ea8526e04393&amp;u=1678872" border="0" class="feed_ad"/&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=LP_83rPwnYg:L3aNJeI3pLI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=LP_83rPwnYg:L3aNJeI3pLI:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=LP_83rPwnYg:L3aNJeI3pLI:D7DqB2pKExk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=LP_83rPwnYg:L3aNJeI3pLI:D7DqB2pKExk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=LP_83rPwnYg:L3aNJeI3pLI:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=LP_83rPwnYg:L3aNJeI3pLI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=LP_83rPwnYg:L3aNJeI3pLI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=LP_83rPwnYg:L3aNJeI3pLI:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=LP_83rPwnYg:L3aNJeI3pLI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=LP_83rPwnYg:L3aNJeI3pLI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=LP_83rPwnYg:L3aNJeI3pLI:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=LP_83rPwnYg:L3aNJeI3pLI:KwTdNBX3Jqk"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=LP_83rPwnYg:L3aNJeI3pLI:KwTdNBX3Jqk" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=LP_83rPwnYg:L3aNJeI3pLI:l6gmwiTKsz0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=l6gmwiTKsz0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=LP_83rPwnYg:L3aNJeI3pLI:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?i=LP_83rPwnYg:L3aNJeI3pLI:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.paulomorgado.net/~ff/PauloMorgado/Blogs/EN?a=LP_83rPwnYg:L3aNJeI3pLI:TzevzKxY174"&gt;&lt;img src="http://feeds.feedburner.com/~ff/PauloMorgado/Blogs/EN?d=TzevzKxY174" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/PauloMorgado/Blogs/EN/~4/LP_83rPwnYg" height="1" width="1"/&gt;&lt;img src="http://feeds.feedburner.com/~r/PauloMorgadoEN/~4/EDO8XsRptFw" height="1" width="1"/&gt;</description><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/.NET/default.aspx">.NET</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/SoftDev/default.aspx">SoftDev</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Microsoft/default.aspx">Microsoft</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/MSDN/default.aspx">MSDN</category><category domain="http://msmvps.com/blogs/paulomorgado/archive/tags/Web/default.aspx">Web</category><feedburner:origLink>http://msmvps.com/blogs/paulomorgado/archive/2009/03/18/asp-net-futures-control-clientid-generation.aspx</feedburner:origLink><feedburner:origLink>http://feeds.paulomorgado.net/~r/PauloMorgado/Blogs/EN/~3/LP_83rPwnYg/asp-net-futures-control-clientid-generation.aspx</feedburner:origLink></item></channel></rss>
