Welcome to Dotneteer.com

<P class=teaser>Microsoft ASP.NET 2.0 makes it much easier to construct websites with best practices.</P> <P>This site is Li Chen's experiment site. It is currently running on Microsoft ASP.NET 2.0. I am a Microsoft Technologist. I have been an architect, developer, columnist, trainer and researcher. This is site is currently been migrated to ASP.NET 2.0. In the coming weeks, I will reveal more works for the benefit of Microsoft .Net and ASP.Net community.</P>

.Net agile development tools

<P>I have been making a collection of a list .Net agile development tools. I have created three categories for them: continuous integration, unit testing and mock framework. I took mock out of unit testing because there are so many tools specially focused on mock.</P> <H4>Build and Continuous Integration</H4> <P><A href="http://nant.sourceforge.net/">NAnt</A>: This is the .Net port ofpopular Java Ant build tool. It uses its own build.xml file. It has a large 3rd party contributions that allows you to do all kinds of task.</P> <P><A href="http://msdn2.microsoft.com/en-us/library/wea2sca5(VS.80).aspx">MSBuild</A>: MSBuild is part of .Net framework 2.0. The best part is that Visual Studio 2005 or later uses MSBuild file format as its project file. So you do not have to separately create a build script. You can build Visual Studio projects from the command line without using Visual Studio IDE.</P> <P><A href="http://confluence.public.thoughtworks.org/display/CCNET/Welcome+to+CruiseControl.NET">CruiseControl.net</A>: This is the .Net port of Crusie Control Java continuous integration tool for automatic build and deployment. It supports </P> <H4>Unit Testing</H4> <P><A href="http://www.nunit.org/index.php">NUnit</A>: Created by the same people who created JUnit, this was a port of JUnit initially. It has since been complete rewritten for .Net.</P> <P><A href="http://msdn2.microsoft.com/en-us/library/ms243147(VS.80).aspx">Visual Studio Unit Testing</A>: This is the built-in unit testing framework in Visaul Studio 2005 or later. For Visual Studio 2005, you have to get expensive Team Edition to get this feature. For VS 2008, this feature is available in the professional edition.</P> <P><A href="http://www.mbunit.com/">MBUnit</A>: An xUnit framework as alternative to NUnit. Not sure about its unique features.</P> <P><A href="http://testdriven.net/">Test Driven</A>: A Visual Studio plug-in for other unit testing frameworks such as NUnit or MBUnit. This was very valuable in Visaul Studio 2005 so you don't have to get Team edition.</P> <H4>Mock</H4> <P><A href="http://www.ayende.com/projects/rhino-mocks.aspx">Rhino Mock</A>: A very popular mock framework often mentioned.</P> <P><A href="http://sourceforge.net/projects/easymocknet/">EasyMock.Net</A>: A port of Java Easy Mock framework.</P> <P><A href="http://www.typemock.com/">Type Mock</A>: Not sure about its unique features.</P> <P><A href="http://code.google.com/p/moq/">Moq</A>: A mock framework to support .Net framework 3.5 from the ground up.</P>

Url Monitor

<P>I created a simple application to monitor some static contents. It sends notification email when the contents are changed. The application is at <A href="/projects/urlmonitor">http://www.dotneteer.com/projects/urlmonitor</A></P>

Dotneteer Content Management System (CMS) 0.95 Completed

<P class=teaser>This content management system is a platform for me to experiment with new ideas and best practices in website consturction.</P> <P>Here are some features of dotneteer CMS:</P> <UL> <LI>Complete seperation of contents and presentation. Site can be refaced at a single click. <LI>Site is logically driven by a site map. The site master only needs to be concerned with the logical structure of the site, that is, the relationship between pages. A page can have parent, sibling and children. The site master does not need to concern with the physical structure of the site, that is, directories. The site can be easily reorganized by changing the relationship between pages. <LI>The site is driven by&nbsp;a custom SQLServerSiteMapProvider. The sitemap can be dynamically refreshed by the CMS. <LI>A HTTP Module was created to rewrite the Url. The HTTP Module is driven by same table that generates the sitemap.&nbsp; <LI>Site authors do not need to know HTML. Anyone who can type in Word can author web pages. Even my kids can create contents with dotneteer CMS. <LI>Optionally, a single installation can support multiple sites. <LI>Search feature is completed. <LI>The site has built-in international support, including fast-east languages. <LI>The contents can be easily migrated from one location to another.</LI></UL>

Google sitemap is now online

<P>With&nbsp;this <A href="http://weblogs.asp.net/bleroy/archive/2005/12/02/432188.aspx">post</A> by Betrand Le Roy, I now have a google sitemap on my site. It can be accessed at <A href="/GSitemap.ashx">http://www.dotneteer.com/GSitemap.ashx</A>.</P> <P>Google Sitemap helps Google Engine to index the site better. I am sure it could be used by third party tools as well.</P>

ASP 1.x applications integrated into this site

Although this site is running ASP.NET 2.0, I was able to integrate several ASP.NET 1.x apps into this site. See <A href="/weblog/archive/2006/02/02/2174.aspx">this blog </A>for more detail.

How many HTML tables are there in this page?

<p class="teaser">Answer: 0.</p> <p>Well, there is actually one table automatically generated by the menu control. That is all the tables that I have. The point is that since I am a believer of "separating the contents from presentation", I do not use tables for layout. I use CSS positioning and ASP.Net 2.0 Themes to control the layout and styling. This technique allows me to reface a site very easily. To see how easy it is, please click the "more" link below... </p>

DataGridHelper Control

<p class="teaser">With the DataGridHelper control, you can use the DataGrid control in ASP.NET 1.x to display and edit data without writing a single line of code, just like the GridView control in asp.net 2.0.</p> <p>I wrote this three-part article for aspalliance.com. All 3 articles are on the aspalliance all time top 30 most popular article list. Even if you use 3-tier architecture, the real point of this component is that it encapsulated so much common DataGrid code in a single component so that it makes accessing database access components much easier.</p>

dir2aspx ISAPI filter

<p class="teaser">dir2aspx is an ISAPI filter that maps a web request to a directory to the default.aspx page in the directory.</p> <p>This filter is useful for those ASP.NET sites that rewrite URL, such as dotnetnuke. IIS directs a request to ASP.NET runtime only if the request is for one of the resource mapped to ASP.NET. When a request is for a directory without the name of the default document, IIS will check the physical directory first and then map the URL to the default document. If the physical directory does not exist, the user gets "HTTP Error 404 - File or directory not found". </p>

This site is currently under reconstruction

<P>The 0.90 version of the new content management system is completed. In the coming days, I will update the contents and port some ASP.NET 1.1 applications to ASP.NET 2.0.</P>