<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.PauloMorgado.NET/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.PauloMorgado.NET/~d/styles/itemcontent.css" type="text/css" media="screen"?><rss xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>Paulo Morgado</title><link>http://msmvps.com/blogs/paulomorgado/default.aspx</link><description>Rambings on software development</description><language>en</language><generator>CommunityServer 2008 SP1 (Build: 30619.63)</generator><creativeCommons:license>http://creativecommons.org/licenses/by/3.0/</creativeCommons:license><image><link>http://msmvps.com/blogs/paulomorgado/</link><url>http://msmvps.com/users/avatar.aspx?userid=2401</url><title>Paulo Morgado</title></image><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.PauloMorgado.NET/PauloMorgadoEN" type="application/rss+xml" /><feedburner:emailServiceId>803861</feedburner:emailServiceId><feedburner:feedburnerHostname>http://www.feedburner.com</feedburner:feedburnerHostname><item><title>Other Ways For Making PathInfo And ASP.NET Themes Work Together</title><link>http://feeds.PauloMorgado.NET/~r/PauloMorgadoEN/~3/345131040/click.phdo</link><category>.NET</category><category>ASP.NET</category><category>SoftDev</category><category>Microsoft</category><category>MSDN</category><category>Web</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Paulo Morgado</dc:creator><pubDate>Thu, 24 Jul 2008 19:07:36 -0500</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1642074</guid><description>&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;On my &lt;a title="Making PathInfo And ASP.NET Themes Work Together" href="http://msmvps.com/blogs/paulomorgado/archive/2008/07/24/making-pathinfo-and-asp-net-themes-work-together.aspx" target="_blank"&gt;last post&lt;/a&gt; I wrote about a solution for &lt;a title="PathInfo And ASP.NET Themes: Why Can’t They Work Together?" href="http://msmvps.com/blogs/paulomorgado/archive/2008/07/23/pathinfo-and-asp-net-themes-why-can-t-they-work-together.aspx" target="_blank"&gt;the problem that arises when we try the use path infos and ASP.NET Themes and Skins together&lt;/a&gt;.&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;&lt;a title="Raj Kaimal" href="http://weblogs.asp.net/rajbk/" target="_blank"&gt;Raj Kaimal&lt;/a&gt;&amp;#160;&lt;a title="Making PathInfo And ASP.NET Themes Work Together" href="http://weblogs.asp.net/paulomorgado/archive/2008/07/24/making-pathinfo-and-asp-net-themes-work-together.aspx#comments" target="_blank"&gt;suggested&lt;/a&gt; rewriting all &lt;a title="LINK Element | link Object" href="http://msdn.microsoft.com/library/ms535848.aspx" target="_blank"&gt;LINK&lt;/a&gt; HTML elements URLs to the correct URL as seen from the client. Something like this:&lt;/p&gt;  &lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;void &lt;/span&gt;HttpApplicationPreRequestHandlerExecute(&lt;span style="color:blue;"&gt;object &lt;/span&gt;sender, System.&lt;span style="color:#2b91af;"&gt;EventArgs &lt;/span&gt;e)
{
    &lt;span style="color:blue;"&gt;var &lt;/span&gt;httpApplication = sender &lt;span style="color:blue;"&gt;as &lt;/span&gt;System.Web.&lt;span style="color:#2b91af;"&gt;HttpApplication&lt;/span&gt;;

    &lt;span style="color:blue;"&gt;var &lt;/span&gt;httpContext = httpApplication.Context;

    &lt;span style="color:blue;"&gt;var &lt;/span&gt;page = httpContext.CurrentHandler &lt;span style="color:blue;"&gt;as &lt;/span&gt;System.Web.UI.&lt;span style="color:#2b91af;"&gt;Page&lt;/span&gt;;

    &lt;span style="color:blue;"&gt;if &lt;/span&gt;((page != &lt;span style="color:blue;"&gt;null&lt;/span&gt;) &amp;amp;&amp;amp; !&lt;span style="color:blue;"&gt;string&lt;/span&gt;.IsNullOrEmpty(httpContext.Request.PathInfo))
    {
        page.PreRenderComplete += &lt;span style="color:blue;"&gt;delegate&lt;/span&gt;(&lt;span style="color:blue;"&gt;object &lt;/span&gt;source, System.&lt;span style="color:#2b91af;"&gt;EventArgs &lt;/span&gt;args)
        {
            &lt;span style="color:blue;"&gt;var &lt;/span&gt;p = source &lt;span style="color:blue;"&gt;as &lt;/span&gt;System.Web.UI.&lt;span style="color:#2b91af;"&gt;Page&lt;/span&gt;;

            &lt;span style="color:blue;"&gt;foreach &lt;/span&gt;(System.Web.UI.&lt;span style="color:#2b91af;"&gt;Control &lt;/span&gt;headerControl &lt;span style="color:blue;"&gt;in &lt;/span&gt;p.Header.Controls)
            {
                &lt;span style="color:blue;"&gt;var &lt;/span&gt;link = headerControl &lt;span style="color:blue;"&gt;as &lt;/span&gt;System.Web.UI.HtmlControls.&lt;span style="color:#2b91af;"&gt;HtmlLink&lt;/span&gt;;
                &lt;span style="color:blue;"&gt;if &lt;/span&gt;(link != &lt;span style="color:blue;"&gt;null&lt;/span&gt;)
                {
                    link.Href = p.ResolveUrl(link.Href);
                }
            }
        };
    }
}&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p align="justify"&gt;With this approach you still have a problem (which mine didn’t solve) with post backs because the rendering of the &lt;a title="ACTION Attribute | action Property" href="http://msdn.microsoft.com/library/ms533063.aspx" target="_blank"&gt;ACTION&lt;/a&gt; of the HTML &lt;a title="FORM Element | form Object" href="http://msdn.microsoft.com/library/ms535249.aspx" target="_blank"&gt;FORM&lt;/a&gt; is also &lt;a title="FORM ACTION not rendered correctly when the reques has a PathInfo" href="https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=357669" target="_blank"&gt;broken&lt;/a&gt;.&lt;/p&gt;

&lt;p align="justify"&gt;&lt;a href="http://weblogs.pontonetpt.com/israelaece/"&gt;Israel Aéce&lt;/a&gt;&amp;#160;&lt;a title="Fazendo Com Que PathInfo E ASP.NET Themes Coexistam" href="http://weblogs.pontonetpt.com/pjmorgado/posts/27968.aspx#27970" target="_blank"&gt;suggested&lt;/a&gt; the use of the &lt;a title="BASE Element | base Object" href="http://msdn.microsoft.com/library/ms535191.aspx" target="_blank"&gt;BASE&lt;/a&gt; HTML element to re-base relative URLs. Something like this:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;void &lt;/span&gt;HttpApplicationPreRequestHandlerExecute(&lt;span style="color:blue;"&gt;object &lt;/span&gt;sender, System.&lt;span style="color:#2b91af;"&gt;EventArgs &lt;/span&gt;e)
{
    &lt;span style="color:blue;"&gt;var &lt;/span&gt;httpApplication = sender &lt;span style="color:blue;"&gt;as &lt;/span&gt;System.Web.&lt;span style="color:#2b91af;"&gt;HttpApplication&lt;/span&gt;;

    &lt;span style="color:blue;"&gt;var &lt;/span&gt;httpContext = httpApplication.Context;

    &lt;span style="color:blue;"&gt;var &lt;/span&gt;page = httpContext.CurrentHandler &lt;span style="color:blue;"&gt;as &lt;/span&gt;System.Web.UI.&lt;span style="color:#2b91af;"&gt;Page&lt;/span&gt;;

    &lt;span style="color:blue;"&gt;if &lt;/span&gt;((page != &lt;span style="color:blue;"&gt;null&lt;/span&gt;) &amp;amp;&amp;amp; !&lt;span style="color:blue;"&gt;string&lt;/span&gt;.IsNullOrEmpty(httpContext.Request.PathInfo))
    {
        page.PreRenderComplete += &lt;span style="color:blue;"&gt;delegate&lt;/span&gt;(&lt;span style="color:blue;"&gt;object &lt;/span&gt;source, System.&lt;span style="color:#2b91af;"&gt;EventArgs &lt;/span&gt;args)
        {
            page.Init += &lt;span style="color:blue;"&gt;delegate&lt;/span&gt;(&lt;span style="color:blue;"&gt;object &lt;/span&gt;source, System.&lt;span style="color:#2b91af;"&gt;EventArgs &lt;/span&gt;args)
            {
                &lt;span style="color:blue;"&gt;var &lt;/span&gt;p = source &lt;span style="color:blue;"&gt;as &lt;/span&gt;System.Web.UI.&lt;span style="color:#2b91af;"&gt;Page&lt;/span&gt;;

                &lt;span style="color:blue;"&gt;var &lt;/span&gt;htmlBase = &lt;span style="color:blue;"&gt;new &lt;/span&gt;System.Web.UI.WebControls.&lt;span style="color:#2b91af;"&gt;WebControl&lt;/span&gt;(System.Web.UI.&lt;span style="color:#2b91af;"&gt;HtmlTextWriterTag&lt;/span&gt;.Base);
                htmlBase.Attributes.Add(&lt;span style="color:#a31515;"&gt;&amp;quot;href&amp;quot;&lt;/span&gt;, p.Request.Url.GetLeftPart(System.&lt;span style="color:#2b91af;"&gt;UriPartial&lt;/span&gt;.Authority) + p.Request.CurrentExecutionFilePath);
                p.Header.Controls.Add(htmlBase);
            };
        };
    }
}&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p align="justify"&gt;This seems like the better solution except if your site sits behind several security perimeters and it is not possible to be sure what the domain is as seem from the client side, which was my problem to begin with.&lt;/p&gt;

&lt;p align="justify"&gt;But if you are thinking of calling &lt;a title="HttpServerUtility.Executet Method" href="http://msdn.microsoft.com/library/System.Web.HttpServerUtility.Execute.aspx" target="_blank"&gt;Server.Execute&lt;/a&gt;, &lt;a title="HttpServerUtility.TransferRequest Method" href="http://msdn.microsoft.com/library/System.Web.HttpServerUtility.TransferRequest.aspx" target="_blank"&gt;Server.TransferRequest&lt;/a&gt; or &lt;a title="HttpServerUtility.TransferRequest Method" href="http://msdn.microsoft.com/library/System.Web.HttpServerUtility.TransferRequest.aspx" target="_blank"&gt;Server.TransferRequest&lt;/a&gt;, neither of these two solutions will work.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1642074" width="1" height="1"&gt;&lt;br style="clear: both;"/&gt;
      &lt;a href="http://www.pheedo.com/click.phdo?s=680a3703da677efcfef8d7d1bf8f5f16"&gt;&lt;img alt="" style="border: 0;" border="0" src="http://www.pheedo.com/img.phdo?s=680a3703da677efcfef8d7d1bf8f5f16"/&gt;&lt;/a&gt;
  &lt;img src="http://www.pheedo.com/feeds/tracker.php?i=680a3703da677efcfef8d7d1bf8f5f16" style="display: none;" border="0" height="1" width="1" alt=""/&gt;
