spine=1.536"
Wrox Programmer to Programmer TM
Beginning
Wrox Programmer to Programmer TM
Spaanjaars
ASP.NET 3.5 In C# and VB
To build effective and eye-catching database-driven web sites, you must
first have a solid framework on which to run your web pages as well as
a rich environment in order to create and program these web pages.
Microsoft’s ASP.NET 3.5 and Visual Web Developer™ 2008 combine forces
to provide you with the ultimate platform on which you can create dynamic
and interactive web applications.
Beginning
What you will learn from this book
● Ways that ASP.NET Server controls allow you to create complex web
sites with very little code
● How to use the extensive set of CSS tools that help you design your
web pages
● How to program responsive and interactive web pages with either C#
or Visual Basic®
● How to work with databases to create rich, data-driven web pages
● How you can easily create a centralized and maintainable site design
● How to secure your web site, providing login functionality and role-based
access to content
Who this book is for
This book is for anyone who wants to build rich and interactive web sites
that run on the Microsoft platform. No prior experience in web development
is assumed.
Enhance Your Knowledge
Advance Your Career
Wrox Beginning guides are crafted to make learning programming languages and technologies easier than you think,
providing a structured, tutorial format that will guide you through all the techniques involved.
ASP.NET 3.5
Popular Wrox author Imar Spaanjaars begins by demonstrating how to
obtain and install Visual Web Developer. With each successive chapter,
he introduces you to new technologies that build on knowledge gained
from previous chapters. You’ll learn that both ASP.NET 3.5 and Visual
Web Developer now come with an extensive set of tools that will help you
smoothly program your web applications. With the knowledge you gain from
this book, you will be able to create feature-rich, database-driven, interactive
web sites.
Beginning
ASP.NET 3.5
In C# and VB
www.wrox.com
Recommended
Computer Book
Categories
$44.99 USA
$48.99 CAN
Web Development
ASP.NET
ISBN: 978-0-470-18759-3
In C# and VB
Imar Spaanjaars
Updates, source code, and Wrox technical support at www.wrox.com
87593ffirs.qxd:WroxPro
1/29/08
12:47 AM
Page ii
87593ffirs.qxd:WroxPro
1/29/08
12:47 AM
Page i
Beginning
ASP.NET 3.5
Chapter 1: Getting Started with ASP.NET 3.5 . . . . . . . . . . . . . . . . . . . . . . . . . 1
Chapter 2: Building an ASP.NET Web Site . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Chapter 3: Designing Your Web Pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
Chapter 4: Working with ASP.NET Controls . . . . . . . . . . . . . . . . . . . . . . . . . 103
Chapter 5: Programming Your ASP.NET Web Pages . . . . . . . . . . . . . . . . . . . 135
Chapter 6: Creating Consistent Looking Web Sites . . . . . . . . . . . . . . . . . . . 193
Chapter 7: Navigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235
Chapter 8: User Controls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
Chapter 9: Validating User Input. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
Chapter 10: ASP.NET AJAX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
Chapter 11: Introduction to Databases. . . . . . . . . . . . . . . . . . . . . . . . . . . . 353
Chapter 12: Displaying and Updating Data . . . . . . . . . . . . . . . . . . . . . . . . . 383
Chapter 13: LINQ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 425
Chapter 14: Presenting Data — Advanced Topics . . . . . . . . . . . . . . . . . . . . 475
Chapter 15: Security in Your ASP.NET 3.5 Web Site . . . . . . . . . . . . . . . . . . 517
Chapter 16: Personalizing Web Sites . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 557
Chapter 17: Exception Handling, Debugging, and Tracing . . . . . . . . . . . . . . 591
Chapter 18: Deploying Your Web Site . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 631
Appendix A: Exercise Answers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 665
Appendix B: Configuring SQL Server 2005 . . . . . . . . . . . . . . . . . . . . . . . . . 687
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 707
87593ffirs.qxd:WroxPro
1/29/08
12:47 AM
Page ii
87593ffirs.qxd:WroxPro
1/29/08
12:47 AM
Page iii
Beginning
ASP.NET 3.5
In C# and VB
Imar Spaanjaars
87593ffirs.qxd:WroxPro
1/29/08
12:47 AM
Page iv
Beginning ASP.NET 3.5: In C# and VB
Published by
Wiley Publishing, Inc.
10475 Crosspoint Boulevard
Indianapolis, IN 46256
www.wiley.com
Copyright © 2008 by Wiley Publishing, Inc., Indianapolis, Indiana
Published simultaneously in Canada
ISBN: 978-0-470-18759-3
Manufactured in the United States of America
10 9 8 7 6 5 4 3 2 1
Library of Congress Cataloging-in-Publication Data
Spaanjaars, Imar.
Beginning ASP.NET 3.5 / Imar Spaanjaars.
p. cm.
Includes index.
ISBN 978-0-470-18759-3 (pbk. : web)
1. Active server pages. 2. Web sites—Design. 3. Microsoft .NET. I. Title.
TK5105.8885.A26S6815 2006
005.2'76—dc22
2007052406
No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by any means,
electronic, mechanical, photocopying, recording, scanning or otherwise, except as permitted under Sections 107 or 108
of the 1976 United States Copyright Act, without either the prior written permission of the Publisher, or authorization
through payment of the appropriate per-copy fee to the Copyright Clearance Center, 222 Rosewood Drive, Danvers,
MA 01923, (978) 750-8400, fax (978) 646-8600. Requests to the Publisher for permission should be addressed to the Legal
Department, Wiley Publishing, Inc., 10475 Crosspoint Blvd., Indianapolis, IN 46256, (317) 572-3447, fax (317) 572-4355, or
online at />Limit of Liability/Disclaimer of Warranty: The publisher and the author make no representations or warranties with
respect to the accuracy or completeness of the contents of this work and specifically disclaim all warranties, including
without limitation warranties of fitness for a particular purpose. No warranty may be created or extended by sales or
promotional materials. The advice and strategies contained herein may not be suitable for every situation. This work is
sold with the understanding that the publisher is not engaged in rendering legal, accounting, or other professional services. If professional assistance is required, the services of a competent professional person should be sought. Neither the
publisher nor the author shall be liable for damages arising herefrom. The fact that an organization or Website is referred
to in this work as a citation and/or a potential source of further information does not mean that the author or the publisher endorses the information the organization or Website may provide or recommendations it may make. Further,
readers should be aware that Internet Websites listed in this work may have changed or disappeared between when
this work was written and when it is read.
For general information on our other products and services please contact our Customer Care Department within the
United States at (800) 762-2974, outside the United States at (317) 572-3993 or fax (317) 572-4002.
Trademarks: Wiley, the Wiley logo, Wrox, the Wrox logo, Wrox Programmer to Programmer, and related trade dress are
trademarks or registered trademarks of John Wiley & Sons, Inc. and/or its affiliates, in the United States and other countries, and may not be used without written permission. All other trademarks are the property of their respective owners.
Wiley Publishing, Inc., is not associated with any product or vendor mentioned in this book.
Wiley also publishes its books in a variety of electronic formats. Some content that appears in print may not be available in electronic books.
87593ffirs.qxd:WroxPro
1/29/08
12:47 AM
Page v
To my dad — I know you’d be proud
87593ffirs.qxd:WroxPro
1/29/08
12:47 AM
Page vi
87593ffirs.qxd:WroxPro
1/29/08
12:47 AM
Page vii
About the Author
Imar Spaanjaars graduated in Leisure Management at the Leisure Management School in the Netherlands,
but he quickly changed his career path into the Internet world.
After working for a large corporation and doing some freelance work, he now works for Design IT
(www.designit.nl), an IT company in the Netherlands specializing in Internet and intranet applications built with Microsoft technologies like ASP.NET 3.5. As a technical director and software designer,
he’s responsible for designing and building medium- to large-scaled e-commerce web sites and portals.
He’s also the tech lead for Dynamicweb Nederland, the Dutch branch of the popular Danish Content
Management System Dynamicweb (www.dynamicweb.nl).
Imar has written books on ASP.NET 2.0 and Macromedia Dreamweaver, all published under the Wrox
brand. He is also one of the top contributors to the Wrox Community Forum at p2p.wrox.com, where
he shares his knowledge with fellow programmers.
Imar lives in Utrecht, the Netherlands, with his girlfriend, Fleur. You can contact him through his personal
web site at .
87593ffirs.qxd:WroxPro
1/29/08
12:47 AM
Page viii
87593ffirs.qxd:WroxPro
1/29/08
12:47 AM
Page ix
Credits
Acquisitions Director
Vice President and Executive Group Publisher
Jim Minatel
Richard Swadley
Development Editor
Vice President and Executive Publisher
Brian Herrmann
Joseph B. Wikert
Lead Technical Editor
Project Coordinator, Cover
Peter Lanoie
Lynsey Stanford
Technical Editors
Compositor
Alexei Gorkov
John Dunagan
Robert Searing
Laurie Stewart, Happenstance Type-O-Rama
Editorial Manager
Mary Beth Wakefield
Production Manager
Tim Tate
Proofreaders
Kathryn Duggan
David Parise
Rachel Gunn
Indexer
Melanie Belkin
87593ffirs.qxd:WroxPro
1/29/08
12:47 AM
Page x
87593ffirs.qxd:WroxPro
1/29/08
12:47 AM
Page xi
Acknowledgments
Writing a book is probably one of the most exhausting but fun and rewarding things I have ever done.
During writing you have to invest a lot of time and effort to put your ideas down into something that
is worth reading by others. After the hard work is done and the book is written, the reward comes from
readers like you who send me e-mails, contact me through my web site, or participate in the online discussion forums at p2p.wrox.com to discuss the book.
As Norman Mailer put it, writing a book is the closest that men ever get to childbearing. Although I think
there is probably some truth in that statement, I also realize there is one big difference: writing a book is
not something you have to do on your own. Although only my name is on the cover, I owe a lot to many
people who helped me write this book.
First of all I’d like to thank Jim Minatel from Wiley for asking me to pick up this project and having faith
in my ability to bring it to a good end. I would also like to thank Brian Herrmann for his editorial work. I
know it wasn’t always easy with the number of reviewers we had, but I think it turned out pretty well.
I am very thankful for the work done by the technical editors on this book: Alexei, John, and Rob —
thanks, guys, for all your hard work! I particularly want to thank the lead technical editor, Peter Lanoie,
who has made a major contribution, both in shaping the direction of the book and in assuring its technical
accuracy. Thank you, Peter!
I am also very glad for the support I got from the people at Design IT. Thanks to all who have reviewed
my work and participated in my discussions on the book’s direction.
Another person I owe a lot to is Anne Ward from Blue Violet, a UK-based web and graphic design company. Anne has done most of the designs used in this book, which I highly appreciate. Thanks, Anne!
The concert pictures you see in this book come from her good friend Nigel D. Nudds, who kindly let me
use pictures from his collection.
Finally, I would like to thank my lovely girlfriend, Fleur. You may get tired of hearing it, but I really
appreciate the support you have given me throughout this project. I couldn’t — and wouldn’t — have
done it without you!
87593ffirs.qxd:WroxPro
1/29/08
12:47 AM
Page xii
87593ftoc.qxd:WroxPro
1/25/08
11:31 AM
Page xiii
Contents
Acknowledgments
Introduction
Chapter 1: Getting Started with ASP.NET 3.5
Microsoft Visual Web Developer
Getting Visual Web Developer
Installing Visual Web Developer Express Edition
Creating Your First ASP.NET 3.5 Web Site
An Introduction to ASP.NET 3.5
Understanding HTML
A First Look at ASP.NET Markup
A Tour of the IDE
The Main Development Area
Informational Windows
Customizing the IDE
Rearranging Windows
Modifying the Toolbox
Customizing the Document Window
Customizing Toolbars
Customizing Keyboard Shortcuts
Resetting Your Changes
xi
xxiii
1
2
3
3
5
9
10
14
15
15
21
22
22
23
25
25
26
27
The Sample Application
Practical Tips on Visual Web Developer
Summary
Exercises
28
30
30
31
Chapter 2: Building an ASP.NET Web Site
33
Creating Web Sites with VWD 2008
34
Different Project Types
Choosing the Right Web Site Template
Creating and Opening a New Web Site
34
35
36
Working with Files in Your Web Site
39
The Many File Types of an ASP.NET 3.5 Web Site
Adding Existing Files
39
43
87593ftoc.qxd:WroxPro
1/25/08
11:31 AM
Page xiv
Contents
Organizing Your Site
Special File Types
Working with Web Forms
The Different Views on Web Forms
Choosing between Code Behind and Pages with Inline Code
Adding Markup to Your Page
Connecting Pages
Practical Tips on Working with Web Forms
Summary
Exercises
Chapter 3: Designing Your Web Pages
Why Do You Need CSS?
Problems of HTML Formatting
How CSS Fixes Formatting Problems
An Introduction to CSS
CSS — The Language
The Style Sheet
Adding CSS to Your Pages
Working with CSS in Visual Web Developer
Creating New Styles in External Style Sheets
Creating Embedded and Inline Style Sheets
Applying Styles
Managing Styles
Practical Tips on Working with CSS
Summary
Exercises
44
46
47
47
48
53
59
61
61
62
63
63
64
65
65
69
69
80
82
83
88
94
96
99
100
100
Chapter 4: Working with ASP.NET Controls
103
Introduction to Server Controls
A Closer Look at ASP.NET Server Controls
103
107
Defining Controls in Your Pages
Common Properties for All Controls
Types of Controls
Standard Controls
HTML Controls
Data Controls
Validation Controls
Navigation Controls
Login Controls
xiv
108
108
110
111
124
124
125
125
125
87593ftoc.qxd:WroxPro
1/25/08
11:31 AM
Page xv
Contents
Ajax Extensions
WebParts
The ASP.NET State Engine
What Is State and Why Is It Important?
How the State Engine Works
Not All Controls Rely on ViewState
A Note About ViewState and Performance
Practical Tips on Working with Controls
Summary
Exercises
Chapter 5: Programming Your ASP.NET Web Pages
Introduction to Programming
Data Types and Variables
Converting Data Types
Using Arrays and Collections
Statements
Operators
Making Decisions
Loops
Organizing Code
Methods: Functions and Subroutines
The App_Code Folder
Organizing Code with Namespaces
Writing Comments
125
125
126
126
127
131
131
132
132
133
135
136
136
140
142
146
147
154
161
164
165
167
171
173
Object Orientation Basics
176
Important OO Terminology
Events
176
188
Practical Tips on Programming
Summary
Exercises
Chapter 6: Creating Consistent Looking Web Sites
Consistent Page Layout with Master Pages
Creating Master Pages
Creating Content Pages
Using a Centralized Base Page
An Introduction to the ASP.NET Page Life Cycle
Implementing the Base Page
Creating Reusable Page Templates
189
190
191
193
194
196
198
203
204
206
210
xv
87593ftoc.qxd:WroxPro
1/25/08
11:31 AM
Page xvi
Contents
Themes
Different Types of Themes
Choosing Between Theme and StyleSheetTheme
Applying Themes
Extending Themes
Dynamically Switching Themes
Skins
Creating a Skin File
Named Skins
A Final Note on Skins
Practical Tips on Creating Consistent Pages
Summary
Exercises
Chapter 7: Navigation
214
215
215
215
219
222
228
229
231
232
232
233
234
235
Different Ways to Move around Your Site
236
Understanding Absolute and Relative URLs
Understanding Default Documents
236
240
Using the Navigation Controls
Architecture of the Navigation Controls
Examining the Web.sitemap File
Using the Menu Control
Using the TreeView Control
Using the SiteMapPath Control
Programmatic Redirection
Programmatically Redirecting the Client to a Different Page
Server-Side Redirects
Practical Tips on Navigation
Summary
Exercises
Chapter 8: User Controls
Introduction to User Controls
Creating User Controls
Adding User Controls to a Content Page or Master Page
Site-Wide Registration of User Controls
User Control Caveats
Adding Logic to Your User Controls
Creating Your Own Data Types for Properties
xvi
241
242
242
244
253
257
259
259
261
264
264
265
267
267
268
271
274
275
277
277
87593ftoc.qxd:WroxPro
1/25/08
11:31 AM
Page xvii
Contents
Implementing ViewState Properties
ViewState Considerations
283
288
Practical Tips on User Controls
Summary
Exercises
289
289
290
Chapter 9: Validating User Input
291
Gathering Data from the User
292
Validating User Input in Web Forms
Processing Data at the Server
293
307
Sending E-mail from Your Web Site
Reading from Text Files
307
313
Practical Tips on Validating Data
Summary
Exercises
318
318
319
Chapter 10: ASP.NET AJAX
Introducing Ajax
Using ASP.NET AJAX in Your Projects
Creating Flicker-Free Pages
Providing Feedback to Users
Using the Timer Control
Using Web Services in Ajax Web Sites
What Are Web Services?
Creating Web Services
Using Web Services in Your Ajax Web Site
This Is Just the Beginning
Practical Ajax Tips
Summary
Exercises
321
322
323
323
328
332
337
337
338
342
349
349
350
351
Chapter 11: Introduction to Databases
353
What Is a Database?
Different Kinds of Relational Databases
Using SQL to Work with Database Data
354
355
355
Retrieving and Manipulating Data
Creating Your Own Tables
Data Types in SQL Server
358
371
371
xvii
87593ftoc.qxd:WroxPro
1/25/08
11:31 AM
Page xviii
Contents
Understanding Primary Keys and Identities
Creating Relationships Between Tables
Practical Database Tips
Summary
Exercises
Chapter 12: Displaying and Updating Data
Data Controls
Data-Bound Controls
Data Source Controls
Data Source and Data-Bound Controls Working Together
Displaying and Editing Data with GridView
Inserting Data with DetailsView
Storing Your Connection Strings in web.config
Filtering Data
Customizing the Appearance of the Data Controls
Configuring Columns or Fields of Data-Bound Controls
Updating and Inserting Data
Using DetailsView to Insert and Update Data
Practical Tips for Displaying and Updating Data
Summary
Exercises
373
377
380
381
381
383
383
384
386
386
386
392
395
397
403
403
409
409
422
423
423
Chapter 13: LINQ
425
Introducing LINQ
426
Different Types of LINQ
427
Introducing LINQ to SQL
427
Mapping Your Data Model to an Object Model
Introducing Query Syntax
Standard Query Operators
Shaping Data with Anonymous Types
428
433
433
437
Using Server Controls with LINQ Queries
443
New Controls Introduced in ASP.NET 3.5
A Few Notes about Performance
443
471
Practical LINQ Tips
Summary
Exercises
xviii
472
472
473
87593ftoc.qxd:WroxPro
1/25/08
11:31 AM
Page xix
Contents
Chapter 14: Presenting Data — Advanced Topics
475
Formatting Your Controls Using Styles
476
An Introduction to Styles
Combining Styles, Themes, and Skins
477
481
Handling Events
The ASP.NET Page and Controls Life Cycles Revisited
Handling Errors that Occur in the Data Source Controls
Caching
Common Pitfalls with Caching Data
Different Ways to Cache Data in ASP.NET Web Applications
Practical Data Tips
Summary
Exercises
Chapter 15: Security in Your ASP.NET 3.5 Web Site
Introducing Security
Identity: Who Are You?
Authentication: How Can You Prove Who You Are?
Authorization: What Are You Allowed to Do?
An Introduction to the ASP.NET Application Services
Introducing the Login Controls
The Login Controls
Configuring Your Web Application
The Role Manager
Configuring the Role Manager
Managing Users with the WSAT
Configuring the Web Application to Work with Roles
Programmatically Checking Roles
Practical Security Tips
Summary
Exercises
Chapter 16: Personalizing Web Sites
485
485
498
502
503
505
513
514
515
517
518
518
518
518
519
520
525
537
541
541
542
546
551
554
555
555
557
Understanding Profile
558
Configuring the Profile
Using the Profile
558
565
xix
87593ftoc.qxd:WroxPro
1/25/08
11:31 AM
Page xx
Contents
Other Ways of Dealing with Profile
583
Anonymous Identification
Cleaning Up Old Anonymous Profiles
Looking at Other Users’ Profiles
583
584
585
Practical Personalization Tips
Summary
Exercises
Chapter 17: Exception Handling, Debugging, and Tracing
Exception Handling
Different Types of Errors
Catching and Handling Exceptions
Global Error Handling and Custom Error Pages
The Basics of Debugging
Tools Support for Debugging
Moving around in Debugged Code
Debugging Windows
Debugging Client-Side Script
Tracing Your ASP.NET Web Pages
Using the Standard Tracing Capabilities
Adding Your Own Information to the Trace
Tracing and Performance
A Security Warning
Practical Debugging Tips
Summary
Exercises
Chapter 18: Deploying Your Web Site
Preparing Your Web Site for Deployment
Avoiding Hardcoded Settings
Copying Your Web Site
Creating a Simple Copy of Your Web Site
Publishing Your Web Site
Running Your Site under IIS
Installing and Configuring the Web Server
Understanding Security in IIS
NTFS Settings for Planet Wrox
Troubleshooting Web Server Errors
xx
589
589
590
591
592
592
594
601
607
611
611
612
618
621
622
626
628
628
628
629
630
631
632
632
639
639
642
643
643
651
652
656
87593ftoc.qxd:WroxPro
1/25/08
11:31 AM
Page xxi
Contents
Moving Data to a Remote Server
Using the Database Publishing Wizard
Recreating the Database
The Deployment Checklist
What’s Next
Summary
Exercises
657
658
660
661
662
663
664
Appendix A: Exercise Answers
665
Appendix B: Configuring SQL Server 2005
687
Configuring SQL Server 2005
Terminology and Concepts
Using SQL Server Management Studio
Enabling Remote Connections in SQL Server
Connecting Your Application to SQL Server 2005
Configuring Application Services
Configuring Your Database for the Application Services
Overriding the LocalSqlServer Connection String
Overriding the Settings of the Application Services
Index
687
688
689
690
693
701
702
703
704
707
xxi
87593flast.qxd:WroxPro
1/28/08
8:56 AM
Page xxii
87593flast.qxd:WroxPro
1/28/08
8:56 AM
Page xxiii
Introduction
To build effective and attractive database-driven web sites, you need two things: a solid and fast framework to run your web pages on and a rich and extensive environment to create and program these web
pages. With ASP.NET 3.5 and Visual Web Developer 2008 you get both. Together they form the platform
to create dynamic and interactive web applications.
ASP.NET 3.5 builds on top of its popular predecessor ASP.NET 2.0. While maintaining backward compatibility with sites built using this older version, the Microsoft .NET Framework 3.5 in general and ASP.NET
3.5 in particular add a lot of new, compelling features to the mix.
Continuing the path of “less code” that was entered with the 2.0 version of the .NET Framework,
ASP.NET 3.5 lets you accomplish more with even less code. New features like LINQ that are added to
the .NET Framework allow you to access a database with little to no handwritten code. The integration
of Microsoft ASP.NET Ajax into the ASP.NET Framework and Visual Web Developer means you can now
create fast-responding and spiffy web interfaces simply by dragging a few controls onto your page and
setting a few properties. This book gives you an in-depth look at both of these technologies.
The support for Cascading Style Sheets (CSS), the language to lay out and format web pages, has undergone a major overhaul in Visual Web Developer. The design-time support, that shows you how a page
will eventually look in the browser, has been vastly improved. Additionally, Visual Web Developer now
ships with a lot of tools that make writing CSS a breeze.
However, drag-and-drop support and visual tools are not the only things you’ll learn from this book.
ASP.NET 3.5 and Visual Web Developer 2008 come with a great and extensive set of tools to help you
program your web applications. These tools range from the new LINQ syntax that allows you to query
data and databases in your web applications, to the vastly improved debugging capabilities that allow
you to debug your application from client-side JavaScript all the way up into your server-side code, all
with the same familiar user interface, commands, and actions.
Under the hood, ASP.NET 3.5 makes use of the same run time as version 2.0. This ensures a great backward compatibility with that version, which means that ASP.NET 2.0 applications continue to run under
the new framework. But don’t be fooled by the fact that the run time hasn’t changed. Although the technical underpinnings needed to execute your web application haven’t changed, the .NET 3.5 Framework
and ASP.NET add a lot of new features, as you’ll discover in this book.
Probably the best thing about Visual Web Developer 2008 is its price: it’s available for free. Although
the commercial versions of Visual Studio 2008 ship with Visual Web Developer, you can also download
and install the free Express Edition. This makes Visual Web Developer 2008 and ASP.NET 3.5 probably
the most attractive and compelling web development technologies available today.