<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>HZSolutions Blogs</title><link>http://blogs.hzsolutions.com/MainFeed.aspx</link><description>Blogs by HZSolutions</description><generator>Subtext Version 2.0.0.43</generator><item><title>Get ASP.NET Menu work on Chrome, Safari and Opera</title><link>http://blogs.hzsolutions.com/vnd/archive/2008/10/26/get-asp.net-menu-work-on-chrome-safari-and-opera-again.aspx</link><pubDate>Sat, 25 Oct 2008 07:01:06 GMT</pubDate><guid isPermaLink="true">http://blogs.hzsolutions.com/vnd/archive/2008/10/26/get-asp.net-menu-work-on-chrome-safari-and-opera-again.aspx</guid><wfw:comment>http://blogs.hzsolutions.com/vnd/comments/133.aspx</wfw:comment><wfw:commentRss>http://blogs.hzsolutions.com/vnd/comments/commentRss/133.aspx</wfw:commentRss><comments>http://blogs.hzsolutions.com/vnd/archive/2008/10/26/get-asp.net-menu-work-on-chrome-safari-and-opera-again.aspx#comment</comments><slash:comments>1</slash:comments><trackback:ping>http://blogs.hzsolutions.com/vnd/services/trackbacks/133.aspx</trackback:ping><source url="http://blogs.hzsolutions.com/vnd/rss.aspx">Get ASP.NET Menu work on Chrome, Safari and Opera</source><description>&lt;p&gt;&lt;a href="http://bunkerhollow.com/blogs/matt/archive/2008/10/04/asp-net-menu-control-problem-in-safari-and-chrome.aspx" target="_blank"&gt;Matt Williamson&lt;/a&gt; have suggest two solutions which both work fine &lt;/p&gt;  &lt;p&gt;Solution 1. &lt;/p&gt;  &lt;blockquote&gt;   &lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 71.89%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; height: 210px; background-color: #f4f4f4"&gt;     &lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;       &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System;&lt;/pre&gt;

      &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.Collections.Generic;&lt;/pre&gt;

      &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.Linq;&lt;/pre&gt;

      &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   4:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.Web;&lt;/pre&gt;

      &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   5:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;namespace&lt;/span&gt; MyProject.WebSite&lt;/pre&gt;

      &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   6:&lt;/span&gt; {&lt;/pre&gt;

      &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   7:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; PageBase : System.Web.UI.Page&lt;/pre&gt;

      &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   8:&lt;/span&gt;     {&lt;/pre&gt;

      &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   9:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; Page_PreInit(&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;/pre&gt;

      &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  10:&lt;/span&gt;         {&lt;/pre&gt;

      &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  11:&lt;/span&gt;             &lt;span style="color: #008000"&gt;// This is necessary because Safari and Chrome browsers don't display the Menu control correctly.&lt;/span&gt;&lt;/pre&gt;

      &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  12:&lt;/span&gt;             &lt;span style="color: #008000"&gt;// All webpages displaying an ASP.NET menu control must inherit this class.&lt;/span&gt;&lt;/pre&gt;

      &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  13:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (Request.ServerVariables[&lt;span style="color: #006080"&gt;"http_user_agent"&lt;/span&gt;].IndexOf(&lt;span style="color: #006080"&gt;"Safari"&lt;/span&gt;, StringComparison.CurrentCultureIgnoreCase) != -1)&lt;/pre&gt;

      &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  14:&lt;/span&gt;                 Page.ClientTarget = &lt;span style="color: #006080"&gt;"uplevel"&lt;/span&gt;;&lt;/pre&gt;

      &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  15:&lt;/span&gt;         }&lt;/pre&gt;

      &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  16:&lt;/span&gt;     }&lt;/pre&gt;

      &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  17:&lt;/span&gt; }&lt;/pre&gt;
    &lt;/div&gt;
  &lt;/div&gt;

  &lt;p&gt; &lt;/p&gt;

  &lt;p&gt;Then make sure all of your pages get inherit from this PageBase.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Solution 2. &lt;/p&gt;

&lt;blockquote&gt;
  &lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 71.63%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; height: 52px; background-color: #f4f4f4"&gt;
    &lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;
      &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (Request.UserAgent.Contains(&lt;span style="color: #006080"&gt;"AppleWebKit"&lt;/span&gt;)) Request.Browser.Adapters.Clear();&lt;/pre&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;

&lt;p&gt;I'm remember that some one have done a smart declarative browser adapting solution which we can control ASP.NET Render to render fine-tuned HTML code for selected Browser in Web.config, but now can't find it back. Please lets me know if you find it around.&lt;/p&gt;&lt;img src="http://blogs.hzsolutions.com/vnd/aggbug/133.aspx" width="1" height="1" /&gt;</description><dc:creator>Vu Nguyen</dc:creator></item><item><title>Get ASP.NET Menu work on Chrome, Safari and Opera</title><link>http://blogs.hzsolutions.com/vnd/archive/2008/10/25/get-asp.net-menu-work-on-chrome-safari-and-opera.aspx</link><pubDate>Sat, 25 Oct 2008 06:56:46 GMT</pubDate><guid isPermaLink="true">http://blogs.hzsolutions.com/vnd/archive/2008/10/25/get-asp.net-menu-work-on-chrome-safari-and-opera.aspx</guid><wfw:comment>http://blogs.hzsolutions.com/vnd/comments/132.aspx</wfw:comment><wfw:commentRss>http://blogs.hzsolutions.com/vnd/comments/commentRss/132.aspx</wfw:commentRss><comments>http://blogs.hzsolutions.com/vnd/archive/2008/10/25/get-asp.net-menu-work-on-chrome-safari-and-opera.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blogs.hzsolutions.com/vnd/services/trackbacks/132.aspx</trackback:ping><source url="http://blogs.hzsolutions.com/vnd/rss.aspx">Get ASP.NET Menu work on Chrome, Safari and Opera</source><description>&lt;p&gt;&lt;a href="http://bunkerhollow.com/blogs/matt/default.aspx"&gt;Matt Williamson&lt;/a&gt; have suggest two solutions which both work fine&lt;/p&gt;  &lt;p&gt;Solution 1.&lt;/p&gt;  &lt;blockquote&gt;   &lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 71.89%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; height: 210px; background-color: #f4f4f4"&gt;     &lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;       &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System;&lt;/pre&gt;

      &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   2:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.Collections.Generic;&lt;/pre&gt;

      &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   3:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.Linq;&lt;/pre&gt;

      &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   4:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;using&lt;/span&gt; System.Web;&lt;/pre&gt;

      &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   5:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;namespace&lt;/span&gt; MyProject.WebSite&lt;/pre&gt;

      &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   6:&lt;/span&gt; {&lt;/pre&gt;

      &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   7:&lt;/span&gt;     &lt;span style="color: #0000ff"&gt;public&lt;/span&gt; &lt;span style="color: #0000ff"&gt;class&lt;/span&gt; PageBase : System.Web.UI.Page&lt;/pre&gt;

      &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   8:&lt;/span&gt;     {&lt;/pre&gt;

      &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   9:&lt;/span&gt;         &lt;span style="color: #0000ff"&gt;protected&lt;/span&gt; &lt;span style="color: #0000ff"&gt;void&lt;/span&gt; Page_PreInit(&lt;span style="color: #0000ff"&gt;object&lt;/span&gt; sender, EventArgs e)&lt;/pre&gt;

      &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  10:&lt;/span&gt;         {&lt;/pre&gt;

      &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  11:&lt;/span&gt;             &lt;span style="color: #008000"&gt;// This is necessary because Safari and Chrome browsers don't display the Menu control correctly.&lt;/span&gt;&lt;/pre&gt;

      &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  12:&lt;/span&gt;             &lt;span style="color: #008000"&gt;// All webpages displaying an ASP.NET menu control must inherit this class.&lt;/span&gt;&lt;/pre&gt;

      &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  13:&lt;/span&gt;             &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (Request.ServerVariables[&lt;span style="color: #006080"&gt;"http_user_agent"&lt;/span&gt;].IndexOf(&lt;span style="color: #006080"&gt;"Safari"&lt;/span&gt;, StringComparison.CurrentCultureIgnoreCase) != -1)&lt;/pre&gt;

      &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  14:&lt;/span&gt;                 Page.ClientTarget = &lt;span style="color: #006080"&gt;"uplevel"&lt;/span&gt;;&lt;/pre&gt;

      &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  15:&lt;/span&gt;         }&lt;/pre&gt;

      &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  16:&lt;/span&gt;     }&lt;/pre&gt;

      &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;  17:&lt;/span&gt; }&lt;/pre&gt;
    &lt;/div&gt;
  &lt;/div&gt;

  &lt;p&gt; &lt;/p&gt;

  &lt;p&gt;Then make sure all of your pages get inherit from this PageBase.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Solution 2.&lt;/p&gt;

&lt;blockquote&gt;
  &lt;div style="border-right: gray 1px solid; padding-right: 4px; border-top: gray 1px solid; padding-left: 4px; font-size: 8pt; padding-bottom: 4px; margin: 20px 0px 10px; overflow: auto; border-left: gray 1px solid; width: 71.63%; cursor: text; max-height: 200px; line-height: 12pt; padding-top: 4px; border-bottom: gray 1px solid; font-family: consolas, 'Courier New', courier, monospace; height: 52px; background-color: #f4f4f4"&gt;
    &lt;div style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: #f4f4f4; border-bottom-style: none"&gt;
      &lt;pre style="padding-right: 0px; padding-left: 0px; font-size: 8pt; padding-bottom: 0px; margin: 0em; overflow: visible; width: 100%; color: black; border-top-style: none; line-height: 12pt; padding-top: 0px; font-family: consolas, 'Courier New', courier, monospace; border-right-style: none; border-left-style: none; background-color: white; border-bottom-style: none"&gt;&lt;span style="color: #606060"&gt;   1:&lt;/span&gt; &lt;span style="color: #0000ff"&gt;if&lt;/span&gt; (Request.UserAgent.Contains(&lt;span style="color: #006080"&gt;"AppleWebKit"&lt;/span&gt;)) Request.Browser.Adapters.Clear();&lt;/pre&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;

&lt;p&gt;I'm remember that some one have done a smart declarative browser adapting solution which we can control ASP.NET Render to render fine-tuned HTML code for selected Browser in Web.config, but now can't find it back. Please lets me know if you find it around.&lt;/p&gt;&lt;img src="http://blogs.hzsolutions.com/vnd/aggbug/132.aspx" width="1" height="1" /&gt;</description><dc:creator>Vu Nguyen</dc:creator></item><item><title>Visual Studio: Task failed because &amp;quot;sgen.exe&amp;quot;/&amp;quot;al.exe&amp;quot; was not found, or the correct Microsoft Windows SDK is not installed</title><link>http://blogs.hzsolutions.com/vnd/archive/2008/09/20/visual-studio-task-failed-because-quotsgen.exequotquotal.exequot-was-not-found-or.aspx</link><pubDate>Sat, 20 Sep 2008 00:29:53 GMT</pubDate><guid isPermaLink="true">http://blogs.hzsolutions.com/vnd/archive/2008/09/20/visual-studio-task-failed-because-quotsgen.exequotquotal.exequot-was-not-found-or.aspx</guid><wfw:comment>http://blogs.hzsolutions.com/vnd/comments/131.aspx</wfw:comment><wfw:commentRss>http://blogs.hzsolutions.com/vnd/comments/commentRss/131.aspx</wfw:commentRss><comments>http://blogs.hzsolutions.com/vnd/archive/2008/09/20/visual-studio-task-failed-because-quotsgen.exequotquotal.exequot-was-not-found-or.aspx#comment</comments><slash:comments>3</slash:comments><trackback:ping>http://blogs.hzsolutions.com/vnd/services/trackbacks/131.aspx</trackback:ping><source url="http://blogs.hzsolutions.com/vnd/rss.aspx">Visual Studio: Task failed because &amp;quot;sgen.exe&amp;quot;/&amp;quot;al.exe&amp;quot; was not found, or the correct Microsoft Windows SDK is not installed</source><description>&lt;h3&gt;Problems&lt;/h3&gt;  &lt;p&gt;Compile a Class Library project, you received this error&lt;/p&gt;  &lt;table cellspacing="5" cellpadding="2" width="400" border="1"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="400"&gt;&lt;em&gt;C:\WINDOWS\Microsoft.NET\Framework\v3.5\Microsoft.Common.targets(1993,9):            &lt;br /&gt;error MSB3091:             &lt;br /&gt;Task failed because "&lt;strike&gt;al.exe&lt;/strike&gt;" was not found, or the correct Microsoft Windows SDK is not installed. The task is looking for "&lt;strike&gt;al.exe&lt;/strike&gt;" in the "bin" subdirectory beneath the location specified in the InstallationFolder value of the registry key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v6.0A. You may be able to solve the problem by doing one of the following:             &lt;br /&gt;1) Install the Microsoft Windows SDK for Windows Server 2008 and .NET Framework 3.5.             &lt;br /&gt;2) Install Visual Studio 2008.             &lt;br /&gt;3) Manually set the above registry key to the correct location.             &lt;br /&gt;4) Pass the correct location into the "ToolPath" parameter of the task.&lt;/em&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;Or &lt;/p&gt;  &lt;table cellspacing="5" cellpadding="2" width="400" border="1"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="400"&gt;&lt;em&gt;C:\WINDOWS\Microsoft.NET\Framework\v3.5\Microsoft.Common.targets(1993,9):            &lt;br /&gt;error MSB3091:             &lt;br /&gt;Task failed because "sgen.exe" was not found, or the correct Microsoft Windows SDK is not installed. The task is looking for "sgen.exe" in the "bin" subdirectory beneath the location specified in the InstallationFolder value of the registry key HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v6.0A. You may be able to solve the problem by doing one of the following:             &lt;br /&gt;1) Install the Microsoft Windows SDK for Windows Server 2008 and .NET Framework 3.5.             &lt;br /&gt;2) Install Visual Studio 2008.             &lt;br /&gt;3) Manually set the above registry key to the correct location.             &lt;br /&gt;4) Pass the correct location into the "ToolPath" parameter of the task.&lt;/em&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt; &lt;/p&gt;  &lt;h3&gt;Solutions&lt;/h3&gt;  &lt;h4&gt;- Manually add a registry key &lt;a title="http://social.msdn.microsoft.com/Forums/en-US/vssetup/thread/71f6b1fc-2e22-4ced-9825-469beb4381eb/" href="http://social.msdn.microsoft.com/Forums/en-US/vssetup/thread/71f6b1fc-2e22-4ced-9825-469beb4381eb/"&gt;http://social.msdn.microsoft.com/Forums/en-US/vssetup/thread/71f6b1fc-2e22-4ced-9825-469beb4381eb/&lt;/a&gt;)&lt;/h4&gt;  &lt;ul&gt;   &lt;li&gt;Copy &amp;amp; paste following to NotePad: &lt;/li&gt; &lt;/ul&gt;  &lt;table cellspacing="5" cellpadding="2" width="400" border="1"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="400"&gt;         &lt;p&gt;Windows Registry Editor Version 5.00&lt;/p&gt;          &lt;p&gt;[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v6.0A]            &lt;br /&gt;"InstallationFolder"="C:\\Program Files\\Microsoft Visual Studio 8\\SDK\\v2.0\\"&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;ul&gt;   &lt;li&gt;Then rename the file extention to vsfix.reg. &lt;/li&gt;    &lt;li&gt;Double-click the file you just created then choose "Yes". &lt;/li&gt;    &lt;li&gt;You're done. :) &lt;/li&gt; &lt;/ul&gt;  &lt;h4&gt;- Add a system environment variable : &lt;a title="http://bhaidar.net/cs/archive/2007/12/25/al-exe-not-found-solution.aspx" href="http://bhaidar.net/cs/archive/2007/12/25/al-exe-not-found-solution.aspx"&gt;http://bhaidar.net/cs/archive/2007/12/25/al-exe-not-found-solution.aspx&lt;/a&gt;&lt;/h4&gt;  &lt;p&gt;Some more links I have just know&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;a title="http://dukelupus.wordpress.com/2008/02/05/task-failed-because-sgenexe-was-not-found-solution/" href="http://dukelupus.wordpress.com/2008/02/05/task-failed-because-sgenexe-was-not-found-solution/"&gt;http://dukelupus.wordpress.com/2008/02/05/task-failed-because-sgenexe-was-not-found-solution/&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a title="http://wiki.evident.nl/Default.aspx?Page=Task%20failed%20because%20sgen.exe%20was%20not%20found&amp;amp;AspxAutoDetectCookieSupport=1" href="http://wiki.evident.nl/Default.aspx?Page=Task%20failed%20because%20sgen.exe%20was%20not%20found&amp;amp;AspxAutoDetectCookieSupport=1"&gt;http://wiki.evident.nl/Default.aspx?Page=Task%20failed%20because%20sgen.exe%20was%20not%20found&amp;amp;AspxAutoDetectCookieSupport=1&lt;/a&gt;&lt;/li&gt; &lt;/ol&gt;&lt;img src="http://blogs.hzsolutions.com/vnd/aggbug/131.aspx" width="1" height="1" /&gt;</description><dc:creator>Vu Nguyen</dc:creator></item><item><title>Open popular IM from your website</title><link>http://blogs.hzsolutions.com/vnd/archive/2008/09/14/open-popular-im-from-your-website.aspx</link><pubDate>Sat, 13 Sep 2008 08:02:21 GMT</pubDate><guid isPermaLink="true">http://blogs.hzsolutions.com/vnd/archive/2008/09/14/open-popular-im-from-your-website.aspx</guid><wfw:comment>http://blogs.hzsolutions.com/vnd/comments/130.aspx</wfw:comment><wfw:commentRss>http://blogs.hzsolutions.com/vnd/comments/commentRss/130.aspx</wfw:commentRss><comments>http://blogs.hzsolutions.com/vnd/archive/2008/09/14/open-popular-im-from-your-website.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blogs.hzsolutions.com/vnd/services/trackbacks/130.aspx</trackback:ping><source url="http://blogs.hzsolutions.com/vnd/rss.aspx">Open popular IM from your website</source><description>&lt;h3&gt;AOL Instant Messenger (AIM) &lt;/h3&gt; &lt;p&gt;AOL Instant Messenger (AIM) ids can be represented using the &lt;code&gt;aim:&lt;/code&gt; protocol. Many who publish their AIM ids do so with clickable URLs e.g.: &lt;/p&gt;&lt;pre&gt;&amp;lt;a href="aim:goim?screenname=ShoppingBuddy"&amp;gt;IM with the AIM ShoppingBuddy&amp;lt;/a&amp;gt;  &lt;/pre&gt;
&lt;p&gt;&lt;a name="Yahoo_Messenger"&gt;&lt;/a&gt;
&lt;/p&gt;&lt;h3&gt;Yahoo Messenger &lt;/h3&gt;
&lt;p&gt;Similarly, Yahoo Instant Messenger (YIM) ids can be represented using the &lt;code&gt;ymsgr:&lt;/code&gt; protocol. And similarly many publish their YIM ids as clickable URLs e.g.: &lt;/p&gt;&lt;pre&gt;&amp;lt;a href="ymsgr:sendIM?SomeYahooFriend"&amp;gt;IM with SomeYahooFriend&amp;lt;/a&amp;gt;
&lt;/pre&gt;
&lt;p&gt;&lt;a name="MSN_Messenger"&gt;&lt;/a&gt;
&lt;/p&gt;&lt;h3&gt;MSN Messenger &lt;/h3&gt;
&lt;p&gt;MSN Messenger (MSNIM) ids can be represented using the &lt;code&gt;msnim:&lt;/code&gt; protocol. And similarly many publish their MSNIM ids as clickable URLs e.g.: &lt;/p&gt;&lt;pre&gt;&amp;lt;a href="msnim:chat?contact=joebob@hotmail.com"&amp;gt;IM with joebob@hotmail.com&amp;lt;/a&amp;gt;&lt;/pre&gt;&lt;pre /&gt;
&lt;h3&gt;XMPP (Jabber) &lt;/h3&gt;
&lt;p&gt;&lt;a href="http://www.xmpp.org/"&gt;Extensible Messaging and Presence Protocol (XMPP)&lt;/a&gt; (&lt;i&gt;http://www.xmpp.org/&lt;/i&gt;) ids can be represented using the &lt;code&gt;xmpp:&lt;/code&gt; protocol, e.g.: &lt;/p&gt;&lt;pre&gt;&amp;lt;a class="url" href="xmpp:username@jabberservice.com"&amp;gt;IM with username@jammerservice.com&amp;lt;/a&amp;gt;
&lt;/pre&gt;
&lt;h3&gt;Skype &lt;/h3&gt;
&lt;p&gt;Skype can be represented using the &lt;code&gt;skype:&lt;/code&gt; protocol. It can be used to open a chat session or make a Skype call. &lt;/p&gt;&lt;pre&gt;&amp;lt;a href="skype:echo-chinese?chat"&amp;gt;IM with the Skype echo service (Chinese) &amp;lt;/a&amp;gt;
&lt;/pre&gt;&lt;pre&gt;&amp;lt;a href="skype:echo-chinese?call"&amp;gt;Skype call to Skype echo service (Chinese) &amp;lt;/a&amp;gt;  &lt;/pre&gt;
&lt;p&gt;&lt;a name="ICQ"&gt;&lt;/a&gt;
&lt;/p&gt;&lt;h3&gt;ICQ &lt;/h3&gt;
&lt;p&gt;ICQ does not have a URL scheme. Rather ICQ links on the web use HTTP hyperlinks to download a resource of content-type &lt;code&gt;application/x-icq&lt;/code&gt; which then the operating system opens with the user's ICQ client. 
&lt;/p&gt;&lt;p&gt;Thus we can markup those HTTP hyperlinks with the content-type set explicitly to communicate the ICQ semantic: &lt;/p&gt;&lt;pre&gt;&amp;lt;a class="url"
   type="application/x-icq" 
   href="http://www.icq.com/people/cmd.php?uin=[ICQNUMBER]&amp;amp;action=message"&amp;gt;
 Contact with ICQ&amp;lt;/a&amp;gt;
&lt;/pre&gt;
&lt;p&gt;Replacing [ICQNUMBER] with the user's actual ICQ number. &lt;/p&gt;&lt;img src="http://blogs.hzsolutions.com/vnd/aggbug/130.aspx" width="1" height="1" /&gt;</description><dc:creator>Vu Nguyen</dc:creator></item><item><title>Path to Microsoft .NET 3.5 Developer Certification</title><link>http://blogs.hzsolutions.com/vnd/archive/2008/09/11/path-to-microsoft-.net-3.5-developer-certification.aspx</link><pubDate>Wed, 10 Sep 2008 16:31:33 GMT</pubDate><guid isPermaLink="true">http://blogs.hzsolutions.com/vnd/archive/2008/09/11/path-to-microsoft-.net-3.5-developer-certification.aspx</guid><wfw:comment>http://blogs.hzsolutions.com/vnd/comments/129.aspx</wfw:comment><wfw:commentRss>http://blogs.hzsolutions.com/vnd/comments/commentRss/129.aspx</wfw:commentRss><comments>http://blogs.hzsolutions.com/vnd/archive/2008/09/11/path-to-microsoft-.net-3.5-developer-certification.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blogs.hzsolutions.com/vnd/services/trackbacks/129.aspx</trackback:ping><source url="http://blogs.hzsolutions.com/vnd/rss.aspx">Path to Microsoft .NET 3.5 Developer Certification</source><description>&lt;p&gt;&lt;img height="334" alt="Path to Microsoft .NET 3.5 Developer Certification" src="http://www.thearchitect.co.uk/weblog/images/ms-cert/ms-cert-path-mcpd_4.png" width="500" /&gt;&lt;/p&gt;&lt;img src="http://blogs.hzsolutions.com/vnd/aggbug/129.aspx" width="1" height="1" /&gt;</description><dc:creator>Vu Nguyen</dc:creator></item><item><title>RIA: 44 Silverlight 2.0 screencasts</title><link>http://blogs.hzsolutions.com/vnd/archive/2008/08/28/ria-44-silverlight-2.0-screencasts.aspx</link><pubDate>Wed, 27 Aug 2008 18:09:01 GMT</pubDate><guid isPermaLink="true">http://blogs.hzsolutions.com/vnd/archive/2008/08/28/ria-44-silverlight-2.0-screencasts.aspx</guid><wfw:comment>http://blogs.hzsolutions.com/vnd/comments/128.aspx</wfw:comment><wfw:commentRss>http://blogs.hzsolutions.com/vnd/comments/commentRss/128.aspx</wfw:commentRss><comments>http://blogs.hzsolutions.com/vnd/archive/2008/08/28/ria-44-silverlight-2.0-screencasts.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blogs.hzsolutions.com/vnd/services/trackbacks/128.aspx</trackback:ping><source url="http://blogs.hzsolutions.com/vnd/rss.aspx">RIA: 44 Silverlight 2.0 screencasts</source><description>&lt;p&gt;&lt;a href="http://mtaulty.com/communityserver/blogs/mike_taultys_blog/default.aspx"&gt;Mike Taulty&lt;/a&gt; recently uploaded and amazing collection of Silverlight 2.0 screencasts on how Silverlight works, controls, File IO, networking, UI design,  data-binding, interacting with HTML pages, and more.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;a href="http://channel9.msdn.com/posts/mtaulty/Silverlight-Hello-World/"&gt;&lt;strong&gt;Silverlight - Hello World&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/posts/mtaulty/Silverlight-Anatomy-of-an-Application/"&gt;&lt;strong&gt;Silverlight - Anatomy of an Application&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/posts/mtaulty/Silverlight-The-VS-Environment/"&gt;&lt;strong&gt;Silverlight - The VS Environment&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/posts/mtaulty/Silverlight-Content-Controls/"&gt;&lt;strong&gt;Silverlight - Content Controls&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/posts/mtaulty/Silverlight-Built-In-Controls/"&gt;&lt;strong&gt;Silverlight - Built-In Controls&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/posts/mtaulty/Silverlight-Width-Height-Margins-Padding-Alignment/"&gt;&lt;strong&gt;Silverlight - Width, Height, Margins, Padding, Alignment&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/posts/mtaulty/Silverlight-Using-a-GridSplitter/"&gt;&lt;strong&gt;Silverlight - Using a GridSplitter&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/posts/mtaulty/Silverlight-Grid-Layout/"&gt;&lt;strong&gt;Silverlight - Grid Layout&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/posts/mtaulty/Silverlight-StackPanel-Layout/"&gt;&lt;strong&gt;Silverlight - StackPanel Layout&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/posts/mtaulty/Silverlight-Canvas-Layout/"&gt;&lt;strong&gt;Silverlight - Canvas Layout&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/posts/mtaulty/Silverlight-Databinding-UI-to-NET-Classes/"&gt;&lt;strong&gt;Silverlight - Databinding UI to .NET Classes&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/posts/mtaulty/Silverlight-Simple-Styles/"&gt;&lt;strong&gt;Silverlight - Simple Styles&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/posts/mtaulty/Silverlight-Custom-Types-in-XAML/"&gt;&lt;strong&gt;Silverlight - Custom Types in XAML&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/posts/mtaulty/Silverlight-Binding-with-Conversion/"&gt;&lt;strong&gt;Silverlight - Binding with Conversion&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/posts/mtaulty/Silverlight-List-Based-Data-Binding/"&gt;&lt;strong&gt;Silverlight - List Based Data Binding&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/posts/mtaulty/Silverlight-Simple-User-Control/"&gt;&lt;strong&gt;Silverlight - Simple User Control&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/posts/mtaulty/Silverlight-Templating-a-Button/"&gt;&lt;strong&gt;Silverlight - Templating a Button&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/posts/mtaulty/Silverlight-Resources-from-XAPDLLSite-Of-Origin/"&gt;&lt;strong&gt;Silverlight - Resources from XAP/DLL/Site Of Origin&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/posts/mtaulty/Silverlight-Animations--Storyboards/"&gt;&lt;strong&gt;Silverlight - Animations &amp;amp; Storyboards&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/posts/mtaulty/Silverlight-Uploads-with-WebClient/"&gt;&lt;strong&gt;Silverlight - Uploads with WebClient&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/posts/mtaulty/Silverlight-Downloads-with-WebClient/"&gt;&lt;strong&gt;Silverlight - Downloads with WebClient&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/posts/mtaulty/Silverlight-Calling-HTTPS-Web-Services/"&gt;&lt;strong&gt;Silverlight - Calling HTTPS Web Services&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/posts/mtaulty/Silverlight-Calling-Web-Services/"&gt;&lt;strong&gt;Silverlight - Calling Web Services&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/posts/mtaulty/Silverlight-Making-Cross-Domain-Requests/"&gt;&lt;strong&gt;Silverlight - Making Cross Domain Requests&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/posts/mtaulty/Silverlight-Using-HttpWebRequest/"&gt;&lt;strong&gt;Silverlight - Using HttpWebRequest&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/posts/mtaulty/Silverlight-File-Dialogs-and-User-Files/"&gt;&lt;strong&gt;Silverlight - File Dialogs and User Files&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/posts/mtaulty/Silverlight-Using-Sockets/"&gt;&lt;strong&gt;Silverlight - Using Sockets&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/posts/mtaulty/Silverlight-Using-Isolated-Storage/"&gt;&lt;strong&gt;Silverlight - Using Isolated Storage&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/posts/mtaulty/Silverlight-NET-Code-Modifying-HTML/"&gt;&lt;strong&gt;Silverlight - .NET Code Modifying HTML&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/posts/mtaulty/Silverlight-Using-Isolated-Storage-Quotas/"&gt;&lt;strong&gt;Silverlight - Using Isolated Storage Quotas&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/posts/mtaulty/Silverlight-Calling-JavaScript-from-NET/"&gt;&lt;strong&gt;Silverlight - Calling JavaScript from .NET&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/posts/mtaulty/Silverlight-Evaluating-JavaScript-from-NET-Code/"&gt;&lt;strong&gt;Silverlight - Evaluating JavaScript from .NET Code&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/posts/mtaulty/Silverlight-Handling-HTML-Events-in-NET-Code/"&gt;&lt;strong&gt;Silverlight - Handling HTML Events in .NET Code&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/posts/mtaulty/Silverlight-Handling-NET-Events-in-JavaScript/"&gt;&lt;strong&gt;Silverlight - Handling .NET Events in JavaScript&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/posts/mtaulty/Silverlight-Calling-NET-from-JavaScript/"&gt;&lt;strong&gt;Silverlight - Calling .NET from JavaScript&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/posts/mtaulty/Silverlight-Displaying-a-Custom-Splash-Screen/"&gt;&lt;strong&gt;Silverlight - Displaying a Custom Splash Screen&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/posts/mtaulty/Silverlight-Passing-Parameters-from-your-Web-Page/"&gt;&lt;strong&gt;Silverlight - Passing Parameters from your Web Page&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/posts/mtaulty/Silverlight-Loading-Media-at-Runtime/"&gt;&lt;strong&gt;Silverlight - Loading Media at Runtime&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/posts/mtaulty/Silverlight-Dynamically-Loading-AssembliesCode/"&gt;&lt;strong&gt;Silverlight - Dynamically Loading Assemblies/Code&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/posts/mtaulty/Silverlight-ReadingWriting-XML/"&gt;&lt;strong&gt;Silverlight - Reading/Writing XML&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/posts/mtaulty/Silverlight-Using-Silverlight-Streaming/"&gt;&lt;strong&gt;Silverlight - Multiple Threads with BackgroundWorker&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/posts/mtaulty/Silverlight-InsertUpdateDelete-with-the-DataGrid/"&gt;&lt;strong&gt;Silverlight - Insert/Update/Delete with the DataGrid&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/posts/mtaulty/Silverlight-Getting-Started-with-the-DataGrid/"&gt;&lt;strong&gt;Silverlight - Getting Started with the DataGrid&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a href="http://channel9.msdn.com/posts/mtaulty/Silverlight-Embedding-Custom-Fonts/"&gt;&lt;strong&gt;Silverlight - Embedding Custom Fonts&lt;/strong&gt;&lt;/a&gt;&lt;/li&gt; &lt;/ol&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:d84e8e39-b0dd-413a-85bb-d404048da4f1" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/RIA" rel="tag"&gt;RIA&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Silverlight" rel="tag"&gt;Silverlight&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Silverlight%202.0" rel="tag"&gt;Silverlight 2.0&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Screencasts" rel="tag"&gt;Screencasts&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.hzsolutions.com/vnd/aggbug/128.aspx" width="1" height="1" /&gt;</description><dc:creator>Vu Nguyen</dc:creator></item><item><title>Someone is WRONG on the Internet</title><link>http://blogs.hzsolutions.com/vnd/archive/2008/08/19/someone-is-wrong-on-the-internet.aspx</link><pubDate>Mon, 18 Aug 2008 22:33:46 GMT</pubDate><guid isPermaLink="true">http://blogs.hzsolutions.com/vnd/archive/2008/08/19/someone-is-wrong-on-the-internet.aspx</guid><wfw:comment>http://blogs.hzsolutions.com/vnd/comments/126.aspx</wfw:comment><wfw:commentRss>http://blogs.hzsolutions.com/vnd/comments/commentRss/126.aspx</wfw:commentRss><comments>http://blogs.hzsolutions.com/vnd/archive/2008/08/19/someone-is-wrong-on-the-internet.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blogs.hzsolutions.com/vnd/services/trackbacks/126.aspx</trackback:ping><source url="http://blogs.hzsolutions.com/vnd/rss.aspx">Someone is WRONG on the Internet</source><description>&lt;p&gt;&lt;img src="http://imgs.xkcd.com/comics/duty_calls.png" /&gt;&lt;/p&gt;&lt;img src="http://blogs.hzsolutions.com/vnd/aggbug/126.aspx" width="1" height="1" /&gt;</description><dc:creator>Vu Nguyen</dc:creator></item><item><title>Windows: Logon failure: the user has not been granted the requested logon type at this computer</title><link>http://blogs.hzsolutions.com/vnd/archive/2008/08/16/windows-logon-failure-the-user-has-not-been-granted-the.aspx</link><pubDate>Fri, 15 Aug 2008 07:52:44 GMT</pubDate><guid isPermaLink="true">http://blogs.hzsolutions.com/vnd/archive/2008/08/16/windows-logon-failure-the-user-has-not-been-granted-the.aspx</guid><wfw:comment>http://blogs.hzsolutions.com/vnd/comments/125.aspx</wfw:comment><wfw:commentRss>http://blogs.hzsolutions.com/vnd/comments/commentRss/125.aspx</wfw:commentRss><comments>http://blogs.hzsolutions.com/vnd/archive/2008/08/16/windows-logon-failure-the-user-has-not-been-granted-the.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blogs.hzsolutions.com/vnd/services/trackbacks/125.aspx</trackback:ping><source url="http://blogs.hzsolutions.com/vnd/rss.aspx">Windows: Logon failure: the user has not been granted the requested logon type at this computer</source><description>&lt;p&gt;When you share a Folder from a Windows XP machine, you might not able to access to it even you see that computer in it's work group, any time you attempt to access to, you receive a error message like&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="file://\\[SHARE"&gt;\\[SHARE&lt;/a&gt;] is not accessible. You might not have permission to use this network resource. Contact the administrator of this server to find out if you have  access permissions.  &lt;/li&gt;    &lt;li&gt;Logon failure: the user has not been granted the requested logon type at this computer&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;When ran into it, you can consider one of two solution I found from others over Internet. It  might help a lot.&lt;/p&gt;  &lt;h3&gt;Audit Local Security Settings&lt;/h3&gt;  &lt;ol&gt;   &lt;li&gt;On Start Menu&amp;gt;Control Panel&amp;gt;Users, enable Guest user.&lt;/li&gt;    &lt;li&gt;Open Local Security Settings by select Start Menu&amp;gt;Control Panel&amp;gt;Administrative Tools&amp;gt;Local Security Settings&lt;/li&gt;    &lt;li&gt;Navigate to Local Policies&amp;gt;User Rights Assignment&lt;/li&gt;    &lt;li&gt;Right-click on &lt;em&gt;&lt;u&gt;Access this computer from the network&lt;/u&gt;&lt;/em&gt;&amp;gt;Properties&amp;gt;Add Users or Groups, add everyone or any users you want to be able to access the computer from the network &amp;gt; &lt;strong&gt;Add Guest user to this if not exists&lt;/strong&gt;&lt;/li&gt;    &lt;li&gt;Right-click on &lt;em&gt;&lt;u&gt;Deny access to this computer from the network&lt;/u&gt;&lt;/em&gt;&amp;gt;Properties, remove everyone or any users you do NOT want denied to be able to access the computer from the network &amp;gt; &lt;strong&gt;Remove Guest user from this if exists&lt;/strong&gt;&lt;/li&gt; &lt;/ol&gt;  &lt;h3&gt;Using Windows Server 2003 Resource Kit Tools (Steve Winograd)&lt;/h3&gt;  &lt;p&gt; &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Download and install the Windows 2003 Server Resource Kit Tools     &lt;br /&gt;from &lt;a href="http://go.microsoft.com/fwlink/?LinkId=4544"&gt;http://go.microsoft.com/fwlink/?LinkId=4544&lt;/a&gt; .&lt;/li&gt;    &lt;li&gt;Click Start | All Programs | Windows Resource Kit Tools | Command Shell.&lt;/li&gt;    &lt;li&gt;Type these lines at the command prompt. The second and third commands are case-sensitive, so type them exactly as shown. Note the "+r" in the second one and the "-r" in the third one:&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;&lt;strong&gt;net user guest /active:yes&lt;/strong&gt;&lt;/li&gt;      &lt;li&gt;ntrights +r SeNetworkLogonRight -u Guest&lt;/li&gt;      &lt;li&gt;ntrights -r SeDenyNetworkLogonRight -u Guest&lt;/li&gt;   &lt;/ul&gt; &lt;/ol&gt;  &lt;p&gt; &lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:d25675e1-3d0a-4518-9db4-0c21d64889da" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Windows%20XP" rel="tag"&gt;Windows XP&lt;/a&gt;,&lt;a href="http://technorati.com/tags/File%20Sharing" rel="tag"&gt;File Sharing&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.hzsolutions.com/vnd/aggbug/125.aspx" width="1" height="1" /&gt;</description><dc:creator>Vu Nguyen</dc:creator></item><item><title>Windows: Remote Desktop Shutdown/Restart/Hibernate</title><link>http://blogs.hzsolutions.com/vnd/archive/2008/08/16/windows-remote-desktop-shutdownrestart.aspx</link><pubDate>Fri, 15 Aug 2008 07:18:10 GMT</pubDate><guid isPermaLink="true">http://blogs.hzsolutions.com/vnd/archive/2008/08/16/windows-remote-desktop-shutdownrestart.aspx</guid><wfw:comment>http://blogs.hzsolutions.com/vnd/comments/124.aspx</wfw:comment><wfw:commentRss>http://blogs.hzsolutions.com/vnd/comments/commentRss/124.aspx</wfw:commentRss><comments>http://blogs.hzsolutions.com/vnd/archive/2008/08/16/windows-remote-desktop-shutdownrestart.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blogs.hzsolutions.com/vnd/services/trackbacks/124.aspx</trackback:ping><source url="http://blogs.hzsolutions.com/vnd/rss.aspx">Windows: Remote Desktop Shutdown/Restart/Hibernate</source><description>&lt;p&gt;You'll not see "Shutdown" in Start Menu anymore when you are connected to a workstation via Remote Desktop, the "Shutdown" option changes to "Disconnect". If you want to turn off the computer, hibernate it, or put it on stand-by, there are really more than one solution to get thing done&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Open Task Manager, from the main Menu and select your shutdown option under "Shutdown" menu.&lt;/li&gt;    &lt;li&gt;On the desktop and type Alt+F4. This will call up the shutdown dialog.&lt;/li&gt;    &lt;li&gt;And the last way I know is using shutdown utilities from Star-&amp;gt;Run command, here are some samples&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;"&lt;strong&gt;shutdown&lt;/strong&gt;" to shutdown&lt;/li&gt;      &lt;li&gt;"&lt;strong&gt;shutdown -r&lt;/strong&gt;" to reboot &lt;/li&gt;      &lt;li&gt;"&lt;strong&gt;shutdown -i&lt;/strong&gt;" to get a GUI &lt;/li&gt;      &lt;li&gt;"&lt;strong&gt;shutdown -l&lt;/strong&gt;" to logoff&lt;/li&gt;   &lt;/ul&gt; &lt;/ol&gt;  &lt;p&gt;Off course that all need administrative privileges on the remote computer, you might supply your administrator account by %windir%\system32\runas.exe /user:AdminAcctNameHere "%windir%\system32\shutdown.exe -s "&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:b460f3bd-b11d-4525-9f8f-6d057dbc9374" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Windows%20XP" rel="tag"&gt;Windows XP&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Remote%20Desktop" rel="tag"&gt;Remote Desktop&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Shutdown" rel="tag"&gt;Shutdown&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.hzsolutions.com/vnd/aggbug/124.aspx" width="1" height="1" /&gt;</description><dc:creator>Vu Nguyen</dc:creator></item><item><title>ASP.NET: Can't not logged in successful on a few computer</title><link>http://blogs.hzsolutions.com/vnd/archive/2008/07/30/asp.net-cant-not-logged-in-successful-on-a-few-computer.aspx</link><pubDate>Tue, 29 Jul 2008 19:16:29 GMT</pubDate><guid isPermaLink="true">http://blogs.hzsolutions.com/vnd/archive/2008/07/30/asp.net-cant-not-logged-in-successful-on-a-few-computer.aspx</guid><wfw:comment>http://blogs.hzsolutions.com/vnd/comments/123.aspx</wfw:comment><wfw:commentRss>http://blogs.hzsolutions.com/vnd/comments/commentRss/123.aspx</wfw:commentRss><comments>http://blogs.hzsolutions.com/vnd/archive/2008/07/30/asp.net-cant-not-logged-in-successful-on-a-few-computer.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blogs.hzsolutions.com/vnd/services/trackbacks/123.aspx</trackback:ping><source url="http://blogs.hzsolutions.com/vnd/rss.aspx">ASP.NET: Can't not logged in successful on a few computer</source><description>&lt;p&gt;One of our ASP.NET web application goes to production for months. Last week, we received reports on a few computers , users can't log-in with their correct credentials. We asked them to have administrator control on a computer which problem happen. After make sure that their Browser security, Anti-spyware, Anti-Virus and anything might cause the problem. We have decided install a HTTP traffic monitor tool like &lt;a href="http://www.ieinspector.com/dominspector/index.html" target="_blank"&gt;IE Web Developer V2&lt;/a&gt; to see what happening on this computer with our website&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;The browser requests the specified &lt;u&gt;&lt;em&gt;login.aspx&lt;/em&gt;&lt;/u&gt; page &lt;/li&gt;    &lt;li&gt;The server responds with the login page &lt;/li&gt;    &lt;li&gt;The user fills in the login page and submits the form, so the browser POST the form back to the login page &lt;/li&gt;    &lt;li&gt;If the credentials are valid, the server responds with another "302 Page Moved" status, a Location header pointing to a &lt;u&gt;&lt;em&gt;protected.aspx&lt;/em&gt;&lt;/u&gt;, and a Set-Cookie header providing the encrypted Forms Authentication Ticket. Everything seem as it happen on working computer. &lt;/li&gt;    &lt;li&gt;Get redirected to &lt;u&gt;&lt;em&gt;login.aspx&lt;/em&gt;&lt;/u&gt; page again &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Nothing potential caused the problems and we did frustrated after 5 days without able to location is that wrong in client side or server side after&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Replace authentication module by new one &lt;/li&gt;    &lt;li&gt;Setup brand new application to a sandbox &lt;/li&gt;    &lt;li&gt;Review Web server configurations &lt;/li&gt;    &lt;li&gt;And anything we can think to.... &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Really headache, huh ?&lt;/p&gt;  &lt;p&gt;God bless us, when we almost ran out of time and received more bad report from our users, we found why. I'm glad to share you our report on this problems, due to rights have been removed&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Introduction&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;- When user provide correct username/password, Concorde will send them a authentication cookie with Issued date and Expired Date, these date are in &lt;b&gt;&lt;u&gt;GMT time zone&lt;/u&gt;&lt;/b&gt;. &lt;/p&gt;  &lt;p&gt;- In our application, the authentication cookies will be expired in next 30’, as described in timeout attribute of &amp;lt;Forms…&amp;gt; tag of Web.config.&lt;/p&gt;  &lt;p&gt;- This cookies is very important in order to authenticate visitor in HTTP stateless environment&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Problems&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;- User can’t login occasionally in few computers, reported seem to be Internet Explorer 6 problems, FireFox and IE 7 are seem to be fine.&lt;/p&gt;  &lt;p&gt;- We have re-write code to replace authentication by another alternative methods, but not work.&lt;/p&gt;  &lt;p&gt;- Tracing Raw HTTP with some HTTP traffic monitoring tools show that&lt;/p&gt;  &lt;p&gt;o Login code work well&lt;/p&gt;  &lt;p&gt;o Authentication cookie issued but Internet Explorer seem rejected it without a reason (surely Its not blocked by security policy), cookies appeared and lost ==&amp;gt; &lt;b&gt;YES, this is problem&lt;/b&gt;.&lt;/p&gt;  &lt;p&gt;- We have check to make sure nothing straight  happen to&lt;/p&gt;  &lt;p&gt;o Browser, Browser’s security and privacy setting&lt;/p&gt;  &lt;p&gt;o Client’s antivirus, firewall, anti-spyware,…&lt;/p&gt;  &lt;p&gt;o Evaluating setting of websites, domains, sub-domains, and whole IIS setting, still see nothing.&lt;/p&gt;  &lt;p&gt;o Online community doesn’t help at all.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Root cause&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;- Hopelessly, but how about cookie’s expired time ? &lt;/p&gt;  &lt;p&gt;- Follow that idea and found there are something wrong to Cookie expired date, We didn’t really that because the value are in GMT, when client machine are in GMT-7. Convert current time in Server Machine, Client Machine to GMT, It’s clearly that &lt;u&gt;Expired Date of the cookie are in past, and of course that IE will rejected it because it was expired&lt;/u&gt;. &lt;/p&gt;  &lt;p&gt;- That mean there are something wrong with clocks on Server or Client machine here, but if this bug is occasionally happen, then this client’s clock must be the one wrong, I check out and see that this machine doesn’t auto-syn with Internet time server, that’s is.&lt;/p&gt;  &lt;p&gt;- Also noticed that might be this is Daylight-saving problem and found a useful paper at &lt;a href="http://support.microsoft.com/kb/934413"&gt;http://support.microsoft.com/kb/934413&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Solution&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;- Change timeout value of authentication cookie from 30 minutes to 120 minutes by change timeout="120" &amp;lt;forms name="XYZAuthentication" protection="All" path="/" loginUrl="~/Login.aspx" slidingExpiration="true" timeout="120" cookieless="UseCookies"/&amp;gt; in Web.config.&lt;/p&gt;  &lt;p&gt;- Noticed that will not sure when clock on client machine faster than server machine above 2 hours (120 minutes), then ask end-users to&lt;/p&gt;  &lt;p&gt;o Automatically synchronize with an Internet time server as attached screenshot&lt;/p&gt;  &lt;p&gt;o Follow Microsoft’s Daylight Saving Time Help at &lt;a href="http://support.microsoft.com/dst2007"&gt;http://support.microsoft.com/dst2007&lt;/a&gt;&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:18522ee2-2dc2-4391-be1e-7b2e49017279" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/ASP.NET" rel="tag"&gt;ASP.NET&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Membership" rel="tag"&gt;Membership&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Login%20problem" rel="tag"&gt;Login problem&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.hzsolutions.com/vnd/aggbug/123.aspx" width="1" height="1" /&gt;</description><dc:creator>Vu Nguyen</dc:creator></item><item><title>.NET Framework 3.5 Training Kit</title><link>http://blogs.hzsolutions.com/vnd/archive/2008/07/30/.net-framework-3.5-training-kit.aspx</link><pubDate>Tue, 29 Jul 2008 09:51:44 GMT</pubDate><guid isPermaLink="true">http://blogs.hzsolutions.com/vnd/archive/2008/07/30/.net-framework-3.5-training-kit.aspx</guid><wfw:comment>http://blogs.hzsolutions.com/vnd/comments/120.aspx</wfw:comment><wfw:commentRss>http://blogs.hzsolutions.com/vnd/comments/commentRss/120.aspx</wfw:commentRss><comments>http://blogs.hzsolutions.com/vnd/archive/2008/07/30/.net-framework-3.5-training-kit.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blogs.hzsolutions.com/vnd/services/trackbacks/120.aspx</trackback:ping><source url="http://blogs.hzsolutions.com/vnd/rss.aspx">.NET Framework 3.5 Training Kit</source><description>&lt;p&gt;- The Visual Studio 2008 and .NET Framework 3.5 Training Kit includes presentations, hands-on labs, and demos. This content is designed to help you learn how to utilize the Visual Studio 2008 features and a variety of framework technologies including: LINQ, C# 3.0, Visual Basic 9, WCF, WF, WPF, ASP.NET AJAX, VSTO, CardSpace, SilverLight, Mobile and Application Lifecycle Management.&lt;/p&gt;  &lt;p&gt;- The .NET Framework 3.5 Enhancements Training Kit includes presentations, hands-on labs, and demos. This content is designed to help you learn how to utilize the .NET 3.5 Enhancement features including: ASP.NET MVC, ASP.NET Dynamic Data, ASP.NET AJAX History, ASP.NET Silverlight controls, ADO.NET Data Services and ADO.NET Entity Framework.&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;&lt;a title="Visual Studio 2008 and .NET Framework 3.5 Training Kit" href="http://www.microsoft.com/downloads/details.aspx?familyid=8BDAA836-0BBA-4393-94DB-6C3C4A0C98A1&amp;amp;displaylang=en" target="_blank"&gt;Visual Studio 2008 and .NET Framework 3.5 Training Kit&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a title=".NET 3.5 Enhancements Training Kit" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=355c80e9-fde0-4812-98b5-8a03f5874e96&amp;amp;displaylang=en" target="_blank"&gt;.NET 3.5 Enhancements Training Kit&lt;/a&gt;&lt;/li&gt; &lt;/ol&gt;  &lt;p&gt; &lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:60892abc-c57e-4150-88c4-b06688f30e3e" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Visual%20Studio" rel="tag"&gt;Visual Studio&lt;/a&gt;,&lt;a href="http://technorati.com/tags/.NET%203.5" rel="tag"&gt;.NET 3.5&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Trainning%20Kit" rel="tag"&gt;Trainning Kit&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.hzsolutions.com/vnd/aggbug/120.aspx" width="1" height="1" /&gt;</description><dc:creator>Vu Nguyen</dc:creator></item><item><title>ASP.NET: Read Authentication Form Timeout value</title><link>http://blogs.hzsolutions.com/vnd/archive/2008/07/18/asp.net-read-authentication-form-timeout-value.aspx</link><pubDate>Fri, 18 Jul 2008 06:06:28 GMT</pubDate><guid isPermaLink="true">http://blogs.hzsolutions.com/vnd/archive/2008/07/18/asp.net-read-authentication-form-timeout-value.aspx</guid><wfw:comment>http://blogs.hzsolutions.com/vnd/comments/119.aspx</wfw:comment><wfw:commentRss>http://blogs.hzsolutions.com/vnd/comments/commentRss/119.aspx</wfw:commentRss><comments>http://blogs.hzsolutions.com/vnd/archive/2008/07/18/asp.net-read-authentication-form-timeout-value.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blogs.hzsolutions.com/vnd/services/trackbacks/119.aspx</trackback:ping><source url="http://blogs.hzsolutions.com/vnd/rss.aspx">ASP.NET: Read Authentication Form Timeout value</source><description>&lt;p&gt;When you write a custom Membership provider, you might need to know timeout value of authentication form which declared in Web.config tto fullfil to your custom authentication ticket&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.hzsolutions.com/images/blogs_hzsolutions_com/vnd/WindowsLiveWriter/ASP.NETReadAuthenticationFormTimeoutvalu_8E20/image_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="436" alt="// Get form authentication time-out" src="http://blogs.hzsolutions.com/images/blogs_hzsolutions_com/vnd/WindowsLiveWriter/ASP.NETReadAuthenticationFormTimeoutvalu_8E20/image_thumb.png" width="644" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:42bd62dc-3a78-4921-99c8-c468578bcb73" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/ASP.NET" rel="tag"&gt;ASP.NET&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Authentication" rel="tag"&gt;Authentication&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Timeout" rel="tag"&gt;Timeout&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Custom%20Membership%20Provider" rel="tag"&gt;Custom Membership Provider&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.hzsolutions.com/vnd/aggbug/119.aspx" width="1" height="1" /&gt;</description><dc:creator>Vu Nguyen</dc:creator></item><item><title>ASP.NET: Display Row Index number in GridView, DataGrid, Repeater, DataList</title><link>http://blogs.hzsolutions.com/vnd/archive/2008/07/05/asp.net-display-row-index-number-in-gridview-datagrid-repeater-datalist.aspx</link><pubDate>Fri, 04 Jul 2008 17:08:41 GMT</pubDate><guid isPermaLink="true">http://blogs.hzsolutions.com/vnd/archive/2008/07/05/asp.net-display-row-index-number-in-gridview-datagrid-repeater-datalist.aspx</guid><wfw:comment>http://blogs.hzsolutions.com/vnd/comments/118.aspx</wfw:comment><wfw:commentRss>http://blogs.hzsolutions.com/vnd/comments/commentRss/118.aspx</wfw:commentRss><comments>http://blogs.hzsolutions.com/vnd/archive/2008/07/05/asp.net-display-row-index-number-in-gridview-datagrid-repeater-datalist.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blogs.hzsolutions.com/vnd/services/trackbacks/118.aspx</trackback:ping><source url="http://blogs.hzsolutions.com/vnd/rss.aspx">ASP.NET: Display Row Index number in GridView, DataGrid, Repeater, DataList</source><description>&lt;h3&gt;Solution #1&lt;/h3&gt;  &lt;p&gt;&amp;lt;asp:TemplateField&amp;gt;   &lt;br /&gt;    &amp;lt;ItemTemplate&amp;gt;    &lt;br /&gt;        &amp;lt;%# &lt;strong&gt;&lt;u&gt;Container.DataItemIndex&lt;/u&gt;&lt;/strong&gt; + 1 %&amp;gt;    &lt;br /&gt;    &amp;lt;/ItemTemplate&amp;gt;    &lt;br /&gt;&amp;lt;/asp:TemplateField&amp;gt;&lt;/p&gt; &lt;form id="aspnetForm" name="aspnetForm" action="http://forums.asp.net/p/992655/1292440.aspx" method="post"&gt;   &lt;h3 class="content_container"&gt;Solution #2&lt;/h3&gt;    &lt;div class="content_container"&gt;     &lt;ul&gt;       &lt;li&gt;&lt;strong&gt;Template&lt;/strong&gt;&lt;/li&gt;     &lt;/ul&gt;   &lt;/div&gt; &amp;lt;asp:TemplateField&amp;gt;    &lt;br /&gt;    &amp;lt;ItemTemplate&amp;gt;    &lt;br /&gt;        &amp;lt;asp:Label runat="server" ID="lblRowIndex"/&amp;gt;    &lt;br /&gt;    &amp;lt;/ItemTemplate&amp;gt;    &lt;br /&gt;&amp;lt;/asp:TemplateField&amp;gt;    &lt;ul&gt;     &lt;li&gt;&lt;strong&gt;Behind code&lt;/strong&gt;&lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;protected void GridView1_RowCreated1(object sender, System.Web.UI.WebControls.GridViewRowEventArgs e)      &lt;br /&gt;{       &lt;br /&gt;    if (e.Row.RowType == DataControlRowType.DataRow) {  &lt;br /&gt;        Label lblRowIndex= (Label)e.Row.Cells(0).Controls(0);  &lt;br /&gt;        lblRowIndex.Text = (&lt;strong&gt;&lt;u&gt;e.Row.RowIndex&lt;/u&gt;&lt;/strong&gt; + 1).ToString();       &lt;br /&gt;    }       &lt;br /&gt;} &lt;/p&gt; &lt;/form&gt;&lt;img src="http://blogs.hzsolutions.com/vnd/aggbug/118.aspx" width="1" height="1" /&gt;</description><dc:creator>Vu Nguyen</dc:creator></item><item><title>AJAXToolKit: ModalPopupExtender and Form validation issues</title><link>http://blogs.hzsolutions.com/vnd/archive/2008/07/05/ajaxtoolkit-modalpopupextender-and-form-validation-issues.aspx</link><pubDate>Fri, 04 Jul 2008 15:36:55 GMT</pubDate><guid isPermaLink="true">http://blogs.hzsolutions.com/vnd/archive/2008/07/05/ajaxtoolkit-modalpopupextender-and-form-validation-issues.aspx</guid><wfw:comment>http://blogs.hzsolutions.com/vnd/comments/117.aspx</wfw:comment><wfw:commentRss>http://blogs.hzsolutions.com/vnd/comments/commentRss/117.aspx</wfw:commentRss><comments>http://blogs.hzsolutions.com/vnd/archive/2008/07/05/ajaxtoolkit-modalpopupextender-and-form-validation-issues.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blogs.hzsolutions.com/vnd/services/trackbacks/117.aspx</trackback:ping><source url="http://blogs.hzsolutions.com/vnd/rss.aspx">AJAXToolKit: ModalPopupExtender and Form validation issues</source><description>&lt;h3&gt;Why Validation Controls Don't Work ?&lt;/h3&gt;  &lt;p&gt;Found on &lt;a title="http://www.myonlyblog.com/2007/07/modalpopup-validation-controls-dont.html" href="http://www.myonlyblog.com/2007/07/modalpopup-validation-controls-dont.html"&gt;http://www.myonlyblog.com/2007/07/modalpopup-validation-controls-dont.html&lt;/a&gt;:&lt;/p&gt;  &lt;p&gt;"The solution, it turned out is REAL simple, don't use either the OkControlID or OnOkScript. Basically you don't need the OkControlID or OnOkScript to be set unless you plan on doing some processing on the client side, this was why I was not firing the validation controls, I was posting back first because I had both of these set."&lt;/p&gt;  &lt;h3&gt;Keep the ModalPopupExtender open when something wrong in Server processing&lt;/h3&gt;  &lt;p&gt;For example, you lets user to enter a data entry form in a ModalPopupExtender (something like Matt Berseth 's work at  &lt;a title="http://mattberseth.com/blog/2008/04/masterdetail_with_the_gridview.html" href="http://mattberseth.com/blog/2008/04/masterdetail_with_the_gridview.html"&gt;http://mattberseth.com/blog/2008/04/masterdetail_with_the_gridview.html&lt;/a&gt;), and you want to notify user if something wrong and data couldn't be saved properly and keep the ModalPopupExtender open, just all ModalPopupExtender.Show() in catch block of your try...catch statement.&lt;/p&gt;  &lt;p&gt;Anyway, if you like &lt;a title="http://mattberseth.com/blog/2008/04/masterdetail_with_the_gridview.html" href="http://mattberseth.com/blog/2008/04/masterdetail_with_the_gridview.html"&gt;http://mattberseth.com/blog/2008/04/masterdetail_with_the_gridview.html&lt;/a&gt;, you must read his bug fix &lt;a title="http://mattberseth.com/blog/2008/05/bug_bashbuttoncausesvalidation.html" href="http://mattberseth.com/blog/2008/05/bug_bashbuttoncausesvalidation.html"&gt;http://mattberseth.com/blog/2008/05/bug_bashbuttoncausesvalidation.html&lt;/a&gt; too !&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:a45ac4ed-07a9-4fc3-89f7-524c017e3a4a" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/ASP.NET" rel="tag"&gt;ASP.NET&lt;/a&gt;,&lt;a href="http://technorati.com/tags/AJAX" rel="tag"&gt;AJAX&lt;/a&gt;,&lt;a href="http://technorati.com/tags/AJAXToolKit" rel="tag"&gt;AJAXToolKit&lt;/a&gt;,&lt;a href="http://technorati.com/tags/ModalPopupExtender" rel="tag"&gt;ModalPopupExtender&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Data%20Entry" rel="tag"&gt;Data Entry&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Validation" rel="tag"&gt;Validation&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blogs.hzsolutions.com/vnd/aggbug/117.aspx" width="1" height="1" /&gt;</description><dc:creator>Vu Nguyen</dc:creator></item><item><title>Tìm Hiểu Card Màn hình Laptop và Chọn Mua </title><link>http://blogs.hzsolutions.com/phuongnt/archive/2008/05/27/t%c3%acm-hi%e1%bb%83u-card-m%c3%a0n-h%c3%acnh-laptop-v%c3%a0-ch%e1%bb%8dn-mua.aspx</link><pubDate>Mon, 26 May 2008 23:00:23 GMT</pubDate><guid isPermaLink="true">http://blogs.hzsolutions.com/phuongnt/archive/2008/05/27/t%c3%acm-hi%e1%bb%83u-card-m%c3%a0n-h%c3%acnh-laptop-v%c3%a0-ch%e1%bb%8dn-mua.aspx</guid><wfw:comment>http://blogs.hzsolutions.com/phuongnt/comments/116.aspx</wfw:comment><wfw:commentRss>http://blogs.hzsolutions.com/phuongnt/comments/commentRss/116.aspx</wfw:commentRss><comments>http://blogs.hzsolutions.com/phuongnt/archive/2008/05/27/t%c3%acm-hi%e1%bb%83u-card-m%c3%a0n-h%c3%acnh-laptop-v%c3%a0-ch%e1%bb%8dn-mua.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blogs.hzsolutions.com/phuongnt/services/trackbacks/116.aspx</trackback:ping><source url="http://blogs.hzsolutions.com/phuongnt/rss.aspx">Tìm Hiểu Card Màn hình Laptop và Chọn Mua </source><description>&lt;hr style="COLOR: #d1d1e1" size="1" /&gt;
&lt;!-- / icon and title --&gt;&lt;!-- message --&gt;
&lt;div id="post_message_1446"&gt;&lt;em&gt;&lt;strong&gt;(bài viết này chỉ để tham khảo thêm khi mua máy , không nặng về tính kỹ thuật của từng loại Card màn hình)&lt;/strong&gt;&lt;/em&gt;&lt;br /&gt;
&lt;br /&gt;
Khi máy tính xử lý các tác vụ đồ họa nặng như chơi game hoặc chỉnh sửa video thì các thông tin cần thiết cho việc hiển thị hình ảnh sẽ được lưu trữ tạm trong bộ nhớ RAM của bo mạch đồ họa (Video RAM). Những tác vụ hay game càng nặng nề thì lượng bộ nhớ cần thiết phải càng nhiều. Bo mạch đồ họa loại cũ có dung lượng bộ nhớ từ 32 tới 64 MB, dòng bo mạch tầm trung có dung lượng từ 64 tới 128 MB và các mẫu cao cấp (với giá cao hơn) có bộ nhớ từ 128 tới 256 hoặc 512M . Bộ nhớ 32 MB đáp ứng tốt các nhu cầu văn phòng, trong khi 64 MB có thể xem là đủ để chơi một số game thuộc loại cũ, nhưng thường không đủ đáp ứng các game mới khi chạy ở độ phân giải trên 1600 x 1200 pixel. Do đó, với các game 3D mới cũng như công việc xử lý đồ họa - phim ảnh cao cấp, bạn nên chọn bo mạch đồ họa với dung lượng bộ nhớ tối thiểu là 128 MB. &lt;br /&gt;
&lt;strong&gt;Cũng cần nhắc đến các loại bo mạch đồ họa tích hợp sẵn trên mainboard (thường gọi là card onboard)&lt;/strong&gt;, loại này chia sẻ bộ nhớ RAM của hệ thống để sử dụng cho đồ họa. Nhìn chung, việc chia sẻ này làm giảm tổng hiệu năng của hệ thống nhưng lại tạm đủ cho các tác vụ đơn giản. Vì vậy đây không phải là sự lựa chọn tốt cho các game thủ, người làm công việc thiết kế và xử lý phim ảnh&lt;br /&gt;
&lt;strong&gt;&lt;br /&gt;
ĐIỀU BĂN KHOĂN LÀ CARD MÀN HINH NÀO THÍCH HỢP VỚI CÔNG VIỆC CỦA MÌNH VÀ CHẤT LƯỢNG, GIÁ CẢ, CARD CỦA HÃNG NÀO THÌ TỐT HƠN...&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Hiện nay, hai "đại gia" về chip xử lý đồ họa là nVIDIA (geforce)và ATI(radeon) chiếm phần lớn thị trường thông qua nhiều nhà sản xuất thứ ba như Asus, Abit, Albatron, Gigabyte... Dòng cao cấp của ATI thường được ký hiệu XT hay Pro sau tên sản phẩm, còn cấp thấp là SE. Ví dụ đối với ATI RADEON 9800 thì tốc độ và hiệu năng sẽ được sắp xếp giảm dần theo &lt;strong&gt;RADEON 9800XT, RADEON 9800Pro, RADEON 9800SE&lt;/strong&gt;. Đối với nVIDIA, thứ tự lại là &lt;strong&gt;Ultra/Ti/Pro/SE và XT&lt;/strong&gt;.và &lt;strong&gt;G-&amp;gt;GS-&amp;gt;GT-&amp;gt;GTS&lt;/strong&gt;cho Laptop. Hãy chú ý ký hiệu XT đối với ATI thể hiện sự cao cấp, còn với nVIDIA lại là dòng rẻ tiền nhắm vào thị trường cấp thấp. nVIDIA chỉ tập trung vào sản xuất GPU (Graphic Processing Unit, bộ xử lý đồ họa), nên 100% card là của những hãng thứ ba. Còn ATI vừa sản xuất card, vừa bán GPU của mình cho các nhà sản xuất khác nên có nhiều lựa chọn hơn. Vì thế, các card AGP sử dụng GPU ATI được phân làm hai loại: BBA (Built by ATI, card do chính ATI sản xuất và bảo hành) và PBA (Powered by ATI, card do các hãng khác sản xuất với GPU ATI).&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;SHARE RAM TRÊN CARD MÀN HÌNH RỜI&lt;/strong&gt;:&lt;br /&gt;
&lt;br /&gt;
Hiện ATI đang sữ dụng công nghệ Hyper Memory và NVIDIA sử dụng TurboCAche để share thêm RAM từ bộ nhớ chính cho card màn hình rời.&lt;br /&gt;
&lt;strong&gt;- HYPERMEMORY&lt;/strong&gt; : loại này thường dễ xác định. Số RAM share sẽ bằng số RAM có sẵn trên card. Ví dụ 1 card VGA của ATI ghi: "256MB ATI Mobility Radeon X1400 HyperMemory” ta sẽ biết nó gồm 128Mb trên card + 128 MB share từ mainmemory.&lt;br /&gt;
- &lt;strong&gt;TURBOCACHE:&lt;/strong&gt; loại này tương đối khó xác định (có thể phải dùng phần mềm kiểm tra mới biết đích xác). Thí dụ 1 card VGA của NVIDIA ghi: "256MB Nvidia GeForce Go7400 TurboCache" thì có thể là share phân nữa như ATI (128 + 128), nhưng cũng có thể là share tới 3/4 (tức là 64 Mb trên card + 192Mb từ mainmemory)&lt;br /&gt;
&lt;br /&gt;
Card Geforce khá nhiều nhà nhập khẩu laptop Việt Nam chọn để nhập về. Các dòng card rời như : 8400, 8400GT, 8600, 8600GS, 8600GT, 8700... và các bạn đang phân vân về dung lượng và sự khác nhau của nó. &lt;br /&gt;
&lt;br /&gt;
dưới đây là những dòng Card đồ họa hỗ trợ DirectX 10 mới nhất: NVIDIA GeForce 8, ATI HD2xx&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;NVIDIA GEFORCE&lt;/strong&gt;&lt;br /&gt;
&lt;img alt="" border="0" src="http://i280.photobucket.com/albums/kk187/usalaptop/chipGeforce.jpg" /&gt;&lt;br /&gt;
GeForce 8400: bao gồm GeForce 8400M G, GeForce 8400M GS, GeForce 8400M GT&lt;br /&gt;
&lt;br /&gt;
&lt;img alt="" border="0" src="http://i280.photobucket.com/albums/kk187/usalaptop/8400GT.jpg" /&gt;&lt;br /&gt;
&lt;strong&gt;&lt;br /&gt;
Thông số kĩ thuật:&lt;/strong&gt;&lt;br /&gt;
Stream Processors: 16 (8400M G chỉ có 8)&lt;br /&gt;
Xung nhân: 400 MHz (8400M GT tới 450 MHz)&lt;br /&gt;
Shader Clock: 800 MHz (8400M GT tới 900 MHz)&lt;br /&gt;
Xung nhớ: 600 MHz&lt;br /&gt;
RAM: 256 MB (8400M GT tới 512 MB)&lt;br /&gt;
Giao tiếp bộ nhớ: 64-bit (riêng 8400M GT là 128-bit)&lt;br /&gt;
Băng thông: 9.6 GB/s (riêng 8400M GT 19.2 GB/s)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GeForce 8600: bao gồm GeForce 8600M GS, GeForce 8600M GT&lt;br /&gt;
&lt;br /&gt;
&lt;img alt="" border="0" src="http://i280.photobucket.com/albums/kk187/usalaptop/8600.jpg" /&gt;&lt;br /&gt;
&lt;br /&gt;
Thông số kĩ thuật&lt;br /&gt;
&lt;br /&gt;
Stream Processors: 16 (8600M GT tới 32)&lt;br /&gt;
Xung nhân: 600 MHz (8600M GT chỉ có 475 MHz)&lt;br /&gt;
Shader Clock: 1200 MHz (8400M GT chỉ có 950 MHz)&lt;br /&gt;
Xung nhớ: 700 MHz&lt;br /&gt;
RAM: 512 MB&lt;br /&gt;
Giao tiếp bộ nhớ: 128-bit (riêng 8400M GT là 128-bit)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
GeForce 8700M: chỉ có một đại diện duy nhất là GeForce 8700M GT&lt;br /&gt;
&lt;img alt="" border="0" src="http://i280.photobucket.com/albums/kk187/usalaptop/8700.jpg" /&gt;&lt;br /&gt;
&lt;em&gt;chết thèm với chú này hic hic!!&lt;/em&gt;&lt;br /&gt;
Thông số kĩ thuật&lt;br /&gt;
&lt;br /&gt;
Stream Processors: 32&lt;br /&gt;
Xung nhân: 625 MHz&lt;br /&gt;
Shader Clock: 1250 MHz&lt;br /&gt;
Xung nhớ: 800 MHz&lt;br /&gt;
RAM: 512 MB&lt;br /&gt;
Giao tiếp bộ nhớ: 128-bit&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;ATI RADEON&lt;/strong&gt;&lt;br /&gt;
&lt;img alt="" border="0" src="http://i280.photobucket.com/albums/kk187/usalaptop/ATIchip.jpg" /&gt;&lt;br /&gt;
&lt;br /&gt;
ATI Mobility Radeon X2300&lt;br /&gt;
&lt;br /&gt;
ATI Mobility Radeon HD 2300&lt;br /&gt;
&lt;br /&gt;
ATI Mobility Radeon HD 2400&lt;br /&gt;
&lt;br /&gt;
ATI Mobility Radeon HD 2400XT&lt;br /&gt;
&lt;br /&gt;
ATI Mobility Radeon X2500&lt;br /&gt;
&lt;br /&gt;
ATI Mobility Radeon HD 2600&lt;br /&gt;
&lt;br /&gt;
ATI Mobility Radeon HD 2600 XT&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;Để dễ dàng so sánh hơn. Các bạn vào link này tìm hiểu thêm&lt;br /&gt;
&lt;a target="_blank" href="http://www.notebookcheck.net/Mobile-Graphics-Cards-Benchmark-List.844.0.html"&gt;http://www.notebookcheck.net/Mobile-Graphi...List.844.0.html&lt;/a&gt;&lt;br /&gt;
&lt;/strong&gt;&lt;/div&gt;&lt;img src="http://blogs.hzsolutions.com/phuongnt/aggbug/116.aspx" width="1" height="1" /&gt;</description><dc:creator>Phuongnt</dc:creator></item><item><title>Free Wallpaper </title><link>http://blogs.hzsolutions.com/phuongnt/archive/2008/05/21/free-wallpaper.aspx</link><pubDate>Tue, 20 May 2008 11:50:07 GMT</pubDate><guid isPermaLink="true">http://blogs.hzsolutions.com/phuongnt/archive/2008/05/21/free-wallpaper.aspx</guid><wfw:comment>http://blogs.hzsolutions.com/phuongnt/comments/114.aspx</wfw:comment><wfw:commentRss>http://blogs.hzsolutions.com/phuongnt/comments/commentRss/114.aspx</wfw:commentRss><comments>http://blogs.hzsolutions.com/phuongnt/archive/2008/05/21/free-wallpaper.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blogs.hzsolutions.com/phuongnt/services/trackbacks/114.aspx</trackback:ping><source url="http://blogs.hzsolutions.com/phuongnt/rss.aspx">Free Wallpaper </source><description>&lt;ul&gt;
    &lt;li&gt;&lt;a href="http://www.pixelhigh.com/"&gt;http://www.pixelhigh.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.smashingmagazine.com/"&gt;http://www.smashingmagazine.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.digitalblasphemy.com/"&gt;http://www.digitalblasphemy.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://marcogomes.com/"&gt;http://marcogomes.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.rainbow.hereweb.com/"&gt;http://www.rainbow.hereweb.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://interfacelift.com/"&gt;http://interfacelift.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://reddodo.com/"&gt;http://reddodo.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.desktopstarships.com/"&gt;http://www.desktopstarships.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.hitnews.net/"&gt;http://www.hitnews.net/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.spacetelescope.org/"&gt;http://www.spacetelescope.org/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://pixel.customize.org/"&gt;http://pixel.customize.org/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.dualscreenwallpaper.com/"&gt;http://www.dualscreenwallpaper.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.snap2objects.com/"&gt;http://www.snap2objects.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.socksoff.co.uk/"&gt;http://www.socksoff.co.uk/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.theinspirationgallery.com/"&gt;http://www.theinspirationgallery.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.dieselstation.com/"&gt;http://www.dieselstation.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.banime.com/"&gt;http://www.banime.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://home.scarlet.be/"&gt;http://home.scarlet.be/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.wallpaperbase.com/"&gt;http://www.wallpaperbase.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.desktopanime.com/"&gt;http://www.desktopanime.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.thecollection.fr/"&gt;http://www.thecollection.fr/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.hamsterinthewheel.com/"&gt;http://www.hamsterinthewheel.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.picable.com/"&gt;http://www.picable.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.almostsmart.com/"&gt;http://www.almostsmart.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.flickr.com/photos/"&gt;http://www.flickr.com/photos/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.myfreewallpapers.net/"&gt;http://www.myfreewallpapers.net/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.shawncochran.com/"&gt;ttp://www.shawncochran.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.free-chinese-names.com/"&gt;http://www.free-chinese-names.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.bored-night.com/"&gt;http://www.bored-night.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://img14.imagevenue.com/"&gt;http://img14.imagevenue.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.14pixels.com/"&gt;http://www.14pixels.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.paulscharffphotography.com/"&gt;http://www.paulscharffphotography.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.fantom-xp.com/"&gt;http://www.fantom-xp.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://m3.picsdown.com/"&gt;http://m3.picsdown.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.mafiadeath.com/"&gt;http://www.mafiadeath.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://vampeta.cgsociety.org/"&gt;http://vampeta.cgsociety.org/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.wpdb.de/"&gt;http://www.wpdb.de/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://artguru.info/index.php/"&gt;http://artguru.info/index.php/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://good-times.webshots.com/"&gt;http://good-times.webshots.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://devilcry.org/"&gt;http://devilcry.org/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.screentreats.com/"&gt;http://www.screentreats.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://mundogeek.net/"&gt;http://mundogeek.net/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://nature.wallpaperme.com/"&gt;http://nature.wallpaperme.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://blog.mantiddesign.com/"&gt;http://blog.mantiddesign.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.terragalleria.com/"&gt;http://www.terragalleria.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.wallpapercube.com/"&gt;http://www.wallpapercube.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://wallpapers.eigenstart.nl/"&gt;http://wallpapers.eigenstart.nl/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://forums.ipodhacks.com/"&gt;http://forums.ipodhacks.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.sinisterfonts.com/"&gt;http://www.sinisterfonts.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://veerle.duoh.com/"&gt;http://veerle.duoh.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.dvd-ripper-copy.com/"&gt;http://www.dvd-ripper-copy.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.noncicredo.net/"&gt;http://www.noncicredo.net/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://pixelgirlpresents.com/"&gt;http://pixelgirlpresents.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://nullchance.com/"&gt;http://nullchance.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.vladstudio.com/"&gt;http://www.vladstudio.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.antoineetmanuel.com/"&gt;http://www.antoineetmanuel.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.veer.com/"&gt;http://www.veer.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.thescifiworld.net/"&gt;http://www.thescifiworld.net/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://bighugelabs.com/"&gt;http://bighugelabs.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.johndufresne.com/"&gt;http://www.johndufresne.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.widescreenbabes.com/"&gt;http://www.widescreenbabes.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.quotexite.com/"&gt;http://www.quotexite.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://wallpapers.jurko.net/"&gt;http://wallpapers.jurko.net/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://photoblog.dornblut.net/"&gt;http://photoblog.dornblut.net/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://walnutwallpaper.com/"&gt;http://walnutwallpaper.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.dpics.org/"&gt;http://www.dpics.org/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.fotocommunity.com/"&gt;http://www.fotocommunity.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://pr0tek.phil0d0x.com/"&gt;http://pr0tek.phil0d0x.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://wallpapers.free-review.net/"&gt;http://wallpapers.free-review.net/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://wallpapers.celebritydesktop.com/"&gt;http://wallpapers.celebritydesktop.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.seriouswheels.com/"&gt;http://www.seriouswheels.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.linkinn.com/_"&gt;http://www.linkinn.com/_&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://cutegallery.vietnhim.com/"&gt;http://cutegallery.vietnhim.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.fotocommunity.de/"&gt;http://www.fotocommunity.de/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.freewebs.com/"&gt;http://www.freewebs.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.blueradargun.com/"&gt;http://www.blueradargun.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.acreativedesktop.com/"&gt;http://www.acreativedesktop.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.constanthope.org/"&gt;http://www.constanthope.org/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.freedesktopwallpapers.ru/"&gt;http://www.freedesktopwallpapers.ru/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://luxton.blogware.com/"&gt;http://luxton.blogware.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.fanimages.com/"&gt;http://www.fanimages.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.thememyphone.com/"&gt;http://www.thememyphone.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://wallpaper.neonsight.com/"&gt;http://wallpaper.neonsight.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.free-wallpaper-download.com/"&gt;http://www.free-wallpaper-download.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.free-christian-wallpaper.com/"&gt;http://www.free-christian-wallpaper.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.readersdigest.ca/"&gt;http://www.readersdigest.ca/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://lair.org/bear/photos/"&gt;http://lair.org/bear/photos/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://wwf.worldwildlife.org/"&gt;http://wwf.worldwildlife.org/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://hubblesite.org/"&gt;http://hubblesite.org/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://bestqualityphoto.blogspot.com/"&gt;http://bestqualityphoto.blogspot.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.fegovi.com/"&gt;http://www.fegovi.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://interfacelift.com/"&gt;http://interfacelift.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.socwall.com/"&gt;http://www.socwall.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.digitalblasphemy.com/"&gt;http://www.digitalblasphemy.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://sensitivelight.com/"&gt;http://sensitivelight.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://andidas.deviantart.net/"&gt;http://andidas.deviantart.net/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.wallpaperbase.com/"&gt;http://www.wallpaperbase.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.worldstart.com/"&gt;http://www.worldstart.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.flickr.com/"&gt;http://www.flickr.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.thebest3d.com/"&gt;http://www.thebest3d.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.linuxhotbox.com/"&gt;http://www.linuxhotbox.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.solarvoyager.com/"&gt;http://www.solarvoyager.com/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.dreamart.us/"&gt;http://www.dreamart.us/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.gabrielleanwar.co.uk/"&gt;http://www.gabrielleanwar.co.uk/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.straphael.net/"&gt;http://www.straphael.net/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://oceanexplorer.noaa.gov/"&gt;http://oceanexplorer.noaa.gov/&lt;/a&gt;&lt;br /&gt;
    &lt;/li&gt;
    &lt;li&gt;&lt;a href="http://www.unitednuclear.com/"&gt;http://www.unitednuclear.com/&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;img src="http://blogs.hzsolutions.com/phuongnt/aggbug/114.aspx" width="1" height="1" /&gt;</description><dc:creator>Phuongnt</dc:creator></item><item><title>&gt; 6 Phần Mềm Miễn Phí Không Thể Thiếu Cho Chỉnh Sửa ảnh Số, những phần mềm khá hay</title><link>http://blogs.hzsolutions.com/phuongnt/archive/2008/05/21/6-ph%e1%ba%a7n-m%e1%bb%81m-mi%e1%bb%85n-ph%c3%ad-kh%c3%b4ng-th%e1%bb%83-thi%e1%ba%bfu-cho.aspx</link><pubDate>Tue, 20 May 2008 11:47:23 GMT</pubDate><guid isPermaLink="true">http://blogs.hzsolutions.com/phuongnt/archive/2008/05/21/6-ph%e1%ba%a7n-m%e1%bb%81m-mi%e1%bb%85n-ph%c3%ad-kh%c3%b4ng-th%e1%bb%83-thi%e1%ba%bfu-cho.aspx</guid><wfw:comment>http://blogs.hzsolutions.com/phuongnt/comments/113.aspx</wfw:comment><wfw:commentRss>http://blogs.hzsolutions.com/phuongnt/comments/commentRss/113.aspx</wfw:commentRss><comments>http://blogs.hzsolutions.com/phuongnt/archive/2008/05/21/6-ph%e1%ba%a7n-m%e1%bb%81m-mi%e1%bb%85n-ph%c3%ad-kh%c3%b4ng-th%e1%bb%83-thi%e1%ba%bfu-cho.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blogs.hzsolutions.com/phuongnt/services/trackbacks/113.aspx</trackback:ping><source url="http://blogs.hzsolutions.com/phuongnt/rss.aspx">&gt; 6 Phần Mềm Miễn Phí Không Thể Thiếu Cho Chỉnh Sửa ảnh Số, những phần mềm khá hay</source><description>&lt;strong&gt;&lt;span style="font-size: 12pt; line-height: 100%;"&gt;
&lt;div align="center"&gt;6 phần mềm miễn phí không thể thiếu cho chỉnh sửa ảnh số&lt;/div&gt;
&lt;!--sizec--&gt;&lt;/span&gt;&lt;!--/sizec--&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Những phần mềm vượt trội sau sẽ giúp bạn chỉnh sửa hiệu quả kho ảnh số của mình mà không cần tốn nhiều công sức, và không cần bỏ ra nhiều tiền bởi đa phần các chương trình là miễn phí.&lt;br /&gt;
&lt;br /&gt;
Bạn cần "làm sạch" ảnh, xóa hiệu ứng mắt đỏ, chỉnh sửa gamma, hay bổ sung các hiệu ứng đặc biệt? Có rất nhiều phần mềm có khả năng thực hiện điều này. Các ứng dụng sau dành cho cả đối tượng amateur lẫn chuyên nghiệp.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt; 1. The Gimp:&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Phần mềm nguồn mở này được thiết kế khá tốt, trình bày tập trung và hoàn toàn miễn phí. Gimp có một số tính năng rất mạnh có thể sánh cùng với Photoshop, bao gồm các bộc lọc, hiệu ứng, mask và lớp. Dĩ nhiên, chương trình này cũng có các công cụ cơ bản dành cho một trình chỉnh sửa ảnh, chẳng hạn như sửa hiệu ứng mắt đỏ. Nếu bạn đang tìm kiếm một chương trình chỉnh sửa ảnh chuyên nghiệp mà không cần đầu tư cho cả một gói ứng dụng, hoặc ko muốn trả tiền, thì Gimp sẽ rất thích hợp cho bạn.&lt;br /&gt;
&lt;br /&gt;
&lt;a target="_blank" href="http://www.pcworld.com/downloads/file/fid,23351-order,1-page,1/description.html"&gt;download&lt;/a&gt;. Giá: Miễn phí&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt; 2. XnView:&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Khi đã quen với các chương trình chỉnh sửa ảnh, thì không có gì tốt hơn là một phần mềm miễn phí, đặc biệt là ứng dụng đó lại có nhiều công cụ chỉnh sửa ảnh như XnView. Bạn có thể điều chỉnh kích thước, chỉnh hiệu ứng mắt đỏ, xoay, trượt, và thực hiện nhiều tác vụ chỉnh ảnh như độ sáng, tương phản, và gamma. Chương trình này còn có thể chuyển ảnh sang nhiều định dạng ảnh khác nhau. XnView không phải là một công cụ mạnh như Gimp nhưng ít nhất nó cũng có những tính năng cần thiết nhất, và ngoài ra nó hoàn toàn miễn phí.&lt;br /&gt;
&lt;br /&gt;
&lt;a target="_blank" href="http://www.pcworld.com/downloads/file/fid,62355-page,1-c,tools/description.html"&gt;download&lt;/a&gt;. Giá: Miễn phí&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt; 3. Image Resizer:&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Bạn cần một chương trình có thể chỉnh kích cỡ hàng loạt ảnh một cách nhanh chóng? Hãy sử dụng trình miễn phí rất dễ sử dụng này của Microsoft trong gói PowerToy. Nhấn chuột phải vào một ảnh hoặc một nhóm ảnh, rồi chọn chế độ Resize Pictures, bạn sẽ có thể chỉnh lại kích cỡ ảnh theo các định dạng: Nhỏ (640x480 pixel), Trung bình (800x600 pixel), Lớn (1024x768 pixel), hoặc Handheld PC (240x320 pixel).&lt;br /&gt;
&lt;br /&gt;
Khi lựa chọn ảnh và nhấn OK, chương trình sẽ chỉnh sửa ảnh sang kích cỡ khác trong khi vẫn giữ nguyên ảnh gốc. Nếu bạn nhấn vào nút Advanced trước khi nhấn OK, bạn có thể chỉnh sửa ảnh gốc thay vì copy chúng.&lt;br /&gt;
&lt;br /&gt;
&lt;a target="_blank" href="http://www.pcworld.com/downloads/file/fid,68698-page,1-c,images/description.html"&gt;download&lt;/a&gt;. Giá: Miễn phí&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt; 4. FxFoto 2.0:&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Lại là một chương trình miễn phí khác nhưng khả năng chỉnh sửa ảnh lại mạnh đến mức ngạc nhiên. Các tính năng của FxFoto 2.0 có rất nhiều: loại bỏ hiệu ứng mắt đỏ, chỉnh độ sáng, tương phản, gamma, cân bằng màu, hiệu ứng bộ lọc, loại bỏ vết nhơ tự động, vẽ, nhân bản, bổ sung frame, tạo viền...&lt;br /&gt;
&lt;br /&gt;
Giao diện làm việc của FXFoto 2.0 cũng rất tuyệt, nó tạo một thư viện ảnh ngay phía dưới (bên trái) màn hình để bạn có thể dễ dàng kéo xuyên suốt và tìm chính xác tấm ảnh bạn muốn. Khi đã chỉnh sửa ảnh xong, bạn có thể tạo slideshow với các hiệu ứng chuyển đổi chuyên nghiệp. Ngoài ra, chương trình còn cho phép tạo ảnh nghệ thuật, và có những công cụ chia sẻ ảnh qua e-e-mail, upload lên site chia sẻ hoặc ghi vào đĩa CD.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a target="_blank" href="http://www.pcworld.com/downloads/file/fid,23345-page,1-c,imageeditors/description.html"&gt;download&lt;/a&gt;. Giá: Miễn phí&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;5. Roxio Media Ticker&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Nếu bạn muốn một kiểu trình diễn ảnh dạng trượt ngang qua màn hình desktop, hay muốn trang trí ảnh cho những người khác xem thông qua trang chia sẻ Flickr thì Roxio Media Ticker sẽ là lựa chọn đúng đắn.&lt;br /&gt;
&lt;br /&gt;
Chương trình có thể tạo thanh trượt dành cho ảnh để bạn có thể đặt chúng ở bất kỳ nơi nào trên màn hình desktop. Ảnh có thể là ảnh từ ổ cứng, từ RSS feed, hoặc từ ảnh upload lên Flickr. Khi di chuột qua bất cứ ảnh nào bạn đều nhìn thấy thông tin mô tả. Khi nhấn đúp vào ảnh, nó sẽ hiển thị to hơn trên màn hình, để từ đó bạn có thể in ảnh, e-mail, xoay chuyển, hoặc tạo ảnh nền...&lt;br /&gt;
&lt;br /&gt;
&lt;a target="_blank" href="http://www.pcworld.com/downloads/file/fid,68701-order,1-page,1/description.html"&gt;download&lt;/a&gt;. Giá: Miễn phí.&lt;br /&gt;
&lt;br /&gt;
&lt;strong&gt;6. Photoscape&lt;/strong&gt;&lt;br /&gt;
&lt;br /&gt;
Photoscape là một ví dụ khác về phần mềm tuy miễn phí nhưng lại có đầy đủ chức năng, từ xem ảnh, chỉnh ảnh, tạo slideshow, chỉnh sửa nhiều file cùng lúc, chụp màn hình... Ứng dụng này còn có các công cụ cải tiến khác, chẳng hạn như nối nhiều ảnh thành một khung hình, hoặc import file ảnh RAW và chuyển đổi thành ảnh .JPEG.&lt;br /&gt;
&lt;br /&gt;
Mặc dù chương trình trình miễn phí nhưng Photoscape vẫn có cơ chế ủng hộ tài chính cho tác giả nếu người dùng muốn.&lt;img src="http://blogs.hzsolutions.com/phuongnt/aggbug/113.aspx" width="1" height="1" /&gt;</description><dc:creator>Phuongnt</dc:creator></item><item><title>ASP.NET: Create ASP.NET 2.0 Multilingual Websites</title><link>http://blogs.hzsolutions.com/vnd/archive/2008/05/12/asp.net-create-asp.net-2.0-multilingual-websites.aspx</link><pubDate>Sun, 11 May 2008 10:21:03 GMT</pubDate><guid isPermaLink="true">http://blogs.hzsolutions.com/vnd/archive/2008/05/12/asp.net-create-asp.net-2.0-multilingual-websites.aspx</guid><wfw:comment>http://blogs.hzsolutions.com/vnd/comments/112.aspx</wfw:comment><wfw:commentRss>http://blogs.hzsolutions.com/vnd/comments/commentRss/112.aspx</wfw:commentRss><comments>http://blogs.hzsolutions.com/vnd/archive/2008/05/12/asp.net-create-asp.net-2.0-multilingual-websites.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blogs.hzsolutions.com/vnd/services/trackbacks/112.aspx</trackback:ping><source url="http://blogs.hzsolutions.com/vnd/rss.aspx">ASP.NET: Create ASP.NET 2.0 Multilingual Websites</source><description>&lt;ol&gt;   &lt;li&gt;Localizing process (from &lt;strong&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/aa905797.aspx"&gt;Michèle Leroux Bustamante&lt;/a&gt;&lt;/strong&gt;)&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;&lt;b&gt;Design pages&lt;/b&gt; by applying a combination of static HTML and ASP.NET server controls. &lt;/li&gt;      &lt;li&gt;&lt;b&gt;Prepare static areas for localization&lt;/b&gt; by wrapping them with the ASP.NET &lt;b&gt;Localize&lt;/b&gt; control. &lt;/li&gt;      &lt;li&gt;&lt;b&gt;Provide proper control names&lt;/b&gt; to all server controls so that generated event handlers and resource keys can be easily recognized. &lt;/li&gt;      &lt;li&gt;&lt;b&gt;Create shared resources&lt;/b&gt; in the App_GlobalResources subdirectory. These can be .resx files that already exist, or new .resx files created to hold terms that will be shared across several pages. &lt;/li&gt;      &lt;li&gt;&lt;b&gt;Associate shared resources&lt;/b&gt; with control properties using explicit resource expressions, where appropriate. It is best to do this before generating local resources for the page. &lt;/li&gt;      &lt;li&gt;&lt;b&gt;Generate local resources&lt;/b&gt; while in Page Design view by selecting the &lt;b&gt;Generate Local Resource&lt;/b&gt; menu item.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Video &lt;a href="http://www.asp.net/learn/videos/video-40.aspx" target="_blank"&gt;How Do I: Create a Multi-Lingual Site with Localization?&lt;/a&gt; from &lt;a href="http://www.asp.net/learn/videos/"&gt;ASP.NET 2.0 "How Do I" video series&lt;/a&gt; of Scott Stansfield&lt;/li&gt;    &lt;li&gt;Tutorials&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;&lt;a title="http://www.beansoftware.com/ASP.NET-Tutorials/Globalisation-Multilingual-CultureInfo.aspx" href="http://www.beansoftware.com/ASP.NET-Tutorials/Globalisation-Multilingual-CultureInfo.aspx"&gt;http://www.beansoftware.com/ASP.NET-Tutorials/Globalisation-Multilingual-CultureInfo.aspx&lt;/a&gt;.&lt;/li&gt;      &lt;li&gt;Visually &amp;amp; easily to learn tutorial from Wei-Meng Lee &lt;a title="http://www.ondotnet.com/pub/a/dotnet/2005/08/08/localizingaspnet20.html?page=1" href="http://www.ondotnet.com/pub/a/dotnet/2005/08/08/localizingaspnet20.html?page=1"&gt;http://www.ondotnet.com/pub/a/dotnet/2005/08/08/localizingaspnet20.html?page=1&lt;/a&gt;&lt;/li&gt;      &lt;li&gt;Some which might answer your questions popped out of work&lt;/li&gt;      &lt;ul&gt;       &lt;li&gt;&lt;a href="http://dreamdotnet.blogspot.com/2007/01/tutorial-translating-aspnet-web.html"&gt;Tutorial: Translating an ASP.net Web application&lt;/a&gt;&lt;/li&gt;        &lt;li&gt;&lt;a href="http://dreamdotnet.blogspot.com/2007/01/trick-automated-translation-of-resx.html"&gt;Trick: Automated translation of a resx file&lt;/a&gt;&lt;/li&gt;        &lt;li&gt;&lt;a href="http://dreamdotnet.blogspot.com/2007/02/tutorial-localize-websitemap-file.html"&gt;Tutorial: Localize a Web.sitemap file&lt;/a&gt;&lt;/li&gt;        &lt;li&gt;&lt;a href="http://dreamdotnet.blogspot.com/2007/05/using-resource-in-aspnet-theme-tutorial.html"&gt;Using a resource in an ASP.NET Theme (Tutorial)&lt;/a&gt;&lt;/li&gt;     &lt;/ul&gt;      &lt;li&gt;&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;Advanced&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;&lt;strong&gt;Jeff Modzel&lt;/strong&gt; teach us &lt;a href="http://www.codeproject.com/KB/aspnet/customsqlserverprovider.aspx"&gt;How to create your own ASP.NET 2.0 custom resource provider to replace resource files (resx) with SQL Server&lt;/a&gt;.&lt;/li&gt;      &lt;li&gt;&lt;strong&gt;Michèle Leroux Bustamante&lt;/strong&gt; give us a deep look into advantage &amp;amp; disadvantage of localization approach and suggest us an enough for Enterprise project approach &lt;a href="http://msdn.microsoft.com/en-us/library/aa905797.aspx"&gt;Extending the ASP.NET 2.0 Resource-Provider Model&lt;/a&gt;.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;To be continuing...&lt;/li&gt; &lt;/ol&gt;&lt;img src="http://blogs.hzsolutions.com/vnd/aggbug/112.aspx" width="1" height="1" /&gt;</description><dc:creator>Vu Nguyen</dc:creator></item><item><title>SQL Server CE: Unable to check if a table exist before drop</title><link>http://blogs.hzsolutions.com/vnd/archive/2008/05/04/sql-server-ce-unable-to-check-if-a-table-exist.aspx</link><pubDate>Sat, 03 May 2008 16:02:47 GMT</pubDate><guid isPermaLink="true">http://blogs.hzsolutions.com/vnd/archive/2008/05/04/sql-server-ce-unable-to-check-if-a-table-exist.aspx</guid><wfw:comment>http://blogs.hzsolutions.com/vnd/comments/111.aspx</wfw:comment><wfw:commentRss>http://blogs.hzsolutions.com/vnd/comments/commentRss/111.aspx</wfw:commentRss><comments>http://blogs.hzsolutions.com/vnd/archive/2008/05/04/sql-server-ce-unable-to-check-if-a-table-exist.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blogs.hzsolutions.com/vnd/services/trackbacks/111.aspx</trackback:ping><source url="http://blogs.hzsolutions.com/vnd/rss.aspx">SQL Server CE: Unable to check if a table exist before drop</source><description>&lt;p&gt;IF EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = '&lt;strong&gt;YOUR_TABLE&lt;/strong&gt;')    &lt;br /&gt;DROP TABLE ''&lt;strong&gt;YOUR_TABLE&lt;/strong&gt;'&lt;/p&gt;  &lt;p&gt;will NOT work because SQL CE are not support that IF EXISTS statement in this case, how awful ?&lt;/p&gt;&lt;img src="http://blogs.hzsolutions.com/vnd/aggbug/111.aspx" width="1" height="1" /&gt;</description><dc:creator>Vu Nguyen</dc:creator></item><item><title>.NET: Build custom providers for application</title><link>http://blogs.hzsolutions.com/vnd/archive/2008/05/03/.net-build-custom-providers-for-application.aspx</link><pubDate>Fri, 02 May 2008 14:33:16 GMT</pubDate><guid isPermaLink="true">http://blogs.hzsolutions.com/vnd/archive/2008/05/03/.net-build-custom-providers-for-application.aspx</guid><wfw:comment>http://blogs.hzsolutions.com/vnd/comments/110.aspx</wfw:comment><wfw:commentRss>http://blogs.hzsolutions.com/vnd/comments/commentRss/110.aspx</wfw:commentRss><comments>http://blogs.hzsolutions.com/vnd/archive/2008/05/03/.net-build-custom-providers-for-application.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blogs.hzsolutions.com/vnd/services/trackbacks/110.aspx</trackback:ping><source url="http://blogs.hzsolutions.com/vnd/rss.aspx">.NET: Build custom providers for application</source><description>&lt;h3&gt;White papers&lt;/h3&gt;  &lt;ol&gt;   &lt;li&gt;&lt;a title="Provider Toolkit" href="http://msdn2.microsoft.com/en-us/asp.net/aa336558.aspx"&gt;Provider Toolkit&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a title="Custom Provider-Based Services" href="http://msdn.microsoft.com/en-us/library/aa479038.aspx"&gt;Custom Provider-Based Services&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a title="Hands-on Custom Providers- The Contoso Times" href="http://msdn.microsoft.com/en-us/library/aa479039.aspx"&gt;Hands-on Custom Providers- The Contoso Times&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Code template to get quick start &lt;a title="http://download.microsoft.com/download/8/e/2/8e254b03-796b-48d4-9579-abe4492cd11b/providerbasedfeature.msi" href="http://download.microsoft.com/download/8/e/2/8e254b03-796b-48d4-9579-abe4492cd11b/providerbasedfeature.msi"&gt;http://download.microsoft.com/download/8/e/2/8e254b03-796b-48d4-9579-abe4492cd11b/providerbasedfeature.msi&lt;/a&gt;&lt;/li&gt; &lt;/ol&gt;  &lt;h3&gt;ASP.NET 2.0 providers implementations&lt;/h3&gt;  &lt;ol&gt;   &lt;li&gt;Access-based &lt;a title="Sample Access Providers" href="http://download.microsoft.com/download/5/5/b/55bc291f-4316-4fd7-9269-dbf9edbaada8/SampleAccessProviders.vsi"&gt;Sample Access Providers&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Xml-based provider &lt;a title="ASP.NET XmlProvider Library" href="http://www.codeplex.com/XmlProviderLibrary"&gt;ASP.NET XmlProvider Library&lt;/a&gt;, &lt;a title="ASP.NET XmlProviders" href="http://www.codeplex.com/aspnetxmlproviders"&gt;ASP.NET XmlProviders&lt;/a&gt;, &lt;a title="XML membership provider for ASP.NET 2.0" href="http://blog.madskristensen.dk/post/XML-membership-provider-for-ASPNET-20.aspx"&gt;XML membership provider for ASP.NET 2.0&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;FireBird-based providers &lt;a title="http://www.firebirdsql.org/index.php?op=files&amp;amp;id=netprovider" href="http://www.firebirdsql.org/index.php?op=files&amp;amp;id=netprovider"&gt;http://www.firebirdsql.org/index.php?op=files&amp;amp;id=netprovider&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;MySql-based providers &lt;a title="CodeProject- Membership and Role providers for MySQL. Free source" href="http://www.codeproject.com/KB/database/mysqlmembershipprovider.aspx"&gt;CodeProject- Membership and Role providers for MySQL. Free source&lt;/a&gt;, &lt;a title="CodeProject- MySQL Membership, Role, Sitemap, Personalization" href="http://www.codeproject.com/KB/aspnet/Suite_MySQL_Provider.aspx"&gt;CodeProject- MySQL Membership Role Sitemap Personalization&lt;/a&gt;, &lt;/li&gt; &lt;/ol&gt;  &lt;h3&gt;Sample &amp;amp; tutorials&lt;/h3&gt;  &lt;ol&gt;   &lt;li&gt;&lt;a title="Custom Site Map Providers in ASP.NET 2.0" href="http://msdn2.microsoft.com/en-us/library/aa479320.aspx"&gt;Custom Site Map Providers in ASP.NET 2.0&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;&lt;a title="Understanding and Extending the Site Navigation System in ASP.NET 2.0" href="http://msdn.microsoft.com/en-us/library/aa479338.aspx"&gt;Understanding and Extending the Site Navigation System in ASP.NET 2.0&lt;/a&gt;&lt;/li&gt; &lt;/ol&gt;  &lt;h3&gt;Who did they utilize it ?&lt;/h3&gt;  &lt;ol&gt;   &lt;li&gt;A tutorial on how to use the Provider Templates to create your own provider &lt;a title="http://www.codeproject.com/KB/aspnet/HTMLEditor.aspx" href="http://www.codeproject.com/KB/aspnet/HTMLEditor.aspx"&gt;http://www.codeproject.com/KB/aspnet/HTMLEditor.aspx&lt;/a&gt;.&lt;/li&gt;    &lt;li&gt;Localizing your web application &lt;a title="Extending the ASP.NET 2.0 Resource-Provider Model" href="http://msdn.microsoft.com/en-us/library/aa905797.aspx"&gt;Extending the ASP.NET 2.0 Resource-Provider Model&lt;/a&gt;&lt;/li&gt; &lt;/ol&gt;&lt;img src="http://blogs.hzsolutions.com/vnd/aggbug/110.aspx" width="1" height="1" /&gt;</description><dc:creator>Vu Nguyen</dc:creator></item><item><title>ORM - Should we move to ORM instead of keep up with conventional DAL ?</title><link>http://blogs.hzsolutions.com/vnd/archive/2008/04/28/orm---should-we-move-to-orm-instead-of-keep.aspx</link><pubDate>Sun, 27 Apr 2008 18:15:10 GMT</pubDate><guid isPermaLink="true">http://blogs.hzsolutions.com/vnd/archive/2008/04/28/orm---should-we-move-to-orm-instead-of-keep.aspx</guid><wfw:comment>http://blogs.hzsolutions.com/vnd/comments/109.aspx</wfw:comment><wfw:commentRss>http://blogs.hzsolutions.com/vnd/comments/commentRss/109.aspx</wfw:commentRss><comments>http://blogs.hzsolutions.com/vnd/archive/2008/04/28/orm---should-we-move-to-orm-instead-of-keep.aspx#comment</comments><slash:comments>0</slash:comments><trackback:ping>http://blogs.hzsolutions.com/vnd/services/trackbacks/109.aspx</trackback:ping><source url="http://blogs.hzsolutions.com/vnd/rss.aspx">ORM - Should we move to ORM instead of keep up with conventional DAL ?</source><description>&lt;p&gt; &lt;/p&gt;  &lt;h3&gt;Advantages &amp;amp; Disadvantages&lt;/h3&gt;  &lt;table cellspacing="5" cellpadding="2" width="461" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="205"&gt;         &lt;p&gt;&lt;strong&gt;Conventional&lt;/strong&gt; DAL&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="239"&gt;         &lt;p&gt;&lt;strong&gt;ORM&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="205"&gt;         &lt;p&gt;&lt;strong&gt;Disadvantages of the Conventional Model&lt;/strong&gt;&lt;/p&gt;          &lt;ol&gt;           &lt;li&gt;The stored procedures or SQL commands need to be written well in advance. &lt;/li&gt;            &lt;li&gt;Does not support multiple databases – The stored procedures written are only for the SQL server.  The same has to be done for other databases as well.              &lt;br /&gt;Writing SQL queries is a laborious task as well as error prone. &lt;/li&gt;            &lt;li&gt;Most developers do not like writing SQL queries as they do not want to get out of Object oriented world. &lt;/li&gt;            &lt;li&gt;Queries involving even the smallest business logic need to be changed in case of change in the business rules. &lt;/li&gt;         &lt;/ol&gt;       &lt;/td&gt;        &lt;td valign="top" width="239"&gt;&lt;strong&gt;Advantages&lt;/strong&gt;           &lt;br /&gt;          &lt;br /&gt;          &lt;ol&gt;           &lt;li&gt;Automatic generation of SQL statements – The ORM layer generates automatically SQL statements.  This helps the programmers concentrate more on the actual business logic removing the overhead of the SQL statements. &lt;/li&gt;            &lt;li&gt;Support of the Multiple Databases – Majority of the ORM packages available in the market support ANSI SQL standards.  Hence, they can be used with most of the RDBMS.  This can very useful in product development. &lt;/li&gt;            &lt;li&gt;ORM emphasizes on fully following the object oriented approach.  Every thing is an object. Database CRUD operations are typically called as a function.  We will have functions on the business objects like Save, Update and Delete. &lt;/li&gt;         &lt;/ol&gt;          &lt;p&gt; &lt;/p&gt;          &lt;p&gt;&lt;strong&gt;Disadvantages&lt;/strong&gt;&lt;/p&gt;          &lt;ol&gt;           &lt;li&gt;Lack of standards – We have variety of ORM packages available in the market.  We do not have common standard or conventions followed.  Lack of such standard has made the programmers job tough.  An ORM package may be completely different from another one. &lt;/li&gt;            &lt;li&gt;Performance related issues - Most of ORM related packages use reflection.  As we know, using   Reflection excessively is a performance overhead.  (But there are some ORM packages which do not use the same.) &lt;/li&gt;         &lt;/ol&gt;       &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;h3&gt;Comparison&lt;/h3&gt;  &lt;p&gt;Let us compare the ORM with Conventional model to have a better understanding of the ORM. &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;table cellspacing="0" cellpadding="0" border="0"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="306"&gt;         &lt;p&gt;&lt;strong&gt;Conventional Model &lt;/strong&gt;&lt;/p&gt;          &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;          &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;          &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="315"&gt;         &lt;p&gt;&lt;strong&gt;ORM Model&lt;/strong&gt; &lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 22pt; mso-yfti-irow: 1"&gt;       &lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: windowtext 1pt solid; width: 221.4pt; padding-top: 0in; border-bottom: windowtext 1pt solid; height: 22pt" valign="top" width="306"&gt;         &lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;span style="font-size: 12pt; font-family: " ?times="?Times" mso-fareast-font-family:="mso-fareast-font-family:" roman?,?serif?;="roman?,?serif?;" new="new" times="times" roman??="Roman??"&gt;Programmer needs to write all the SQL queries for each and every interaction with the database. &lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 221.4pt; padding-top: 0in; border-bottom: windowtext 1pt solid; height: 22pt" valign="top" width="315"&gt;         &lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;span style="font-size: 12pt; font-family: " ?times="?Times" mso-fareast-font-family:="mso-fareast-font-family:" roman?,?serif?;="roman?,?serif?;" new="new" times="times" roman??="Roman??"&gt;Programmer needs not write even a single SQL query for any interaction with the database. &lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 22pt; mso-yfti-irow: 2"&gt;       &lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: windowtext 1pt solid; width: 221.4pt; padding-top: 0in; border-bottom: windowtext 1pt solid; height: 22pt" valign="top" width="306"&gt;         &lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;span style="font-size: 12pt; font-family: " ?times="?Times" mso-fareast-font-family:="mso-fareast-font-family:" roman?,?serif?;="roman?,?serif?;" new="new" times="times" roman??="Roman??"&gt;It is tough to handle the changes to the SQL queries in case of any change requests.  This is in comparison with ORM. &lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 221.4pt; padding-top: 0in; border-bottom: windowtext 1pt solid; height: 22pt" valign="top" width="315"&gt;         &lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;span style="font-size: 12pt; font-family: " ?times="?Times" mso-fareast-font-family:="mso-fareast-font-family:" roman?,?serif?;="roman?,?serif?;" new="new" times="times" roman??="Roman??"&gt;The change requests to any database related activities can be done in a very easy way.  As these are classes and methods we can keep the track of the changes with version control systems pretty accurately. &lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 72.85pt; mso-yfti-irow: 3"&gt;       &lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: windowtext 1pt solid; width: 221.4pt; padding-top: 0in; border-bottom: windowtext 1pt solid; height: 72.85pt" valign="top" width="306"&gt;         &lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;span style="font-size: 12pt; font-family: " ?times="?Times" mso-fareast-font-family:="mso-fareast-font-family:" roman?,?serif?;="roman?,?serif?;" new="new" times="times" roman??="Roman??"&gt;We generally have a separate team for handling DDL (Data Definition Language) and DML (Data Manipulation Language) issues. &lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 221.4pt; padding-top: 0in; border-bottom: windowtext 1pt solid; height: 72.85pt" valign="top" width="315"&gt;         &lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;span style="font-size: 12pt; font-family: " ?times="?Times" mso-fareast-font-family:="mso-fareast-font-family:" roman?,?serif?;="roman?,?serif?;" new="new" times="times" roman??="Roman??"&gt;We may have a team for the same here, but their work will be limited to only DDL. As we do not have DML in form of queries, programmers are responsible for the DML related tasks.  Hence, programmer has a better control on the same. &lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 35.5pt; mso-yfti-irow: 4"&gt;       &lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: windowtext 1pt solid; width: 221.4pt; padding-top: 0in; border-bottom: windowtext 1pt solid; height: 35.5pt" valign="top" width="306"&gt;         &lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margin-bottom-alt: auto"&gt;&lt;span style="font-size: 12pt; font-family: " ?times="?Times" mso-fareast-font-family:="mso-fareast-font-family:" roman?,?serif?;="roman?,?serif?;" new="new" times="times" roman??="Roman??"&gt;Support for Transactions is available. &lt;/span&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;          &lt;p&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td style="border-right: windowtext 1pt solid; padding-right: 5.4pt; border-top: medium none; padding-left: 5.4pt; padding-bottom: 0in; border-left: medium none; width: 221.4pt; padding-top: 0in; border-bottom: windowtext 1pt solid; height: 35.5pt" valign="top" width="315"&gt;         &lt;p class="MsoNormal" style="mso-margin-top-alt: auto; mso-margi