&lt;p&gt;&lt;a href="http://feeds.PauloMorgado.NET/~a/PauloMorgadoEN?a=pSBhhF"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~a/PauloMorgadoEN?i=pSBhhF" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=FEuChJ"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=FEuChJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=u1JJKJ"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=u1JJKJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=Cw403j"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=Cw403j" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=oWQFTJ"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=oWQFTJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=QJK6Ej"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=QJK6Ej" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=loia2j"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=loia2j" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=4thqpJ"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=4thqpJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=rUZkFj"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=rUZkFj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=X9iNAJ"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=X9iNAJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=qGYCCj"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=qGYCCj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=J0UhsJ"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=J0UhsJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=e9qnFj"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=e9qnFj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=CwkSgJ"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=CwkSgJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.PauloMorgado.NET/~r/PauloMorgadoEN/~4/345131040" height="1" width="1"/&gt;</description><pheedo:origLink xmlns:pheedo="http://www.pheedo.com/namespace/pheedo">http://msmvps.com/blogs/paulomorgado/archive/2008/07/25/other-ways-for-making-pathinfo-and-asp-net-themes-work-together.aspx</pheedo:origLink><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1642074</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1642074</wfw:comment><feedburner:origLink>http://www.pheedo.com/click.phdo?i=680a3703da677efcfef8d7d1bf8f5f16</feedburner:origLink></item><item><title>Making PathInfo And ASP.NET Themes Work Together</title><link>http://feeds.PauloMorgado.NET/~r/PauloMorgadoEN/~3/344077548/click.phdo</link><category>.NET</category><category>ASP.NET</category><category>SoftDev</category><category>Microsoft</category><category>MSDN</category><category>Web</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Paulo Morgado</dc:creator><pubDate>Wed, 23 Jul 2008 19:13:05 -0500</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1641944</guid><description>&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;On my &lt;a title="PathInfo And ASP.NET Themes: Why Can’t They Work Together?" href="http://msmvps.com/blogs/paulomorgado/archive/2008/07/23/pathinfo-and-asp-net-themes-why-can-t-they-work-together.aspx" target="_blank"&gt;last post&lt;/a&gt; I wrote about the problem that arises when we try the use &lt;a title="HttpRequest.PathInfo Property" href="http://msdn.microsoft.com/library/System.Web.HttpRequest.PathInfo.aspx" target="_blank"&gt;path infos&lt;/a&gt; and &lt;a title="ASP.NET Themes and Skins" href="http://msdn.microsoft.com/library/ea1d8583-c05c-4e97-a851-0ceefea328f7.aspx" target="_blank"&gt;ASP.NET Themes and Skins&lt;/a&gt; together.&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;But most of the times you don’t care about the &lt;strong&gt;why you can’t&lt;/strong&gt;. You just want to know &lt;strong&gt;how you can&lt;/strong&gt;.&lt;/a&gt;&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;The way I see it, the right solution would be to render the URLs for the stylesheets rooted.&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;But since I can’t do that, the next best thing is the serve the wrongly addressed request properly.&lt;/a&gt;&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;But how can we do that?&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;The only way I could come up with, was an &lt;a title="IHttpModule Interface" href="http://msdn.microsoft.com/library/System.Web.IHttpModule.aspx" target="_blank"&gt;HTTP Module&lt;/a&gt;:&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;public class &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;AppThemesModule &lt;/span&gt;: &lt;span style="color:blue;"&gt;global&lt;/span&gt;::System.Web.&lt;span style="color:#2b91af;"&gt;IHttpModule
&lt;/span&gt;{
    &lt;span style="color:blue;"&gt;private static int &lt;/span&gt;searchStartIndex = System.Web.&lt;span style="color:#2b91af;"&gt;HttpRuntime&lt;/span&gt;.AppDomainAppVirtualPath.Length;

    &lt;span style="color:blue;"&gt;#region &lt;/span&gt;IHttpModule Members

    &lt;span style="color:blue;"&gt;public void &lt;/span&gt;Dispose()
    {
    }

    &lt;span style="color:blue;"&gt;public void &lt;/span&gt;Init(System.Web.&lt;span style="color:#2b91af;"&gt;HttpApplication &lt;/span&gt;context)
    {
        context.BeginRequest += HttpApplicationBeginRequest;
    }

    &lt;span style="color:blue;"&gt;#endregion

    void &lt;/span&gt;HttpApplicationBeginRequest(&lt;span style="color:blue;"&gt;object &lt;/span&gt;sender, System.&lt;span style="color:#2b91af;"&gt;EventArgs &lt;/span&gt;e)
    {
        System.Web.&lt;span style="color:#2b91af;"&gt;HttpApplication &lt;/span&gt;httpApplication = sender &lt;span style="color:blue;"&gt;as &lt;/span&gt;System.Web.&lt;span style="color:#2b91af;"&gt;HttpApplication&lt;/span&gt;;

        &lt;span style="color:blue;"&gt;string &lt;/span&gt;path = httpApplication.Request.Path;
        &lt;span style="color:blue;"&gt;if &lt;/span&gt;(path.Length &amp;gt; searchStartIndex)
        {
            &lt;span style="color:blue;"&gt;int &lt;/span&gt;appThemesStartIndex = path.IndexOf(&lt;span style="color:#a31515;"&gt;&amp;quot;/App_Themes/&amp;quot;&lt;/span&gt;, searchStartIndex);
            &lt;span style="color:blue;"&gt;if &lt;/span&gt;(appThemesStartIndex &amp;gt; 0)
            {
                httpApplication.Context.RewritePath(&lt;span style="color:#a31515;"&gt;&amp;quot;~&amp;quot; &lt;/span&gt;+ path.Substring(appThemesStartIndex));
            }
        }
    }
}&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;

&lt;p align="justify"&gt;Besides registering the module, you’ll have to configure your virtual directory so that all the files to be served out of the themes are handled by a &lt;a title="StaticFileHandler Class" href="http://msdn.microsoft.com/library/ms404287.aspx" target="_blank"&gt;StaticFileHandler&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1641944" width="1" height="1"&gt;&lt;br style="clear: both;"/&gt;
      &lt;a href="http://www.pheedo.com/feeds/ht.php?t=c&amp;amp;i=864d7a282c94014069dd069b11ab5a7d"&gt;&lt;img src="http://www.pheedo.com/feeds/ht.php?t=v&amp;amp;i=864d7a282c94014069dd069b11ab5a7d" border="0" /&gt;&lt;/a&gt;
  &lt;img src="http://www.pheedo.com/feeds/tracker.php?i=864d7a282c94014069dd069b11ab5a7d" style="display: none;" border="0" height="1" width="1" alt=""/&gt;
&lt;p&gt;&lt;a href="http://feeds.PauloMorgado.NET/~a/PauloMorgadoEN?a=V5DWx2"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~a/PauloMorgadoEN?i=V5DWx2" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=NRoc4J"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=NRoc4J" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=YTXz7J"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=YTXz7J" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=5rQgfj"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=5rQgfj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=OMO4UJ"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=OMO4UJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=GV41bj"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=GV41bj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=AjHmWj"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=AjHmWj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=c3xThJ"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=c3xThJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=OSOQzj"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=OSOQzj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=J1BBzJ"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=J1BBzJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=KsB7Mj"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=KsB7Mj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=4qUitJ"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=4qUitJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=yLjP1j"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=yLjP1j" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=bAqg2J"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=bAqg2J" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.PauloMorgado.NET/~r/PauloMorgadoEN/~4/344077548" height="1" width="1"/&gt;</description><pheedo:origLink xmlns:pheedo="http://www.pheedo.com/namespace/pheedo">http://msmvps.com/blogs/paulomorgado/archive/2008/07/24/making-pathinfo-and-asp-net-themes-work-together.aspx</pheedo:origLink><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1641944</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1641944</wfw:comment><feedburner:origLink>http://www.pheedo.com/click.phdo?i=864d7a282c94014069dd069b11ab5a7d</feedburner:origLink></item><item><title>PathInfo And ASP.NET Themes: Why Can’t They Work Together?</title><link>http://feeds.PauloMorgado.NET/~r/PauloMorgadoEN/~3/344012814/click.phdo</link><category>.NET</category><category>ASP.NET</category><category>SoftDev</category><category>Microsoft</category><category>MSDN</category><category>Web</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Paulo Morgado</dc:creator><pubDate>Wed, 23 Jul 2008 17:37:55 -0500</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1641934</guid><description>&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;If you ever worked with &lt;a title="ASP.NET Themes and Skins" href="http://msdn.microsoft.com/library/ea1d8583-c05c-4e97-a851-0ceefea328f7.aspx" target="_blank"&gt;ASP.NET Themes and Skins&lt;/a&gt;, you know that stylesheet links are added to the head section of the HTML document.&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;The rendered URL to these stylesheets is always relative to location of the page being requested.&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;So, for a request to:&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p style="margin-left:10px;font-family:consolas,courier new;"&gt;http://MySite/Section/Default.aspx&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;you&amp;#39;ll get:&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p style="margin-left:10px;font-family:consolas,courier new;"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;link &lt;/span&gt;&lt;span style="color:red;"&gt;href&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;../App_Themes/Default/Styles.css&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;type&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;text/css&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;rel&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;stylesheet&amp;quot; /&amp;gt;&lt;/span&gt;&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;which will make the web browser request for:&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p style="margin-left:10px;font-family:consolas,courier new;"&gt;http://MySite/App_Themes/Default/Styles.css&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;and it all works fine.&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;Well, it works fine until you need to navigate to:&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p style="margin-left:10px;font-family:consolas,courier new;"&gt;http://MySite/Section/Default.aspx/PathInfo&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;You&amp;#39;ll get the same stylesheet reference and the browser will request for:&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p style="margin-left:10px;font-family:consolas,courier new;"&gt;http://MySite/Section/Default.aspx/App_Themes/Default/Styles.css&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;This happens because the web browser has no knowledge of what &lt;a title="HttpRequest.PathInfo Property" href="http://msdn.microsoft.com/library/System.Web.HttpRequest.PathInfo.aspx" target="_blank"&gt;PathInfo&lt;/a&gt;s are. It only accounts for the number of forward slashes (/).&lt;/p&gt;  &lt;p align="justify"&gt;I&amp;#39;ve filed a &lt;a title="Themes don&amp;#39;t work when the request has a PathInfo" href="https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=357532" target="_blank"&gt;bug&lt;/a&gt; on &lt;a title="Microsoft Connect" href="http://connect.microsoft.com/" target="_blank"&gt;Microsoft Connect&lt;/a&gt; about this.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1641934" width="1" height="1"&gt;&lt;br style="clear: both;"/&gt;
      &lt;a href="http://www.pheedo.com/click.phdo?s=8333b3bb189a45f6560f4724a061f947"&gt;&lt;img alt="" style="border: 0;" border="0" src="http://www.pheedo.com/img.phdo?s=8333b3bb189a45f6560f4724a061f947"/&gt;&lt;/a&gt;
  &lt;img src="http://www.pheedo.com/feeds/tracker.php?i=8333b3bb189a45f6560f4724a061f947" style="display: none;" border="0" height="1" width="1" alt=""/&gt;
