<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://msmvps.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Rexiology... : ASP.NET</title><link>http://msmvps.com/blogs/rexiology/archive/tags/ASP.NET/default.aspx</link><description>Tags: ASP.NET</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP2 (Build: 40407.4157)</generator><item><title>Blog moved to MSDN Blogs site...</title><link>http://msmvps.com/blogs/rexiology/archive/2007/03/19/blog-moved-to-msdn-blogs-site.aspx</link><pubDate>Sun, 18 Mar 2007 18:33:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:691714</guid><dc:creator>Rex Tang</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/rexiology/rsscomments.aspx?PostID=691714</wfw:commentRss><comments>http://msmvps.com/blogs/rexiology/archive/2007/03/19/blog-moved-to-msdn-blogs-site.aspx#comments</comments><description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This post announces the depreciation of Rexiology MSMVP blog (this site). &lt;/P&gt;
&lt;P&gt;for new post updates please update your RSS reader to &lt;A href="http://blogs.msdn.com/rextang"&gt;http://blogs.msdn.com/rextang&lt;/A&gt; ,&lt;/P&gt;
&lt;P&gt;or you can also point to my main personal work blog site at &lt;A href="http://rextang.net/blogs/work/"&gt;http://rextang.net/blogs/work/&lt;/A&gt; .&lt;/P&gt;
&lt;P&gt;Thanks for reading...&lt;/P&gt;
&lt;P&gt;Rex&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=691714" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/rexiology/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Programming/default.aspx">Programming</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Useful+Tools/default.aspx">Useful Tools</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Architecture/default.aspx">Architecture</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Blog+Framework+_2F00_+Tools/default.aspx">Blog Framework / Tools</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Business/default.aspx">Business</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Going+Mobile/default.aspx">Going Mobile</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/I.T.+News/default.aspx">I.T. News</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Information+Technology/default.aspx">Information Technology</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/O_2F00_R+Mapping/default.aspx">O/R Mapping</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Readings/default.aspx">Readings</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Java/default.aspx">Java</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Linux/default.aspx">Linux</category></item><item><title>AJAX Debugging with Web Development Helper...</title><link>http://msmvps.com/blogs/rexiology/archive/2006/11/16/ajax-debugging-with-web-development-helper.aspx</link><pubDate>Thu, 16 Nov 2006 09:04:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:294239</guid><dc:creator>Rex Tang</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/rexiology/rsscomments.aspx?PostID=294239</wfw:commentRss><comments>http://msmvps.com/blogs/rexiology/archive/2006/11/16/ajax-debugging-with-web-development-helper.aspx#comments</comments><description>&lt;P&gt;crosspost from &lt;A href="http://rextang.net/blogs/work/"&gt;http://rextang.net/blogs/work/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;[via &lt;A href="http://blogs.msdn.com/gduthie/archive/2006/11/15/ajax-debugging-just-got-easier.aspx"&gt;.NET DevHammer&lt;/A&gt;]&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.nikhilk.net/"&gt;Nikhil Kothari&lt;/A&gt; just released an update for his &lt;A href="http://www.nikhilk.net/WebDevHelperHTTPTracingUpdates.aspx"&gt;WebDevelopmentHelper&lt;/A&gt;, which helps debugging ASP.NET AJAX codes, should be a nice tool for .Net web developers.&lt;/P&gt;
&lt;P&gt;Also don't forget another good web debugging tool &lt;A href="http://www.fiddlertool.com/fiddler/"&gt;Fiddler&lt;/A&gt;...&lt;/P&gt;
&lt;P&gt;Technorati Tags: &lt;A href="http://www.technorati.com/tag/microsoft"&gt;&lt;FONT color=#4444ff&gt;microsoft&lt;/FONT&gt;&lt;/A&gt;&amp;nbsp;,&amp;nbsp;&lt;A href="http://www.technorati.com/tag/asp.net"&gt;&lt;FONT color=#4444ff&gt;asp.net&lt;/FONT&gt;&lt;/A&gt;,&amp;nbsp;&lt;A href="http://www.technorati.com/tag/programming"&gt;&lt;FONT color=#4444ff&gt;programming&lt;/FONT&gt;&lt;/A&gt;,&amp;nbsp;&lt;A href="http://www.technorati.com/tag/tools"&gt;&lt;FONT color=#4444ff&gt;tools&lt;/FONT&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=294239" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/rexiology/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Programming/default.aspx">Programming</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Useful+Tools/default.aspx">Useful Tools</category></item><item><title>CommunityServer 2.1 Tips: Gallery photo options, save to DB or save to file...</title><link>http://msmvps.com/blogs/rexiology/archive/2006/10/25/CommunityServer-2.1-Tips_3A00_-Gallery-photo-options_2C00_-save-to-DB-or-save-to-file_2E00__2E00__2E00_.aspx</link><pubDate>Wed, 25 Oct 2006 10:13:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:207186</guid><dc:creator>Rex Tang</dc:creator><slash:comments>3</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/rexiology/rsscomments.aspx?PostID=207186</wfw:commentRss><comments>http://msmvps.com/blogs/rexiology/archive/2006/10/25/CommunityServer-2.1-Tips_3A00_-Gallery-photo-options_2C00_-save-to-DB-or-save-to-file_2E00__2E00__2E00_.aspx#comments</comments><description>&lt;p&gt;crosspost from &lt;a href="http://rextang.net/blogs/work/"&gt;http://rextang.net/blogs/work/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Just had a trace to the source code since I found some of my gallery photos were missing and not able to get them back while upgrading my blog site to CS 2.1 in my VM.&lt;/p&gt;&lt;p&gt;Later found that in .Text era, images were saving to DB only; later in CS 1.x era, images were changed to save to files to minimize DB space usage. now in CS 2.1 , it can now be set to either places, or both.&lt;/p&gt;&lt;p&gt;in CS 1.x , the default image saving location is at ~/photos/storage , while it&amp;#39;s the same as in CS 2.1 ,&amp;nbsp;if you find your images missing to display on browser, remember to copy all the files in ~/photos/storage of CS 1.x web spaces. &lt;/p&gt;&lt;p&gt;in CS 2.1, now there are options to let you set where to save, DB or file, or both. refer to default CommunityServer.config file , like the following:&lt;/p&gt;&lt;blockquote dir="ltr" dir="ltr"&gt;&lt;p&gt;&amp;nbsp;&amp;nbsp;&amp;lt;Gallery&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;allowEncodedUnicodeCharsInMetadata=&amp;quot;true&amp;quot;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;AttachmentSettings &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#ff0000"&gt;enableFileSystemStorage=&amp;quot;true&amp;quot;&lt;/font&gt; &lt;font color="#ff0000"&gt;fileSystemStorageLocation=&amp;quot;~/photos/storage&amp;quot;&lt;/font&gt; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;font color="#ff0000"&gt;enableDataStoreStorage=&amp;quot;true&amp;quot;&lt;/font&gt;&amp;nbsp; enableDirectLinks=&amp;quot;false&amp;quot; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; extensions = &amp;quot;gif,jpg,jpeg,png,bmp,GIF,JPEG,JPG,PNG,BMP,Gif,Jpg,Jpeg,Png,Bmp&amp;quot; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;CacheSettings &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; enableFileSystemStorage=&amp;quot;true&amp;quot; fileSystemStorageLocation=&amp;quot;~/photos/cache&amp;quot; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; enableDataStoreStorage=&amp;quot;false&amp;quot;&amp;nbsp; enableDirectLinks=&amp;quot;false&amp;quot; &lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;lt;/Gallery&amp;gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p dir="ltr"&gt;AttachmentSettings is the place to toggle where to save images to. if set both enableFileSystemStorage and enableDataStoreStorage to true, not only image files will be create and save in ~/photos/storage folder, but also&amp;nbsp;will be&amp;nbsp;saved&amp;nbsp;to database record binary field&amp;nbsp;(cs_PostAttachment table). Refer to GalleryPosts.cs file of CommunityServerGalleries20 project (started from line 387):&lt;/p&gt;&lt;blockquote dir="ltr" dir="ltr"&gt;&lt;p dir="ltr"&gt;&amp;nbsp;&amp;nbsp;//TODO: work on new save attachement patterns&lt;br /&gt;&amp;nbsp;&amp;nbsp;private static void CreatePictureData(GalleryPost galleryPost, PostAttachment pictureData)&lt;br /&gt;&amp;nbsp;&amp;nbsp;{&lt;/p&gt;&lt;p dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;// Submit it to the database&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (GalleryConfiguration.Instance().AttachmentSettings.&lt;font color="#ff0000"&gt;EnableDataStoreStorage&lt;/font&gt; &amp;amp;&amp;amp; pictureData.HasDateCreated)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CommonDataProvider.Instance().AddPostAttachment(galleryPost, pictureData);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;else&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;PostAttachment noPictureData = new PostAttachment(pictureData);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;font color="#ff0000"&gt;noPictureData.Content = null;&lt;br /&gt;&lt;/font&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CommonDataProvider.Instance().AddPostAttachment(galleryPost, noPictureData);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;/p&gt;&lt;p dir="ltr"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;// If file system storage is enabled, we need to save it.&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;if (GalleryConfiguration.Instance().AttachmentSettings.&lt;font color="#ff0000"&gt;EnableFileSystemStorage&lt;/font&gt;)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;CreateDataFile(galleryPost, pictureData);&lt;/p&gt;&lt;p dir="ltr"&gt;&amp;nbsp;&amp;nbsp;}&lt;/p&gt;&lt;/blockquote&gt;&lt;p dir="ltr"&gt;basically this checks both flags to see if&amp;nbsp;they are&amp;nbsp;true, and then save to each places (DB and file). but if DataStoreStorage flag is false, then while saving the data record, will set Content binary field to null. &lt;/p&gt;&lt;p dir="ltr"&gt;By default setting in CS 2.1 , it seems set both DB and file flags to true. To preserve the same usage as in CS 1.x , it&amp;#39;s needed to change the enableDataStoreStorage to false. &lt;/p&gt;&lt;p dir="ltr"&gt;CacheSettings also using the same setting pattern as AttachmentSettings, but actually DataStore support for Cache is currently not supported in this version, as stated in the comment of CommunityServer.config file.&lt;/p&gt;&lt;p dir="ltr"&gt;Technorati Tags: &lt;a href="http://www.technorati.com/tag/communityserver"&gt;&lt;font color="#4444ff"&gt;communityserver&lt;/font&gt;&lt;/a&gt;&amp;nbsp;, &lt;a href="http://www.technorati.com/tag/asp.net"&gt;&lt;font color="#4444ff"&gt;asp.net&lt;/font&gt;&lt;/a&gt; , &lt;a href="http://www.technorati.com/tag/programming"&gt;&lt;font color="#4444ff"&gt;programming&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;p dir="ltr"&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=207186" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/rexiology/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Programming/default.aspx">Programming</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Blog+Framework+_2F00_+Tools/default.aspx">Blog Framework / Tools</category></item><item><title>Tips: Installing sdk version of CommunityServer 2.1...</title><link>http://msmvps.com/blogs/rexiology/archive/2006/10/25/Tips_3A00_-Installing-sdk-version-of-CommunityServer-2.1_2E00__2E00__2E00_.aspx</link><pubDate>Wed, 25 Oct 2006 02:56:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:206692</guid><dc:creator>Rex Tang</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/rexiology/rsscomments.aspx?PostID=206692</wfw:commentRss><comments>http://msmvps.com/blogs/rexiology/archive/2006/10/25/Tips_3A00_-Installing-sdk-version-of-CommunityServer-2.1_2E00__2E00__2E00_.aspx#comments</comments><description>&lt;p&gt;crosspost from &lt;a href="http://rextang.net/blogs/work/"&gt;http://rextang.net/blogs/work/&lt;/a&gt;&lt;/p&gt;&lt;p&gt;So I finally got some time to start the process of upgrading this blog site to &lt;a href="http://communityserver.org/"&gt;CommunityServer 2.1&lt;/a&gt;. I downloaded the &lt;a href="http://communityserver.org/files/folders/communityserver/entry543125.aspx"&gt;2.1 SDK source&lt;/a&gt;, also requested a backup of currently running CS1.1 database from my web-hosting-provider, and started from here.&lt;/p&gt;&lt;p&gt;I had created a virtual machine as my development environment, with Windows 2003 R2 server and VisualStudio Team Suite&amp;nbsp; installed. as this website is currently running under ASP.NET 1.1, I am trying to start running it under ASP.NET 2.0. The goal is to preserve all my blog posts, photo images, and comments and do the technology upgrade and version-up reconstruction.&lt;/p&gt;&lt;p&gt;After unpack the SDK, and trying to open 2.0 solution file from VisualStudio, the first problem will be that VS2005 won&amp;#39;t be able to open the web project since VS2005 now has a new non-project model for website solution. to solve this, I need to download the new &lt;a href="http://msdn2.microsoft.com/en-us/asp.net/aa336618.aspx"&gt;Web Application Project&lt;/a&gt; (WAP) from &lt;a href="http://webproject.scottgu.com/"&gt;ScottGu&amp;#39;s website&lt;/a&gt; and install it. while the WAP installation&amp;nbsp;it will require another VS2005 updates prior it. After the installation of WAP, CS2.1&amp;#39;s ASP.NET 2.0 web project can be opened without problems. &lt;/p&gt;&lt;p&gt;For the IIS part, first editing the hosts file (on windows folder)&amp;nbsp;to point my domain name to localhost, then create a virtual website to point to SDK&amp;#39;s web folder, refering to the &lt;a href="http://docs.communityserver.org/Installation/Web-based_Installation_Process.htm"&gt;documentation&lt;/a&gt; to set proper&amp;nbsp;read/write priviledges to folders. &lt;/p&gt;&lt;p&gt;For the database part, follow SDK&amp;#39;s sqlscript folder&amp;#39;s readme file to upgrade database schema from CS 1.1 to CS 2.1. &lt;/p&gt;&lt;p&gt;I did a full rebuild from the source code to regenerate all necessary binaries, and then trying to open my test site in browser. error happaned. &lt;/p&gt;&lt;blockquote dir="ltr" dir="ltr"&gt;&lt;p&gt;ERROR: Could not load file or assembly &amp;#39;MemberRole, Version=1.0.0.0, Culture=neutral, PublicKeyToken=b7c773fb104e7562&amp;#39; or one of its dependencies &lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Doing a &lt;a href="http://www.google.com/search?sourceid=navclient&amp;amp;ie=UTF-8&amp;amp;rls=GGLG,GGLG:2006-27,GGLG:en&amp;amp;q=communityserver+memberrole+assembly"&gt;search&lt;/a&gt; from google, &lt;a href="http://communityserver.org/forums/thread/549006.aspx"&gt;found&lt;/a&gt; that I need to switch to asp.net 2.0 version&amp;#39;s web.config file to avoid this error. the files is under &amp;quot;ASP.NET2_configs&amp;quot; folder of SDK source. I did the replace and trying to run again, another error occured.&lt;/p&gt;&lt;blockquote dir="ltr" dir="ltr"&gt;&lt;p&gt;Login failed for user &amp;#39;&amp;#39;. The user is not associated with a trusted SQL Server connection&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;Doing a &lt;a href="http://www.google.com/search?sourceid=navclient&amp;amp;ie=UTF-8&amp;amp;rls=GGLG,GGLG:2006-27,GGLG:en&amp;amp;q=communityserver+Login+failed+for+user+%27%27%2e+The+user+is+not+associated+with+a+trusted+SQL+Server+connection"&gt;search&lt;/a&gt; from google, &lt;a href="http://channel9.msdn.com/ShowPost.aspx?PostID=244516"&gt;found&lt;/a&gt; that it is something related to trusted connection to SQL server. since I am running&amp;nbsp;CS database in different&amp;nbsp;SqlServer 2005 machine other then web application machine, I decided to avoid this problem by not using trusted connection but using usual SqlServer authentication. just edit the web.config file and change the sqlserver connection string&amp;nbsp;to set Trusted_Connection from yes to no.&lt;/p&gt;&lt;p&gt;By setting all those above, I can get a running instance of CS 2.1 site under my dev VM. the next is to modify the themes and skins of my blogs, also need to modify the source code to support &lt;a href="http://communityserver.org/forums/thread/525586.aspx"&gt;non-keyword searching&lt;/a&gt; to be able to search Chinese and Japanese. also need to check about the new url rewrite model to see if it fits my requests (&lt;a href="http://rextang.net/blogs/work/archive/2005/11/29/3159.aspx"&gt;out-site url rewrite&lt;/a&gt;).&lt;/p&gt;&lt;p&gt;still need&amp;nbsp;some time to finish my CS2.1 blog site, will post&amp;nbsp;other tips if I found any.&lt;/p&gt;&lt;p&gt;Technorati Tags: &lt;a href="http://www.technorati.com/tag/communityserver"&gt;&lt;font color="#4444ff"&gt;communityserver&lt;/font&gt;&lt;/a&gt;&amp;nbsp;, &lt;a href="http://www.technorati.com/tag/asp.net"&gt;&lt;font color="#4444ff"&gt;asp.net&lt;/font&gt;&lt;/a&gt; , &lt;a href="http://www.technorati.com/tag/programming"&gt;&lt;font color="#4444ff"&gt;programming&lt;/font&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=206692" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/rexiology/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Programming/default.aspx">Programming</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Blog+Framework+_2F00_+Tools/default.aspx">Blog Framework / Tools</category></item><item><title>CommunityServer 2.1 released...</title><link>http://msmvps.com/blogs/rexiology/archive/2006/08/24/108951.aspx</link><pubDate>Wed, 23 Aug 2006 17:09:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:108951</guid><dc:creator>Rex Tang</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/rexiology/rsscomments.aspx?PostID=108951</wfw:commentRss><comments>http://msmvps.com/blogs/rexiology/archive/2006/08/24/108951.aspx#comments</comments><description>&lt;P&gt;crosspost from &lt;A href="http://rextang.net/blogs/work/"&gt;http://rextang.net/blogs/work/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;I have to say that Japanese is working too hard!!! been here for more than 2 and half months, everyday working from 10AM to 10PM, occasionally have to work at weekend, annual salary, so no overworking fee. this should represent most of small/medium IT companies at Tokyo!&lt;/P&gt;
&lt;P&gt;Because now my main job is working on Java programming, and too busy, it's been some time that not able to update the latest Microsoft releated technology news. I am taking one week off from working start from next week, to join &lt;A href="http://rextang.net/blogs/work/archive/2006/07/19/4024.aspx"&gt;TechEd 2006 here at Tokyo (Yokomaha)&lt;/A&gt;, taking some rest, also update some new stuffs for later working. &lt;/P&gt;
&lt;P&gt;This&amp;nbsp;should not be a news, &lt;A href="http://www.communityserver.org/"&gt;CommunityServer&lt;/A&gt; released &lt;A href="http://communityserver.org/files/folders/communityserver/default.aspx"&gt;2.1&lt;/A&gt; at 8/9, also got &lt;A href="http://communityserver.org/files/folders/communityserver/entry543125.aspx"&gt;source code release (SDK)&lt;/A&gt; at 8/11 . wish I'll have some time at next week&amp;nbsp;to upgrade my blog directly to this version. &lt;/P&gt;
&lt;P&gt;Maybe I should find a job at Tokyo that's mainly on .Net solution development, instead of Java development...&lt;/P&gt;
&lt;P&gt;Technorati Tags: &lt;A href="http://www.technorati.com/tag/communityserver"&gt;communityserver&lt;/A&gt;&amp;nbsp;,&amp;nbsp;&lt;A href="http://www.technorati.com/tag/programming"&gt;programming&lt;/A&gt;&amp;nbsp;,&amp;nbsp;&lt;A href="http://www.technorati.com/tag/asp.net"&gt;asp.net&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=108951" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/rexiology/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Programming/default.aspx">Programming</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Useful+Tools/default.aspx">Useful Tools</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Blog+Framework+_2F00_+Tools/default.aspx">Blog Framework / Tools</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/I.T.+News/default.aspx">I.T. News</category></item><item><title>CommunityServer 1.1 DanBartels CS CAPTCHA control fix...</title><link>http://msmvps.com/blogs/rexiology/archive/2006/08/15/107610.aspx</link><pubDate>Mon, 14 Aug 2006 18:20:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:107610</guid><dc:creator>Rex Tang</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/rexiology/rsscomments.aspx?PostID=107610</wfw:commentRss><comments>http://msmvps.com/blogs/rexiology/archive/2006/08/15/107610.aspx#comments</comments><description>&lt;P&gt;crosspost from &lt;A href="http://rextang.net/blogs/work/"&gt;http://rextang.net/blogs/work/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Although I am planning to upgrade my blog site to the latest version of &lt;A href="http://www.communityserver.org/"&gt;CommunityServer&lt;/A&gt; 2.x, I was too busy to have few days to make the modifications and new skin design, and my site is on heavy attack of comment spam. I am thinking to put one more shelter to defend this, behind the &lt;A href="http://rextang.net/blogs/past/archive/2005/07/08/1559.aspx"&gt;already installed ReverseDOS&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://communityserver.org/files/folders/add-ons/entry498191.aspx"&gt;DanBartels' CAPTCHA control &lt;/A&gt;can be downloaded from CommunityServer website. I downloaded it since last year, but can not install it successfully by following the ReadMe.doc file. everything seems to fit the settings but the image just don't&amp;nbsp;show. &lt;/P&gt;
&lt;P&gt;Today I did some more study about this and finally found that it's because of missing class reference&amp;nbsp;in JpegCaptchaImage.aspx file, which should be copied to "images" folder of using skin. the original file had the control header like this:&lt;/P&gt;
&lt;P&gt;&amp;lt;%@ Page language="c#" CodeBehind="JpegCaptchaImage.aspx.cs" AutoEventWireup="false" Inherits="DanBartels.CS.CAPTCHA.JpegCaptchaImage" %&amp;gt;&lt;/P&gt;
&lt;P&gt;when directly run this aspx file, it will tell you that it can not find the type "DanBartels.CS.CAPTCHA.JpegCaptchaImage" , which in the bin folder, the dll name is "DanBartels.CS.CAPTCHA.dll" . that should be the reason that the image can not be shown to the comment form. &lt;/P&gt;
&lt;P&gt;to solve this, simple clear those CodeBehind and Inherits settings, like this:&lt;/P&gt;
&lt;P&gt;&amp;lt;%@ Page language="c#"&amp;nbsp;AutoEventWireup="false" %&amp;gt;&lt;/P&gt;
&lt;P&gt;save the file and done. now the comment form can display digits for user to type before submit the comments. &lt;/P&gt;
&lt;P&gt;wish this can stop some spams before I upgrade my site to CS 2.x...&lt;/P&gt;
&lt;P&gt;Technorati Tags: &lt;A href="http://www.technorati.com/tag/communityserver"&gt;communityserver&lt;/A&gt;&amp;nbsp;,&amp;nbsp;&lt;A href="http://www.technorati.com/tag/programming"&gt;programming&lt;/A&gt;&amp;nbsp;,&amp;nbsp;&lt;A href="http://www.technorati.com/tag/asp.net"&gt;asp.net&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=107610" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/rexiology/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Programming/default.aspx">Programming</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Useful+Tools/default.aspx">Useful Tools</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Blog+Framework+_2F00_+Tools/default.aspx">Blog Framework / Tools</category></item><item><title>MSMVPS.com just switched to CommunityServer 2.0...</title><link>http://msmvps.com/blogs/rexiology/archive/2006/05/27/97351.aspx</link><pubDate>Sat, 27 May 2006 14:14:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:97351</guid><dc:creator>Rex Tang</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/rexiology/rsscomments.aspx?PostID=97351</wfw:commentRss><comments>http://msmvps.com/blogs/rexiology/archive/2006/05/27/97351.aspx#comments</comments><description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;crosspost from &lt;A href="http://rextang.net/blogs/work/"&gt;http://rextang.net/blogs/work/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;As I am just about to&amp;nbsp;talk Windows Vista beta 2 training in those 2 days at Singapore, found that &lt;A HREF="/"&gt;MSMVPS.com&lt;/A&gt; website, a website for &lt;A href="https://mvp.support.microsoft.com/communities/mvp.aspx"&gt;MSMVPs&lt;/A&gt; around the world to have a blog there, is just switching / upgrading to &lt;A href="http://rextang.net/blogs/work/archive/2006/02/21/3502.aspx"&gt;CommunityServer 2.0&lt;/A&gt; .&lt;/P&gt;
&lt;P&gt;Nice things to have on &lt;A href="http://communityserver.org/"&gt;CommunityServer 2.0&lt;/A&gt; blog / forum site&amp;nbsp;are many addition to AJAX like rich UI and the support of file archives. the design of the system is improving and should be a nice one for all the MVPs to write a blog there.&lt;/P&gt;
&lt;P&gt;I should've considering upgrade my own blog site to CommunityServer 2.0 also...&lt;/P&gt;
&lt;P&gt;Technorati Tags: &lt;A href="http://www.technorati.com/tag/dottext"&gt;dottext&lt;/A&gt; , &lt;A href="http://www.technorati.com/tag/blog"&gt;blog&lt;/A&gt; , &lt;A href="http://www.technorati.com/tag/programming"&gt;programming&lt;/A&gt; , &lt;A href="http://www.technorati.com/tag/dotnet"&gt;dotnet&lt;/A&gt; , &lt;A href="http://www.technorati.com/tag/communityserver"&gt;communityserver&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=97351" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/rexiology/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Programming/default.aspx">Programming</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Useful+Tools/default.aspx">Useful Tools</category></item><item><title>What's new in C# 2.0...</title><link>http://msmvps.com/blogs/rexiology/archive/2006/04/17/91297.aspx</link><pubDate>Mon, 17 Apr 2006 04:24:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:91297</guid><dc:creator>Rex Tang</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/rexiology/rsscomments.aspx?PostID=91297</wfw:commentRss><comments>http://msmvps.com/blogs/rexiology/archive/2006/04/17/91297.aspx#comments</comments><description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;crosspost from &lt;A href="http://rextang.net/blogs/work/"&gt;http://rextang.net/blogs/work/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Go to the foundation if you want to master something!&lt;/P&gt;
&lt;P&gt;As I am digging into ASP.NET 2.0 stuffs, and using C# as my primary language, I found that it should be necessary to take a look of those new features provided by the language (eg, partial class, etc) before I dig more into the application side of programming. One should know exactly how many gadgets he can use before starting to build a masterpiece.&lt;/P&gt;
&lt;P&gt;A &lt;A href="http://www.google.com.tw/search?sourceid=navclient&amp;amp;ie=UTF-8&amp;amp;rls=GGLG,GGLG:2006-07,GGLG:en&amp;amp;q=C%23+2%2E0"&gt;search to Google&lt;/A&gt; can find many resource about this. &lt;A href="http://msdn.microsoft.com/vcsharp/programming/language/"&gt;Microsoft C# language site&lt;/A&gt; provided many good resources to dig into. The &lt;A href="http://download.microsoft.com/download/8/1/6/81682478-4018-48fe-9e5e-f87a44af3db9/CSharp%202.0%20Specification.doc"&gt;C# 2.0 Language Specifications Draft&lt;/A&gt; provides new feature detail explainations through out the document, including the follows:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Generics (basically &lt;A href="http://www.google.com.tw/search?sourceid=navclient&amp;amp;ie=UTF-8&amp;amp;rls=GGLG,GGLG:2006-07,GGLG:en&amp;amp;q=class+template+c%2B%2B"&gt;Class Templates in C++&lt;/A&gt;) 
&lt;LI&gt;Anonymous methods 
&lt;LI&gt;Iterators 
&lt;LI&gt;Partial types 
&lt;LI&gt;Nullable types&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;the 100+ pages draft has a detail explaination of those new features provided by C# 2.0 language. take a look if you want to know more about the language itself.&lt;/P&gt;
&lt;P&gt;Technorati Tags: &lt;A href="http://www.technorati.com/tag/programming"&gt;programming&lt;/A&gt;&amp;nbsp;,&amp;nbsp;&lt;A href="http://www.technorati.com/tag/C#"&gt;C#&lt;/A&gt;,&amp;nbsp;&lt;A href="http://www.technorati.com/tag/csharp"&gt;csharp&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=91297" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/rexiology/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Programming/default.aspx">Programming</category></item><item><title>Where is [file].aspx.designer.cs in native VS2005 Web Project?</title><link>http://msmvps.com/blogs/rexiology/archive/2006/04/16/91222.aspx</link><pubDate>Sun, 16 Apr 2006 10:53:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:91222</guid><dc:creator>Rex Tang</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/rexiology/rsscomments.aspx?PostID=91222</wfw:commentRss><comments>http://msmvps.com/blogs/rexiology/archive/2006/04/16/91222.aspx#comments</comments><description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;crosspost from &lt;A href="http://rextang.net/blogs/work/"&gt;http://rextang.net/blogs/work/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Just had a further reading of the migration from ASP.NET 1.1 website to ASP.NET 2.0 one. &lt;A href="http://weblogs.asp.net/scottgu/archive/2006/03/30/441465.aspx"&gt;ScottGu's post&lt;/A&gt; listed his &lt;A href="http://webproject.scottgu.com/"&gt;Web Application Project&lt;/A&gt;, which is a good resource for understanding these topics.&lt;/P&gt;
&lt;P&gt;In ScottGu's &lt;A href="http://webproject.scottgu.com/CSharp/Migration/Migration.aspx"&gt;tutorial article&lt;/A&gt; about migrating from ASP.NET 1.1 website to ASP.NET 2.0 one, he mentioned those [file].designer.cs files generated&amp;nbsp;while convering&amp;nbsp;the 1.1 compatible web project, which makes me curious about where were those [file].designer.cs files of native VS2005 web project? basically I can only see those partial classes for my own written code, where were those designer generated control definations go?&lt;/P&gt;
&lt;P&gt;By &lt;A href="http://www.google.com.tw/search?hl=zh-TW&amp;amp;rls=GGLG%2CGGLG%3A2006-07%2CGGLG%3Aen&amp;amp;q=where+to+find+.designer.cs+file+vs2005&amp;amp;meta="&gt;asking Google&lt;/A&gt; about this, found out some info via &lt;A href="http://www.tek-tips.com/viewthread.cfm?qid=1215399&amp;amp;page=1"&gt;this forum&amp;nbsp;thread&lt;/A&gt; and leads me to &lt;A href="http://west-wind.com/weblog/posts/3016.aspx"&gt;Rick Strahl's post&lt;/A&gt; talking about Page Inheritance in ASP.NET 2.0. According to his post about the new page class creation model, all the designer generated codes are now auto generated by asp.net compiler at compile time. as Rick stated:&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr&gt;
&lt;P class=MsoNormal&gt;Note that a partial class does not contain control definitions or InitializeComponent that usually hooks up the events. ASP.NET generates the surrogate partial class at compile time that represents the ASPX page code ASP.NET generates another partial class that contains all the control definitions, the event delegate hookups and setting of Page settings (like EnableSessionState, Trace etc.).&lt;SPAN&gt;&amp;nbsp; &lt;/SPAN&gt;Both of these partial classes combine to make up the base class that the ASPX page inherits.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;That should be the answer why I am not able to find those so-called [file].designer.cs files in native web projects&amp;nbsp;in VS 2005, and Rick's post is a good one to get further understanding of the new ASP.NET 2.0 inheritance model.&lt;/P&gt;
&lt;P&gt;Technorati Tags: &lt;A href="http://www.technorati.com/tag/programming"&gt;programming&lt;/A&gt;&amp;nbsp;,&amp;nbsp;&lt;A href="http://www.technorati.com/tag/asp.net"&gt;asp.net&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=91222" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/rexiology/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Programming/default.aspx">Programming</category></item><item><title>Source Code for the Built-in ASP.NET 2.0 Providers Now Available for Download...</title><link>http://msmvps.com/blogs/rexiology/archive/2006/04/16/91216.aspx</link><pubDate>Sun, 16 Apr 2006 08:48:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:91216</guid><dc:creator>Rex Tang</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/rexiology/rsscomments.aspx?PostID=91216</wfw:commentRss><comments>http://msmvps.com/blogs/rexiology/archive/2006/04/16/91216.aspx#comments</comments><description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;crosspost from &lt;A href="http://rextang.net/blogs/work/"&gt;http://rextang.net/blogs/work/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;[via &lt;A href="http://scottwater.com/blog/archive/2006/04/13/aspnet_provider_source_code.aspx"&gt;Scott Watermasysk&lt;/A&gt;] [via &lt;A href="http://weblogs.asp.net/scottgu/archive/2006/04/13/442772.aspx"&gt;ScottGu&lt;/A&gt;]&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;&lt;A href="http://download.microsoft.com/download/a/b/3/ab3c284b-dc9a-473d-b7e3-33bacfcc8e98/ProviderToolkitSamples.msi"&gt;Providers Source Code Download&lt;/A&gt;. 
&lt;LI&gt;&lt;A href="http://msdn.microsoft.com/asp.net/downloads/providers/default.aspx"&gt;Jeff Prosise's whitepapers&lt;/A&gt; about those provider source code. 
&lt;LI&gt;Learn about &lt;A href="http://msdn.microsoft.com/asp.net/downloads/providers/default.aspx"&gt;ASP.NET 2.0 Provider model&lt;/A&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;According to ScottGu, "The source code is released under a permissive license that allows both commercial and non-commercial re-use of the source code, and should be very useful both for people wanting to build their own custom providers (you can take our source and just tweak it if you want), or to better understand/debug our existing ones."&lt;/P&gt;
&lt;P&gt;This should be another goods to have when digging into the design of ASP.NET 2.0...&lt;/P&gt;
&lt;P&gt;Technorati Tags: &lt;A href="http://www.technorati.com/tag/programming"&gt;programming&lt;/A&gt;&amp;nbsp;,&amp;nbsp;&lt;A href="http://www.technorati.com/tag/asp.net"&gt;asp.net&lt;/A&gt;&amp;nbsp;,&amp;nbsp;&lt;A href="http://www.technorati.com/tag/provider"&gt;provider&lt;/A&gt;&amp;nbsp;,&amp;nbsp;&lt;A href="http://www.technorati.com/tag/model"&gt;model&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=91216" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/rexiology/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Programming/default.aspx">Programming</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Architecture/default.aspx">Architecture</category></item><item><title>[ASP.NET 2.0] The context parameter in ClientScriptManager.GetCallbackEventReference Method...</title><link>http://msmvps.com/blogs/rexiology/archive/2006/04/16/91184.aspx</link><pubDate>Sat, 15 Apr 2006 23:46:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:91184</guid><dc:creator>Rex Tang</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/rexiology/rsscomments.aspx?PostID=91184</wfw:commentRss><comments>http://msmvps.com/blogs/rexiology/archive/2006/04/16/91184.aspx#comments</comments><description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;crosspost from &lt;A href="http://rextang.net/blogs/work/"&gt;http://rextang.net/blogs/work/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://rextang.net/photos/work/images/3637/original.aspx"&gt;&lt;IMG height=375 alt="Wrox - Professional ASP.NET 2.0" src="http://rextang.net/photos/work/images/3637/287x375.aspx" width=287 align=left border=0&gt;&lt;/A&gt;I am reading &lt;A href="http://www.hanselman.com/blog/"&gt;Scott Hanselman&lt;/A&gt; co-authored, published by Wrox press, titled&amp;nbsp;&lt;A href="http://www.amazon.com/exec/obidos/ASIN/0764576100/diabeticbooks/104-9961489-2617502"&gt;Professional ASP.NET 2.0&lt;/A&gt; book recently to get a quick pick up of what's new in ASP.NET 2.0 compared to ASP.NET 1.1.&lt;/P&gt;
&lt;P&gt;It's a nice book to&amp;nbsp; read and it covered all the topics related to ASP.NET 2.0, including what's already had in ASP.NET 1.1. A comprehensive guide to people who want to enter new ASP.NET 2.0 world, no matter one is already familiar of ASP.NET 1.1 programming or not. A recommand book to read!&lt;/P&gt;
&lt;P&gt;&amp;nbsp;I am reading in a fast pace that browsing to those topics I was familiar during my work with ASP.NET 1.1 , and spend time in those which are new in ASP.NET 2.0. just passed chapter 4 and stop at the new ASP.NET 2.0 feature, &lt;A href="http://msdn2.microsoft.com/en-us/library/ms178208(VS.80).aspx"&gt;Client Callback&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;The example provided in this book is simple to understand, but the idea behind the design of the new Client Callback feature&amp;nbsp;didn't well show up through the examples. I've also &lt;A href="http://www.google.com.tw/search?sourceid=navclient&amp;amp;ie=UTF-8&amp;amp;rls=GGLG,GGLG:2006-07,GGLG:en&amp;amp;q=Page%2EClientScript%2EGetCallbackEventReference"&gt;Googled&lt;/A&gt; some others and found this one at &lt;A href="http://www.codeproject.com/aspnet/clientcallback.asp"&gt;Code Project written by Invincible Poison&lt;/A&gt;. This one used a more easily understandable way trying to explain how Client Callback is working, although I've noticed that the provided sample code seems changed that didn't fit into the sample code snippets provided throughout the article. &lt;/P&gt;
&lt;P&gt;The big concept behind the whole Client Callback things is clear enough for me now. basically, I'll consider the new Client Callback feature provided by ASP.NET 2.0 as a simplified version&amp;nbsp;of &lt;A href="http://rextang.net/blogs/past/archive/2005/10/27/2624.aspx"&gt;what I've used the Ajax.Net framework&lt;/A&gt; . since Client Callback is actually using .axd to encapsulate the callback logics , while Ajax.Net is actually using a Http handler. but Ajax.Net can actually taking arbitrary parameters while client-side callback and even simulate DataSet and&amp;nbsp;other customized object types from server-side&amp;nbsp;return to client,&amp;nbsp;also Client Callback only use one arg string parameter to pass all the paramaters, which means that when multiple paramaters are needed to pass across XMLHttp, developers need to concatenate all the parameters into one single string in order to pass it. Since this Ajax like feature is now officially provided by ASP.NET 2.0 , although not perfect yet (to let 3rd parties make better Client Callback controls), but should be a good start!&lt;/P&gt;
&lt;P&gt;The other things that make me curious is the use of "context" parameter in GetCallbackEventReference function. many examples all stated that the "context" parameter mostly would just doing ok by&amp;nbsp;inserting a string "context" and it will work, but what exactly the "context" string means? how it is used in the whole Client Callback framework? seems not many examples talk about this.&lt;/P&gt;
&lt;P&gt;By reading the &lt;A href="http://msdn2.microsoft.com/en-us/library/ms153103(VS.80).aspx"&gt;MSDN Library about this function&lt;/A&gt;, the function signature is as follows:&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr&gt;
&lt;P&gt;public string GetCallbackEventReference (&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; Control control,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; string argument,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; string clientCallback,&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;&lt;FONT color=#ff0000&gt;string context&lt;/FONT&gt;&lt;/STRONG&gt;&lt;BR&gt;)&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P dir=ltr&gt;where as the explaination of context parameter is as follows:&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr&gt;
&lt;P dir=ltr&gt;context&lt;BR&gt;Client-side script that is evaluated on the client prior to initiating the callback. The result of the script is passed back to the client-side event handler. &lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P dir=ltr&gt;by looking at the example provided from MSDN, it will be clear about what actually the context parameter is doing.&lt;/P&gt;
&lt;P dir=ltr&gt;on the server side code:&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr&gt;
&lt;P dir=ltr&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Get a ClientScriptManager reference from the Page class.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ClientScriptManager cs = Page.ClientScript;&lt;/P&gt;
&lt;P dir=ltr&gt;&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Define one of the callback script's context.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // The callback script will be defined in a script block on the page.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; StringBuilder context1 = new StringBuilder();&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; context1.Append("function ReceiveServerData1(arg, context)");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; context1.Append("{");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; context1.Append("Message1.innerText =&amp;nbsp; arg;");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; context1.Append("value1 = arg;");&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; context1.Append("}");&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P dir=ltr&gt;&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Define callback references.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String cbReference1 = cs.GetCallbackEventReference(this, "arg", &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "ReceiveServerData1", context1.ToString());&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String cbReference2 = cs.GetCallbackEventReference("'" + &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Page.UniqueID + "'", "arg", "ReceiveServerData2", "", &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; "ProcessCallBackError", false);&lt;BR&gt;&lt;/STRONG&gt;&lt;/FONT&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String callbackScript1 = "function CallTheServer1(arg, context) {" + &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cbReference1 + "; }";&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; String callbackScript2 = "function CallTheServer2(arg, context) {" + &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cbReference2 + "; }";&lt;/P&gt;
&lt;P dir=ltr&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Register script blocks will perform call to the server.&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cs.RegisterClientScriptBlock(this.GetType(), "CallTheServer1", &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; callbackScript1, true);&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cs.RegisterClientScriptBlock(this.GetType(), "CallTheServer2", &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; callbackScript2, true);&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P dir=ltr&gt;noticed that cbReference1 string variable is actually taking the whole client function definition as the input of context parameter, while at cbReference2, it's actually supplying empty string as context parameter input, because of that the callback function of cbReference2&amp;nbsp;is actually defined in the aspx page's javascript block. by investigating the sample code as well as reading the description of context parameter again, it should be easiler to understand that &lt;STRONG&gt;&lt;FONT color=#ff0000&gt;the context parameter is actually a place to supply client-side block in server-side code block while defining a Client Callback client-side procedure&lt;/FONT&gt;&lt;/STRONG&gt;! thus one can define the callback client function either in the server-side (code-behind file) or in the client side (aspx file), depends on where is proper to put it!&lt;/P&gt;
&lt;P dir=ltr&gt;So, if one is putting client callback function in aspx page inside a&amp;nbsp;script block, the context parameter can actually be specified as empty string and the program will still run, avoiding the "context" string input&amp;nbsp;into context parameter&amp;nbsp;that confuse the program readibility.&lt;/P&gt;
&lt;P dir=ltr&gt;the other thing that's also interesting to see via the example code in MSDN Library:&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr&gt;
&lt;P dir=ltr&gt;&amp;lt;body&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;form id="Form1" &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; runat="server"&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;div&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Callback 1 result: &amp;lt;span id="Message1"&amp;gt;0&amp;lt;/span&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;br /&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Callback 2 result: &amp;lt;span id="Message2"&amp;gt;0&amp;lt;/span&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input type="button" &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; value="ClientCallBack1" &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;&lt;FONT color=#ff0000&gt;onclick="CallTheServer1(value1, alert('Increment value'))"&lt;/FONT&gt;&lt;/STRONG&gt;/&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;input type="button" &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; value="ClientCallBack2" &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;&lt;FONT color=#ff0000&gt;onclick="CallTheServer2(value2, alert('Increment value'))"&lt;/FONT&gt;&lt;/STRONG&gt;/&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;br /&amp;gt; &amp;lt;br /&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;asp:Label id="MyLabel" &lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; runat="server"&amp;gt;&amp;lt;/asp:Label&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/div&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/form&amp;gt;&lt;BR&gt;&amp;lt;/body&amp;gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P dir=ltr&gt;CallTheServer1 and CallTheServer2&amp;nbsp;are actually both with 2 arguments, "arg" and "context", according to previous code block's definitions. now, what's the mean of this "context" argument in these client functions? is this same as the context parameter previously mentions above or even it points to the same memory place? &lt;/P&gt;
&lt;P dir=ltr&gt;Actually it's not the case. the context argument here seems not related to the context parameter mentioned above. and the function to this argument is simplely a client script block to let developers specify actions prior to callback to server. noticed that it's actually taking a javascript instance&amp;nbsp;instead of "a string of javascript" as its input, which is also different from those demonstrated in other examples, which normally also just tell readers to supply a "context" string. Therefore, if there&amp;nbsp;are no other client-side actions needed to be done before callback to server, the second optional parameter can actually have a empty string. &lt;/P&gt;
&lt;P dir=ltr&gt;Conclusion:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV&gt;the context parameter of GetCallbackEventReference Method&amp;nbsp;is a place to put client-side code block in server-side to specify the callback client function to use. if not specify in server-side, then this parameter can be left to empty string and put the actual client callback function in client side aspx file. &lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV&gt;the calling server function's second "context" argument is optional (but can not be stripped), which can be supplied by&amp;nbsp;a javascript code block to let it run before Client Callback process prior to actually make the call back to server.&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P dir=ltr&gt;Technorati Tags: &lt;A href="http://www.technorati.com/tag/programming"&gt;programming&lt;/A&gt;&amp;nbsp;,&amp;nbsp;&lt;A href="http://www.technorati.com/tag/asp.net"&gt;asp.net&lt;/A&gt;&amp;nbsp;,&amp;nbsp;&lt;A href="http://www.technorati.com/tag/ajax"&gt;ajax&lt;/A&gt;&amp;nbsp;,&amp;nbsp;&lt;A href="http://www.technorati.com/tag/callback"&gt;callback&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P dir=ltr&gt;&amp;nbsp;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=91184" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/rexiology/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Programming/default.aspx">Programming</category></item><item><title>Adding Northwind DB to SQL Server 2005...</title><link>http://msmvps.com/blogs/rexiology/archive/2006/04/16/91172.aspx</link><pubDate>Sat, 15 Apr 2006 19:01:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:91172</guid><dc:creator>Rex Tang</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/rexiology/rsscomments.aspx?PostID=91172</wfw:commentRss><comments>http://msmvps.com/blogs/rexiology/archive/2006/04/16/91172.aspx#comments</comments><description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;crosspost from &lt;A href="http://rextang.net/blogs/work/"&gt;http://rextang.net/blogs/work/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Am trying some ASP.NET 2.0 samples and found that there were no longer Northwind and Pubs DB associated with SQL Server 2005 installation.&lt;/P&gt;
&lt;P&gt;found at &lt;A href="http://www.codinghorror.com/blog/archives/000434.html"&gt;Coding Horror's blog post&lt;/A&gt; to add them back by downloading those sample databases from &lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyId=06616212-0356-46A0-8DA2-EEBC53A68034&amp;amp;displaylang=en"&gt;Microsoft download site&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;just download, install, and put those .mdf and .ldf files back to SQL DATA folder and then attach back to the server will put those sample DBs back.&lt;/P&gt;
&lt;P&gt;Technorati Tags: &lt;A href="http://www.technorati.com/tag/microsoft"&gt;microsoft&lt;/A&gt;&amp;nbsp;,&amp;nbsp;&lt;A href="http://www.technorati.com/tag/sqlserver"&gt;sqlserver&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=91172" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/rexiology/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Programming/default.aspx">Programming</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Information+Technology/default.aspx">Information Technology</category></item><item><title>ASP.NET 2.0 RSS Toolkit...</title><link>http://msmvps.com/blogs/rexiology/archive/2006/02/24/84747.aspx</link><pubDate>Fri, 24 Feb 2006 13:00:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:84747</guid><dc:creator>Rex Tang</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/rexiology/rsscomments.aspx?PostID=84747</wfw:commentRss><comments>http://msmvps.com/blogs/rexiology/archive/2006/02/24/84747.aspx#comments</comments><description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;crosspost from &lt;A href="http://rex.la/blogs/work/"&gt;http://rex.la/blogs/work/&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;[via &lt;A href="http://www.larkware.com/dg5/TheDailyGrind825.html"&gt;Larkware&lt;/A&gt;][via &lt;A href="http://andrewconnell.com/blog/archive/2006/02/22/2761.aspx"&gt;Andrew Connell&lt;/A&gt;]&lt;/P&gt;
&lt;P&gt;A nice &lt;A href="http://blogs.msdn.com/dmitryr/archive/2006/02/21/536552.aspx"&gt;asp.net 2.0 RSS toolkit&lt;/A&gt; by&amp;nbsp;&lt;A href="http://blogs.msdn.com/dmitryr/archive/2005/06/23/432095.aspx"&gt;Dmitry Robsman&lt;/A&gt;&amp;nbsp;to let your applications get RSS abilities.&lt;/P&gt;
&lt;P&gt;Got pretty good tutorial from &lt;A href="http://weblogs.asp.net/scottgu/archive/2006/02/22/438738.aspx"&gt;ScottGu's post&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;Technorati Tags: &lt;A href="http://www.technorati.com/tag/blog"&gt;blog&lt;/A&gt;&amp;nbsp;,&amp;nbsp;&lt;A href="http://www.technorati.com/tag/rss"&gt;rss&lt;/A&gt;,&amp;nbsp;&lt;A href="http://www.technorati.com/tag/programming"&gt;progamming&lt;/A&gt;,&amp;nbsp;&lt;A href="http://www.technorati.com/tag/asp.net"&gt;asp.net&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=84747" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/rexiology/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Programming/default.aspx">Programming</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Useful+Tools/default.aspx">Useful Tools</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Blog+Framework+_2F00_+Tools/default.aspx">Blog Framework / Tools</category></item><item><title>CommunityServer 2.0 Released...</title><link>http://msmvps.com/blogs/rexiology/archive/2006/02/21/84306.aspx</link><pubDate>Mon, 20 Feb 2006 19:15:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:84306</guid><dc:creator>Rex Tang</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/rexiology/rsscomments.aspx?PostID=84306</wfw:commentRss><comments>http://msmvps.com/blogs/rexiology/archive/2006/02/21/84306.aspx#comments</comments><description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;crosspost from &lt;A href="http://rex.la/blogs/work/"&gt;http://rex.la/blogs/work/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Finally, CommunityServer 2.0 was released couple minutes ago for public download , including Source Code couple hours later... will get busy upgrading again!&lt;/P&gt;
&lt;P&gt;Congratulations to &lt;A href="http://telligentsystems.com/"&gt;Telligent Systems&lt;/A&gt;!!&lt;/P&gt;
&lt;P&gt;[via &lt;A href="http://communityserver.org/forums/516115/ShowThread.aspx"&gt;Rob Howard on CS Announcement&lt;/A&gt;]&lt;/P&gt;
&lt;P&gt;&lt;IMG height=121 alt=cs20.gif src="http://rex.la/photos/work/images/3501/original.aspx" width=343 border=0&gt;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://telligent.com/"&gt;Telligent&lt;/A&gt; and the &lt;A href="http://communityserver.org/"&gt;Community Server team&lt;/A&gt; are very pleased to announce the immediate availability of Community Server 2.0 the platform that enables you to quickly and easily create online communities.&lt;BR&gt;&lt;BR&gt;&lt;A href="http://communityserver.org/files/40/releases/entry516087.aspx"&gt;&lt;FONT size=4&gt;&lt;B&gt;Download Community Server 2.0 MSI Now!&lt;/B&gt;&lt;/FONT&gt;&lt;/A&gt;&lt;BR&gt;&lt;A href="http://communityserver.org/files/40/releases/entry516076.aspx"&gt;&lt;B&gt;&lt;FONT size=4&gt;Download Community Server 2.0 Web Installer Now!&lt;/FONT&gt;&lt;/B&gt;&lt;/A&gt; (required if upgrading)&lt;BR&gt;&lt;A href="http://communityserver.org/"&gt;&lt;B&gt;&lt;FONT size=4&gt;Learn more at CommunityServer.org&lt;/FONT&gt;&lt;/B&gt;&lt;/A&gt;&lt;BR&gt;&lt;BR&gt;Community Server 2.0 is available in several editions:&lt;BR&gt;&lt;BR&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;B&gt;Express Edition&lt;/B&gt; – The &lt;U&gt;free&lt;/U&gt; Express Edition is perfect for people that need to get a community up-and-running on a budget. It is free, but has restrictions on use but can be used commercially.&lt;BR&gt;&lt;BR&gt;&lt;B&gt;Standard Edition&lt;/B&gt; – The Standard Edition is the entry level commercial platform and unlocks some features not available in the Express Edition.&lt;BR&gt;&lt;BR&gt;&lt;B&gt;Professional Edition&lt;/B&gt; – The Professional Edition is targeted at organizations that require many of the capabilities offered by Community Server 2.0 for running a high-traffic community.&lt;BR&gt;&lt;BR&gt;&lt;B&gt;Enterprise Edition&lt;/B&gt; – The Enterprise Edition unleashes the full potential of Community Server and has been designed for organizations that require all of the capabilities found in Community Server.&lt;BR&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;For more information on licensing Community Server 2.0, please read the &lt;A href="http://communityserver.org/blogs/announcements/archive/2006/02/06/513588.aspx"&gt;Community Server 2.0 licensing guide&lt;/A&gt;.&lt;BR&gt;&lt;BR&gt;&lt;U&gt;&lt;B&gt;Important:&lt;/B&gt;&lt;/U&gt; Community Server 2.0 Standard, Professional, and Enterprise Editions are available for purchase at the 1.1 price until March 20th 2006.&lt;BR&gt;&lt;BR&gt;In addition to many improvements in Community Server 2.0 core features (forums, blogs, and photos) some of the new capabilities in Community Server 2.0 include: &lt;BR&gt;&lt;BR&gt;&lt;/P&gt;
&lt;BLOCKQUOTE&gt;&lt;B&gt;File Gallery&lt;/B&gt; – Easily share files of any type and size. Supports comments, ratings, download counts as well as permissions for controlling how your files are accessed.&lt;BR&gt;&lt;BR&gt;&lt;B&gt;FTP Gateway&lt;/B&gt; – Easily enable drag-and-drop or even drive mapping for Community Server file or photo galleries.&lt;BR&gt;&lt;BR&gt;&lt;B&gt;Enterprise Search&lt;/B&gt; – Enables new options for data matching; RSS enabled search; and proximity searching&lt;BR&gt;&lt;BR&gt;&lt;B&gt;Email Gateway&lt;/B&gt; – Enables integration with Microsoft Exchange Server or stand-alone email support. Using the Mail Gateway enables blogging by email and using forums as an email distribution list.&lt;BR&gt;&lt;BR&gt;&lt;B&gt;RSS Aggregator&lt;/B&gt; – Easily combine multiple RSS sources into a combined/aggregated view.&lt;BR&gt;&lt;BR&gt;&lt;B&gt;RSS Reader&lt;/B&gt; – Enable each user to create his or her own custom RSS subscriptions as well as aggregating and ‘mashing-up’ related content in-and-outside of Community Server&lt;BR&gt;&lt;BR&gt;&lt;B&gt;Control Panel&lt;/B&gt; – Completely rewritten Control Panel which greatly simplifies management of Community Server.&lt;BR&gt;&lt;BR&gt;&lt;B&gt;…and more&lt;/B&gt; – Video blogging, Tablet PC ink support, simple content management, search engine optimization, basic social networking functionality, new reports, spam blocking tools, member points, new slideshow tool for photo gallery, updated polls system, forum personalization, RSS enabled search, secure RSS, better NNTP and Email integration, URL redirects/tracking, threaded UI for forums.&lt;BR&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;&lt;BR&gt;Please visit &lt;A href="http://communityserver.org/"&gt;www.communityserver.org&lt;/A&gt; where you can download Community Server 2.0 today! &lt;BR&gt;&lt;BR&gt;The Community Server core source code corresponding with today’s release will be published ~5PM CST Today as well.&lt;BR&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Technorati Tags: &lt;A href="http://www.technorati.com/tag/dottext"&gt;dottext&lt;/A&gt; , &lt;A href="http://www.technorati.com/tag/blog"&gt;blog&lt;/A&gt; , &lt;A href="http://www.technorati.com/tag/programming"&gt;programming&lt;/A&gt; , &lt;A href="http://www.technorati.com/tag/dotnet"&gt;dotnet&lt;/A&gt; , &lt;A href="http://www.technorati.com/tag/communityserver"&gt;communityserver&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=84306" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/rexiology/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Programming/default.aspx">Programming</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Useful+Tools/default.aspx">Useful Tools</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Blog+Framework+_2F00_+Tools/default.aspx">Blog Framework / Tools</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/I.T.+News/default.aspx">I.T. News</category></item><item><title>New Taiwan Microsoft Technology Forums Announced...</title><link>http://msmvps.com/blogs/rexiology/archive/2006/02/17/83910.aspx</link><pubDate>Thu, 16 Feb 2006 16:00:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:83910</guid><dc:creator>Rex Tang</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/rexiology/rsscomments.aspx?PostID=83910</wfw:commentRss><comments>http://msmvps.com/blogs/rexiology/archive/2006/02/17/83910.aspx#comments</comments><description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;crosspost from &lt;A href="http://rex.la/blogs/work/"&gt;http://rex.la/blogs/work/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;The &lt;A href="http://www.microsoft.com/taiwan/community/default.mspx"&gt;official Microsoft Technology Community at Taiwan&lt;/A&gt; used to be running &lt;A href="http://www.microsoft.com/taiwan/community/newsgroups.aspx"&gt;web-NNTP based forums&lt;/A&gt; to communicate with the public, answering questions and sharing information with each others. This year &lt;A href="http://www.microsoft.com/taiwan/"&gt;Microsoft Taiwan&lt;/A&gt; announced &lt;A href="http://forums.microsoft.com/msdn-cht/default.aspx?SiteID=14"&gt;new forum based community system&lt;/A&gt;, established new way to interact with the public. Using a forum system (should be based on &lt;A href="http://communityserver.org/"&gt;CommunityServer&lt;/A&gt; forum framework) enables all the content&amp;nbsp;be searched by popular searching engines and thus enables information be exchanged and shared more efficient and wide.&lt;/P&gt;
&lt;P&gt;This should be Chinese based Microsoft Technology Forums hosted by &lt;A href="http://www.microsoft.com/taiwan/community/whatsnew/mvps.mspx"&gt;Taiwan Microsoft MVPs&lt;/A&gt; and I'll also help on building a good Microsoft Technology related&amp;nbsp;content base to help more Chinese-reading people know more about Microsoft Technologies.&lt;/P&gt;
&lt;P&gt;[&lt;A href="http://rex.la/blogs/life/archive/2006/02/16/3489.aspx"&gt;This post in Chinese&lt;/A&gt;]&lt;/P&gt;
&lt;P&gt;Technorati Tags: &lt;A href="http://www.technorati.com/tag/microsoft"&gt;microsoft&lt;/A&gt;&amp;nbsp;, &lt;A href="http://www.technorati.com/tag/community"&gt;community&lt;/A&gt; , &lt;A href="http://www.technorati.com/tag/technology"&gt;technology&lt;/A&gt; , &lt;A href="http://www.technorati.com/tag/forum"&gt;forum&lt;/A&gt; , &lt;A href="http://www.technorati.com/tag/chinese"&gt;chinese&lt;/A&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=83910" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/rexiology/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Programming/default.aspx">Programming</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Useful+Tools/default.aspx">Useful Tools</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Architecture/default.aspx">Architecture</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Blog+Framework+_2F00_+Tools/default.aspx">Blog Framework / Tools</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/I.T.+News/default.aspx">I.T. News</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Information+Technology/default.aspx">Information Technology</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Readings/default.aspx">Readings</category></item><item><title>Looking for suitable web-hosting service...</title><link>http://msmvps.com/blogs/rexiology/archive/2006/02/12/83310.aspx</link><pubDate>Sun, 12 Feb 2006 10:42:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:83310</guid><dc:creator>Rex Tang</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/rexiology/rsscomments.aspx?PostID=83310</wfw:commentRss><comments>http://msmvps.com/blogs/rexiology/archive/2006/02/12/83310.aspx#comments</comments><description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;crosspost from &lt;A href="http://rex.la/blogs/work/"&gt;http://rex.la/blogs/work/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;As&amp;nbsp;&lt;A href="http://rex.la/"&gt;my blog site&lt;/A&gt;&amp;nbsp;got enough content and daily bandwidth is averagely 200mb, I am started thinking about moving this site to a web-hosting service for long-term operation. The other reason for that is also because of that I might changing my job and moving to somewhere else soon. Thus I might need to move all my services (DNS, blog, email service) to some web-hosting services. &lt;/P&gt;
&lt;P&gt;Actually it's not very easy to find a professional web-hosting service that provides Windows 2003 server , ASP.NET 1.1 / 2.0 , SQL Server 2000/2005 and others, which a professional Microsoft developer will likely to use and the price is acceptable. For a developer's needs, the hosting company must has strong background on hosting Microsoft technologies and should likely be more welcome that one hosting company is focus on only hosting Microsoft stuffs, comparing to most of hosting companies that usually host Unix/Linux as major and Windows as one of their services.&lt;/P&gt;
&lt;P&gt;Most of the needs of a hosting service is likely as follows:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Simply web pages hosting with server side dynamic content 
&lt;LI&gt;Web pages hosting and database support 
&lt;LI&gt;Email hosting 
&lt;LI&gt;Simple DNS hosting (route every names to root) 
&lt;LI&gt;Advanced DNS hosting with self-defined records (A, MX, CNAME, etc)&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;As in my case, I'll need web pages hosting with database support, email hosting and also advanced dns hosting if I'll move all my services from my home server to a hosting company.&lt;/P&gt;
&lt;P&gt;My colleague Chris Ho gave me some links of host search and comparing&amp;nbsp;sites (&lt;A href="http://www.hostsearch.com/"&gt;here&lt;/A&gt; and &lt;A href="http://www.hostingassured.findmyhosting.com/"&gt;here&lt;/A&gt;) that provides comprehensive information on overall hosting service markets (which is what I needed! thanks pal!). through the &lt;A href="http://www.google.com.tw/search?sourceid=navclient&amp;amp;ie=UTF-8&amp;amp;rls=GGLG,GGLG:2006-04,GGLG:en&amp;amp;q=Microsoft%27s+ASP%2ENET+Hosting+Advantage+Program"&gt;search of Google&lt;/A&gt; also find &lt;A href="http://blogs.msdn.com/frankarr/archive/2004/03/04/83611.aspx"&gt;Frankarr's post&lt;/A&gt; about asp.net web-hosting and later found that there is &lt;A href="http://www.asp.net/hosters/"&gt;a list of hosting services&lt;/A&gt; nominated by &lt;A href="http://www.microsoft.com/serviceproviders/aspnethost/"&gt;Microsoft ASP.NET Hosting Advantage&lt;/A&gt; program.&lt;/P&gt;
&lt;P&gt;Some of the hosting companies provide low price targeted to user who only needs web pages hosting and provide less support on email and dns hosting. some others are half-half, some others might provide web page hosting functions not as comprehensive as others but they provides excellent support for users to manage domain name records and email accounts.&amp;nbsp;so there will be a matrix of price, disk spaces, database spaces, technologies supported, email functions and dns functions on choosing a suitable hosting service based on one's needs.&lt;/P&gt;
&lt;P&gt;I am still taking a deep look of the matrix every Windows hosting company provides in that Hosting Advantage Program and will try some&amp;nbsp;of them in their "30 days money back guarantee" period&amp;nbsp;to come out a result later for my hosting needs.&lt;/P&gt;
&lt;P&gt;Technorati Tags: &lt;A href="http://www.technorati.com/tag/microsoft"&gt;microsoft&lt;/A&gt;&amp;nbsp;,&amp;nbsp;&lt;A href="http://www.technorati.com/tag/asp.net"&gt;asp.net&lt;/A&gt;,&amp;nbsp;&lt;A href="http://www.technorati.com/tag/hosting"&gt;hosting&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=83310" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/rexiology/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Useful+Tools/default.aspx">Useful Tools</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Blog+Framework+_2F00_+Tools/default.aspx">Blog Framework / Tools</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Information+Technology/default.aspx">Information Technology</category></item><item><title>quotation marks and javascript...</title><link>http://msmvps.com/blogs/rexiology/archive/2006/01/19/81405.aspx</link><pubDate>Wed, 18 Jan 2006 18:59:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:81405</guid><dc:creator>Rex Tang</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/rexiology/rsscomments.aspx?PostID=81405</wfw:commentRss><comments>http://msmvps.com/blogs/rexiology/archive/2006/01/19/81405.aspx#comments</comments><description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;crosspost from &lt;A href="http://rex.la/blogs/work/"&gt;http://rex.la/blogs/work/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;It's all about &lt;A href="http://en.wikipedia.org/wiki/Javascript"&gt;Javascript&lt;/A&gt; when dealing with &lt;A href="http://en.wikipedia.org/wiki/AJAX"&gt;AJAX&lt;/A&gt; components...&lt;/P&gt;
&lt;P&gt;When one is writing client functions, and needs to attach to event handlers, like:&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr&gt;
&lt;P&gt;&amp;lt;input type="button" name="aName" id="aID" value="Press Me!" onclick=" func1(); "&amp;gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;It's simple when just calling a function to do things. Alternatively, one can also write multiple statements inside the onclick string:&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr&gt;
&lt;P&gt;onclick=" var str1='a string'; alert(str1); "&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;What about if one is going to dynamically generate a control (via string) and put it in some other controls innerHTML, like this:&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr&gt;
&lt;P&gt;var strshowmsg = "Show me as a string";&lt;BR&gt;var strtrouble = "Show me as a string with \" exist also got ' exist!!!";&lt;BR&gt;var strcontrol1 = "&amp;lt;input type=\"button\" id=\"button1\" name=\"button1\" value=\"Press Me!\" onclick=\"var str1='" + strshowmsg + "'; alert(str1);\"&amp;gt;";&lt;BR&gt;document.getElementById(strASpanTagID).innerHTML = strcontrol1;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;It should be ok if the first string is going to output, but it should got script error when trying to show the second string&amp;nbsp;because quotation marks crash pairing of strings.&lt;/P&gt;
&lt;P&gt;strtrouble string variable often happened when strings are coming from a database or some user input. one never know what will be coming in (except telling user that only single quotation marks are allowed or what). in order to allow anything to be able to put in this kind of application, there is one way to do it.&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr&gt;
&lt;P&gt;var strcontrol1 = "&amp;lt;input type=\"button\" id=\"button1\" name=\"button1\" value=\"Press Me!\" onclick=\"&lt;FONT color=#ff0000&gt;eval(unescape('"&amp;nbsp;+&amp;nbsp;escape("var str1=\"" + strshowmsg.&lt;/FONT&gt;&lt;FONT color=#006400&gt;replace("\"","&lt;/FONT&gt;&lt;A&gt;&lt;FONT color=#006400&gt;\\\"&lt;/FONT&gt;&lt;/A&gt;&lt;FONT color=#ff0000&gt;&lt;FONT color=#006400&gt;)&lt;/FONT&gt; + "\"; alert(str1);") + "'));&lt;/FONT&gt;\"&amp;gt;";&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P&gt;The idea is to use eval to wrap whole javascript in a string and using escape / unescape to url encode the whole string to prevent any special chars, finally, explicitly escape double quotation marks inside the string coming from a variable output (from database, or user input) to ensure the whole escaped javascript statements are in the right way to output (since here using double quotation marks to wrap strings...).&lt;/P&gt;
&lt;P&gt;Technorati Tags: &lt;A href="http://www.technorati.com/tag/asp.net"&gt;asp.net&lt;/A&gt;&amp;nbsp;,&amp;nbsp;&lt;A href="http://www.technorati.com/tag/programming"&gt;programming&lt;/A&gt;,&amp;nbsp;&lt;A href="http://www.technorati.com/tag/ajax"&gt;ajax&lt;/A&gt;,&amp;nbsp;&lt;A href="http://www.technorati.com/tag/javascript"&gt;javascript&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=81405" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/rexiology/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Programming/default.aspx">Programming</category></item><item><title>My turn to have VS.NET 2003 tell me "failure occurred while attempting to start compilation" ...</title><link>http://msmvps.com/blogs/rexiology/archive/2006/01/17/81307.aspx</link><pubDate>Tue, 17 Jan 2006 09:08:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:81307</guid><dc:creator>Rex Tang</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/rexiology/rsscomments.aspx?PostID=81307</wfw:commentRss><comments>http://msmvps.com/blogs/rexiology/archive/2006/01/17/81307.aspx#comments</comments><description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;crosspost from &lt;A href="http://rex.la/blogs/work/"&gt;http://rex.la/blogs/work/&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Annoying...&lt;/P&gt;
&lt;P&gt;busy on writing my code and get this "&lt;STRONG&gt;failure occurred while attempting to start compilation&lt;/STRONG&gt;" from vs.net 2003 , happened without a reason.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.google.com.tw/search?hl=en&amp;amp;rls=GGLD,GGLD:2005-18,GGLD:en&amp;amp;q=failure+occurred+while+attempting+to+start+compilation&amp;amp;spell=1"&gt;a search to Google&lt;/A&gt; found the reason of the cause (likely) [I am not lonely... Orz]. Seems too many projects in one solution will cause this error (I got 17 projects in a solution currently). &lt;A href="http://groups.google.com.tw/group/microsoft.public.vsnet.ide/browse_thread/thread/6da4c968a419796e/66d321cc984e142f?lnk=st&amp;amp;q=failure+occurred+while+attempting+to+start+compilation&amp;amp;rnum=3&amp;amp;hl=en#66d321cc984e142f"&gt;some one got 67 projects&lt;/A&gt; provided a fix to solve this (thanks to Jeffrey to point out the link), but didn't work out to my situation (close vs.net, delete all pdb file by using "del *.pdb /s", open vs.net and compile again) . &lt;/P&gt;
&lt;P&gt;Finally I got my situation solved by:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;
&lt;DIV&gt;Minimize projects in a solution to 13 projects.&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV&gt;Close VS.NET 2003&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV&gt;Delete all .pdb files in bin dir.&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV&gt;Delete all .dll files in bin dir.&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV&gt;Open VS.NET 2003 and compile again.&lt;/DIV&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;I know! this will be my last project using VS.NET 2003, will switch to VS.NET 2005 in next project. &lt;/P&gt;
&lt;P&gt;... Or I know!! I'll start learning using &lt;A href="http://nant.sourceforge.net/"&gt;NAnt&lt;/A&gt;..&lt;/P&gt;
&lt;P&gt;Technorati Tags: &lt;A href="http://www.technorati.com/tag/asp.net"&gt;asp.net&lt;/A&gt;&amp;nbsp;,&amp;nbsp;&lt;A href="http://www.technorati.com/tag/programming"&gt;programming&lt;/A&gt;,&amp;nbsp;&lt;A href="http://www.technorati.com/tag/visualstudio"&gt;visualstudio&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=81307" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/rexiology/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Programming/default.aspx">Programming</category></item><item><title>asp.net - initial values validation while page load or post back...</title><link>http://msmvps.com/blogs/rexiology/archive/2006/01/13/80902.aspx</link><pubDate>Thu, 12 Jan 2006 19:00:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:80902</guid><dc:creator>Rex Tang</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/rexiology/rsscomments.aspx?PostID=80902</wfw:commentRss><comments>http://msmvps.com/blogs/rexiology/archive/2006/01/13/80902.aspx#comments</comments><description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;crosspost from &lt;A href="http://rex.la/blogs/work/"&gt;http://rex.la/blogs/work/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;It's mostly required to do the initial values validation while an application start, no matter it's a winform or webform, a page taking values from query string or a web control taking&amp;nbsp;values from attributes. &lt;/P&gt;
&lt;P&gt;Lessons learned while doing my project, while doing a web user control. if main page will do many initial operations against a child web user control. the child web user control better doing it's all variable initiation at Page_Init event instead of a Page_Load. remembered the sequence of page event occurrence: Page_Init -&amp;gt; Load ViewState -&amp;gt; Page Load -&amp;gt; PreRender -&amp;gt; Render -&amp;gt; Page_Unload , till here the server side operation completed and web server send the renderred page to the client, this is the start time client javascript code take place. For composited control tree, started from page, the event occurrence start from root (the page), then followed by leaf controls. thus if in page's page_load there are many function calls to child controls, it might not get ready for control's initial value prepared for the main page or its own functions. therefore it should be better to put initial value setting and validation during page_init event, instead of page_load event.&lt;/P&gt;
&lt;P&gt;It's common for page to take parameters from query string during post backs, also normal for web user control to get parameters from attributes specified from page or other controls. It would be a good practice to always validate those values before start processing logics. &lt;/P&gt;
&lt;P&gt;for parameters there will always some values (mostly string values) pre-defined for user to specify. normally some integers, or strings like "true" or "false" or others custimized. by doing a initial value validation while page_init make sure the control gor the correct value and reduce the error handling inside logics. normally the validation code would like the following:&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr&gt;
&lt;P dir=ltr&gt;&lt;FONT face=Arial&gt;if (strValue1 == null) strValue1 = ""; // be sure always check null.&lt;BR&gt;if (strValue1.ToLower() != "true" &amp;amp;&amp;amp; strValue1.ToLower() != "false") strValue1 = "false";&lt;BR&gt;if (strLevel == null) strLevel = "";&lt;BR&gt;if (strLevel.ToLower() != "low" &amp;amp;&amp;amp; strLevel.ToLower() != "middle" &amp;amp;&amp;amp; strLevel.ToLower() != "high") strLevel = "middle";&lt;/FONT&gt;&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P dir=ltr&gt;this will get little lousy if a parameter got too many options to&amp;nbsp;set.&lt;/P&gt;
&lt;P dir=ltr&gt;null is always the thing needs to be checked, since one may not able to know if certain variable was initialized or not.&amp;nbsp;make sure at least&amp;nbsp;the string is not null, then for those lousy if statement, just found a way to reduce it, by using string comparison:&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr&gt;
&lt;P dir=ltr&gt;if (strLevel == null) strLevel = ""; // make sure it's not null to prevent runtime error&lt;BR&gt;if ("_low,middle,high".IndexOf(strLevel.ToLower()) &amp;lt; 1) strLevel = "middle";&lt;BR&gt;if (strValue2 == null) strValue2 = "";&lt;BR&gt;if ("_1_2_3_4_5_6_".IndexOf(strValue2) &amp;lt; 1) strValue2 = "1"; // check if the value is 1~6.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P dir=ltr&gt;using IndexOf to check the occurence of preferred values, reduce the if (...) ...; code needed. some notices of this are:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;
&lt;DIV&gt;strLevel can not be null or it will cause run-time error. so check the null first.&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV&gt;Astring.IndexOf("") always return 0, which make sense anyway. this will be the same index value of first char of the string to be compared. therefore do not put comparing string from first position. instead, putting them started from the second char by putting a space or anything in the first char. and do the compared value that's " &amp;lt; 1 " instead of " &amp;lt; 0" .&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV&gt;for the concern of matching the wrong value wanted, eg intened to matching "1" inside the string "_123456" , but a value "12" comes in,&amp;nbsp;it will&amp;nbsp;match&amp;nbsp;(&amp;nbsp;index at&amp;nbsp;1 )&amp;nbsp;but still got the wrong value required. put seperators between matching values should solve this (eg "_1_2_3_4_5_6_").&lt;/DIV&gt;
&lt;LI&gt;
&lt;DIV&gt;RegularExpression class should be the right one to choose for this operation, but it still seems too lousy to me.&lt;/DIV&gt;&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;this should reduce some amount of coding, also easy to understand the intension. and page or control will got correct and required values while processing logics&amp;nbsp;thus reduce validation code needed.&lt;/P&gt;
&lt;P&gt;Technorati Tags: &lt;A href="http://www.technorati.com/tag/asp.net"&gt;asp.net&lt;/A&gt;&amp;nbsp;,&amp;nbsp;&lt;A href="http://www.technorati.com/tag/programming"&gt;programming&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=80902" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/rexiology/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Programming/default.aspx">Programming</category></item><item><title>Javascript - Select / UnSelect All checkbox...</title><link>http://msmvps.com/blogs/rexiology/archive/2006/01/12/80865.aspx</link><pubDate>Thu, 12 Jan 2006 08:22:00 GMT</pubDate><guid isPermaLink="false">d67277c4-116b-43f1-b688-e9ef184ea916:80865</guid><dc:creator>Rex Tang</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://msmvps.com/blogs/rexiology/rsscomments.aspx?PostID=80865</wfw:commentRss><comments>http://msmvps.com/blogs/rexiology/archive/2006/01/12/80865.aspx#comments</comments><description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;crosspost from &lt;A href="http://rex.la/blogs/work/"&gt;http://rex.la/blogs/work/&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Often used tricks on HTML / Javascript design to provide a select all / unselect all checkbox somewhere to make user a better UI experience.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.google.com.tw/search?hl=en&amp;amp;rls=GGLD%2CGGLD%3A2005-18%2CGGLD%3Aen&amp;amp;q=html+checkbox+group+select+all+javascript"&gt;Google search&lt;/A&gt; got many result about this, since it's already old tricks that's often used in many websites. but sometimes it's easy&amp;nbsp;to forget about how to quickly write one in hand, I found &lt;A href="http://javascript.internet.com/forms/check-by-group.html"&gt;this example&lt;/A&gt; that's simple and quick to understand and pick up.&lt;/P&gt;
&lt;P&gt;Technorati Tags: &lt;A href="http://www.technorati.com/tag/asp.net"&gt;asp.net&lt;/A&gt;&amp;nbsp;,&amp;nbsp;&lt;A href="http://www.technorati.com/tag/programming"&gt;programming&lt;/A&gt;&amp;nbsp;,&amp;nbsp;&lt;A href="http://www.technorati.com/tag/javascript"&gt;javascript&lt;/A&gt;&amp;nbsp; &lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://msmvps.com/aggbug.aspx?PostID=80865" width="1" height="1"&gt;</description><category domain="http://msmvps.com/blogs/rexiology/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://msmvps.com/blogs/rexiology/archive/tags/Programming/default.aspx">Programming</category></item></channel></rss>