Migrating to ASP.NET 2 - Part 1 - Introduction

This is the first part of a (long running) article series about migrating a .NET 1.x Web site to ASP.NET 2. I'll show you how to take an existing site, and upgrade it to ASP.NET 2. As an example, I'll be using my own web site, Imar.Spaanjaars.Com, show you how I have designed and implemented the currently existing features, and how they can be upgraded to take advantage of the new ASP.NET 2.0 Framework. I won't be describing each and every feature in great detail, but instead focus on general concepts and techniques, and provide links to other articles with more in-depth information.

Each article starts with a little background about one of the new ASP.NET 2 features, like Master Pages, the new Login controls, the Provider Model, Skins, and so on. Next, I'll discuss how I implemented similar behavior in my current site, or how I managed to live without it. Then I'll explain how the new features work and how you can use it in your ASP applications. At the end of the article, I'll show you how I implemented the feature in my own site.

Read Part 1 - Introduction
Read Part 2 - Setup and Master Pages
Read Part 3 - Business Logic, Content Pages and User Controls
Read Part 4 - Implementing Custom Providers for Membership, Role Management and Profiles
Read Part 5 - It's the little things...


As usual, first things first! Although my site isn't very large, it's a good idea to do some planning, so it's easier to spot potential (migration) problems right in the beginning. Just making a copy of my own Web site and then configure IIS to use the new 2.0 Framework will probably work, as ASP.NET 2 is supposed to be fully backwards compatible. However, to take full advantage of the new possibilities, I'll have some upgrading (and thus coding) to do.

Right now, I have the following "migration path" in mind:

  1. Setup the site: Create an empty ASP.NET 2 Web site.
  2. Create one or more Master Pages for the site. This includes setting up definitions for the main site sections (Main Menu, Site menu, Side Bar and the Main Content area) and the general look and feel of the site, built with a <div> based layout and CSS.
  3. Migrate the navigation structure of the site, including the Main Menu and the Sub Menu.
  4. Migrate existing content pages. Most content on my site is database driven, so fortunately there aren't that many pages. However, the pages that are there need to be closely examined, cleaned up and modified so they make use of the new features found in ASP.NET 2.
  5. Migrate core functionality, including authentication and authorization, logging, the sign-up section and the Content Management System. This is going to be the hardest part. Most of this code was hand written for ASP.NET 1.1, but quite a lot of functionality is now available right out of the box. For example, the Login and LoginView controls and the CreateUserWizard make a lot of my current code obsolete. I'll have to choose wisely between using the new ASP.NET controls, and keeping my existing (and working) code.

For each page, control, or functionality that I am migrating, I'll have to consider the advantages that the new ASP.NET 2 Framework gives me. Although all those shiny new controls look really attractive and easy to use, I also believe in "If it ain't broke, don't fix it". There is a lot of stuff in my site that works as it's supposed to, so why bother changing it to the new ASP.NET 2 world? With each design decision, I'll try to argument why I decided to leave things as is, or why I used new features from the ASP.NET 2 Framework.

Where to Next?

Wonder where to go next? You can post a comment on this article. You can read existing comments below or you can post a comment yourself on this article .

Consider making a donation
Please consider making a donation using PayPal. Your donation helps me to pay the bills so I can keep running Imar.Spaanjaars.Com, providing fresh content as often as possible.

Talk Back! Comment on Imar.Spaanjaars.Com

I am interested in what you have to say about this article. Feel free to post any comments, remarks or questions you may have about this article. The Talk Back feature is not meant for technical questions that are not directly related to this article. So, a post like "Hey, can you tell me how I can upload files to a MySQL database in PHP?" is likely to be removed. Also spam and unrealistic job offers will be deleted immediately.

When you post a comment, you have to provide your name and the comment. Your e-mail address is optional and you only need to provide it if you want me to contact you. It will not be displayed along with your comment. I got sick and tired of the comment spam I was receiving, so I have protected this page with a simple calculation exercise. This means that if you want to leave a comment, you'll need to complete the calculation before you hit the Post Comment button.

If you want to object to a comment made by another visitor, be sure to contact me and I'll look into it ASAP. Don't forget to mention the page link, or the QuickDocId of the document.

For more information about the Talk Back feature, check out this news item.