&lt;p&gt;&lt;a href="http://feeds.PauloMorgado.NET/~a/PauloMorgadoEN?a=W3u8f9"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~a/PauloMorgadoEN?i=W3u8f9" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=TGKsNJ"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=TGKsNJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=nbbzrJ"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=nbbzrJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=ge1tGj"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=ge1tGj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=FGbtaJ"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=FGbtaJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=IRdZ0j"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=IRdZ0j" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=oUL5Vj"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=oUL5Vj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=KZ15iJ"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=KZ15iJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=SPgSej"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=SPgSej" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=PjtjAJ"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=PjtjAJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=KuUTKj"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=KuUTKj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=Q67JVJ"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=Q67JVJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=d9Bkij"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=d9Bkij" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=iHxpiJ"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=iHxpiJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.PauloMorgado.NET/~r/PauloMorgadoEN/~4/344012814" height="1" width="1"/&gt;</description><pheedo:origLink xmlns:pheedo="http://www.pheedo.com/namespace/pheedo">http://msmvps.com/blogs/paulomorgado/archive/2008/07/23/pathinfo-and-asp-net-themes-why-can-t-they-work-together.aspx</pheedo:origLink><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1641934</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1641934</wfw:comment><feedburner:origLink>http://www.pheedo.com/click.phdo?i=8333b3bb189a45f6560f4724a061f947</feedburner:origLink></item><item><title>Make The HttpValueCollection Class Public And Move It To System.DLL</title><link>http://feeds.PauloMorgado.NET/~r/PauloMorgadoEN/~3/335581867/click.phdo</link><category>.NET</category><category>ASP.NET</category><category>SoftDev</category><category>Microsoft</category><category>MSDN</category><category>Web</category><category>WindowsClient</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Paulo Morgado</dc:creator><pubDate>Mon, 14 Jul 2008 19:22:30 -0500</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1640806</guid><description>&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p&gt;I find the &lt;strong&gt;System.Web.HttpValueCollection&lt;/strong&gt; class very useful in a wide number of situations that involve composing HTTP requests or any other need to represent name/value collection as a string (in an XML attribute, for example).&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p&gt;As of now (&lt;a title="Microsoft .NET" href="http://www.microsoft.com/net/" target="_blank"&gt;.NET Framework&lt;/a&gt; 3.5 SP1 Beta), the only way to create an instance of the &lt;strong&gt;System.Web.HttpValueCollection&lt;/strong&gt; class is using the &lt;a title="System.Web.HttpUtility.ParseQueryString Method" href="http://msdn.microsoft.com/library/System.Web.HttpUtility.ParseQueryString.aspx" target="_blank"&gt;System.Web.HttpUtility.ParseQueryString method&lt;/a&gt;.&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p&gt;I’d like to see it public and available in a more generic assembly like &lt;strong&gt;System.DLL&lt;/strong&gt; to be available on every type of &lt;a title=".NET Framework Developer Center" href="http://msdn.microsoft.com/netframework/" target="_blank"&gt;.NET&lt;/a&gt; application (Windows Client applications, Windows Service applications, Silverlight applications, Windows Mobile applications, etc.).&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p&gt;If you agree with me, &lt;a title="Make the HttpValueCollection class public and move it to System.dll" href="https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=356144" target="_blank"&gt;vote on my suggestion&lt;/a&gt; on &lt;a title="Microsoft Connect" href="http://connect.microsoft.com/" target="_blank"&gt;Microsoft Connect&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1640806" width="1" height="1"&gt;&lt;br style="clear: both;"/&gt;
      &lt;a href="http://www.pheedo.com/click.phdo?s=250309a38d336d78d8fb09a356def40b"&gt;&lt;img alt="" style="border: 0;" border="0" src="http://www.pheedo.com/img.phdo?s=250309a38d336d78d8fb09a356def40b"/&gt;&lt;/a&gt;
  &lt;img src="http://www.pheedo.com/feeds/tracker.php?i=250309a38d336d78d8fb09a356def40b" style="display: none;" border="0" height="1" width="1" alt=""/&gt;
&lt;p&gt;&lt;a href="http://feeds.PauloMorgado.NET/~a/PauloMorgadoEN?a=QiJ853"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~a/PauloMorgadoEN?i=QiJ853" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=6Jm77J"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=6Jm77J" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=yt6uRJ"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=yt6uRJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=28OQZj"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=28OQZj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=5Y3vEJ"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=5Y3vEJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=ZSEPEj"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=ZSEPEj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=gcY4dj"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=gcY4dj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=iF85YJ"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=iF85YJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=ebcQcj"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=ebcQcj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=r5puLJ"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=r5puLJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=QQRmxj"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=QQRmxj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=LIFrHJ"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=LIFrHJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=uORvzj"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=uORvzj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=9EtxaJ"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=9EtxaJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.PauloMorgado.NET/~r/PauloMorgadoEN/~4/335581867" height="1" width="1"/&gt;</description><pheedo:origLink xmlns:pheedo="http://www.pheedo.com/namespace/pheedo">http://msmvps.com/blogs/paulomorgado/archive/2008/07/15/make-the-httpvaluecollection-class-public-and-move-it-to-system-dll.aspx</pheedo:origLink><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1640806</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1640806</wfw:comment><feedburner:origLink>http://www.pheedo.com/click.phdo?i=250309a38d336d78d8fb09a356def40b</feedburner:origLink></item><item><title>BEWARE: System.Web.HttpValueCollection Parsing Is Not Reversible</title><link>http://feeds.PauloMorgado.NET/~r/PauloMorgadoEN/~3/335078066/click.phdo</link><category>.NET</category><category>ASP.NET</category><category>SoftDev</category><category>Microsoft</category><category>MSDN</category><category>Web</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Paulo Morgado</dc:creator><pubDate>Mon, 14 Jul 2008 07:50:26 -0500</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1640722</guid><description>&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;If you run this code:&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;pre class="code"&gt;
System.Collections.Specialized.&lt;span&gt;NameValueCollection&lt;/span&gt; queryString = System.Web.&lt;span&gt;HttpUtility&lt;/span&gt;.ParseQueryString(&lt;span&gt;&amp;quot;noKey&amp;amp;=emptyKey&amp;amp;A=Akey&amp;quot;&lt;/span&gt;);
&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;

&lt;p align="justify"&gt;&lt;strong&gt;queryString&lt;/strong&gt; will actually have the running &lt;a title="Type Class" href="http://msdn2.microsoft.com/library/System.Type.aspx" target="_blank"&gt;type&lt;/a&gt; of &lt;strong&gt;System.Web.HttpValueCollection&lt;/strong&gt;.&lt;/p&gt;
&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;

&lt;p align="justify"&gt;What&amp;#39;s great about this class is that its &lt;a title="ToString Method" href="http://msdn.microsoft.com/library/System.Object.ToString.aspx" target="_blank"&gt;ToString method&lt;/a&gt; output is the collection&amp;#39;s content in a nice URL encoded format.&lt;/p&gt;
&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;

&lt;p align="justify"&gt;As with its base class (&lt;a title="System.Collections.Specialized.NameValueCollection Class" href="http://msdn.microsoft.com/library/System.Collections.Specialized.NameValueCollection.aspx" target="_blank"&gt;NameValueCollection&lt;/a&gt;), there’s a difference between a null string and an empty string key and the parsing treats query string parameters with no parameter specification as having a null string key and parameters with an empty string key having an empty string parameter key.&lt;/p&gt;
&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;

&lt;p align="justify"&gt;So, when call &lt;strong&gt;ToString&lt;/strong&gt; on the instance returned by &lt;a title="System.Web.HttpUtility.ParseQueryString Method" href="http://msdn.microsoft.com/library/System.Web.HttpUtility.ParseQueryString.aspx" target="_blank"&gt;System.Web.HttpUtility.ParseQueryString method&lt;/a&gt; you would expect to get the parsed string (or, at least, one that would be parsed into the equivalent collection), right? But what you’ll get instead is this: &lt;strong&gt;noKey&amp;amp;emptyKey&amp;amp;A=Akey&lt;/strong&gt;.&lt;/p&gt;
&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;

&lt;p align="justify"&gt;I’ve filed a &lt;a title="HttpValueCollection.FillFromString(string s, bool urlencoded, Encoding encoding) parsing does not have the reverse behavior of HttpValueCollection.ToString()" href="https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=355774" target="_blank"&gt;bug&lt;/a&gt; into &lt;a title="Microsoft Connect" href="http://connect.microsoft.com/" target="_blank"&gt;connect&lt;/a&gt;. If you think this is important and must be corrected, please &lt;a title="HttpValueCollection.FillFromString(string s, bool urlencoded, Encoding encoding) parsing does not have the reverse behavior of HttpValueCollection.ToString()" href="https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=355774" target="_blank"&gt;vote&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1640722" width="1" height="1"&gt;&lt;br style="clear: both;"/&gt;
      &lt;a href="http://www.pheedo.com/click.phdo?s=24f76f16fcf0e5ea177e625bae56ec51"&gt;&lt;img alt="" style="border: 0;" border="0" src="http://www.pheedo.com/img.phdo?s=24f76f16fcf0e5ea177e625bae56ec51"/&gt;&lt;/a&gt;
  &lt;img src="http://www.pheedo.com/feeds/tracker.php?i=24f76f16fcf0e5ea177e625bae56ec51" style="display: none;" border="0" height="1" width="1" alt=""/&gt;
&lt;p&gt;&lt;a href="http://feeds.PauloMorgado.NET/~a/PauloMorgadoEN?a=WUDJGJ"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~a/PauloMorgadoEN?i=WUDJGJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=2nzeKJ"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=2nzeKJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=PPGkgJ"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=PPGkgJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=pnxAvj"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=pnxAvj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=FHvWTJ"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=FHvWTJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=vkKigj"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=vkKigj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=O7v4Oj"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=O7v4Oj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=FYqbPJ"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=FYqbPJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=q0rqWj"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=q0rqWj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=HcwS8J"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=HcwS8J" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=3yjmBj"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=3yjmBj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=mi1BaJ"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=mi1BaJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=J7wIwj"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=J7wIwj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=Z6NYsJ"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=Z6NYsJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.PauloMorgado.NET/~r/PauloMorgadoEN/~4/335078066" height="1" width="1"/&gt;</description><pheedo:origLink xmlns:pheedo="http://www.pheedo.com/namespace/pheedo">http://msmvps.com/blogs/paulomorgado/archive/2008/07/14/beware-system-web-httpvaluecollection-parsing-is-not-reversible.aspx</pheedo:origLink><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1640722</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1640722</wfw:comment><feedburner:origLink>http://www.pheedo.com/click.phdo?i=24f76f16fcf0e5ea177e625bae56ec51</feedburner:origLink></item><item><title>Isolator 4.3 Released!</title><link>http://feeds.PauloMorgado.NET/~r/PauloMorgadoEN/~3/325192279/click.phdo</link><category>.NET</category><category>ASP.NET</category><category>SoftDev</category><category>Testing</category><category>UnitTests</category><category>TypeMock</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Paulo Morgado</dc:creator><pubDate>Wed, 02 Jul 2008 15:47:59 -0500</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1639160</guid><description>&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p&gt;Today &lt;a title="Typemock - Simplify Unit Testing!" href="http://www.typemock.com/" target="_blank"&gt;Typemock&lt;/a&gt; released version 4.3 of &lt;a title="Typemock Isolator - Serious Development" href="http://www.typemock.com/Product.html" target="_blank"&gt;Typemock Isolator&lt;/a&gt;. Download it from &lt;a title="Typemock Isolator Download" href="http://www.typemock.com/Downloads.php" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;h4&gt;What’s new? &lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;Support for &lt;a title="Ivonna" href="http://sm-art.biz/Ivonna.aspx" target="_blank"&gt;Ivonna&lt;/a&gt;. For those of you who develop ASP.Net applications, Ivonna is a great tool, built on top of Isolator’s platform, to simplify writing tests for &lt;a title="ASP.NET Developer Center" href="http://msdn.microsoft.com/asp.net/" target="_blank"&gt;ASP.NET&lt;/a&gt;. &lt;/li&gt;    &lt;li&gt;&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;Typemock.Integration.Packs namespace APIs added to support license management through Isolator, the way Ivonna does. &lt;/li&gt;    &lt;li&gt;&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;As announced when it was released, version 4.2 was the last version of Isolator to support .NET 1.1. Version 4.3 only supports the 2.0 runtime and its &lt;a title="Microsoft Visual Studio" href="http://msdn.microsoft.com/vstudio/" target="_blank"&gt;Visual Studio&lt;/a&gt; counterparts: VS2005 and VS2008. &lt;/li&gt;    &lt;li&gt;&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;For 64 bit machines, now there’s a single installer. (don’t forget to uninstall both previous 32 and 64 installers prior to installing 4.3.) &lt;/li&gt;    &lt;li&gt;&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;&lt;strong&gt;RecorderManager.GetMockOf(instanceRef)&lt;/strong&gt; and &lt;strong&gt;MockManager.GetMockOf(instanceRef)&lt;/strong&gt;. To retrieve the mock controller object based on a reference to the instance. (&lt;a title="Getting mock object from an instance" href="http://blog.typemock.com/2008/06/getting-mock-object-from-instance.html" target="_blank"&gt;more...&lt;/a&gt;). &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;Bug fixes:&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;Fixes to DLINQ support. LINQ Queries with data tables now work better, for example with GroupBy. &lt;/li&gt;    &lt;li&gt;&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;Static constructors in Natural Mocks are now invoked correctly. &lt;/li&gt;    &lt;li&gt;&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;A bug that caused an exception to be thrown when mocking interfaces (&amp;quot;Method XX in type &lt;strong&gt;IMyInterface&lt;/strong&gt; has no matching overload that returns &lt;strong&gt;TypeMock.Mock+a&lt;/strong&gt;) was fixed. &lt;/li&gt;    &lt;li&gt;&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;A bug that caused an exception to be thrown when the mocked object was overriding &lt;strong&gt;Equals &lt;/strong&gt;was fixed. &lt;/li&gt;    &lt;li&gt;&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;A bug that caused failure in mocking explicit interface with the same name was fixed. &lt;/li&gt;    &lt;li&gt;&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;A bug occurring im multithreading scenarios in &lt;strong&gt;VerifyWithWait&lt;/strong&gt; was fixed. &lt;/li&gt;    &lt;li&gt;&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;A bug that causes &lt;strong&gt;NullReferenceException&lt;/strong&gt; to be thrown when using &lt;strong&gt;Auto Deploy&lt;/strong&gt; was fixed. &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;See also:&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;&lt;a title="Isolator 4.3 Released!" href="http://blog.typemock.com/2008/07/isolator-43-released.html" target="_blank"&gt;Isolator 4.3 Released!&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;&lt;a title="Isolator 4.3 Release Notes" href="http://www.typemock.com/Docs/UserGuide/index.php?topic=ReleaseNotes43.html" target="_blank"&gt;Isolator 4.3 Release Notes&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;&lt;a title="Getting mock object from an instance" href="http://blog.typemock.com/2008/06/getting-mock-object-from-instance.html" target="_blank"&gt;Getting mock object from an instance&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=1639160" width="1" height="1"&gt;&lt;br style="clear: both;"/&gt;
      &lt;a href="http://www.pheedo.com/click.phdo?s=be9dd10b5a887b20c19183f655a039df"&gt;&lt;img alt="" style="border: 0;" border="0" src="http://www.pheedo.com/img.phdo?s=be9dd10b5a887b20c19183f655a039df"/&gt;&lt;/a&gt;
  &lt;img src="http://www.pheedo.com/feeds/tracker.php?i=be9dd10b5a887b20c19183f655a039df" style="display: none;" border="0" height="1" width="1" alt=""/&gt;
