<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://rextang.net/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::Work : Architechture</title><link>http://rextang.net/blogs/work/archive/tags/Architechture/default.aspx</link><description>Tags: Architechture</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 SP2 (Debug Build: 40407.4157)</generator><item><title>Single Sign On (SSO) with Windows Live ID SDK...</title><link>http://rextang.net/blogs/work/archive/2007/09/12/5649.aspx</link><pubDate>Wed, 12 Sep 2007 07:57:49 GMT</pubDate><guid isPermaLink="false">c4c3a05f-02e4-4db4-b761-d853f78d3399:5649</guid><dc:creator>rextangtw</dc:creator><slash:comments>0</slash:comments><comments>http://rextang.net/blogs/work/archive/2007/09/12/5649.aspx#comments</comments><description>&lt;p&gt;crosspost from &lt;a href="http://blogs.msdn.com/rextang"&gt;http://blogs.msdn.com/rextang&lt;/a&gt; &lt;/p&gt; &lt;p&gt;[via &lt;a href="http://blog.ijliao.info/archives/2007/08/17/3250/" target="_blank"&gt;ijliao&lt;/a&gt; in Chinese] [via &lt;a href="http://slashdot.org/developers/07/08/17/0042224.shtml" target="_blank"&gt;Slashdot&lt;/a&gt;] [via &lt;a href="http://blogs.msdn.com/angus_logan/archive/2007/08/16/service-release-announcment-windows-live-id-web-authentication-released.aspx" target="_blank"&gt;Angus Logan&lt;/a&gt;]&lt;/p&gt; &lt;p&gt;At 8/16 Angus announced the news on MSDN blogs, that &lt;a href="http://go.microsoft.com/fwlink/?LinkID=91762" target="_blank"&gt;Windows Live ID SDK&lt;/a&gt; with &lt;a href="http://go.microsoft.com/fwlink/?LinkID=91761" target="_blank"&gt;samples&lt;/a&gt; was released to developers&amp;nbsp; for developing &lt;a href="http://en.wikipedia.org/wiki/Single_sign_on" target="_blank"&gt;SSO&lt;/a&gt; applications using &lt;a href="http://en.wikipedia.org/wiki/Windows_Live_ID" target="_blank"&gt;Live ID&lt;/a&gt;. Documentation is also renewed.&lt;/p&gt; &lt;p&gt;according to ijliao&amp;#39;s info, there are SSO solutions from major internet companies for now as follows:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Microsoft: &lt;a href="http://go.microsoft.com/fwlink/?LinkID=91762" target="_blank"&gt;Windows Live ID&lt;/a&gt;&lt;/li&gt; &lt;li&gt;Yahoo!: &lt;a href="http://developer.yahoo.com/auth/" target="_blank"&gt;Yahoo! BBAuth&lt;/a&gt;&lt;/li&gt; &lt;li&gt;Google: &lt;a href="http://code.google.com/apis/accounts/Authentication.html" target="_blank"&gt;Google Account Authentication&lt;/a&gt;&lt;/li&gt; &lt;li&gt;&lt;a href="http://openid.net/" target="_blank"&gt;OpenID&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;For developers and architects, it should be good to develop a SSO wrapper for self use and includes those worldwide SSO providers for applications.&lt;/p&gt; &lt;p&gt;FYI.&lt;/p&gt; &lt;p&gt; &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:293a3469-0410-4179-b1ff-d92eb8eff697" 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/microsoft" rel="tag"&gt;microsoft&lt;/a&gt;, &lt;a href="http://technorati.com/tags/yahoo" rel="tag"&gt;yahoo&lt;/a&gt;, &lt;a href="http://technorati.com/tags/google" rel="tag"&gt;google&lt;/a&gt;, &lt;a href="http://technorati.com/tags/sso" rel="tag"&gt;sso&lt;/a&gt;, &lt;a href="http://technorati.com/tags/sdk" rel="tag"&gt;sdk&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://rextang.net/aggbug.aspx?PostID=5649" width="1" height="1"&gt;</description><category domain="http://rextang.net/blogs/work/archive/tags/Architechture/default.aspx">Architechture</category><category domain="http://rextang.net/blogs/work/archive/tags/Programming/default.aspx">Programming</category><category domain="http://rextang.net/blogs/work/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://rextang.net/blogs/work/archive/tags/Useful+Tools/default.aspx">Useful Tools</category><category domain="http://rextang.net/blogs/work/archive/tags/I.T.+News/default.aspx">I.T. News</category></item><item><title>TechEd 2007 is coming (6/4~6/8)...</title><link>http://rextang.net/blogs/work/archive/2007/05/31/5017.aspx</link><pubDate>Thu, 31 May 2007 04:34:54 GMT</pubDate><guid isPermaLink="false">c4c3a05f-02e4-4db4-b761-d853f78d3399:5017</guid><dc:creator>rextangtw</dc:creator><slash:comments>0</slash:comments><comments>http://rextang.net/blogs/work/archive/2007/05/31/5017.aspx#comments</comments><description>&lt;p&gt;crosspost from &lt;a href="http://blogs.msdn.com/rextang"&gt;http://blogs.msdn.com/rextang&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&lt;a href="http://www.microsoft.com/teched" target="_new"&gt;&lt;img src="http://rextang.net/photos/work/images/5015/500x375.aspx" alt="" /&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;The annual Microsoft pilgrimage &lt;a href="http://www.microsoft.com/teched" target="_blank"&gt;TechEd 2007&lt;/a&gt; is starting next week. From 6/4~6/8 at &lt;a href="http://www.occc.net/" target="_blank"&gt;Orange County Convention Center&lt;/a&gt;&amp;nbsp;of Orlando, Florida , USA. &lt;/p&gt; &lt;p&gt;The main topics of this year&amp;#39;s TechEd, at I.T. side should be:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Windows Server 2008  &lt;li&gt;The 2007 Microsoft Office System  &lt;li&gt;Microsoft Windows Vista  &lt;li&gt;Exchange Server 2007  &lt;li&gt;etc...&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;The main topics of Developer side should be:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Visual Studio codename &amp;quot;Orcas&amp;quot;  &lt;li&gt;ASP.NET / AJAX / IIS7  &lt;li&gt;The 2007 Microsoft Office System  &lt;li&gt;.NET Framework 3.0  &lt;li&gt;LINQ  &lt;li&gt;etc...&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;The keynote speaker this year will be Microsoft Senior VP Bob Muglia. This year&amp;#39;s attendee party will be at &lt;a href="http://www.universalorlando.com/ioa_map.html" target="_blank"&gt;Islands of Adventure&lt;/a&gt; of &lt;a href="http://www.universalorlando.com/" target="_blank"&gt;Universal Studio Orlando&lt;/a&gt;&amp;nbsp;at day 3, which is little bit different from the &lt;a href="http://www.universalorlando.com/usf_map.html" target="_blank"&gt;Theme park&lt;/a&gt; I&amp;#39;ve &lt;a href="http://rextang.net/blogs/past/archive/2005/06/10/982.aspx" target="_blank"&gt;been&lt;/a&gt; at TechEd 2005.&lt;/p&gt; &lt;p&gt;There is &lt;a href="http://www.virtualteched.com/" target="_blank"&gt;Virtual TechEd 2007&lt;/a&gt; site features webcasts, blog rolls for the upcoming information, people attending TechEd usually update blogs in real time so you can get latest news even if you can not attend the events. &lt;a href="http://techedbloggers.net/" target="_blank"&gt;TechEdBloggers.net&lt;/a&gt; is another TechEd blog roll site for information.&lt;/p&gt; &lt;p&gt;Although I am not able to attend this event this year, I am looking forward those of you who will be there to update the info on the internet. Have a good time at sunny Florida!! :)&lt;/p&gt; &lt;p&gt;&lt;/p&gt; &lt;div class="wlWriterEditableSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:3df32505-62bb-4656-af8f-45f5060635c8" 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/microsoft" rel="tag"&gt;microsoft&lt;/a&gt;, &lt;a href="http://technorati.com/tags/windows" rel="tag"&gt;windows&lt;/a&gt;, &lt;a href="http://technorati.com/tags/technology" rel="tag"&gt;technology&lt;/a&gt;, &lt;a href="http://technorati.com/tags/teched" rel="tag"&gt;teched&lt;/a&gt;, &lt;a href="http://technorati.com/tags/florida" rel="tag"&gt;florida&lt;/a&gt;, &lt;a href="http://technorati.com/tags/architecture" rel="tag"&gt;architecture&lt;/a&gt;, &lt;a href="http://technorati.com/tags/event" rel="tag"&gt;event&lt;/a&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://rextang.net/aggbug.aspx?PostID=5017" width="1" height="1"&gt;</description><category domain="http://rextang.net/blogs/work/archive/tags/Information+Technology/default.aspx">Information Technology</category><category domain="http://rextang.net/blogs/work/archive/tags/Architechture/default.aspx">Architechture</category><category domain="http://rextang.net/blogs/work/archive/tags/Programming/default.aspx">Programming</category><category domain="http://rextang.net/blogs/work/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://rextang.net/blogs/work/archive/tags/I.T.+News/default.aspx">I.T. News</category></item><item><title>Some .Net Blog Framework references...</title><link>http://rextang.net/blogs/work/archive/2007/05/30/5014.aspx</link><pubDate>Wed, 30 May 2007 10:20:31 GMT</pubDate><guid isPermaLink="false">c4c3a05f-02e4-4db4-b761-d853f78d3399:5014</guid><dc:creator>rextangtw</dc:creator><slash:comments>0</slash:comments><comments>http://rextang.net/blogs/work/archive/2007/05/30/5014.aspx#comments</comments><description>&lt;p&gt;crosspost form &lt;a href="http://blogs.msdn.com/rextang"&gt;http://blogs.msdn.com/rextang&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Just did a &lt;a href="http://www.codeplex.com/Project/ProjectDirectory.aspx?ProjectSearchText=blog" target="_blank"&gt;quick search on CodePlex&lt;/a&gt; about open source .Net blog framework, and here are some&amp;nbsp;blog frameworks that I am watching:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;a href="http://workspaces.gotdotnet.com/dottext" target="_blank"&gt;.Text&lt;/a&gt; - should be no doubt the origin of .net blog framework, used in my very first personal blog site.  &lt;li&gt;&lt;a href="http://www.subtextproject.com/" target="_blank"&gt;SubText&lt;/a&gt; - from .Text , a&amp;nbsp;fork from&amp;nbsp;.Text  &lt;li&gt;&lt;a href="http://www.communityserver.org" target="_blank"&gt;CommunityServer&lt;/a&gt; - also from&amp;nbsp;.Text, a nice blog / forum / gallery engine from &lt;a href="http://telligentsystems.com/" target="_blank"&gt;Telligent Systems&lt;/a&gt; where .Text creator &lt;a href="http://scottwater.com/" target="_blank"&gt;Scott Watermasysk&lt;/a&gt; is at. The blog engine of &lt;a href="http://rextang.net/" target="_blank"&gt;my personal blog site&lt;/a&gt; currently.  &lt;li&gt;&lt;a href="http://www.dasblog.info/" target="_blank"&gt;dasBlog&lt;/a&gt; - base on BlogX, initially written by Chris Anderson and contributors (&lt;a href="http://www.hanselman.com/blog/" target="_blank"&gt;Scott Hanselman&lt;/a&gt; is one of them).  &lt;li&gt;&lt;a href="http://www.codeplex.com/joycode" target="_blank"&gt;Joycode Blog System&lt;/a&gt; - base on .Text , modified by China bloggers and running on &lt;a href="http://blog.joycode.com/" target="_blank"&gt;this&lt;/a&gt; Chinese technical blog site.  &lt;li&gt;&lt;a href="http://www.codeplex.com/blogengine" target="_blank"&gt;BlogEngine.Net&lt;/a&gt; - simple light-weight ASP.NET blog system,&amp;nbsp;running entirely on XML, no database is needed (but can be an option). &lt;a href="http://www.dotnetblogengine.net/" target="_blank"&gt;Project website here&lt;/a&gt;. Introduced by &lt;a href="http://www.larkware.com/dg8/TheDailyGrind1149.aspx" target="_blank"&gt;Larkware News here&lt;/a&gt;.  &lt;li&gt;&lt;a href="http://www.codeplex.com/Nblogr" target="_blank"&gt;Nblogr&lt;/a&gt; - using &lt;a href="http://www.base4.net/Base4.NET.aspx" target="_blank"&gt;Base4.Net&lt;/a&gt; OR/M datamapper and &lt;a href="http://www.castleproject.org/" target="_blank"&gt;Castle&lt;/a&gt;&amp;nbsp;framework.&amp;nbsp;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Also found &lt;a href="http://www.codeplex.com/BlogML" target="_blank"&gt;BlogML&lt;/a&gt; project that can convert blog contents in different blog systems to unified formatted content&amp;nbsp;to enable transferring between&amp;nbsp;blog systems.&lt;/p&gt; &lt;p&gt;Also found &lt;a href="http://www.screwturn.eu/" target="_blank"&gt;Screwturn Wiki&lt;/a&gt; system on &lt;a href="http://www.dotnetblogengine.net/wiki/Default.aspx?AspxAutoDetectCookieSupport=1" target="_blank"&gt;BlogEngine.Net doc page&lt;/a&gt;, which is another nice open source wiki system other than &lt;a href="http://www.flexwiki.com/" target="_blank"&gt;FlexWiki&lt;/a&gt;&amp;nbsp;by Craig Andera.&lt;/p&gt; &lt;p&gt;FYI.&lt;/p&gt; &lt;div class="wlWriterEditableSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:788e4675-c4c8-4c21-9d2a-438329b1789b" 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/microsoft" rel="tag"&gt;microsoft&lt;/a&gt;, &lt;a href="http://technorati.com/tags/asp.net" rel="tag"&gt;asp.net&lt;/a&gt;, &lt;a href="http://technorati.com/tags/blog" rel="tag"&gt;blog&lt;/a&gt;, &lt;a href="http://technorati.com/tags/framework" rel="tag"&gt;framework&lt;/a&gt;, &lt;a href="http://technorati.com/tags/open%20source" rel="tag"&gt;open source&lt;/a&gt;, &lt;a href="http://technorati.com/tags/wiki" rel="tag"&gt;wiki&lt;/a&gt;, &lt;a href="http://technorati.com/tags/programming" rel="tag"&gt;programming&lt;/a&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://rextang.net/aggbug.aspx?PostID=5014" width="1" height="1"&gt;</description><category domain="http://rextang.net/blogs/work/archive/tags/Blog+Framework+_2F00_+Tools/default.aspx">Blog Framework / Tools</category><category domain="http://rextang.net/blogs/work/archive/tags/Architechture/default.aspx">Architechture</category><category domain="http://rextang.net/blogs/work/archive/tags/Programming/default.aspx">Programming</category><category domain="http://rextang.net/blogs/work/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://rextang.net/blogs/work/archive/tags/Useful+Tools/default.aspx">Useful Tools</category></item><item><title>TFS Guide Beta 1 available...</title><link>http://rextang.net/blogs/work/archive/2007/05/24/4968.aspx</link><pubDate>Thu, 24 May 2007 03:28:13 GMT</pubDate><guid isPermaLink="false">c4c3a05f-02e4-4db4-b761-d853f78d3399:4968</guid><dc:creator>rextangtw</dc:creator><slash:comments>0</slash:comments><comments>http://rextang.net/blogs/work/archive/2007/05/24/4968.aspx#comments</comments><description>&lt;p&gt;crosspost from &lt;a href="http://blogs.msdn.com/rextang"&gt;http://blogs.msdn.com/rextang&lt;/a&gt; &lt;/p&gt; &lt;p&gt;[via &lt;a href="http://blogs.msdn.com/jmeier/archive/2007/05/23/team-dev-with-tfs-guide-beta-1-release.aspx" target="_blank"&gt;J.D. Meier&lt;/a&gt;]&lt;/p&gt; &lt;p&gt;Just saw from &lt;a href="http://blogs.msdn.com/jmeier/" target="_blank"&gt;J.D.&amp;#39;s blog&lt;/a&gt; that he just released &lt;a href="http://www.codeplex.com/TFSGuide" target="_blank"&gt;beta 1 of Team Development with Visual Studio Team Foundation Server Guide&lt;/a&gt;, which should be a very good guidence for TFS.&lt;/p&gt; &lt;p&gt;Forward the contents index from J.D.&amp;#39;s blog as follows:&lt;/p&gt; &lt;blockquote&gt; &lt;p&gt;&lt;strong&gt;&lt;em&gt;Contents at a Glance&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;em&gt;Part I, Fundamentals &lt;/em&gt; &lt;li&gt;&lt;em&gt;Part II, Source Control &lt;/em&gt; &lt;li&gt;&lt;em&gt;Part III, Builds &lt;/em&gt; &lt;li&gt;&lt;em&gt;Part IV, Large Project Considerations &lt;/em&gt; &lt;li&gt;&lt;em&gt;Part V, Project Management &lt;/em&gt; &lt;li&gt;&lt;em&gt;Part VI, Process Guidance &lt;/em&gt; &lt;li&gt;&lt;em&gt;Part VII, Reporting &lt;/em&gt; &lt;li&gt;&lt;em&gt;Part VIII, Setting Up and Maintaining the Team Environment&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&lt;strong&gt;&lt;em&gt;Chapters&lt;/em&gt;&lt;/strong&gt;  &lt;ul&gt; &lt;li&gt;&lt;em&gt;Introduction &lt;/em&gt; &lt;li&gt;&lt;em&gt;Ch 01 - Introducing the Team Environment &lt;/em&gt; &lt;li&gt;&lt;em&gt;Ch 02 - Team Foundation Server Architecture &lt;/em&gt; &lt;li&gt;&lt;em&gt;Ch 03 - Structuring Projects and Solutions &lt;/em&gt; &lt;li&gt;&lt;em&gt;Ch 04 - Structuring Projects and Solutions in Team Foundation Server &lt;/em&gt; &lt;li&gt;&lt;em&gt;Ch 05 - Defining Your Branching and Merging Strategy &lt;/em&gt; &lt;li&gt;&lt;em&gt;Ch 06 - Managing Source Control Dependencies in Visual Studio Team System &lt;/em&gt; &lt;li&gt;&lt;em&gt;Ch 07 - Team Build Explained &lt;/em&gt; &lt;li&gt;&lt;em&gt;Ch 08 - Setting Up Continuous Integration with Team Build &lt;/em&gt; &lt;li&gt;&lt;em&gt;Ch 09 - Setting Up Scheduled Builds with Team Build &lt;/em&gt; &lt;li&gt;&lt;em&gt;Ch 10 - Large Project Considerations &lt;/em&gt; &lt;li&gt;&lt;em&gt;Ch 11 - Project Management Explained &lt;/em&gt; &lt;li&gt;&lt;em&gt;Ch 12 - Work Items Explained &lt;/em&gt; &lt;li&gt;&lt;em&gt;Ch 13 – MSF Agile Projects &lt;/em&gt; &lt;li&gt;&lt;em&gt;Ch 14 - Process Templates Explained &lt;/em&gt; &lt;li&gt;&lt;em&gt;Ch 15 - Reporting Explained &lt;/em&gt; &lt;li&gt;&lt;em&gt;Ch 16 - Team Foundation Server Deployment &lt;/em&gt; &lt;li&gt;&lt;em&gt;Ch 17 - Providing Internet Access to Team Foundation Server&lt;/em&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/blockquote&gt; &lt;p&gt;This should be a good practice guidence if you are managing team projects using TFS and Visual Studio, see what people at Microsoft using TFS on works.&lt;/p&gt; &lt;p&gt;FYI.&lt;/p&gt; &lt;p&gt; &lt;div class="wlWriterEditableSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:6c528d02-123e-4de8-814d-5f52522859c7" 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/microsoft" rel="tag"&gt;microsoft&lt;/a&gt;, &lt;a href="http://technorati.com/tags/visual%20studio" rel="tag"&gt;visual studio&lt;/a&gt;, &lt;a href="http://technorati.com/tags/tfs" rel="tag"&gt;tfs&lt;/a&gt;, &lt;a href="http://technorati.com/tags/programming" rel="tag"&gt;programming&lt;/a&gt;, &lt;a href="http://technorati.com/tags/architecture" rel="tag"&gt;architecture&lt;/a&gt;, &lt;a href="http://technorati.com/tags/project" rel="tag"&gt;project&lt;/a&gt;, &lt;a href="http://technorati.com/tags/process" rel="tag"&gt;process&lt;/a&gt;, &lt;a href="http://technorati.com/tags/guide" rel="tag"&gt;guide&lt;/a&gt;, &lt;a href="http://technorati.com/tags/development" rel="tag"&gt;development&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://rextang.net/aggbug.aspx?PostID=4968" width="1" height="1"&gt;</description><category domain="http://rextang.net/blogs/work/archive/tags/Architechture/default.aspx">Architechture</category><category domain="http://rextang.net/blogs/work/archive/tags/Programming/default.aspx">Programming</category><category domain="http://rextang.net/blogs/work/archive/tags/Readings/default.aspx">Readings</category></item><item><title>CAPTCHA for CommunityServer 2007</title><link>http://rextang.net/blogs/work/archive/2007/05/12/4915.aspx</link><pubDate>Fri, 11 May 2007 19:57:05 GMT</pubDate><guid isPermaLink="false">c4c3a05f-02e4-4db4-b761-d853f78d3399:4915</guid><dc:creator>rextangtw</dc:creator><slash:comments>0</slash:comments><comments>http://rextang.net/blogs/work/archive/2007/05/12/4915.aspx#comments</comments><description>&lt;p&gt;crosspost from &lt;a href="http://blogs.msdn.com/rextang"&gt;http://blogs.msdn.com/rextang&lt;/a&gt; &lt;/p&gt; &lt;p&gt;[via &lt;a href="http://thomasfreudenberg.com/blog/archive/2007/04/29/captcha-for-communityserver-2007.aspx" target="_blank"&gt;Thomas Freudenberg&lt;/a&gt;]&lt;/p&gt; &lt;p&gt;While&amp;nbsp;my &lt;a href="http://rextang.net/"&gt;personal blog site&lt;/a&gt; was still&amp;nbsp;in CS1.1 system, I used &lt;a href="http://rextang.net/blogs/past/archive/2005/07/08/1554.aspx" target="_blank"&gt;ReverseDOS&lt;/a&gt; to act as underlying spam filter also used &lt;a href="http://rextang.net/blogs/work/archive/2006/08/14/4256.aspx" target="_blank"&gt;Dan Bartels&amp;#39; CAPTCHA control&lt;/a&gt; for second level &lt;a href="http://rextang.net/blogs/past/archive/2005/07/08/1559.aspx" target="_blank"&gt;spam prevention&lt;/a&gt; tool. &lt;/p&gt; &lt;p&gt;While my&amp;nbsp;blog site upgrading to &lt;a href="http://communityserver.org/" target="_blank"&gt;CommunityServer 2007&lt;/a&gt;, I am still using &lt;a href="http://angrypets.com/tools/rdos/" target="_blank"&gt;ReverseDOS&lt;/a&gt;&amp;nbsp;as the underlying spam filter. thanks to the HttpModule design of this application,&amp;nbsp;the installation&amp;nbsp;was pretty smooth&amp;nbsp;by just adding the module to web.config file also copy the dll file to bin folder, and the&amp;nbsp;spam filter config file I used in CS1.1 can be used in&amp;nbsp;new&amp;nbsp;version without modifications.&lt;/p&gt; &lt;p&gt;Then I&amp;nbsp;am trying to find&amp;nbsp;&lt;a href="http://en.wikipedia.org/wiki/Captcha" target="_blank"&gt;CAPTCHA&lt;/a&gt; control&amp;nbsp;for using in CommunityServer 2007. It seemed pretty good while reading&amp;nbsp;&lt;a href="http://blog.darkthread.net/blogs/darkthreadtw/archive/2007/02/01/kb-timothyhumphrey-captcha-causes-post-preview-error.aspx" target="_blank"&gt;Jeffrey&amp;#39;s post&lt;/a&gt; that &lt;a href="http://communityserver.org/files/folders/add-ons/entry530416.aspx" target="_blank"&gt;Timothy Humphrey&amp;#39;s CAPTCHA control&lt;/a&gt;&amp;nbsp;for CS2.1&amp;nbsp;should be&amp;nbsp;a choice but when I tried to recompile the source with CommunityServer 2007, found that the SubDomain module contained in Timothy&amp;#39;s control can not build due to the reason that in CommunityServer 2007, the source code of class &amp;quot;&lt;em&gt;&lt;strong&gt;CommunityServer.Components.SiteUrlsData&lt;/strong&gt;&lt;/em&gt;&amp;quot; (at source code file &lt;em&gt;&lt;strong&gt;~\source\Components\Components\SiteUrlsData.cs&lt;/strong&gt;&lt;/em&gt;)were all commented out and the class can not be found anymore. Also this CAPTCHA for CS2.1 required modification of&amp;nbsp;skin ascx files to make it work but in the new skin architecture there were no ascx file anymore, means the whole skin&amp;nbsp;rules that worked for CS2.1 may not work in CS2007,&amp;nbsp;by those reasons&amp;nbsp;I gave up&amp;nbsp;using it as CAPTCHA in my blog site.&lt;/p&gt; &lt;p&gt;Later found that &lt;a href="http://codebetter.com/blogs/brendan.tompkins/default.aspx" target="_blank"&gt;Brendan Tompkins&lt;/a&gt; had just &lt;a href="http://codebetter.com/blogs/brendan.tompkins/archive/2007/04/27/captcha-for-community-server-2007.aspx?CommentPosted=true#commentmessage" target="_blank"&gt;done a CHAPCHA control&lt;/a&gt; exactly for CommunityServer 2007 (with source code published), I just downloaded it and use it as the CAPTCHA control&amp;nbsp;on my blog site. as this control used &lt;em&gt;&lt;a href="http://weblogs.asp.net/scottgu/archive/2005/12/21/asp-net-2-0-control-adapter-architecture.aspx" target="_blank"&gt;&lt;strong&gt;ASP.NET 2.0 Control Adapter Architecture&lt;/strong&gt;&lt;/a&gt;&lt;/em&gt;&amp;nbsp;in the design, it had no need to modify skin file to let it work but just to add the CAPTCHA image generation http handler at web.config file, also add the control adapter definitions to default.browser file under App_Browsers folder, only those 2 steps the control worked for the entire CommunityServer site, pretty elegant and convenient.&lt;/p&gt; &lt;p&gt;Just one simple notice that (thanks&amp;nbsp;to &lt;a href="http://yamabiz.com/blog/blogs/yama/" target="_blank"&gt;Yama&lt;/a&gt;&amp;#39;s feedback), while testing this control one have to&amp;nbsp;be in anonymous (not logged in) mode to see this control appears. in a user-logged-in&amp;nbsp;state the control will not show up (since a logged-in user considered not&amp;nbsp;spammers).&lt;/p&gt; &lt;p&gt;For&amp;nbsp;more info about&amp;nbsp;ASP.NET 2.0&amp;nbsp;Control Adapter Architecture, refer to &lt;a href="http://msdn.microsoft.com/msdnmag/issues/06/10/ExtremeASPNET/" target="_blank"&gt;this post&lt;/a&gt;.&lt;/p&gt; &lt;div class="wlWriterEditableSmartContent" id="0767317B-992E-4b12-91E0-4F059A8CECA8:fd52ff9f-ba63-4d9f-8f88-22ba32a1bda1" 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/blog" rel="tag"&gt;blog&lt;/a&gt;, &lt;a href="http://technorati.com/tags/communityserver" rel="tag"&gt;communityserver&lt;/a&gt;, &lt;a href="http://technorati.com/tags/asp.net" rel="tag"&gt;asp.net&lt;/a&gt;, &lt;a href="http://technorati.com/tags/architecture" rel="tag"&gt;architecture&lt;/a&gt;, &lt;a href="http://technorati.com/tags/adapter" rel="tag"&gt;adapter&lt;/a&gt;, &lt;a href="http://technorati.com/tags/spam" rel="tag"&gt;spam&lt;/a&gt;, &lt;a href="http://technorati.com/tags/filter" rel="tag"&gt;filter&lt;/a&gt;, &lt;a href="http://technorati.com/tags/programming" rel="tag"&gt;programming&lt;/a&gt;, &lt;a href="http://technorati.com/tags/captcha" rel="tag"&gt;captcha&lt;/a&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://rextang.net/aggbug.aspx?PostID=4915" width="1" height="1"&gt;</description><category domain="http://rextang.net/blogs/work/archive/tags/Blog+Framework+_2F00_+Tools/default.aspx">Blog Framework / Tools</category><category domain="http://rextang.net/blogs/work/archive/tags/Architechture/default.aspx">Architechture</category><category domain="http://rextang.net/blogs/work/archive/tags/Programming/default.aspx">Programming</category><category domain="http://rextang.net/blogs/work/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://rextang.net/blogs/work/archive/tags/Useful+Tools/default.aspx">Useful Tools</category></item><item><title>Software Architecture: Past, Present and Future...</title><link>http://rextang.net/blogs/work/archive/2006/11/10/4458.aspx</link><pubDate>Fri, 10 Nov 2006 09:19:00 GMT</pubDate><guid isPermaLink="false">c4c3a05f-02e4-4db4-b761-d853f78d3399:4458</guid><dc:creator>rextangtw</dc:creator><slash:comments>1</slash:comments><comments>http://rextang.net/blogs/work/archive/2006/11/10/4458.aspx#comments</comments><description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;[via &lt;A href="http://blogs.msdn.com/diegumzone/archive/2006/11/10/software-architecture-past-present-and-future.aspx"&gt;DiegumZone&lt;/A&gt;]&lt;/P&gt;
&lt;P&gt;Emerging Architect Roles&lt;/P&gt;
&lt;P&gt;The considerations of economical changes like globalization and technological achievements like the Internet’s impact 0n the digital economy, pressed for formalizing software architecture as a discipline.&lt;/P&gt;
&lt;P&gt;Although there is not yet a definite agreement in the distinct roles, we can sketch three major personas:&lt;/P&gt;
&lt;P&gt;·&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Infrastructure Architect. These define the platform and other environments (hardware, basic software) to provide for business applications’ high availability. They must also work with developers to define mechanisms and standards that allow applications to achieve the security, reliability, manageability, transparency, and policy compliance essential to the modern business. It’s expected that the natural evolution of a senior IT professional is an Infrastructure Architect.&lt;/P&gt;
&lt;P&gt;·&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Solutions Architect. These are responsible for the design of one or more applications or services within an organization, usually within the scope of a division (and for that reason also known as Application Architect). Examples of such applications are: Internet banking, companywide knowledge sharing portal, and distributed point of sales applications. A senior developer is a good candidate to become Solutions Architect.&lt;/P&gt;
&lt;P&gt;·&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Enterprise Architect. Their job is to keep the business and its IT systems in alignment. They strive to maximize the return on IT investment by making sure that IT spending is prioritized towards business opportunity, and by optimizing the impact of investments across the organization’s portfolios of services, resources, projects, and processes. They must be a bridge between business leaders, development, and operations to ensure that mutual understanding is achieved, goals are realistic, and expectations are properly managed. Enterprise Architecture is about the big picture — how people and technology work together to produce world-class, long-term results. For that reason, this persona is also referred as Strategic Architect. What is expected is that a Solutions Architect or Infrastructure Architect becomes Enterprise Architect.&lt;/P&gt;
&lt;P&gt;---------&lt;/P&gt;
&lt;P&gt;Just had a reading of this article&amp;nbsp;which provided an overall view of Software Architecture progress, nice one to have a&amp;nbsp;read also it introduced an architecture site at &lt;A href="http://www.skyscrapr.net/"&gt;http://www.skyscrapr.net&lt;/A&gt; , full of resources and discussion related to architectures, don't miss the link...&lt;/P&gt;
&lt;P&gt;Technorati Tags: &lt;A href="http://www.technorati.com/tag/software"&gt;&lt;FONT color=#4444ff&gt;software&lt;/FONT&gt;&lt;/A&gt;&amp;nbsp;,&amp;nbsp;&lt;A href="http://www.technorati.com/tag/solution"&gt;&lt;FONT color=#4444ff&gt;solution&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/architecture"&gt;&lt;FONT color=#4444ff&gt;architecture&lt;/FONT&gt;&lt;/A&gt;,&amp;nbsp;&lt;A href="http://www.technorati.com/tag/pattern"&gt;&lt;FONT color=#4444ff&gt;pattern&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://rextang.net/aggbug.aspx?PostID=4458" width="1" height="1"&gt;</description><category domain="http://rextang.net/blogs/work/archive/tags/Architechture/default.aspx">Architechture</category><category domain="http://rextang.net/blogs/work/archive/tags/Programming/default.aspx">Programming</category><category domain="http://rextang.net/blogs/work/archive/tags/Readings/default.aspx">Readings</category></item><item><title>Patterns and Practices Guidance Explorer...</title><link>http://rextang.net/blogs/work/archive/2006/10/20/4405.aspx</link><pubDate>Thu, 19 Oct 2006 16:43:00 GMT</pubDate><guid isPermaLink="false">c4c3a05f-02e4-4db4-b761-d853f78d3399:4405</guid><dc:creator>rextangtw</dc:creator><slash:comments>0</slash:comments><comments>http://rextang.net/blogs/work/archive/2006/10/20/4405.aspx#comments</comments><description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;A href="http://rextang.net/photos/work/images/4404/original.aspx"&gt;&lt;IMG height=360 alt=guidanceexplorer.jpg src="http://rextang.net/photos/work/images/4404/500x360.aspx" width=500 border=0&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;[via &lt;A href="http://weblogs.asp.net/scottgu/archive/2006/06/29/Free-Patterns-and-Practices-Guidance-Explorer-for-ASP.NET-and-.NET.aspx"&gt;ScottGu&lt;/A&gt;]&lt;/P&gt;
&lt;P&gt;Saw from Scott's blog about &lt;A href="http://www.codeplex.com/Wiki/View.aspx?ProjectName=guidanceExplorer"&gt;Patterns and Practices Guidance Explorer project&lt;/A&gt;, which lets you browse guidances from &lt;A href="http://msdn.microsoft.com/practices/"&gt;MS PAG&lt;/A&gt;, organize your own pattern groups, or even writing your own guidance and sharing with others. &lt;/P&gt;
&lt;P&gt;It's also having &lt;A href="http://www.guidancelibrary.com/GuidanceExplorerBeta/"&gt;online version&lt;/A&gt; to browse those guidances online. &lt;/P&gt;
&lt;P&gt;This should be good for dev teams to organize, manage, and share group-wide guidances and accumulate knowledge assets.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.gotdotnet.com/codegallery/codegallery.aspx?id=bb9aecfe-56ba-4ca9-8127-44e551b90962"&gt;download here&lt;/A&gt; . &lt;A href="http://channel9.msdn.com/wiki/default.aspx/GuidanceLibrary.GuidanceExplorer"&gt;channel 9 wiki&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Technorati Tags: &lt;A href="http://www.technorati.com/tag/microsoft"&gt;&lt;SPAN&gt;microsoft&lt;/SPAN&gt;&lt;/A&gt;&amp;nbsp;,&amp;nbsp;&lt;A href="http://www.technorati.com/tag/pattern"&gt;&lt;SPAN&gt;pattern&lt;/SPAN&gt;&lt;/A&gt;&amp;nbsp;,&amp;nbsp;&lt;A href="http://www.technorati.com/tag/programming"&gt;&lt;SPAN&gt;programming&lt;/SPAN&gt;&lt;/A&gt;,&amp;nbsp;&lt;A href="http://www.technorati.com/tag/architecture"&gt;&lt;SPAN&gt;architecture&lt;/SPAN&gt;&lt;/A&gt;,&amp;nbsp;&lt;A href="http://www.technorati.com/tag/guidance"&gt;&lt;SPAN&gt;guidance&lt;/SPAN&gt;&lt;/A&gt;&lt;/P&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://rextang.net/aggbug.aspx?PostID=4405" width="1" height="1"&gt;</description><category domain="http://rextang.net/blogs/work/archive/tags/Architechture/default.aspx">Architechture</category><category domain="http://rextang.net/blogs/work/archive/tags/Programming/default.aspx">Programming</category><category domain="http://rextang.net/blogs/work/archive/tags/Useful+Tools/default.aspx">Useful Tools</category></item><item><title>Source Code for the Built-in ASP.NET 2.0 Providers Now Available for Download...</title><link>http://rextang.net/blogs/work/archive/2006/04/16/3644.aspx</link><pubDate>Sun, 16 Apr 2006 08:35:00 GMT</pubDate><guid isPermaLink="false">c4c3a05f-02e4-4db4-b761-d853f78d3399:3644</guid><dc:creator>rextangtw</dc:creator><slash:comments>1</slash:comments><comments>http://rextang.net/blogs/work/archive/2006/04/16/3644.aspx#comments</comments><description>&lt;P&gt;&amp;nbsp;&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;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;
&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://rextang.net/aggbug.aspx?PostID=3644" width="1" height="1"&gt;</description><category domain="http://rextang.net/blogs/work/archive/tags/Architechture/default.aspx">Architechture</category><category domain="http://rextang.net/blogs/work/archive/tags/Programming/default.aspx">Programming</category><category domain="http://rextang.net/blogs/work/archive/tags/ASP.NET/default.aspx">ASP.NET</category></item><item><title>Test Driven Development (TDD) in Team System...</title><link>http://rextang.net/blogs/work/archive/2006/03/27/3578.aspx</link><pubDate>Sun, 26 Mar 2006 17:54:00 GMT</pubDate><guid isPermaLink="false">c4c3a05f-02e4-4db4-b761-d853f78d3399:3578</guid><dc:creator>rextangtw</dc:creator><slash:comments>0</slash:comments><comments>http://rextang.net/blogs/work/archive/2006/03/27/3578.aspx#comments</comments><description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;[via &lt;A href="http://blogs.msdn.com/robcaron/archive/2006/03/12/550127.aspx"&gt;Rob Caron&lt;/A&gt;]&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.dotnetjunkies.com/AuthorDetail.aspx?username=dougseven"&gt;Doug Seven&lt;/A&gt; got a &lt;A href="http://www.dotnetjunkies.com/Tutorial/9709CE8B-0986-46D2-AE3B-5989F23D3A0F.dcik"&gt;simple and easy to understand article&lt;/A&gt;&amp;nbsp;for developers to understand the concepts of Test Driven Development using Visual Studio 2005 Team System.&lt;/P&gt;
&lt;BLOCKQUOTE dir=ltr&gt;
&lt;P&gt;Test Driven Development (TDD) is not a new concept. In fact, the idea of test-first, code-second has been around for many years. In the latest release of Microsoft's premier developer tool, Visual Studio 2005 Team System many new features have been added, including features for testing software. What does this mean to you, the serious developer? It means you now have integrated unit testing that can be leveraged for Test Driven Development.&lt;/P&gt;&lt;/BLOCKQUOTE&gt;
&lt;P dir=ltr&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/vstudio"&gt;vstudio&lt;/A&gt;,&amp;nbsp;&lt;A href="http://www.technorati.com/tag/architecture"&gt;architecture&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://rextang.net/aggbug.aspx?PostID=3578" width="1" height="1"&gt;</description><category domain="http://rextang.net/blogs/work/archive/tags/Architechture/default.aspx">Architechture</category><category domain="http://rextang.net/blogs/work/archive/tags/Programming/default.aspx">Programming</category><category domain="http://rextang.net/blogs/work/archive/tags/Useful+Tools/default.aspx">Useful Tools</category><category domain="http://rextang.net/blogs/work/archive/tags/Readings/default.aspx">Readings</category></item><item><title>Something new about MSF - Microsoft Solution Framework...</title><link>http://rextang.net/blogs/work/archive/2006/03/27/3576.aspx</link><pubDate>Sun, 26 Mar 2006 15:58:00 GMT</pubDate><guid isPermaLink="false">c4c3a05f-02e4-4db4-b761-d853f78d3399:3576</guid><dc:creator>rextangtw</dc:creator><slash:comments>2</slash:comments><comments>http://rextang.net/blogs/work/archive/2006/03/27/3576.aspx#comments</comments><description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;[via &lt;A href="http://msmvps.com/blogs/rohanthomas/archive/2006/03/23/87405.aspx"&gt;rohanthomas&lt;/A&gt;]&lt;/P&gt;
&lt;P&gt;Microsoft had released new MSF templates at 2006/03/17, which "are" version 8.0 templates (should serve as MSF v4), including those 2:&lt;/P&gt;
&lt;LI&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyId=9F3EA426-C2B2-4264-BA0F-35A021D85234&amp;amp;displaylang=en"&gt;MSF for Agile Software Development &lt;/A&gt;
&lt;LI&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?FamilyId=10B578F1-B7A4-459F-A783-04BC82CB2359&amp;amp;displaylang=en"&gt;MSF for CMMI® Process Improvement &lt;/A&gt;&lt;/LI&gt;
&lt;P&gt;For more information please go to &lt;A href="http://msdn.microsoft.com/vstudio/teamsystem/msf/default.aspx"&gt;Microsoft MSF Website&lt;/A&gt;. I've downloaded those related files and demos and will find time to dig into them.&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/architechture"&gt;architecture&lt;/A&gt;,&amp;nbsp;&lt;A href="http://www.technorati.com/tag/agile"&gt;agile&lt;/A&gt;,&amp;nbsp;&lt;A href="http://www.technorati.com/tag/cmmi"&gt;cmmi&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://rextang.net/aggbug.aspx?PostID=3576" width="1" height="1"&gt;</description><category domain="http://rextang.net/blogs/work/archive/tags/Architechture/default.aspx">Architechture</category><category domain="http://rextang.net/blogs/work/archive/tags/Programming/default.aspx">Programming</category><category domain="http://rextang.net/blogs/work/archive/tags/Readings/default.aspx">Readings</category></item><item><title>New Taiwan Microsoft Technology Forums Announced...</title><link>http://rextang.net/blogs/work/archive/2006/02/16/3490.aspx</link><pubDate>Thu, 16 Feb 2006 15:32:00 GMT</pubDate><guid isPermaLink="false">c4c3a05f-02e4-4db4-b761-d853f78d3399:3490</guid><dc:creator>rextangtw</dc:creator><slash:comments>0</slash:comments><comments>http://rextang.net/blogs/work/archive/2006/02/16/3490.aspx#comments</comments><description>&lt;P&gt;&amp;nbsp;&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://rextang.net/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://rextang.net/aggbug.aspx?PostID=3490" width="1" height="1"&gt;</description><category domain="http://rextang.net/blogs/work/archive/tags/Blog+Framework+_2F00_+Tools/default.aspx">Blog Framework / Tools</category><category domain="http://rextang.net/blogs/work/archive/tags/Information+Technology/default.aspx">Information Technology</category><category domain="http://rextang.net/blogs/work/archive/tags/Architechture/default.aspx">Architechture</category><category domain="http://rextang.net/blogs/work/archive/tags/Programming/default.aspx">Programming</category><category domain="http://rextang.net/blogs/work/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://rextang.net/blogs/work/archive/tags/Useful+Tools/default.aspx">Useful Tools</category><category domain="http://rextang.net/blogs/work/archive/tags/Readings/default.aspx">Readings</category><category domain="http://rextang.net/blogs/work/archive/tags/I.T.+News/default.aspx">I.T. News</category></item><item><title>.netTiers templates for CodeSmith...</title><link>http://rextang.net/blogs/work/archive/2006/02/15/3451.aspx</link><pubDate>Wed, 15 Feb 2006 07:20:00 GMT</pubDate><guid isPermaLink="false">c4c3a05f-02e4-4db4-b761-d853f78d3399:3451</guid><dc:creator>rextangtw</dc:creator><slash:comments>0</slash:comments><comments>http://rextang.net/blogs/work/archive/2006/02/15/3451.aspx#comments</comments><description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;[via &lt;A href="http://weblogs.asp.net/rhoward/archive/2006/02/13/438156.aspx"&gt;Rob Howard&lt;/A&gt;]&lt;/P&gt;
&lt;P&gt;Nice post from Rob Howard on&amp;nbsp;&lt;A href="http://community.codesmithtools.com/blogs/tutorials/archive/2006/02/13/nettiers.aspx"&gt;introduction&lt;/A&gt; of &lt;A href="http://cstemplates.sourceforge.net/"&gt;.netTiers templates&lt;/A&gt; for &lt;A href="http://www.codesmithtools.com/"&gt;CodeSmith&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;.netTiers templates are the templates for generation of Data Access Layer (DAL) that follows recommandations of &lt;A href="http://msdn.microsoft.com/practices/"&gt;Microsoft Patterns &amp;amp; Practices&lt;/A&gt; data access techniques, including the using of its &lt;A href="http://msdn.microsoft.com/library/?url=/library/en-us/dnpag2/html/EntLib2.asp"&gt;Enterprise Libraries&lt;/A&gt;. &lt;/P&gt;
&lt;P&gt;There are majorly 2 approaches of doing DAL for using in application design. one is to use Code Generation tools such as general purpose tools like CodeSmith or to use specialized DAL generation tool like &lt;A href="http://rextang.net/blogs/past/articles/618.aspx"&gt;LLBLGen Pro&lt;/A&gt;. the other way will be using Object Relation Mapping (O/R Mapping)&amp;nbsp;frameworks like &lt;A href="http://rextang.net/blogs/past/archive/2005/05/12/753.aspx"&gt;NHibernate&lt;/A&gt;. Code Generation is fast since it's hard coded data access code and strongly typed. O/R Mapping frameworks&amp;nbsp;majorly using Run-Time type mapping thus it's flexible and dynamic, but the performance won't be as good as code generated DAL sinces there will be one more tier to deal with Object Class and Relational Data mapping.&lt;/P&gt;
&lt;P&gt;It should depends on solution design requirements to use either tools, but to all of them, it just showed that with good tools and frameworks, coding or developing desired software won't fall into boring works and will be fun and like art works!&lt;/P&gt;
&lt;P&gt;Technorati Tags: &lt;A href="http://www.technorati.com/tag/codesmith"&gt;codesmith&lt;/A&gt;&amp;nbsp;, &lt;A href="http://www.technorati.com/tag/DAL"&gt;DAL&lt;/A&gt; , &lt;A href="http://www.technorati.com/tag/orm"&gt;orm&lt;/A&gt; , &lt;A href="http://www.technorati.com/tag/database"&gt;database&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/pattern"&gt;pattern&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://rextang.net/aggbug.aspx?PostID=3451" width="1" height="1"&gt;</description><category domain="http://rextang.net/blogs/work/archive/tags/Architechture/default.aspx">Architechture</category><category domain="http://rextang.net/blogs/work/archive/tags/Programming/default.aspx">Programming</category><category domain="http://rextang.net/blogs/work/archive/tags/O_2F00_R+Mapping/default.aspx">O/R Mapping</category><category domain="http://rextang.net/blogs/work/archive/tags/Useful+Tools/default.aspx">Useful Tools</category></item><item><title>Escape single quotation mark in sql query...</title><link>http://rextang.net/blogs/work/archive/2006/01/21/3369.aspx</link><pubDate>Sun, 22 Jan 2006 01:39:00 GMT</pubDate><guid isPermaLink="false">c4c3a05f-02e4-4db4-b761-d853f78d3399:3369</guid><dc:creator>rextangtw</dc:creator><slash:comments>0</slash:comments><comments>http://rextang.net/blogs/work/archive/2006/01/21/3369.aspx#comments</comments><description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;just a reminder of forming a sql query. &lt;/P&gt;
&lt;P&gt;for concating strings in different databases, refer to &lt;A href="http://rextang.net/blogs/work/archive/2005/12/21/3270.aspx"&gt;my post here&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;for concatenation, MS SQL uses " + " operator , Oracle uses " || " operator (as well as MySql uses function CONCAT()&amp;nbsp;)&amp;nbsp;. so if one is designing a Data Repository using &lt;A href="http://www.martinfowler.com/eaaCatalog/repository.html"&gt;Repository Pattern&lt;/A&gt;, one may need to process this in repository level, which like providing a function for other code to concate strings in forming a query.&lt;/P&gt;
&lt;P&gt;fortunately, for escaping single quotation mark in a query , it's the same as in MsSql and Oracle , they both used 2 single quotation marks to escape single quotation mark in a single-quotation-mark quoted string. (eg: for a string like o'connell to put in a query, it's 'o''connell' , " ' ' " is escaped and represents " ' ").&lt;/P&gt;
&lt;P&gt;by the way, as NHibernate is just transforming object propertires in to real database field names, those rules above also apply to HQL query. also true if one is using escape chars in a "like" search (eg: select .. from class1 cls&amp;nbsp;where cls.prop1 like '%My\\_Name%' escape '\\' ), the translation to real sql query both for mssql and oracle is tested without problems.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Technorati Tags: &lt;A href="http://www.technorati.com/tag/hibernate"&gt;hibernate&lt;/A&gt;&amp;nbsp;, &lt;A href="http://www.technorati.com/tag/nhibernate"&gt;nhibernate&lt;/A&gt; , &lt;A href="http://www.technorati.com/tag/orm"&gt;orm&lt;/A&gt; , &lt;A href="http://www.technorati.com/tag/database"&gt;database&lt;/A&gt; , &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://rextang.net/aggbug.aspx?PostID=3369" width="1" height="1"&gt;</description><category domain="http://rextang.net/blogs/work/archive/tags/Architechture/default.aspx">Architechture</category><category domain="http://rextang.net/blogs/work/archive/tags/Programming/default.aspx">Programming</category><category domain="http://rextang.net/blogs/work/archive/tags/O_2F00_R+Mapping/default.aspx">O/R Mapping</category></item><item><title>Multiple same ajax-enabled-web-controls with single sharing client script set in one aspx page...</title><link>http://rextang.net/blogs/work/archive/2006/01/05/3315.aspx</link><pubDate>Thu, 05 Jan 2006 20:05:00 GMT</pubDate><guid isPermaLink="false">c4c3a05f-02e4-4db4-b761-d853f78d3399:3315</guid><dc:creator>rextangtw</dc:creator><slash:comments>0</slash:comments><comments>http://rextang.net/blogs/work/archive/2006/01/05/3315.aspx#comments</comments><description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;I&amp;nbsp;was dealing a general purpose web user control (ascx) with Ajax functionalities and may be used many times in a single aspx page. &lt;/P&gt;
&lt;P&gt;Server side controls would layout their own client side IDs without duplications in a single page (asp.net will prefixed each client id with the control name specified in main aspx page). When writing client side javascript to deal with ajax functionalities, it should be awared that when multiple same controls existed in the same aspx page, some problems may occur.&lt;/P&gt;
&lt;P&gt;Something may have duplicated client IDs or Names:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;pure HTML tags (self-written span tags, div tags, input tags, etc&amp;nbsp;to hold data dynamically) 
&lt;LI&gt;javascript global variables 
&lt;LI&gt;javascript functions&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;When loading multiple same controls into a single page, if there were javascript function calls written inside the ascx file, there will be multiple layout of same javascript blocks with functions of the same name, which will cause duplicate function definitions. in the mean time, if there were global client javascript variables sharing between javascript functions, it will also cause duplicated variable definitions when multiple same controls are loaded in a single aspx page.&lt;/P&gt;
&lt;P&gt;for duplicated html tags, it can be corrected by putting the ascx contrl name prefixed, just like what asp.net did for server side controls. by using a &amp;lt;%=this.ClientID%&amp;gt; prefixed in html tag id attribute, self-written html tags can then be distinguished in the same page if multiple same&amp;nbsp;controls were loaded into.&lt;/P&gt;
&lt;P&gt;for duplicated function names and multiple same functions loaded into client page layout that causes useless bandwidth usages, there are 2 ways to overcome this problem. one is just like what I've done with html tags, using this.ClientID prefix to distinguish function names to avoid duplication. this can avoid function name duplication syntax error but, when multiple same controls are loaded in single page, there will be multiple functions with different function names but same functionality inside the client ouput, which will also cause useless bandwidth usages. The other way is trying to put only one instance of function sets in a single page for multiple same controls to consume. for this I found &lt;A href="http://www.codeproject.com/aspnet/scriptregister.asp"&gt;Chris Maunder's article&lt;/A&gt; about doing an improved RegisterClientScriptBlock function to avoid duplication javascript blocks as well as to organize all the client scripts in the same place. nice stuff and just what I need! thanks Chris for the sharing. &lt;/P&gt;
&lt;P&gt;Chris' code will override RegisterClientScriptBlock function provided by Page class to automatically put script tag (&amp;lt;script ...&amp;gt; ... &amp;lt;/script&amp;gt;)&amp;nbsp;for the scripts passing into the function. it's nice to avoid layout error if user forgot to put the script tag for scripts, but it will also cause errors if the scripts passing into already got script tags inside. as it's an overrided function for page class, other controls in this derived page that using RegisterClientScriptBlock function to register client scripts will also be affected and causes multiple script tag parse error. to avoid this, it's better to modify the overrided RegisterClientScriptBlock function provided by Chris to add a check to see if there was already script tag inside the passing script string. I did encounter this problem since in the control I used &lt;A href="http://rextang.net/blogs/past/archive/2005/09/28/2042.aspx"&gt;Ajax.Net&lt;/A&gt; objects and it automatically register its own client scripts using this approach.&lt;/P&gt;
&lt;P&gt;for duplicated global sharing variables, there are still 2 ways to resolve this problem. one is just like what asp.net did for server controls, adding this.ClientID prefix at each variable name, and then for function calls passing each necessary global variables in for processing. this would not be a good way since first of all the client side variables will be full of server side tags just like&amp;nbsp;in old asp time, and second if there were lots of global sharing variables to pass into functions it would be a lousy function signature and considered as a bad practice. &lt;/P&gt;
&lt;P&gt;the other way to work around this is to wrap all the global variables into a single array or object. using array got its weakness that using index to get certain variable requires knowledge of array layout structure. using object with properties for global variables would be a better way to do since it can achieve sort of "strong type" style and variables can be retrived by exactly the same global variable name without prefixing with this.ClientID (the only variable need to use this.ClientID to distinguish between multiple same controls is this main object that hold those global variables as properties!), which is good for code reading and preventing indexing wrong stuffs&amp;nbsp;while using array approach. &lt;/P&gt;
&lt;P&gt;for&amp;nbsp;consolidating all client side global variables&amp;nbsp;in a ascx control, it's good to use &lt;A href="http://json.org"&gt;JSON syntax&lt;/A&gt; to fast organize them into a single useful object to be passed around all shared functions. for JSON stuffs refer to &lt;A href="http://rextang.net/blogs/past/archive/2005/09/29/2046.aspx"&gt;Steve Maine's post about JSON&lt;/A&gt; to get a more detail understanding about this. &lt;/P&gt;
&lt;P&gt;Conclusions until here:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;using this.ClientID server tag to prefix self-written client html tags 
&lt;LI&gt;rewritten sharing functions for each ascx control which will potentially be used multiple times in the same page. 
&lt;LI&gt;using Chris Maunder's customized RegisterClientScriptBlock function to settle down client functions without duplication. 
&lt;LI&gt;using JSON to organize sharing client global variables into a single parameter object&amp;nbsp;for easy function paramater passing.&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;one more trick to mention, for those sharing client functions, it's good to put them all into a single .js file and using Chris's RegisterClientScriptFile method to form a script tag with src attribute indicating the location of the .js file for the including. furthermore, if it is necessary to "dynamically" load different client functions based on different ascx control usage (eg: one ascx generic control with parameter that specifying using different user input like a dropdownlist or checkbox or listbox or radio button to layout an ajax output variable set, it may require different sharing functions regarding dealing different user input type interaction!), it would be good to change .js file into a .aspx file and passing querystring parameters and then &amp;nbsp;using server side tags to do conditional selection of functions to output (still old asp tricks). this will make the final client page layout more neat and elegant...&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#ff0000&gt;&lt;STRONG&gt;[Updated 2006/01/05 19:44]&lt;/STRONG&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Cautions when using Chris' solution to put all the client scripts in the same location! I was just encounted an issue that may not fit into Chris' approach. &lt;/P&gt;
&lt;P&gt;By using Chris' approach he was using derived page's OnPreRender() event trigger to output all the scripts registered using overrided RegisterClientScriptBlock function. this shall successfully capture all the client scripts registrations without problem. BUT! something may be missing!&lt;/P&gt;
&lt;P&gt;for a page contained many controls inside it, if all the sub-controls (including custom ones) all register its client script before it's OnPreRender() event trigger, which should be like at Page_Load(), or Page_Init(), etc, then everything should work out just fine.&lt;/P&gt;
&lt;P&gt;according to what was stated in &lt;A href="http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfSystemWebUIPageClassRegisterClientScriptBlockTopic.asp"&gt;msdn help about RegisterClientScriptBlock function&lt;/A&gt;, this function allowed users to call it from anywhere around the code-behind life cycle, therefore if some controls using this function after PreRender event during the dynamic layout rendering time, then Chris' function won't be able to layout those later-added client scripts, although my test showed that the overrided function did successfully captured those later client script blocks, but since it's already passed the PreRender event, there won't be other time to really render those latter happened scripts, thus finally results missing of client script blocks.&lt;/P&gt;
&lt;P&gt;I am wondering how asp.net's own page class processing this function that can get regiester client scripts everywhere during the code-behind life cycle and in the latest just rendering all of then in the place that's right behind the form tag, amazing... &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/ajax"&gt;ajax&lt;/A&gt;&amp;nbsp;,&amp;nbsp;&lt;A href="http://www.technorati.com/tag/ajax.net"&gt;ajax.net&lt;/A&gt;&amp;nbsp;,&amp;nbsp;&lt;A href="http://www.technorati.com/tag/json"&gt;json&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://rextang.net/aggbug.aspx?PostID=3315" width="1" height="1"&gt;</description><category domain="http://rextang.net/blogs/work/archive/tags/Architechture/default.aspx">Architechture</category><category domain="http://rextang.net/blogs/work/archive/tags/Programming/default.aspx">Programming</category><category domain="http://rextang.net/blogs/work/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://rextang.net/blogs/work/archive/tags/Useful+Tools/default.aspx">Useful Tools</category></item><item><title>Article: Introducing Custom Entity Classes...</title><link>http://rextang.net/blogs/work/archive/2005/12/11/3216.aspx</link><pubDate>Sun, 11 Dec 2005 23:31:00 GMT</pubDate><guid isPermaLink="false">c4c3a05f-02e4-4db4-b761-d853f78d3399:3216</guid><dc:creator>rextangtw</dc:creator><slash:comments>0</slash:comments><comments>http://rextang.net/blogs/work/archive/2005/12/11/3216.aspx#comments</comments><description>&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;This is sort of old article published March this year at &lt;A href="http://msdn.microsoft.com/asp.net/"&gt;ASP.NET developer center&lt;/A&gt;, but it is worth a read if you are interesting in domain object design and the mapping to rational data object. &lt;/P&gt;
&lt;P&gt;Karl Seguin started from the very begining that talks about the problems ADO&amp;nbsp;/ ADO.NET faces on using them as parameter passing medium, later introduces a proper approach to make a better domain object model, also provide a concept of mapping to rational data model. another worth of this article is that in the last of it there are lots of useful links that's also worth to have a read, also covers the necessity of code generation and O/R mapping in this kind of application design.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://msdn.microsoft.com/asp.net/default.aspx?pull=/library/en-us/dnaspp/html/CustEntCls.asp"&gt;On the Way to Mastering ASP.NET : Introducing Custom Entity Classes - Karl Seguin, March 2005&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Technorati Tags: &lt;A href="http://www.technorati.com/tag/orm"&gt;orm&lt;/A&gt;&amp;nbsp;, &lt;A href="http://www.technorati.com/tag/asp.net"&gt;asp.net&lt;/A&gt; , &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://rextang.net/aggbug.aspx?PostID=3216" width="1" height="1"&gt;</description><category domain="http://rextang.net/blogs/work/archive/tags/Architechture/default.aspx">Architechture</category><category domain="http://rextang.net/blogs/work/archive/tags/Programming/default.aspx">Programming</category><category domain="http://rextang.net/blogs/work/archive/tags/O_2F00_R+Mapping/default.aspx">O/R Mapping</category><category domain="http://rextang.net/blogs/work/archive/tags/ASP.NET/default.aspx">ASP.NET</category></item></channel></rss>