Introduction
Simply put, ASP.NET 2.0 is an amazing release! When ASP.NET 1.0 was first introduced in 2000, many
considered it a revolutionary leap forward in the area of Web application development. I believe
ASP.NET 2.0 is just as exciting and revolutionary. Although the foundation of ASP.NET was laid with the
release of ASP.NET 1.0, ASP.NET 2.0 builds upon this foundation by focusing on the area of developer
productivity.
considered it a revolutionary leap forward in the area of Web application development. I believe
ASP.NET 2.0 is just as exciting and revolutionary. Although the foundation of ASP.NET was laid with the
release of ASP.NET 1.0, ASP.NET 2.0 builds upon this foundation by focusing on the area of developer
productivity.
ASP.NET 2.0 brings with it a staggering number of new technologies that have been built into the
ASP.NET framework. After reading this book, you will see just how busy the ASP.NET team has been in
the last few years. The number of classes inside ASP.NET has more than doubled, and this release contains more than 40 new server controls!
This book covers these new built-in technologies; it not only introduces new topics, it also shows you
examples of these new technologies in action. So sit back, pull up that keyboard, and let’s have some fun!
What You Need for ASP.NET 2.0
You will probably install Visual Studio 2005 Beta 1 to work through the examples in this book. To work
through every example in this book, you need
❑ Windows Server 2003, Windows 2000, or Windows XP
❑ Visual Studio 2005 Beta 1
❑ SQL Server 2000
❑ Microsoft Access
The nice thing is that you are not required to have IIS in order to work with ASP.NET 2.0 because this
release of ASP.NET includes a built-in Web server. And if you don’t have SQL Server, don’t be alarmed.
Many of the examples that use this database can be altered to work with Microsoft Access.
Who Is This Book For?
This book was written to introduce you to the new features and capabilities that ASP.NET 2.0 offers.
This book is meant to be only an introduction to these new features. Therefore, I do not spend any time
explaining the basics of ASP.NET and any functionality or capabilities that haven’t changed between this
release and the last release of ASP.NET.
This book is meant for the user who understands or has worked with ASP.NET 1.0 or 1.1. If you are
brand new to Web application development, however, this book can help you get up to speed on the
new features included in the upcoming release of ASP.NET—as long as you understand that the basics
of ASP.NET and the underlying .NET Framework are not covered. If you are brand new to ASP.NET, be
sure to also check out Beginning ASP.NET 1.1 with VB .NET 2003 (ISBN: 0-7645-5707-6) or Beginning
ASP.NET 1.1 with Visual C# .NET 2003 (ISBN: 0-7645-5708-4), depending on your language of choice, to
help you understand the basics of ASP.NET.
Is this book for the Visual Basic developer or for the C# developer? I am happy to say—BOTH! This
book covers all examples in both VB and C# if the code differs considerably.
What This Book Covers
As I stated, this book spends its time reviewing the big changes that have occurred in the 2.0 release of
ASP.NET. After the introduction, each major new feature included in ASP.NET 2.0 is covered in more
detail. The following sections present the contents of each chapter.
Chapter 1: Introduction to ASP.NET 2.0
This first chapter gives a good grounding in the new features of ASP.NET 2.0. The chapter takes a look at
some of the major new features and capabilities included. It starts by giving you a little bit of history of
ASP.NET and, for those working with a beta for the first time, it explains what a beta build of a product
is and what to expect from it.
Chapter 2: Visual Studio 2005
This chapter takes a look at the next generation of the major IDE for developing .NET applications:
Visual Studio 2005. Previous releases of this IDE included Visual Studio .NET 2003 and Visual Studio
.NET 2002. This chapter focuses on the enhancements in the 2005 release and how you can use it to build
better ASP.NET applications more quickly than in the past.
Chapter 3: Application and Page Frameworks
The third chapter covers the frameworks of ASP.NET applications as well as the structure and frameworks
provided for single ASP.NET pages. This chapter shows you how to build ASP.NET applications
using IIS or the built-in Web server that now comes with Visual Studio 2005. This chapter also shows
you the new folders and files added to ASP.NET. It also covers new ways of compiling code and how to
perform cross-page posting.
Chapter 4: New Ways to Handle Data
ADO.NET incorporates some radical changes. This chapter takes a look at the new data model provided
by ASP.NET, which allows you to handle the retrieval, updating, and deleting of data quickly and logically.
This new data model enables you to use one or two lines of code to get at data stored in everything
from SQL Server to XML files.
Chapter 5: Site Navigation
It is quite apparent that many developers do not simply develop single pages. Developers build applications
and, therefore, they need mechanics that deal with functionality throughout the entire application,
not just the pages. One of the new application capabilities provided by ASP.NET 2.0 is the site navigation
system covered in this chapter. The underlying navigation system enables you to define your application’s
navigation structure through an XML file. Finally, it introduces a whole series of new navigation
server controls that work with the data from these XML files.
Chapter 6: Working with Master Pages
In addition to the new site navigation system provided by ASP.NET 2.0—for working with the entire
application as opposed to working with singular pages—the ASP.NET team developed a way to create
templated pages. This chapter examines the creation of these templates (known as master pages) and
how to apply them to your content pages throughout an ASP.NET application.
Chapter 7: Themes and Skins
CSS files provided in ASP.NET 1.0/1.1 are simply not adequate, especially in the area of server controls.
The developer is never sure of the HTML output that is generated. This chapter takes a look at how to
deal with the styles that your applications require. I look closely at how to create themes and the skin
files that are part of a theme.
Chapter 8: Membership and Role Management
This chapter covers the new membership and role management system developed to simplify adding
authentication and authorization to your ASP.NET applications. These two new systems are extensive
and make some of the more complicated authentication and authorization implementations of the past a
distant memory. The chapter focuses on using the web.config file for controlling how these systems are
applied, as well as the new server controls that work with the underlying systems.
Chapter 9: Personalization
Developers are always looking for ways to store information pertinent to the end user. After it is stored,
this personalization data has to be persisted for future visits or for grabbing other pages within the same
application. The ASP.NET team developed a way to store this information—the ASP.NET personalization
system. The great thing about this system, like the other systems introduced before it, is that you
configure the entire behavior of the system from the web.config file.
Chapter 10: Portal Frameworks and Web Parts
This chapter looks at Web Parts—a new way of encapsulating pages into smaller and more manageable
objects. The great thing with Web Parts is that they can be made of a larger Portal Framework, which
then can enable end users to completely modify how the Web Parts are constructed on the page—including
the appearance and the layout of the Web Parts on the page.
Chapter 11: SQL Cache Invalidation
This chapter discusses the biggest change to the caching capabilities in ASP.NET—SQL cache invalidation.This new caching capability allows you to invalidate cached items based on changes that
occur in the database. This new process ensures a new way of keeping your pages as fresh as possible,
but use the smallest number of resources to do so.
Chapter 12: Additional New Controls
ASP.NET 2.0 contains more than 40 new server controls. Many of the controls are covered in the other
chapters of the book, but this chapter looks at the new server controls still unexplained. Included in this
chapter are discussions of the BulletedList, HiddenField, FileUpload, MultiView, View, Wizard,
DynamicImage, and ImageMap server controls.
Chapter 13: Changes to ASP.NET 1.0 Controls
In addition to the new server controls that come with ASP.NET 2.0, you will find considerable changes
have been made to the server controls that we all know and love from ASP.NET 1.0. This chapter takes a
look at the traditional server controls that have changed.
Chapter 14: Administration and Management
Besides making it easier for the developer to be more productive in building ASP.NET applications, the
ASP.NET team also put considerable focus into making it easier to manage the application. In the past,
using ASP.NET 1.0/1.1, you managed the ASP.NET applications by changing values in an XML configuration file. This chapter provides an overview of the new GUI tools that come with this latest release that enable you to easily and effectively manage Web applications.
Chapter 15: Visual Basic 8.0 and C# 2.0
Language Enhancements
In addition to major changes to ASP.NET, considerable change has occurred in Visual Basic 8.0 and C#
2.0. The changes to these two languages, the primary languages used for ASP.NET development, are discussed in this chapter
Conventions
I have used a number of different styles of text and layout in the book to help differentiate among various
types of information. Here are examples of the styles I use and an explanation of what they mean:
❑ New words that I’m defining are shown in italics.
❑ Keys that you press on the keyboard, like Ctrl and Enter, are shown in initial caps and spelled as
they appear on the keyboard.
Code appears in a number of different ways. If I’m talking about a code word in paragraph text—for
example, when discussing the if...else loop—the code word is shown in this font. If it’s a block of
code that you can type as a program and run, it’s shown on separate lines, within a gray box, like this:
public static void Main()
{
AFunc(1,2,”abc”);
}
Sometimes you see code in a mixture of styles, like this:
// If we haven’t reached the end, return true, otherwise
// set the position to invalid, and return false.
pos++;
if (pos < 4)
return true;
else {
pos = -1;
return false;
}
The code with a white background represents code I’ve already presented and that you don’t need to
examine further. The code with the gray background is what I want you to focus on at this point.
I demonstrate the syntactical usage of methods, properties, and so on using the following format:
SqlDependency=”database:table”
Here, the italicized parts indicate placeholder text: object references, variables, or parameter values to be
inserted.
Most of the code examples throughout the book are presented as numbered listings with descriptive
titles, like this:
Listing 1-3: Targeting WML devices in your ASP.NET pages
Each listing is numbered as 1-3, where the first number represents the chapter number, and the number
following the hyphen represents the sequential number for where that listing falls within the chapter.
Downloadable code from the Wrox Web site (www.wrox.com) also uses this numbering system, so you
can easily locate the examples you are looking for.
All code is shown in both VB and C# if warranted. The exception is for code in which the only difference
is, for example, the value given to the Language attribute in the Page directive. In such situations, I
don’t repeat the code for the C# version; so the code is shown only once, as in the following example:
<%@ Page Language=”VB”%>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head runat=”server”>
<title>DataSetDataSource</title>
</head>
<body>
<form id=”form1” runat=”server”>
<asp:DropDownList ID=”Dropdownlist1” Runat=”server” DataTextField=”name”
DataSourceID=”DataSetDataSource1”>
</asp:DropDownList>
<asp:DataSetDataSource ID=”DataSetDataSource1” Runat=”server”
DataFile=”~/Painters.xml”>
</asp:DataSetDataSource>
</form>
</body>
</html>
Source Code
As you work through the examples in this book, you may choose either to type all the code manually or
use the source code files that accompany the book. All the source code used in this book is available for
download at http://www.wrox.com. When you get to the site, simply locate the book’s title (either by
using the Search box or one of the title lists) and click the Download Code link on the book’s detail page
to obtain all the source code for the book.
As you work through the examples in this book, you may choose either to type all the code manually or
use the source code files that accompany the book. All the source code used in this book is available for
download at http://www.wrox.com. When you get to the site, simply locate the book’s title (either by
using the Search box or one of the title lists) and click the Download Code link on the book’s detail page
to obtain all the source code for the book.
Because many books have similar titles, you may find it easiest to search by ISBN; this book’s ISBN is
0-7645-7286-5.
After you download the code, just decompress it with your favorite compression tool. Alternatively, you
can go to the main Wrox code download page at http://www.wrox.com/dynamic/books/download
.aspx to see the code available for this book and all other Wrox books. Remember, you can easily find
the code you are looking for by referencing the listing number of the code example from the book, such
as Listing 1-3. I use these listing numbers when naming the downloadable code files.
Errata
We make every effort to ensure that there are no errors in the text or in the code. However, no one is perfect,
and mistakes do occur. If you find an error in one of our books, such as a spelling mistake or faulty
piece of code, we would be very grateful if you would tell us about it. By sending in errata, you may
save another reader hours of frustration; at the same time, you are helping us provide even higher quality
information.
To find the errata page for this book, go to http://www.wrox.com and locate the title using the Search
box or one of the title lists. Then, on the book details page, click the Book Errata link. On this page, you
can view all errata that have been submitted for this book and posted by Wrox editors. A complete book
list including links to each book’s errata is also available at http://www.wrox.com/misc-pages/
booklist.shtml.
If you don’t spot “your” error already on the Book Errata page, go to http://www.wrox.com/contact/
techsupport.shtml and complete the form there to send us the error you have found. We’ll
check the information and, if appropriate, post a message to the book’s errata page and fix the problem
in subsequent editions of the book.
p2p.wrox.com
For author and peer discussion, join the P2P forums at p2p.wrox.com. The forums are a Web-based system
for you to post messages relating to Wrox books and technologies and to interact with other readers
and technology users. The forums offer a subscription feature that enables you to receive e-mail on topics
of interest when new posts are made to the forums. Wrox authors, editors, other industry experts,
and your fellow readers are represented in these forums.
At http://p2p.wrox.com you will find a number of different forums that will help you not only as you
read this book, but also as you develop your own applications. To join the forums, just follow these steps:
1. Go to p2p.wrox.com and click the Register link.
2. Read the terms of use and click Agree.
3. Supply the information required to join, as well as any optional information you want to provide,
and click Submit.
You will receive an e-mail with information describing how to verify your account and complete the
joining process.
You can read messages in the forums without joining P2P, but you must join in order to post messages.
After you join, you can post new messages and respond to other users’ posts. You can read messages at
any time on the Web. If you would like to have new messages from a particular forum e-mailed to you,
click the Subscribe to this Forum icon by the forum name in the forum listing.
For more information about how the forum software works, as well as answers to many common questions
specific to P2P and Wrox books, be sure to read the P2P FAQs. Simply click the FAQ link on any
P2P page.
The Challenge of Writing a Beta Book
This book, ASP.NET 2.0 Beta Preview, was my seventh book, and it was quite a different experience from
other books I’ve written. I started writing this book at the end of 2003 when ASP.NET 2.0 was literally in
pieces, and there wasn’t an IDE to work with. Throughout the writing process, I received many new
builds—some on CD, some on DVD, some for which I could log on to a remote server and work only
remotely with the builds. With each new build I received, I uninstalled previous builds and installed the
new one. Sometimes I had to completely rebuild my machine.
The look and feel of the IDE—Visual Studio 2005—changed considerably from one build to the next, as
well as names of classes, methods, and properties. I say I wrote this book, but I probably wrote it at least
two times during the process. I tell this story because it is important for you to understand that I wrote
this book using numerous ASP.NET builds. In order to get this book to you in a timely fashion, the end
product, which is in your hands, was retested and changed for the last build I received during the writing
process. That particular build was one that was also received by more than 10,000 people at TechEd
2004 in San Diego, California—the May 2004 Technology Preview of Visual Studio 2005.
Therefore, the code and the screen shots of the IDE you see throughout this book may be slightly different
than the build (whether it is Beta 1 or Beta 2 of ASP.NET) you are working with. I don’t expect the
look and the feel of the IDE or the names of classes, methods, and properties to change again—but I can
never be completely sure. Just be aware that you may encounter some slight differences between what
you see on your screen and what I show in the book