&lt;p&gt;&lt;a href="http://feeds.PauloMorgado.NET/~a/PauloMorgadoEN?a=l2ErgK"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~a/PauloMorgadoEN?i=l2ErgK" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=geN7vJ"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=geN7vJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=BSSfyJ"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=BSSfyJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=sJij5j"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=sJij5j" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=8cL5RJ"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=8cL5RJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=aFbKPj"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=aFbKPj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=zLlCoj"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=zLlCoj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=DBab7J"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=DBab7J" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=nsJHGj"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=nsJHGj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=RDu48J"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=RDu48J" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=FjYGlj"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=FjYGlj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=oMTBQJ"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=oMTBQJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=swKGOj"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=swKGOj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=8x7jYJ"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=8x7jYJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.PauloMorgado.NET/~r/PauloMorgadoEN/~4/325192279" height="1" width="1"/&gt;</description><pheedo:origLink xmlns:pheedo="http://www.pheedo.com/namespace/pheedo">http://msmvps.com/blogs/paulomorgado/archive/2008/07/02/isolator-4-3-released.aspx</pheedo:origLink><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1639160</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1639160</wfw:comment><feedburner:origLink>http://www.pheedo.com/click.phdo?i=be9dd10b5a887b20c19183f655a039df</feedburner:origLink></item><item><title>I’m A Microsoft MVP For The 6th Time And I FEEL GREAT</title><link>http://feeds.PauloMorgado.NET/~r/PauloMorgadoEN/~3/324390936/click.phdo</link><category>Community</category><category>Microsoft</category><category>MVP</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Paulo Morgado</dc:creator><pubDate>Tue, 01 Jul 2008 17:26:04 -0500</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1639046</guid><description>&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;div align="center"&gt;     &lt;br /&gt;&lt;a title="I Feel Great! - MVP" href="http://video.msn.com/video.aspx?vid=9fe51aa8-2c13-47f6-9d96-ba109ce014f1" target="_new"&gt;Video: I Feel Great! - MVP&lt;/a&gt; &lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1639046" width="1" height="1"&gt;&lt;br style="clear: both;"/&gt;
      &lt;a href="http://www.pheedo.com/click.phdo?s=fc9c281db6afe6186e1da1a877cccfff"&gt;&lt;img alt="" style="border: 0;" border="0" src="http://www.pheedo.com/img.phdo?s=fc9c281db6afe6186e1da1a877cccfff"/&gt;&lt;/a&gt;
  &lt;img src="http://www.pheedo.com/feeds/tracker.php?i=fc9c281db6afe6186e1da1a877cccfff" style="display: none;" border="0" height="1" width="1" alt=""/&gt;
&lt;p&gt;&lt;a href="http://feeds.PauloMorgado.NET/~a/PauloMorgadoEN?a=SYWaTK"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~a/PauloMorgadoEN?i=SYWaTK" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=M2ax5J"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=M2ax5J" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=r3kHvJ"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=r3kHvJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=L7TCej"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=L7TCej" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=JsIehJ"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=JsIehJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=ufxnWj"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=ufxnWj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=c1MR3j"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=c1MR3j" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=nuEXbJ"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=nuEXbJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=YLUPij"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=YLUPij" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=gcmcIJ"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=gcmcIJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=Vx5hSj"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=Vx5hSj" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=9o9W1J"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=9o9W1J" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=Pjah7j"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=Pjah7j" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=I4IAUJ"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=I4IAUJ" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.PauloMorgado.NET/~r/PauloMorgadoEN/~4/324390936" height="1" width="1"/&gt;</description><pheedo:origLink xmlns:pheedo="http://www.pheedo.com/namespace/pheedo">http://msmvps.com/blogs/paulomorgado/archive/2008/07/01/i-m-a-microsoft-mvp-for-the-6th-time-and-i-feel-great.aspx</pheedo:origLink><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1639046</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1639046</wfw:comment><feedburner:origLink>http://www.pheedo.com/click.phdo?i=fc9c281db6afe6186e1da1a877cccfff</feedburner:origLink></item><item><title>Why Use Random Values For Unit Testing</title><link>http://feeds.PauloMorgado.NET/~r/PauloMorgadoEN/~3/322855112/click.phdo</link><category>.NET</category><category>SoftDev</category><category>Microsoft</category><category>MSDN</category><category>Testing</category><category>UnitTests</category><category>TypeMock</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Paulo Morgado</dc:creator><pubDate>Sun, 29 Jun 2008 18:40:08 -0500</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1638825</guid><description>&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;On a previous &lt;a title="Using Random Values For Unit Testing" href="http://msmvps.com/blogs/paulomorgado/archive/2008/06/24/using-random-values-for-unit-testing.aspx" target="_blank"&gt;post&lt;/a&gt; I introduced a &lt;a title="Random Generator For Unit Testing" href="https://code.msdn.microsoft.com/Release/ProjectReleases.aspx?ProjectName=PauloMorgado&amp;amp;ReleaseId=1196" target="_blank"&gt;library for generating random values&lt;/a&gt; for purposes of unit testing.&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;I received a few comments and questions on my blogs [&lt;a title="Using Random Values For Unit Testing" href="http://weblogs.asp.net/paulomorgado/archive/2008/06/24/using-random-values-for-unit-testing.aspx" target="_blank"&gt;^&lt;/a&gt;][&lt;a title="Using Random Values For Unit Testing" href="http://msmvps.com/blogs/paulomorgado/archive/2008/06/24/using-random-values-for-unit-testing.aspx" target="_blank"&gt;^&lt;/a&gt;][&lt;a title="Usando Valores Aleatórios Para Testes Unitários" href="http://www.arquitecturadesoftware.org/blogs/paulomorgado/archive/2008/06/24/usando-valores-aleat-rios-para-testes-unit-rios.aspx" target="_blank"&gt;^&lt;/a&gt;][&lt;a title="Usando Valores Aleatórios Para Testes Unitários" href="http://weblogs.pontonetpt.com/pjmorgado/posts/27674.aspx" target="_blank"&gt;^&lt;/a&gt;].&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;&lt;a title="Simon Ince&amp;#39;s Blog - Ramblings of an Application Development Consultant in the UK" href="http://blogs.msdn.com/simonince" target="_blank"&gt;Simon&lt;/a&gt; says that he’d “generally want every instance of the test I run to be repeatable on *every* run” and he’d “inclined to use the data source functionality in VSTS Unit Tests”. I couldn’t agree more.&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;&lt;a title="Hugo Batista: Software Architecture and Engineering" href="http://blogs.msdn.com/hugobatista/" target="_blank"&gt;Hugo&lt;/a&gt; pointed me to &lt;a title="Pex: Automated Exploratory Testing for .NET" href="http://research.microsoft.com/pex/" target="_blank"&gt;Pex&lt;/a&gt;. Looks nice. I’ll have to take a deeper look at it.&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;Other commenters were worried that in the case of a test failing to pass they were unable to reproduce the conditions of the test and thus would be unable to understand why the test had failed. As I see it, all data used in a failed test should be in the test output (at least, the data that made the test fail). Being it predictable data or random data.&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;I guess that most of the comments “against” my idea were due to the fact that I didn’t explain it well. I’ll try to do a better job now.&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;I use these random values when the value itself is not important, what’s important is its uniqueness.&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;Imagine you have&amp;#160; &lt;strong&gt;Costumer&lt;/strong&gt; class where it’s enough to tell that the costumer is the same in any two given instances if the costumer ID is the same. In order to test the comparison code, I don’t need any particular reproducible set of values. I just need them to be different or the same depending on the test.&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;Imagine I have some code that needs to access the database with the connection string in a specific &lt;a title="connectionStrings Element (ASP.NET Settings Schema)" href="http://msdn.microsoft.com/library/b6ffbb2e-a4d1-410e-8f7e-9755e92c65de.aspx" target="_blank"&gt;connection string settings&lt;/a&gt; element. I don’t care what the connection string is because I won’t be really accessing the database (this is really easy to accomplish with &lt;a title="Typemock Isolator - Serious Development" href="http://www.typemock.com/Product.html" target="_blank"&gt;Isolator&lt;/a&gt;).&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p align="justify"&gt;I hope I’ve explained myself better this time.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1638825" width="1" height="1"&gt;&lt;br style="clear: both;"/&gt;
      &lt;a href="http://www.pheedo.com/click.phdo?s=6e16bd215e17a44f64b50f0960f38df7"&gt;&lt;img alt="" style="border: 0;" border="0" src="http://www.pheedo.com/img.phdo?s=6e16bd215e17a44f64b50f0960f38df7"/&gt;&lt;/a&gt;
  &lt;img src="http://www.pheedo.com/feeds/tracker.php?i=6e16bd215e17a44f64b50f0960f38df7" style="display: none;" border="0" height="1" width="1" alt=""/&gt;
