1 YEAR UPGRADE
BUYER PROTECTION PLAN
A S P. N E T
We b D e v e l o p e r ’s G u i d e
Mesbah Ahmed Chris Garrett Jeremy Faircloth Chris Payne DotThatCom.com Wei Meng Lee Jonothon Ortiz
Series Editor Technical Editor
solutions@syngress.com
With more than 1,500,000 copies of our MCSE, MCSD, CompTIA, and Cisco study guides in print, we continue to look for ways we can better serve the information needs of our readers. One way we do that is by listening. Readers like yourself have been telling us they want an Internet-based service that would extend and enhance the value of our books. Based on reader feedback and our own strategic plan, we have created a Web site that we hope will exceed your expectations. Solutions@syngress.com is an interactive treasure trove of useful information focusing on our book topics and related technologies. The site offers the following features: s One-year warranty against content obsolescence due to vendor product upgrades. You can access online updates for any affected chapters. s “Ask the Author” customer query forms that enable you to post questions to our authors and editors. s Exclusive monthly mailings in which our experts provide answers to reader queries and clear explanations of complex material. s Regularly updated links to sites specially selected by our editors for readers desiring additional reliable information on key topics. Best of all, the book you’re now holding is your key to this amazing site. Just go to www.syngress.com/solutions, and keep this book handy when you register to verify your purchase. Thank you for giving us the opportunity to serve your needs. And be sure to let us know if there’s anything else we can do to help you get the maximum value from your investment. We’re listening.
www.syngress.com/solutions
1 YEAR UPGRADE
BUYER PROTECTION PLAN
A S P. N E T
We b D e v e l o p e r ’s G u i d e
Mesbah Ahmed Chris Garrett Jeremy Faircloth Chris Payne DotThatCom.com Wei Meng Lee Jonothon Ortiz
Series Editor Technical Editor
Syngress Publishing, Inc., the author(s), and any person or firm involved in the writing, editing, or production (collectively “Makers”) of this book (“the Work”) do not guarantee or warrant the results to be obtained from the Work. There is no guarantee of any kind, expressed or implied, regarding the Work or its contents.The Work is sold AS IS and WITHOUT WARRANTY. You may have other legal rights, which vary from state to state. In no event will Makers be liable to you for damages, including any loss of profits, lost savings, or other incidental or consequential damages arising out from the Work or its contents. Because some states do not allow the exclusion or limitation of liability for consequential or incidental damages, the above limitation may not apply to you. You should always use reasonable care, including backup and other appropriate precautions, when working with computers, networks, data, and files. Syngress Media®, Syngress®,“Career Advancement Through Skill Enhancement®,” and “Ask the Author UPDATE®,”are registered trademarks of Syngress Publishing, Inc. “Mission Critical™,”“Hack Proofing™,” and “The Only Way to Stop a Hacker is to Think Like One™” are trademarks of Syngress Publishing, Inc. Brands and product names mentioned in this book are trademarks or service marks of their respective companies.
KEY 001 002 003 004 005 006 007 008 009 010 SERIAL NUMBER ANVE48952P WNBN9433ET 7BANL4P2WR QNV984UTAP KVAW939RE4 6JSE4FHU9W 4MAS8TYGF2 DAUTGFLRGT 2983K74SLF VFR4MHY7Q2
PUBLISHED BY Syngress Publishing, Inc. 800 Hingham Street Rockland, MA 02370
ASP.NET WEB DEVELOPER’S GUIDE
Copyright © 2002 by Syngress Publishing, Inc. All rights reserved. Printed in the United States of America. Except as permitted under the Copyright Act of 1976, no part of this publication may be reproduced or distributed in any form or by any means, or stored in a database or retrieval system, without the prior written permission of the publisher, with the exception that the program listings may be entered, stored, and executed in a computer system, but they may not be reproduced for publication. Printed in the United States of America 1 2 3 4 5 6 7 8 9 0 ISBN: 1-928994-51-2 Technical Editor: Jonothan Ortiz Freelance Editorial Manager: Maribeth Corona-Evans Series Editor:Wei Meng Lee Cover Designer: Michael Kavish Co-Publisher: Richard Kristof Page Layout and Art by: Shannon Tozier Acquisitions Editor: Catherine B. Nolan Copy Editors: Janet Zunkel and Michael McGee Developmental Editor: Kate Glennon Indexer: Robert Saigh CD Production: Michael Donovan Distributed by Publishers Group West in the United States and Jaguar Book Group in Canada.
Acknowledgments
We would like to acknowledge the following people for their kindness and support in making this book possible. Richard Kristof and Duncan Anderson of Global Knowledge, for their generous access to the IT industry’s best courses, instructors, and training facilities. Ralph Troupe, Rhonda St. John, and the team at Callisma for their invaluable insight into the challenges of designing, deploying, and supporting world-class enterprise networks. Karen Cross, Lance Tilford, Meaghan Cunningham, Kim Wylie, Harry Kirchner, Kevin Votel, Kent Anderson, and Frida Yara of Publishers Group West for sharing their incredible marketing experience and expertise. Mary Ging, Caroline Hird, Simon Beale, Caroline Wheeler,Victoria Fuller, Jonathan Bunkell, and Klaus Beran of Harcourt International for making certain that our vision remains worldwide in scope. Annabel Dent of Harcourt Australia for all their help. David Buckland,Wendi Wong, Daniel Loh, Marie Chieng, Lucy Chong, Leslie Lim, Audrey Gan, and Joseph Chan of Transquest Publishers for the enthusiasm with which they receive our books. Kwon Sung June at Acorn Publishing for his support. Ethan Atkin at Cranbury International for his help in expanding the Syngress program.
v
Contributors
Todd Carrico (MCDBA, MCSE) is a Senior Database Engineer for Match.com. Match.com is a singles portal for the digital age. In addition to its primary Web site, Match.com provides back-end services to AOL, MSN, and many other Web sites in its affiliate program.Todd specializes in design and development of high-performance, high-availability data architectures primarily on the Microsoft technology. His background includes designing, developing, consulting, and project management for companies such as Fujitsu, Accenture, International Paper, and GroceryWorks.com.Todd resides in Sachse,TX, with his wife and two children. Jeremy Faircloth (CCNA, MCSE, MCP+I, A+) is a Systems Analyst for Gateway, Inc. In this position, he develops and maintains enterprise-wide client/server and Web-based technologies. He also acts as a technical resource for other IT professionals, using his expertise to help others expand their knowledge. As a Systems Analyst with over 10 years of realworld IT experience, he has become an expert in many areas of IT including Web development, database administration, enterprise security, network design, and project management. Jeremy currently resides in North Sioux City, SD and wishes to thank Christina Williams for her support in his various technical endeavors. Mesbah Ahmed (PhD and MS, Industrial Engineering) is a Professor of Information Systems at the University of Toledo. In addition to teaching and research, he provides technical consulting and training for IT and manufacturing industries in Ohio and Michigan. His consulting experience includes systems design and implementation projects with Ford Motors, Dana Corporation, Riverside Hospital, Sears, and others. Currently, he provides IT training in the areas of Java Server, XML, and .NET technologies. He teaches graduate level courses in Database Systems, Manufacturing Systems, and Application Development in Distributed and Web Environment. Recently, he received the University
vi
of Toledo Outstanding Teaching award, and the College of Business Graduate Teaching Excellence award. His current research interests are in the areas of data warehousing and data mining. He has published many research articles in academic journals such as Decision Sciences, Information & Management, Naval Research Logistic Quarterly, Journal of Operations Management, IIE Transaction, and International Journal of Production Research. He has also presented numerous papers and seminars in many national and international conferences. Patrick Coelho (MCP) is an Instructor at The University of Washington Extension, North Seattle Community College, Puget Sound Center, and Seattle Vocational Institute, where he teaches courses in Web Development (DHTML, ASP, XML, XSLT, C#, and ASP.NET). Patrick is a Co-Founder of DotThatCom.com, a company that provides consulting, online development resources, and internships for students. He is currently working on a .NET solution with contributing author David Jorgensen and nLogix. Patrick holds a bachelor’s of Science degree from the University of Washington, Bothell. Patrick lives in Puyallup,WA with his wife Angela. David Jorgensen (MCP) is an Instructor at North Seattle Community College, University of Washington Extension campus, and Puget Sound Centers. He is also developing courses for Seattle Vocational Institute, which teach .NET and Web development to the underprivileged in the Seattle area. David also provides internship opportunities through his company DotThatCom.com, which does online sample classes and chapters of books. David holds a bachelor’s degree in Computer Science from St. Martin’s College and resides in Puyallup,WA with his wife Lisa and their two sons Scott and Jacob. Adam Sills is an Internet Programmer at GreatLand Insurance, a small insurance company parented by Kemper Insurance. He works in a small IT department that focuses on creating applications to expedite business processes and manage data from a multitude of locations. Previously, he had a small stint in consulting and also worked at a leading B2B
vii
eCommerce company designing and building user interfaces to interact with a large-scale enterprise eCommerce application. Adam’s current duties include building and maintaining Web applications, as well as helping to architect, build, and deploy new Microsoft .NET technologies into production use. Adam has contributed to the writing of a number of books for Syngress and is an active member of a handful of ASP and ASP.NET mailing lists, providing support and insight whenever he can. Chris Garrett is the Technical Manager for a large European Web agency. He has been working with Internet technologies since 1994 and has provided technical and new media expertise for some of the world’s biggest brands. Chris lives in Yorkshire, England, with his wife Clare and his daughter Amy. Chris Payne, author of Teach Yourself ASP.NET in 21 Days, is the CoFounder and CIO of Enfused Media, Inc., which designs and develops applications to automate and facilitate business processes. Chris has taught ASP and solution techniques through articles and tutorials and has a background in writing both technical and nontechnical material. Chris holds a bachelor’s degree in Engineering from Boston University and is currently lives with his wife, Eva, in Orlando, FL.
viii
Technical Editor and Contributor
Jonothon Ortiz is Vice President of Xnext, Inc. in Winter Haven, FL. Xnext, Inc. is a small, privately owned company that develops Web sites and applications for prestigious companies such as the New York Times. Jonothon is the head of the programming department and works together with the CEO on all company projects to ensure the best possible solution. Jonothon lives with his wife Carla in Lakeland, FL.
Series Editor and Contributor
Wei Meng Lee is Series Editor for Syngress Publishing’s .NET Developer Series. He is currently lecturing at The Center for Computer Studies, Ngee Ann Polytechnic, Singapore.Wei Meng is actively involved in Web development work and conducts training for Web developers and Visual Basic programmers. He has co-authored two books on WAP. He holds a bachelor’s degree in Information Systems and Computer Science from the National University of Singapore.The first book in the .NET series, VB.NET Developer’s Guide (ISBN: 1-928994-48-2), is currently available from Syngress Publishing.
ix
About the CD
This CD-ROM contains the code files that are used in each chapter of this book. The code files for each chapter are located in a “chXX” directory. For example, the files for Chapter 8 are in ch08. Any further directory structure depends on the projects that are presented within the chapter. Chapters 4, 6, and 9 contain code that apply to the situations described in their sections.This code will be extremely useful for understanding and enhancing the way you use ASP.NET. Specifically, Chapter 4 has various examples on dealing with the internal configuration of ASP.NET while Chapter 6 deals with how to optimize the various caching methods available through ASP.NET and Chapter 9 contains code on how to work with the debugging system of .NET with ASP.NET. Chapters 3 and 8 contain code that deal with improved technologies in ASP.NET. Chapter 3 discusses examples on how to work with ASP Server Controls while Chapter 8 deals with a concise introduction to what XML is and how XML affects .NET. Chapters 7, 11, 12, and 13 contain low-to-heavy duty applications, exactly in that order. Chapter 7 will introduce you to a sample application that deals with an address book, from start to finish.This example code will also introduce you to how code looks and operates in ASP.NET. Chapter 11, our XML.NET Guestbook, will show you how XML in .NET can easily be worked with by using the standard classes within ADO.NET, bridging the gap between XML and ADO. Chapters 12 and 13 take XML and ADO to the next level by introducing a Shopping Cart (Chapter 11) and a Message Board (Chapter 13). Both applications in Chapters 12 and 13 require an SQL Server backend, but either of these databases can be easily converted to an Access database.
Look for this CD icon to obtain files used in the book demonstrations.
x
Contents
Foreword
Debugging ASP.NET Applications
Debugging under classic ASP was a hit-and-miss affair, usually forcing the developer to add Response.Write statements through the code until he or she found the failure point. ASP.NET introduces much better debugging, thanks to the .NET Framework and Common Language Runtime (CLR).
xxv 1 2 2 2 3 4 5 6 6 7 7 8 8 9 10 11 12 13
14 15 16 17 18 19 19 20
xi
Chapter 1 Introducing ASP.NET Introduction Learning from the History of ASP The Origins of ASP Why ASP Was Needed Why ASP Was Not Originally Embraced Developing ASP 1.x Developing ASP 2.x Major Changes with ASP 2 Weaknesses in the ASP 2 Model Developing ASP 3.0 Final Changes to Original ASP Model Weaknesses in the ASP 3 Model The Need for a New ASP Model The ASP Timeline Reviewing the Basics of the ASP.NET Platform Utilizing the Flexibility of ASP.NET Converting Code into Multiple Languages Comparing Improvements in ASP.NET to Previous ASP Models How Web Servers Execute ASP Files Client-Server Interaction Server-Side Processing Compiling and Delivering ASP.NET Pages Running ASP.NET Web Pages Obtaining and Installing .NET Creating Your First ASP.NET Application
xii
Contents
Upgrading from Classic ASP Taking Security Precautions Summary Solutions Fast Track Frequently Asked Questions
26 28 29 29 32
Reviewing the Function of Namespaces
To use a namespace in an ASP.NET page, you must use the Import directive. Unlike in classic ASP, ASP.NET pages are compiled before they are run. You build ASP.NET pages using a compiled language, such as VB.NET or C#.
Chapter 2 ASP.NET Namespaces Introduction Reviewing the Function of Namespaces Using Namespaces Using the Microsoft.VisualBasic Namespace Understanding the Root Namespace: System Supplied Functionality Integral Numbers Floating-Point Numbers Dates Strings Booleans Objects Grouping Objects and Data Types with the System.Collections Namespace Supplied Functionality Enabling Client/Browser Communication with the System.Web Namespace Supplied Functionality System.Web.UI Namespace Set System.Web.Services Namespace Set Working with Data Sources Using the System.Data Namespace Supplied Functionality Processing XML Files Using the System.XML Namespace Supplied Functionality Summary Solutions Fast Track Frequently Asked Questions
35 36 36 37 38 38 38 39 39 40 40 40 40
43 43 45 45 46 51 52 52 53 53 55 56 58
Contents
xiii
Developing ASP.NET Web Forms
When you develop an ASP.NET Web form, you can use the following type of controls:
s s
HTML Server Controls Web Server Controls (also known as Web Controls or ASP.NET Web Form Controls) Validation Controls Custom Controls
s s
Chapter 3 ASP Server Controls Introduction Major Features of ASP.NET Server Controls Collecting Data Using HTML Forms Server-Side Processing in ASP.NET A Simple Application Using Conventional HTML Controls A Simple Application Using ASP Server Controls Mapping Server Controls and Preserving Their States Including Scripts in an .aspx File Loading a List Box via Script Using the IsPostBack Property of a Page AutoPostBack Attributes of Server Controls Structure of an ASP.NET Web Form Page Directives The Order of Event Execution Code-Behind versus In-Page Coding Using Code-Behind without Compilation Using Code Behind with Compilation Using VS.Net for Developing a Web Application Using HTML Server Controls Using the HtmlAnchor Control Using the HtmlTable Control Using HtmlInputText and HtmlTextArea Controls Using HtmlButton and HtmlImage Controls Using the HtmlInputFileControl Using the HtmlSelect Control with Data Binding to a SortedList Structure Creating and Loading the SortedList Using HtmlCheckBox and HtmlInputRadioButton Controls Using ASP.NET Web Controls
61 62 62 63 65
66 68 69 69 70 72 73 75 76 77 77 79 81 84 87 88 88 90 91 93 95 97 98 100
xiv
Contents
Basic Web Controls Using Labels, TextBoxes, RadioButtons, CheckBoxes, and DropDownLists Using the ListControl Abstract Class Using HyperLink Controls Binding a ListControl to an ArrayList Validation Controls The RequiredFieldValidator Control The RegularExpressionValidator Control The CompareValidator Control The RangeValidator Control The CustomValidator Control CustomValidator with Explicit Client-Side Validation Function Displaying the Error Message with Style The ValidationSummary Control Validating Patterned Strings, Passwords, and Dates