ASP.NET Web Forms was feeling black and blue after repeated beatings at the hands of hoodlums wielding ASP.NET MVC-shaped bats. With U N I T tattooed on the knuckles of one hand and T E S T tattooed on the knuckles of the other, these ruffians wore steel-toe boots and regularly gave Web Forms a thorough kicking up the codebehind.

Tired of scrabbling around in the dirt feeling sorry for itself, Web Forms upped and got itself a friend. This friend goes by the name of the Navigation for ASP.NET Web Forms framework. For months this Navigation framework has submitted Web Forms to a diet of protein shakes, bag work and ice baths.

Now its days of hiding behind curtains waiting for the coast to clear are long gone. Web Forms, with the Navigation framework at its side, is no longer afraid to walk down Web Development avenue or hang out on the corner of TDD street.

Read on to find out what Web Forms can do now it's got its groove back. From passing strongly-typed data between pages to writing progressively-enhanced, SEO-friendly Single Page Applications. See how to write fully unit-testable code without a mock class in sight. And to ensure those yobs don't get the upper hand again, Web Forms carries DisplayMode support to fend off Mobile attacks.

The documentation steps through the creation of a sample Web Site. Each section describes a key concept of the Navigation framework and applies this to the sample Site. The sample Web Site takes a typical Master/Details scenario and consists of a Listing screen that links to a Details screen and on the Details screen there is a link back to the Listing screen.

The Navigation framework requires VS 2005 or later. However the code and sample Web Site is written in VS 2012 and uses features such as Linq, Anonymous types and Collection Initializers where it is felt beneficial for clarity. Also in the sample Web Site standard ASP.NET DataBinding is used but not explained.

Don't give up if some concepts are confusing at first because the sample code is never too far away and further help is available by posting a question at

Last edited Oct 23, 2013 at 6:10 PM by GrahamMendick, version 3