&lt;p&gt;&lt;a href="http://feeds.PauloMorgado.NET/~a/PauloMorgadoEN?a=LLyAPN"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~a/PauloMorgadoEN?i=LLyAPN" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=IzdwkI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=IzdwkI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=dlqJzI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=dlqJzI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=8W0tJi"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=8W0tJi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=G9V5FI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=G9V5FI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=KCPhEi"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=KCPhEi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=7gwWji"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=7gwWji" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=MT0YJI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=MT0YJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=0xzvki"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=0xzvki" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=qjcgLI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=qjcgLI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=5iCEhi"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=5iCEhi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=wSDPII"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=wSDPII" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=rYUPxi"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=rYUPxi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=wVZ3EI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=wVZ3EI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.PauloMorgado.NET/~r/PauloMorgadoEN/~4/322855112" height="1" width="1"/&gt;</description><pheedo:origLink xmlns:pheedo="http://www.pheedo.com/namespace/pheedo">http://msmvps.com/blogs/paulomorgado/archive/2008/06/30/why-use-random-values-for-unit-testing.aspx</pheedo:origLink><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1638825</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1638825</wfw:comment><feedburner:origLink>http://www.pheedo.com/click.phdo?i=6e16bd215e17a44f64b50f0960f38df7</feedburner:origLink></item><item><title>Replacing Loaded Assemblies</title><link>http://feeds.PauloMorgado.NET/~r/PauloMorgadoEN/~3/322760941/click.phdo</link><category>.NET</category><category>SoftDev</category><category>Microsoft</category><category>MSDN</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Paulo Morgado</dc:creator><pubDate>Sun, 29 Jun 2008 15:08:41 -0500</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1638803</guid><description>&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p&gt;Recently I’ve been asked if it would be possible to replace the assemblies loaded by a &lt;a title=".NET Framework Developer Center" href="http://msdn.microsoft.com/netframework/" target="_blank"&gt;.NET&lt;/a&gt; &lt;a title="Windows Service Applications" href="http://msdn.microsoft.com/library/y817hyb6.aspx" target="_blank"&gt;Windows Service application&lt;/a&gt; while it was running like with &lt;a title="ASP.NET Developer Center" href="http://msdn.microsoft.com/asp.net/" target="_blank"&gt;ASP.NET&lt;/a&gt;. Like with ASP.NET, an application start and end events where needed.&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p&gt;The solution is quite simple. The Windows Service application is just a loader that has no references to the loaded assemblies that might change have an &lt;a title="Assembly Class" href="http://msdn.microsoft.com/library/system.reflection.assembly.aspx" target="_blank"&gt;assembly&lt;/a&gt; with an &lt;a title="Assembly.EntryPoint Property" href="http://msdn.microsoft.com/library/system.reflection.assembly.entrypoint.aspx" target="_blank"&gt;entry point&lt;/a&gt; that acts as the start event. This assembly must be loaded in a new &lt;a title="AppDomain Class" href="http://msdn.microsoft.com/library/system.appdomain.aspx" target="_blank"&gt;AppDomain&lt;/a&gt; with &lt;a title="AppDomain.ShadowCopyFiles Property" href="http://msdn.microsoft.com/library/system.appdomain.shadowcopyfiles.aspx" target="_blank"&gt;ShadowCopyFiles&lt;/a&gt; set. The end event is handled by handling the &lt;a title="AppDomain.DomainUnload Event" href="http://msdn.microsoft.com/library/system.appdomain.domainunload.aspx" target="_blank"&gt;DomainUnload&lt;/a&gt; event of the AppDomian where the running assembly is loaded.&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p&gt;If you want to have the running assembly and its referenced assemblies unloaded and reloaded whenever a change occurs in the assembly files, a &lt;a title="FileSystemWatcher Class" href="http://msdn.microsoft.com/library/system.io.filesystemwatcher.aspx" target="_blank"&gt;FileSystemWatcher&lt;/a&gt; could be used, although I would prefer to override such behavior in ASP.NET, not copy it.&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p&gt;An assembly loader can be as simple as this:&lt;/p&gt;  &lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;class &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Program
&lt;/span&gt;{
    &lt;span style="color:blue;"&gt;private static &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Thread &lt;/span&gt;thread = &lt;span style="color:blue;"&gt;null&lt;/span&gt;;
    &lt;span style="color:blue;"&gt;private static &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;AppDomain &lt;/span&gt;appDomain = &lt;span style="color:blue;"&gt;null&lt;/span&gt;;

    &lt;span style="color:blue;"&gt;static void &lt;/span&gt;Main(&lt;span style="color:blue;"&gt;string&lt;/span&gt;[] args)
    {
        &lt;span style="color:blue;"&gt;while &lt;/span&gt;(&lt;span style="color:blue;"&gt;true&lt;/span&gt;)
        {
            &lt;span style="color:#2b91af;"&gt;Console&lt;/span&gt;.WriteLine();
            &lt;span style="color:#2b91af;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color:#a31515;"&gt;&amp;quot;Options:&amp;quot;&lt;/span&gt;);
            &lt;span style="color:blue;"&gt;if &lt;/span&gt;(appDomain == &lt;span style="color:blue;"&gt;null&lt;/span&gt;)
            {
                &lt;span style="color:#2b91af;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color:#a31515;"&gt;&amp;quot;    L - Load&amp;quot;&lt;/span&gt;);
            }
            &lt;span style="color:blue;"&gt;else
            &lt;/span&gt;{
                &lt;span style="color:#2b91af;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color:#a31515;"&gt;&amp;quot;    U - Unload&amp;quot;&lt;/span&gt;);
            }
            &lt;span style="color:#2b91af;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color:#a31515;"&gt;&amp;quot;    X - Exit&amp;quot;&lt;/span&gt;);

            &lt;span style="color:blue;"&gt;switch &lt;/span&gt;(&lt;span style="color:#2b91af;"&gt;Console&lt;/span&gt;.ReadKey().KeyChar)
            {
                &lt;span style="color:blue;"&gt;case &lt;/span&gt;&lt;span style="color:#a31515;"&gt;&amp;#39;l&amp;#39;&lt;/span&gt;:
                &lt;span style="color:blue;"&gt;case &lt;/span&gt;&lt;span style="color:#a31515;"&gt;&amp;#39;L&amp;#39;&lt;/span&gt;:
                    thread = &lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Thread&lt;/span&gt;(Load);
                    thread.Name = &lt;span style="color:#a31515;"&gt;&amp;quot;Runner&amp;quot;&lt;/span&gt;;
                    thread.Start(args);
                    &lt;span style="color:blue;"&gt;while &lt;/span&gt;(appDomain == &lt;span style="color:blue;"&gt;null&lt;/span&gt;) ;
                    &lt;span style="color:blue;"&gt;break&lt;/span&gt;;
                &lt;span style="color:blue;"&gt;case &lt;/span&gt;&lt;span style="color:#a31515;"&gt;&amp;#39;u&amp;#39;&lt;/span&gt;:
                &lt;span style="color:blue;"&gt;case &lt;/span&gt;&lt;span style="color:#a31515;"&gt;&amp;#39;U&amp;#39;&lt;/span&gt;:
                    Unload();
                    &lt;span style="color:blue;"&gt;break&lt;/span&gt;;
                &lt;span style="color:blue;"&gt;case &lt;/span&gt;&lt;span style="color:#a31515;"&gt;&amp;#39;x&amp;#39;&lt;/span&gt;:
                &lt;span style="color:blue;"&gt;case &lt;/span&gt;&lt;span style="color:#a31515;"&gt;&amp;#39;X&amp;#39;&lt;/span&gt;:
                    Unload();
                    &lt;span style="color:blue;"&gt;return&lt;/span&gt;;
            }
        }
    }

    &lt;span style="color:blue;"&gt;private static void &lt;/span&gt;Load(&lt;span style="color:blue;"&gt;object &lt;/span&gt;obj)
    {
        &lt;span style="color:blue;"&gt;string&lt;/span&gt;[] args = obj &lt;span style="color:blue;"&gt;as string&lt;/span&gt;[];

        &lt;span style="color:#2b91af;"&gt;AppDomainSetup &lt;/span&gt;appDomainSetup = &lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;AppDomainSetup&lt;/span&gt;();
        appDomainSetup.ApplicationBase = args[0];
        appDomainSetup.PrivateBinPath = args[0];
        appDomainSetup.ShadowCopyFiles = &lt;span style="color:#a31515;"&gt;&amp;quot;true&amp;quot;&lt;/span&gt;;

        appDomain = &lt;span style="color:#2b91af;"&gt;AppDomain&lt;/span&gt;.CreateDomain(&lt;span style="color:#a31515;"&gt;&amp;quot;Runner&amp;quot;&lt;/span&gt;, &lt;span style="color:#2b91af;"&gt;AppDomain&lt;/span&gt;.CurrentDomain.Evidence, appDomainSetup);

        appDomain.ExecuteAssemblyByName(&lt;span style="color:#a31515;"&gt;&amp;quot;ConsoleApplication&amp;quot;&lt;/span&gt;, &lt;span style="color:#2b91af;"&gt;AppDomain&lt;/span&gt;.CurrentDomain.Evidence, &lt;span style="color:blue;"&gt;new string&lt;/span&gt;[0]);
    }

    &lt;span style="color:blue;"&gt;private static void &lt;/span&gt;Unload()
    {
        &lt;span style="color:#2b91af;"&gt;AppDomain&lt;/span&gt;.Unload(appDomain);
        appDomain = &lt;span style="color:blue;"&gt;null&lt;/span&gt;;
        thread = &lt;span style="color:blue;"&gt;null&lt;/span&gt;;
    }
}&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;

&lt;p&gt;The loader receives the path for the assembly to run and its name and loads it.&lt;/p&gt;
&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;

&lt;p&gt;And the assembly to run as simple as this:&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;class &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;Program
&lt;/span&gt;{
    &lt;span style="color:blue;"&gt;static readonly &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;DateTime &lt;/span&gt;dateTime = &lt;span style="color:#2b91af;"&gt;DateTime&lt;/span&gt;.Now;

    &lt;span style="color:blue;"&gt;static void &lt;/span&gt;Main(&lt;span style="color:blue;"&gt;string&lt;/span&gt;[] args)
    {
        &lt;span style="color:#2b91af;"&gt;AppDomain&lt;/span&gt;.CurrentDomain.DomainUnload += &lt;span style="color:blue;"&gt;delegate
        &lt;/span&gt;{
            &lt;span style="color:#2b91af;"&gt;Console&lt;/span&gt;.WriteLine();
            &lt;span style="color:#2b91af;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color:#a31515;"&gt;&amp;quot;Unloading: {0}&amp;quot;&lt;/span&gt;, dateTime);
        };

        System.Reflection.&lt;span style="color:#2b91af;"&gt;Assembly &lt;/span&gt;assembly = System.Reflection.&lt;span style="color:#2b91af;"&gt;Assembly&lt;/span&gt;.GetExecutingAssembly();

        &lt;span style="color:#2b91af;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color:#a31515;"&gt;&amp;quot;Loading: {0}&amp;quot;&lt;/span&gt;, dateTime);
        &lt;span style="color:#2b91af;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color:#a31515;"&gt;&amp;quot;Assembly: {0}&amp;quot;&lt;/span&gt;, assembly.FullName);
        &lt;span style="color:#2b91af;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color:#a31515;"&gt;&amp;quot;Location: {0}&amp;quot;&lt;/span&gt;, assembly.Location);

        &lt;span style="color:#2b91af;"&gt;FileInfo &lt;/span&gt;fileInfo = &lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;FileInfo&lt;/span&gt;(assembly.Location);
        &lt;span style="color:#2b91af;"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color:#a31515;"&gt;&amp;quot;Location Dates: CreationTime={0}, LastWriteTime={1}, LastAccessTime={2}&amp;quot;&lt;/span&gt;,
            fileInfo.CreationTime, fileInfo.LastWriteTime, fileInfo.LastAccessTime);

        &lt;span style="color:blue;"&gt;while &lt;/span&gt;(&lt;span style="color:blue;"&gt;true&lt;/span&gt;)
        {
            &lt;span style="color:#2b91af;"&gt;Console&lt;/span&gt;.Write(&lt;span style="color:#a31515;"&gt;&amp;#39;.&amp;#39;&lt;/span&gt;);
            &lt;span style="color:#2b91af;"&gt;Thread&lt;/span&gt;.Sleep(100);
        }
    }
}&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;

&lt;p&gt;With this “system” you can replace the running assembly and load or unload it whenever you want to.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1638803" width="1" height="1"&gt;&lt;br style="clear: both;"/&gt;
      &lt;a href="http://www.pheedo.com/click.phdo?s=8a8eff90b643403362c76386d2066172"&gt;&lt;img alt="" style="border: 0;" border="0" src="http://www.pheedo.com/img.phdo?s=8a8eff90b643403362c76386d2066172"/&gt;&lt;/a&gt;
  &lt;img src="http://www.pheedo.com/feeds/tracker.php?i=8a8eff90b643403362c76386d2066172" style="display: none;" border="0" height="1" width="1" alt=""/&gt;
&lt;p&gt;&lt;a href="http://feeds.PauloMorgado.NET/~a/PauloMorgadoEN?a=8gxZBg"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~a/PauloMorgadoEN?i=8gxZBg" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=rmy5BI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=rmy5BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=bf2BzI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=bf2BzI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=9T5Yii"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=9T5Yii" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=aPYFBI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=aPYFBI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=AAl6Oi"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=AAl6Oi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=KnWUZi"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=KnWUZi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=3YYBeI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=3YYBeI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=Gfwr5i"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=Gfwr5i" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=vdVdlI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=vdVdlI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=4qaR9i"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=4qaR9i" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=AX258I"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=AX258I" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=Ri484i"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=Ri484i" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=6XtffI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=6XtffI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.PauloMorgado.NET/~r/PauloMorgadoEN/~4/322760941" height="1" width="1"/&gt;</description><pheedo:origLink xmlns:pheedo="http://www.pheedo.com/namespace/pheedo">http://msmvps.com/blogs/paulomorgado/archive/2008/06/29/replacing-loaded-assemblies.aspx</pheedo:origLink><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1638803</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1638803</wfw:comment><feedburner:origLink>http://www.pheedo.com/click.phdo?i=8a8eff90b643403362c76386d2066172</feedburner:origLink></item><item><title>Using Random Values For Unit Testing</title><link>http://feeds.PauloMorgado.NET/~r/PauloMorgadoEN/~3/318474702/click.phdo</link><category>.NET</category><category>SoftDev</category><category>Microsoft</category><category>MSDN</category><category>VisualStudio</category><category>Testing</category><category>UnitTests</category><category>TypeMock</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Paulo Morgado</dc:creator><pubDate>Mon, 23 Jun 2008 18:40:17 -0500</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1637133</guid><description>&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p&gt;When writing my unit tests I don’t like to use hard coded fixed values because I either end up using the same values or, because of that, tests may succeed by coincidence.&lt;/p&gt; &lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;  &lt;p&gt;Over time, I have developed an helper class to generate random values for testing.&lt;/p&gt;  &lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;namespace &lt;/span&gt;PauloMorgado.VisualStudio.TestTools.UnitTesting
{
    &lt;span style="color:blue;"&gt;public static class &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;RandomGenerator
    &lt;/span&gt;{
        &lt;span style="color:blue;"&gt;public static bool &lt;/span&gt;Boolean();
        &lt;span style="color:blue;"&gt;public static string &lt;/span&gt;String();
        &lt;span style="color:blue;"&gt;public static string &lt;/span&gt;String(&lt;span style="color:blue;"&gt;string &lt;/span&gt;prefix);
        &lt;span style="color:blue;"&gt;public static short &lt;/span&gt;Int8();
        &lt;span style="color:blue;"&gt;public static short &lt;/span&gt;Int8(&lt;span style="color:blue;"&gt;short &lt;/span&gt;maxValue);
        &lt;span style="color:blue;"&gt;public static short &lt;/span&gt;Int8(&lt;span style="color:blue;"&gt;short &lt;/span&gt;minValue, &lt;span style="color:blue;"&gt;short &lt;/span&gt;maxValue);
        &lt;span style="color:blue;"&gt;public static short &lt;/span&gt;Int16();
        &lt;span style="color:blue;"&gt;public static short &lt;/span&gt;Int16(&lt;span style="color:blue;"&gt;short &lt;/span&gt;maxValue);
        &lt;span style="color:blue;"&gt;public static short &lt;/span&gt;Int16(&lt;span style="color:blue;"&gt;short &lt;/span&gt;minValue, &lt;span style="color:blue;"&gt;short &lt;/span&gt;maxValue);
        &lt;span style="color:blue;"&gt;public static int &lt;/span&gt;Int32();
        &lt;span style="color:blue;"&gt;public static int &lt;/span&gt;Int32(&lt;span style="color:blue;"&gt;int &lt;/span&gt;maxValue);
        &lt;span style="color:blue;"&gt;public static int &lt;/span&gt;Int32(&lt;span style="color:blue;"&gt;int &lt;/span&gt;minValue, &lt;span style="color:blue;"&gt;int &lt;/span&gt;maxValue);
        &lt;span style="color:blue;"&gt;public static &lt;/span&gt;TEnum Enum&amp;lt;TEnum&amp;gt;();
        &lt;span style="color:blue;"&gt;public static &lt;/span&gt;TEnum EnumFlagsWith&amp;lt;TEnum&amp;gt;(TEnum flagsToAdd);
        &lt;span style="color:blue;"&gt;public static &lt;/span&gt;TEnum EnumFlagsWithout&amp;lt;TEnum&amp;gt;(TEnum flagsToRemove);
        &lt;span style="color:blue;"&gt;public static &lt;/span&gt;TEnum Enum&amp;lt;TEnum&amp;gt;(&lt;span style="color:blue;"&gt;int &lt;/span&gt;maxValue);
        &lt;span style="color:blue;"&gt;public static &lt;/span&gt;TEnum Enum&amp;lt;TEnum&amp;gt;(&lt;span style="color:blue;"&gt;int &lt;/span&gt;minValue, &lt;span style="color:blue;"&gt;int &lt;/span&gt;maxValue);
        &lt;span style="color:blue;"&gt;public static &lt;/span&gt;System.&lt;span style="color:#2b91af;"&gt;Guid &lt;/span&gt;Guid();
    }
}&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;

&lt;p&gt;This is something that I would like to find on mock frameworks (like &lt;a title="Typemock Isolator - Serious Development" href="http://www.typemock.com/Product.html" target="_blank"&gt;Typemock Isolator&lt;/a&gt;, &lt;a title="Rhino.Mocks" href="http://www.ayende.com/projects/rhino-mocks.aspx" target="_blank"&gt;Rhino.Mocks&lt;/a&gt; or &lt;a title="MoQ" href="http://code.google.com/p/moq/" target="_blank"&gt;MoQ&lt;/a&gt;).&lt;/p&gt;
&lt;a href="http://PauloMorgado.NET/"&gt;&lt;/a&gt;

&lt;p&gt;It’s still a work in progress, but if you want to try it, it’s on &lt;a title="Paulo Morgado&amp;#39;s MSDN Code Gallery" href="http://code.msdn.microsoft.com/PauloMorgado" target="_blank"&gt;my MSDN Code Gallery&lt;/a&gt;: &lt;a title="Paulo Morgado - Random Generator For Unit Testing" href="https://code.msdn.microsoft.com/Release/ProjectReleases.aspx?ProjectName=PauloMorgado&amp;amp;ReleaseId=1196" target="_blank"&gt;Random Generator For Unit Testing&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1637133" width="1" height="1"&gt;&lt;br style="clear: both;"/&gt;
      &lt;a href="http://www.pheedo.com/click.phdo?s=1547937be5e4e743bde289b412f28238"&gt;&lt;img alt="" style="border: 0;" border="0" src="http://www.pheedo.com/img.phdo?s=1547937be5e4e743bde289b412f28238"/&gt;&lt;/a&gt;
  &lt;img src="http://www.pheedo.com/feeds/tracker.php?i=1547937be5e4e743bde289b412f28238" style="display: none;" border="0" height="1" width="1" alt=""/&gt;
&lt;p&gt;&lt;a href="http://feeds.PauloMorgado.NET/~a/PauloMorgadoEN?a=0k0MME"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~a/PauloMorgadoEN?i=0k0MME" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=tHH1zI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=tHH1zI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=PRfmXI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=PRfmXI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=JGFH6i"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=JGFH6i" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=RPoAUI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=RPoAUI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=OxUD0i"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=OxUD0i" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=mzyLmi"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=mzyLmi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=ZRME4I"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=ZRME4I" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=woEtYi"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=woEtYi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=FCgYcI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=FCgYcI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=IUMIRi"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=IUMIRi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=gJ1d3I"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=gJ1d3I" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=Zi88pi"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=Zi88pi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=bdsjPI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=bdsjPI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.PauloMorgado.NET/~r/PauloMorgadoEN/~4/318474702" height="1" width="1"/&gt;</description><pheedo:origLink xmlns:pheedo="http://www.pheedo.com/namespace/pheedo">http://msmvps.com/blogs/paulomorgado/archive/2008/06/24/using-random-values-for-unit-testing.aspx</pheedo:origLink><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1637133</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1637133</wfw:comment><feedburner:origLink>http://www.pheedo.com/click.phdo?i=1547937be5e4e743bde289b412f28238</feedburner:origLink></item><item><title>More On ASP.NET Validators And Validation Summary Rendering of Properties</title><link>http://feeds.PauloMorgado.NET/~r/PauloMorgadoEN/~3/317741728/click.phdo</link><category>.NET</category><category>ASP.NET</category><category>SoftDev</category><category>Microsoft</category><category>MSDN</category><category>Web</category><category>InternetExplorer</category><category>JavaScript</category><category>FireFox</category><category>HTML</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Paulo Morgado</dc:creator><pubDate>Sun, 22 Jun 2008 19:47:00 -0500</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1636848</guid><description>&lt;p&gt;On previous posts [&lt;a title="The Cause Of ASP.NET Validators And Validation Summary Slowness" href="http://msmvps.com/blogs/paulomorgado/archive/2008/05/12/the-cause-of-asp-net-validators-and-validation-summary-slowness.aspx" target="_blank"&gt;^&lt;/a&gt;][&lt;a title="Rendering ASP.NET Validators And Validation Summary Property As HTML Attributes" href="http://msmvps.com/blogs/paulomorgado/archive/2008/05/13/rendering-asp-net-validators-and-validation-summary-property-as-html-attributes.aspx" target="_blank"&gt;^&lt;/a&gt;] I mentioned the size of &lt;a title="ASP.NET Developer Center" href="http://msdn.microsoft.com/asp.net/" target="_blank"&gt;ASP.NET&lt;/a&gt; validators and validation summary rendering and the fact that &lt;a title="ClentScriptManager.RegisterExpandoAttribute Method" href="http://msdn.microsoft.com/library/system.web.ui.clientscriptmanager.registerexpandoattribute.aspx" target="_blank"&gt;expando attributes&lt;/a&gt; are being used to add properties. &lt;a title="Guru Stop - Mohamed Meligy blogging the interests of an Egyptian .NET software engineer (Communities, Architecture, Patterns, etc..)" href="http://weblogs.asp.net/meligy/" target="_blank"&gt;Mohamed&lt;/a&gt; also &lt;a title="Prevent ASP.NET Validators from Massively Increasing Page Size" href="http://weblogs.asp.net/meligy/archive/2008/06/17/prevent-asp-net-validators-from-massively-increasing-page-size.aspx" target="_blank"&gt;mentions&lt;/a&gt; this issue.&lt;/p&gt;
&lt;p&gt;Besides the fact that custom attributes aren&amp;#39;t &lt;a title="XHTML2 Working Group Home Page" href="http://www.w3.org/MarkUp/" target="_blank"&gt;XHTML&lt;/a&gt; conformant, &lt;a title="Firefox web browser" href="http://www.firefox.com/" target="_blank"&gt;Firefox&lt;/a&gt; differs from &lt;a title="Internet Explorer" href="http://www.microsoft.com/ie" target="_blank"&gt;Internet Explorer&lt;/a&gt; in the way it handles these attributes.&lt;/p&gt;
&lt;p&gt;On &lt;a title="Internet Explorer" href="http://www.microsoft.com/ie" target="_blank"&gt;Internet Explorer&lt;/a&gt;, these attributes are converted in string properties of the HTML element. On &lt;a title="Firefox web browser" href="http://www.firefox.com/" target="_blank"&gt;Firefox&lt;/a&gt;, on the other hand, these attributes are only accessible through the &lt;strong&gt;attributes&lt;/strong&gt; collection.&lt;/p&gt;
&lt;p&gt;I wonder why I don’t like client-side JavaScript development.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1636848" width="1" height="1"&gt;&lt;br style="clear: both;"/&gt;
      &lt;a href="http://www.pheedo.com/click.phdo?s=e0a53e6a2d9b6ce273909187cdef4db1"&gt;&lt;img alt="" style="border: 0;" border="0" src="http://www.pheedo.com/img.phdo?s=e0a53e6a2d9b6ce273909187cdef4db1"/&gt;&lt;/a&gt;
  &lt;img src="http://www.pheedo.com/feeds/tracker.php?i=e0a53e6a2d9b6ce273909187cdef4db1" style="display: none;" border="0" height="1" width="1" alt=""/&gt;
&lt;p&gt;&lt;a href="http://feeds.PauloMorgado.NET/~a/PauloMorgadoEN?a=5nQbN9"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~a/PauloMorgadoEN?i=5nQbN9" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=BLvODI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=BLvODI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=V1rxmI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=V1rxmI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=RzVyUi"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=RzVyUi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=ODnKBI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=ODnKBI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=Dnwkbi"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=Dnwkbi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=tUZ6Ei"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=tUZ6Ei" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=HqwFcI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=HqwFcI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=ztRMOi"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=ztRMOi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=wK2mwI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=wK2mwI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=3ka32i"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=3ka32i" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=TrLbJI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=TrLbJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=mDtmWi"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=mDtmWi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=ms8ZcI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=ms8ZcI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.PauloMorgado.NET/~r/PauloMorgadoEN/~4/317741728" height="1" width="1"/&gt;</description><pheedo:origLink xmlns:pheedo="http://www.pheedo.com/namespace/pheedo">http://msmvps.com/blogs/paulomorgado/archive/2008/06/23/more-on-asp-net-validators-and-validation-summary-rendering-of-properties.aspx</pheedo:origLink><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1636848</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1636848</wfw:comment><feedburner:origLink>http://www.pheedo.com/click.phdo?i=e0a53e6a2d9b6ce273909187cdef4db1</feedburner:origLink></item><item><title>Testing With Multiple Versions Of Internet Explorer</title><link>http://feeds.PauloMorgado.NET/~r/PauloMorgadoEN/~3/317718369/click.phdo</link><category>SoftDev</category><category>Web</category><category>InternetExplorer</category><category>Tools</category><category>Testing</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Paulo Morgado</dc:creator><pubDate>Sun, 22 Jun 2008 19:00:35 -0500</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1636834</guid><description>&lt;p&gt;On a previous &lt;a title="DebugBar, Companion.JS And IETester" href="http://msmvps.com/blogs/paulomorgado/archive/2008/06/11/debugbar-companion-js-and-ietester.aspx" target="_blank"&gt;post&lt;/a&gt; I mentioned &lt;a title="My DebugBar | IETester / HomePage" href="http://www.my-debugbar.com/wiki/IETester/HomePage" target="_blank"&gt;IETester&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a title="Notícias de Tecnologia para profissionais de TI" href="http://ojmoura.spaces.live.com/" target="_blank"&gt;Jorge Moura&lt;/a&gt; &lt;a title="Multiplo Internet Browsers" href="http://ojmoura.spaces.live.com/blog/cns!C82D0115CE3980B!357.entry" target="_blank"&gt;mentioned&lt;/a&gt; &lt;a title="TredoSoft | Every little program helps!" href="http://tredosoft.com/" target="_blank"&gt;TredoSoft&lt;/a&gt;’s &lt;a title="Install multiple versions of IE on your PC | TredoSoft" href="http://tredosoft.com/Multiple_IE" target="_blank"&gt;MultipleIEs&lt;/a&gt; and a &lt;a title="List of web browsers" href="http://en.wikipedia.org/wiki/List_of_web_browsers" target="_blank"&gt;list of web browsers&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1636834" width="1" height="1"&gt;&lt;br style="clear: both;"/&gt;
      &lt;a href="http://www.pheedo.com/click.phdo?s=35a2dc40153efe111c37b03ff80eb68d"&gt;&lt;img alt="" style="border: 0;" border="0" src="http://www.pheedo.com/img.phdo?s=35a2dc40153efe111c37b03ff80eb68d"/&gt;&lt;/a&gt;
  &lt;img src="http://www.pheedo.com/feeds/tracker.php?i=35a2dc40153efe111c37b03ff80eb68d" style="display: none;" border="0" height="1" width="1" alt=""/&gt;
&lt;p&gt;&lt;a href="http://feeds.PauloMorgado.NET/~a/PauloMorgadoEN?a=7i3Yxw"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~a/PauloMorgadoEN?i=7i3Yxw" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=F8ExpI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=F8ExpI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=GakeMI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=GakeMI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=DJQbni"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=DJQbni" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=AEeX1I"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=AEeX1I" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=RuKozi"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=RuKozi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=xMc7zi"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=xMc7zi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=83BSKI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=83BSKI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=YHnrwi"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=YHnrwi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=ek5iAI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=ek5iAI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=SnCTEi"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=SnCTEi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=DIvuvI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=DIvuvI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=tVJRgi"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=tVJRgi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=VafecI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=VafecI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.PauloMorgado.NET/~r/PauloMorgadoEN/~4/317718369" height="1" width="1"/&gt;</description><pheedo:origLink xmlns:pheedo="http://www.pheedo.com/namespace/pheedo">http://msmvps.com/blogs/paulomorgado/archive/2008/06/23/testing-with-multiple-versions-of-internet-explorer.aspx</pheedo:origLink><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1636834</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1636834</wfw:comment><feedburner:origLink>http://www.pheedo.com/click.phdo?i=35a2dc40153efe111c37b03ff80eb68d</feedburner:origLink></item><item><title>Windows Home Server Power Pack 1 Release Candidate Available For Public Testing</title><link>http://feeds.PauloMorgado.NET/~r/PauloMorgadoEN/~3/309220523/click.phdo</link><category>Microsoft</category><category>Windows</category><category>WindowsHomeServer</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Paulo Morgado</dc:creator><pubDate>Tue, 10 Jun 2008 19:31:03 -0500</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1633777</guid><description>&lt;a href="http://PauloMorgado.NET"&gt;&lt;/a&gt;  &lt;p&gt;The &lt;a title="Microsoft Windows Home Server" href="https://www.microsoft.com/windows/products/winfamily/windowshomeserver/" target="_blank"&gt;Windows Home Server&lt;/a&gt; Power Pack 1 Release Candidate has been made &lt;a title="Windows Home Server site on Microsoft Connect" href="http://connect.microsoft.com/windowshomeserver" target="_blank"&gt;available&lt;/a&gt; for public testing. Read all about it &lt;a title="Windows Home Server Power Pack 1 public beta!" href="http://blogs.technet.com/homeserver/archive/2008/06/09/windows-home-server-power-pack-1-public-beta.aspx" target="_blank"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1633777" width="1" height="1"&gt;&lt;br style="clear: both;"/&gt;
      &lt;a href="http://www.pheedo.com/click.phdo?s=a3b380bffea0a13c0559eae31d912b64"&gt;&lt;img alt="" style="border: 0;" border="0" src="http://www.pheedo.com/img.phdo?s=a3b380bffea0a13c0559eae31d912b64"/&gt;&lt;/a&gt;
  &lt;img src="http://www.pheedo.com/feeds/tracker.php?i=a3b380bffea0a13c0559eae31d912b64" style="display: none;" border="0" height="1" width="1" alt=""/&gt;
&lt;p&gt;&lt;a href="http://feeds.PauloMorgado.NET/~a/PauloMorgadoEN?a=GtONJr"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~a/PauloMorgadoEN?i=GtONJr" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=6HkMjI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=6HkMjI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=V2uAiI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=V2uAiI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=CvlDDi"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=CvlDDi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=hGZazI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=hGZazI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=uvgLzi"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=uvgLzi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=QY13ki"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=QY13ki" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=5jKgWI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=5jKgWI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=eXfnvi"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=eXfnvi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=VwSjdI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=VwSjdI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=I0Hyfi"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=I0Hyfi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=KtiUUI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=KtiUUI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=KrFsEi"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=KrFsEi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=5pFlDI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=5pFlDI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.PauloMorgado.NET/~r/PauloMorgadoEN/~4/309220523" height="1" width="1"/&gt;</description><pheedo:origLink xmlns:pheedo="http://www.pheedo.com/namespace/pheedo">http://msmvps.com/blogs/paulomorgado/archive/2008/06/11/windows-home-server-power-pack-1-release-candidate-available-for-public-testing.aspx</pheedo:origLink><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1633777</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1633777</wfw:comment><feedburner:origLink>http://www.pheedo.com/click.phdo?i=a3b380bffea0a13c0559eae31d912b64</feedburner:origLink></item><item><title>DebugBar, Companion.JS And IETester</title><link>http://feeds.PauloMorgado.NET/~r/PauloMorgadoEN/~3/309188629/click.phdo</link><category>SoftDev</category><category>Web</category><category>InternetExplorer</category><category>Tools</category><category>Training</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Paulo Morgado</dc:creator><pubDate>Tue, 10 Jun 2008 18:30:00 -0500</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1633753</guid><description>&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p&gt;Some days ago a colleague of mine pointed out to me this tool (&lt;a title="My DebugBar | IETester / HomePage" href="http://www.my-debugbar.com/wiki/IETester/HomePage" target="_blank"&gt;IETester&lt;/a&gt;) that allows testing the different rendering and JavaScript engines of &lt;a title="Internet Explorer" href="http://www.microsoft.com/ie" target="_blank"&gt;Internet Explorer&lt;/a&gt; (5.5, 6, 7 and 8beta1) side by side with the installed version.&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p&gt;I haven’t tested &lt;a title="My DebugBar | IETester / HomePage" href="http://www.my-debugbar.com/wiki/IETester/HomePage" target="_blank"&gt;IETester&lt;/a&gt; yet, but I found two other tools in the site that caught my attention: &lt;a title="DebugBar - IE extension for web developer : DOM inspector, Javascript debugger, HTTP headers viewer, Cookies viewer" href="http://www.debugbar.com/" target="_blank"&gt;DebugBar&lt;/a&gt; and &lt;a title="My DebugBar | Companion.JS / HomePage" href="http://www.my-debugbar.com/wiki/CompanionJS/HomePage" target="_blank"&gt;Companion.JS&lt;/a&gt;.&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p&gt;&lt;a title="DebugBar - IE extension for web developer : DOM inspector, Javascript debugger, HTTP headers viewer, Cookies viewer" href="http://www.debugbar.com/" target="_blank"&gt;DebugBar&lt;/a&gt; is like other tools I use [&lt;a title="Developer Tools for Internet Explorer" href="http://msmvps.com/blogs/paulomorgado/archive/2007/02/18/developer-tools-for-internet-explorer.aspx" target="_blank"&gt;^&lt;/a&gt;] with a few differences. &lt;a title="DebugBar - IE extension for web developer : DOM inspector, Javascript debugger, HTTP headers viewer, Cookies viewer" href="http://www.debugbar.com/" target="_blank"&gt;DebugBar&lt;/a&gt; is an explorer bar (and docks on the left side of &lt;a title="Internet Explorer" href="http://www.microsoft.com/ie" target="_blank"&gt;IE&lt;/a&gt;) and can’t be undocked but has a JavaScript console and tracks only the HTTP/HTTPS traffic that belongs to the visible web browser tab (&lt;a title="Internet Explorer" href="http://www.microsoft.com/ie" target="_blank"&gt;IE&lt;/a&gt; 7). &lt;a title="DebugBar - IE extension for web developer : DOM inspector, Javascript debugger, HTTP headers viewer, Cookies viewer" href="http://www.debugbar.com/" target="_blank"&gt;DebugBar&lt;/a&gt; can also spy on other instances of &lt;a title="Internet Explorer" href="http://www.microsoft.com/ie" target="_blank"&gt;IE&lt;/a&gt;&amp;nbsp;like &lt;strong&gt;Document Explorer&lt;/strong&gt; or &lt;a title="FeedDemon For Windows" href="http://www.newsgator.com/Individuals/FeedDemon/" target="_blank"&gt;&lt;font color="#006ff7"&gt;FeedDemon&lt;/font&gt;&lt;/a&gt;.&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p&gt;&lt;a title="My DebugBar | Companion.JS / HomePage" href="http://www.my-debugbar.com/wiki/CompanionJS/HomePage" target="_blank"&gt;Companion.JS&lt;/a&gt; is a &lt;a title="FireBug - Web Development Evolved" href="http://getfirebug.com/" target="_blank"&gt;Firebug&lt;/a&gt;-like tool and was the one that liked the most because it gave me something that I hadn’t: something that kills those annoying scripting error dialogs.&lt;/p&gt;&lt;a href="http://paulomorgado.net/"&gt;&lt;/a&gt;
&lt;p&gt;Both &lt;a title="DebugBar - IE extension for web developer : DOM inspector, Javascript debugger, HTTP headers viewer, Cookies viewer" href="http://www.debugbar.com/" target="_blank"&gt;DebugBar&lt;/a&gt; and &lt;a title="My DebugBar | Companion.JS / HomePage" href="http://www.my-debugbar.com/wiki/CompanionJS/HomePage" target="_blank"&gt;Companion.JS&lt;/a&gt; claim to be JavaScript debuggers but I couldn’t find any way for setting breakpoints or running scripts step by step. Probably because I have &lt;a title="Microsoft Visual Studio" href="http://msdn.microsoft.com/vstudio/" target="_blank"&gt;Visual Studio&lt;/a&gt; installed on this machine.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1633753" width="1" height="1"&gt;&lt;br style="clear: both;"/&gt;
      &lt;a href="http://www.pheedo.com/click.phdo?s=dd0a348919cc3823e671b557390c2591"&gt;&lt;img alt="" style="border: 0;" border="0" src="http://www.pheedo.com/img.phdo?s=dd0a348919cc3823e671b557390c2591"/&gt;&lt;/a&gt;
  &lt;img src="http://www.pheedo.com/feeds/tracker.php?i=dd0a348919cc3823e671b557390c2591" style="display: none;" border="0" height="1" width="1" alt=""/&gt;
&lt;p&gt;&lt;a href="http://feeds.PauloMorgado.NET/~a/PauloMorgadoEN?a=pJggJ0"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~a/PauloMorgadoEN?i=pJggJ0" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=fZ2jKI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=fZ2jKI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=C4BggI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=C4BggI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=oljORi"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=oljORi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=sqZrKI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=sqZrKI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=kWeNhi"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=kWeNhi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=wc0kji"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=wc0kji" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=AI51FI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=AI51FI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=gV6zCi"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=gV6zCi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=V9kvMI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=V9kvMI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=GhEx5i"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=GhEx5i" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=DR5tLI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=DR5tLI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=9FrOhi"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=9FrOhi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=T6zB2I"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=T6zB2I" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.PauloMorgado.NET/~r/PauloMorgadoEN/~4/309188629" height="1" width="1"/&gt;</description><pheedo:origLink xmlns:pheedo="http://www.pheedo.com/namespace/pheedo">http://msmvps.com/blogs/paulomorgado/archive/2008/06/11/debugbar-companion-js-and-ietester.aspx</pheedo:origLink><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1633753</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1633753</wfw:comment><feedburner:origLink>http://www.pheedo.com/click.phdo?i=dd0a348919cc3823e671b557390c2591</feedburner:origLink></item><item><title>Microsoft Tech-Ed EMEA 2008 – Registration Open</title><link>http://feeds.PauloMorgado.NET/~r/PauloMorgadoEN/~3/305647044/click.phdo</link><category>Events</category><category>Microsoft</category><category>MSDN</category><category>TechNet</category><category>TechEd</category><category>TechEd2008</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Paulo Morgado</dc:creator><pubDate>Thu, 05 Jun 2008 17:37:08 -0500</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1631824</guid><description>&lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p align="justify"&gt;&lt;a title="Downloads for Tech·Ed EMEA 2008 Developers" href="http://www.microsoft.com/emea/teched2008/" target="_blank"&gt;Microsoft Tech-Ed EMEA 2008&lt;/a&gt; is open for registration.&lt;/p&gt;  &lt;p align="center"&gt;&lt;a title="Downloads for Tech·Ed EMEA 2008 IT Professionals" href="http://www.microsoft.com/emea/teched2008/itpro/" target="_blank"&gt;&lt;img src="http://www.microsoft.com/emea/teched2008/images/downloads/sigs/TechEd_ITProfessionals_Signature.JPG" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p align="center"&gt;&lt;a title="Downloads for Tech·Ed EMEA 2008 Developers" href="http://www.microsoft.com/emea/teched2008/developer/" target="_blank"&gt;&lt;img src="http://www.microsoft.com/emea/teched2008/images/downloads/sigs/TechEd_Developers_Signature.JPG" alt="" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Do notice that, this year, the event for &lt;a title="Downloads for Tech·Ed EMEA 2008 IT Professionals" href="http://www.microsoft.com/emea/teched2008/itpro/" target="_blank"&gt;IT Professionals&lt;/a&gt; happens before the event for &lt;a title="Downloads for Tech·Ed EMEA 2008 Developers" href="http://www.microsoft.com/emea/teched2008/developer/" target="_blank"&gt;Developers&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1631824" width="1" height="1"&gt;&lt;br style="clear: both;"/&gt;
      &lt;a href="http://www.pheedo.com/click.phdo?s=6a7f4ec8b0f9a839d1e10c0f8d7f1069"&gt;&lt;img alt="" style="border: 0;" border="0" src="http://www.pheedo.com/img.phdo?s=6a7f4ec8b0f9a839d1e10c0f8d7f1069"/&gt;&lt;/a&gt;
  &lt;img src="http://www.pheedo.com/feeds/tracker.php?i=6a7f4ec8b0f9a839d1e10c0f8d7f1069" style="display: none;" border="0" height="1" width="1" alt=""/&gt;
&lt;p&gt;&lt;a href="http://feeds.PauloMorgado.NET/~a/PauloMorgadoEN?a=huj3Y1"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~a/PauloMorgadoEN?i=huj3Y1" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=nfQOOI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=nfQOOI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=bxAQoI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=bxAQoI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=y2cRwi"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=y2cRwi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=DLkoRI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=DLkoRI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=ZTYaqi"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=ZTYaqi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=eLCW3i"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=eLCW3i" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=ZToNlI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=ZToNlI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=7P0Qhi"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=7P0Qhi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=pKFT7I"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=pKFT7I" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=44IG7i"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=44IG7i" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=q4dgKI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=q4dgKI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=iGbZmi"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=iGbZmi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=y7HqoI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=y7HqoI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.PauloMorgado.NET/~r/PauloMorgadoEN/~4/305647044" height="1" width="1"/&gt;</description><pheedo:origLink xmlns:pheedo="http://www.pheedo.com/namespace/pheedo">http://msmvps.com/blogs/paulomorgado/archive/2008/06/05/microsoft-tech-ed-emea-2008-registration-open.aspx</pheedo:origLink><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1631824</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1631824</wfw:comment><feedburner:origLink>http://www.pheedo.com/click.phdo?i=6a7f4ec8b0f9a839d1e10c0f8d7f1069</feedburner:origLink></item><item><title>Microsoft Source Analysis for C# (aka StyleCop)</title><link>http://feeds.PauloMorgado.NET/~r/PauloMorgadoEN/~3/304879909/click.phdo</link><category>.NET</category><category>SoftDev</category><category>C#</category><category>Microsoft</category><category>MSDN</category><category>Tools</category><category>VisualStudio</category><category>NamingConventions</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Paulo Morgado</dc:creator><pubDate>Wed, 04 Jun 2008 18:12:22 -0500</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1631418</guid><description>&lt;p&gt;&lt;/p&gt;  &lt;p&gt;I’ve learned from a &lt;a title="Hugo Ribeiro" href="http://www.arquitecturadesoftware.org/blogs/hugoribeiro/default.aspx" target="_blank"&gt;fellow&lt;/a&gt; &lt;a title="Grupo de Arquitectura de Software Português" href="http://www.arquitecturadesoftware.org/" target="_blank"&gt;GASP&lt;/a&gt;er of the release of &lt;a title="Announcing the release of Microsoft Source Analysis for C#" href="http://blogs.msdn.com/sourceanalysis/archive/2008/05/23/announcing-the-release-of-microsoft-source-analysis.aspx" target="_blank"&gt;Microsoft Source Analysis for C# (aka StyleCop)&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;It’s still a work in progress but it’s already very useful.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1631418" width="1" height="1"&gt;&lt;br style="clear: both;"/&gt;
      &lt;a href="http://www.pheedo.com/click.phdo?s=86cf15a784f584bcceaaccd017410ea7"&gt;&lt;img alt="" style="border: 0;" border="0" src="http://www.pheedo.com/img.phdo?s=86cf15a784f584bcceaaccd017410ea7"/&gt;&lt;/a&gt;
  &lt;img src="http://www.pheedo.com/feeds/tracker.php?i=86cf15a784f584bcceaaccd017410ea7" style="display: none;" border="0" height="1" width="1" alt=""/&gt;
&lt;p&gt;&lt;a href="http://feeds.PauloMorgado.NET/~a/PauloMorgadoEN?a=TOwWW5"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~a/PauloMorgadoEN?i=TOwWW5" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=GCzAvI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=GCzAvI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=SnQV3I"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=SnQV3I" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=KLNlti"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=KLNlti" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=hwtmbI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=hwtmbI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=pG6FEi"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=pG6FEi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=LP508i"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=LP508i" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=n8hAVI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=n8hAVI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=Wkiexi"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=Wkiexi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=pjkuEI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=pjkuEI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=YOqfhi"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=YOqfhi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=ku4JFI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=ku4JFI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=qRFObi"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=qRFObi" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=3IYPtI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?i=3IYPtI" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.PauloMorgado.NET/~r/PauloMorgadoEN/~4/304879909" height="1" width="1"/&gt;</description><pheedo:origLink xmlns:pheedo="http://www.pheedo.com/namespace/pheedo">http://msmvps.com/blogs/paulomorgado/archive/2008/06/05/microsoft-source-analysis-for-c-aka-stylecop.aspx</pheedo:origLink><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/rsscomments.aspx?PostID=1631418</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/paulomorgado/commentapi.aspx?PostID=1631418</wfw:comment><feedburner:origLink>http://www.pheedo.com/click.phdo?i=86cf15a784f584bcceaaccd017410ea7</feedburner:origLink></item><item><title>Windows Live Writer Technical Preview</title><link>http://feeds.PauloMorgado.NET/~r/PauloMorgadoEN/~3/303298287/click.phdo</link><category>Blogging</category><category>WindowsLive</category><category>WindowsLiveWriter</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Paulo Morgado</dc:creator><pubDate>Mon, 02 Jun 2008 18:06:55 -0500</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:1630457</guid><description>&lt;p&gt;Today Windows Live Writer &lt;a title="Technical Preview: Now Available for Download" href="http://windowslivewriter.spaces.live.com/blog/cns!D85741BB5E0BE8AA!1508.entry" target="_blank"&gt;released a technical preview&lt;/a&gt; that includes new and improved features.&lt;/p&gt;  &lt;p&gt;From what I’ve seen so far, I like:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Revised main toolbar: Blog selection, help and colorize are now on the right. &lt;/li&gt;    &lt;li&gt;&lt;a title="Microsoft Office Excel" href="http://office.microsoft.com/excel" target="_blank"&gt;Excel&lt;/a&gt; like tabs for view switching. No more selecting a drop down menu to select a view. &lt;/li&gt;    &lt;li&gt;Improved category control with search/filtering. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;I don’t like:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Having a predefined set of languages for spell checking. And Portuguese is not one of them. &lt;/li&gt;    &lt;li&gt;It’s still a pain to change the the language for spell checking. &lt;/li&gt;    &lt;li&gt;There’s no predefined language setting for each account. &lt;/li&gt; &lt;/ul&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=1630457" width="1" height="1"&gt;&lt;br style="clear: both;"/&gt;
      &lt;a href="http://www.pheedo.com/click.phdo?s=304c4b4e9381f67b47cf70989a3323ee"&gt;&lt;img alt="" style="border: 0;" border="0" src="http://www.pheedo.com/img.phdo?s=304c4b4e9381f67b47cf70989a3323ee"/&gt;&lt;/a&gt;
  &lt;img src="http://www.pheedo.com/feeds/tracker.php?i=304c4b4e9381f67b47cf70989a3323ee" style="display: none;" border="0" height="1" width="1" alt=""/&gt;
&lt;p&gt;&lt;a href="http://feeds.PauloMorgado.NET/~a/PauloMorgadoEN?a=iaRLQo"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~a/PauloMorgadoEN?i=iaRLQo" border="0"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.PauloMorgado.NET/~f/PauloMorgadoEN?a=PeuOhI"&gt;&lt;img src="http://feeds.PauloMorgado.NET/~f/PauloMorga