Learn your way! Get started

ASP.NET Using Visual C# 2008: Volume 2

with experts Don Kiely, Ken Getz


Course at a glance

Included in these subscriptions:

  • Dev & IT Pro Video
  • Dev & IT Pro Power Pack
  • Power Pack Plus

Release date Release date 7/31/2008
Level Level Intermediate
Runtime Runtime 13h 2m
Closed captioning Closed captioning N/A
Transcript Transcript N/A
eBooks / courseware eBooks / courseware Included
Hands-on labs Hands-on labs Included
Sample code Sample code Included
Exams Exams Included
Platform Platform Internet Explorer Only


Enterprise Solutions
Enterprise Solutions

Need reporting, custom learning tracks, or SCORM? Learn More



Course description

In this course you will be introduced to many exciting ASP.NET features that will help you get the most out of the .NET Framework and make you a better and more efficient Visual Studio 2008 developer. You will become familiar with the tracing features in Visual Studio that help you quickly troubleshoot issues. You will also learn how to read and write XML data using XML DOM, how to work with ASP.NET Profile features and ASP.NET Web Parts, and how to take advantage of creating your own user-defined control. You will also learn about caching issues that can help optimize your sites, and how to use Web parts to create dynamic Web sites. You will also learn about new features in Visual Studio 2008, including support for ASP.NET AJAX, the new ListView control, and ASP.NET extensions.

Meet the experts

Don Kiely Don Kiely is a featured instructor on many of our SQL Server and Visual Studio courses. He is a nationally recognized author, instructor, and consultant specializing in Microsoft technologies. Don has many years of teaching experience, is the author or co-author of several programming books, and has spoken at many industry conferences and user groups. In addition, Don is a consultant for a variety of companies that develop distributed applications for public and private organizations.

Ken Getz Ken Getz is a featured instructor for several of our Visual Studio courses. He is a Visual Basic and Visual C# expert and has been recognized multiple times as a Microsoft MVP. Ken is a seasoned instructor, successful consultant, and the author or co-author of several best-selling books. He is a frequent speaker at technical conferences like Tech-Ed, VSLive, and DevConnections and he has written for several of the industry's most-respected publications including Visual Studio Magazine, CoDe Magazine, and MSDN Magazine.


Course outline



Module 1

Tracing (25:29)
  • Introduction (02:24)
  • Demo: Page-Level Tracing (03:00)
  • Trace.Write and Trace.Warn (01:35)
  • Demo: Using Write and Warn (02:09)
  • Interpret Trace Output (01:53)
  • Page Tracing (01:20)
  • Demo: TraceContext (01:22)
  • Application-Level Tracing (00:54)
  • Configuring Web.config (00:59)
  • trace Attributes and Options (02:43)
  • Forwarding Trace Output (01:14)
  • Demo: Fwding Trace Output (01:57)
  • Using the Trace Viewer Tool (01:10)
  • Demo: Trace Viewer Tool (02:08)
  • Summary (00:34)
Listeners (29:54)
  • Introduction (01:01)
  • Using TraceListeners (01:06)
  • TraceListener Methods (01:15)
  • Pre-Defined TraceListeners (03:15)
  • Trace Switches (01:58)
  • TraceSwitch Class (00:56)
  • Configuring Switches (01:07)
  • Demo: Switches in Web.config (01:07)
  • Demo: Listeners and Switches (09:44)
  • WebPageTraceListener (01:37)
  • Demo: WebPageTraceListener (02:09)
  • Demo: Diagnostics Tracing (04:09)
  • Summary (00:26)
Health Monitoring (11:55)
  • Introduction (01:08)
  • TraceFinished Event (00:47)
  • TraceContextRecord (00:55)
  • Demo: Create Event Handler (02:01)
  • Send Web Event Data (01:19)
  • Demo: aspnetdb Database (01:24)
  • Demo: SqlWebEventProvider (01:03)
  • Providers and Rules (00:14)
  • Event Mappings (00:22)
  • Demo: View webconfig (01:03)
  • Demo: View Event Data (01:08)
  • Summary (00:27)

Module 2

User Controls (20:06)
  • Introduction (01:12)
  • User-Defined Controls (01:26)
  • Demo: Creating a User Control (04:39)
  • A More Complex User Control (01:00)
  • Providing States Data (00:17)
  • User Control Properties (00:15)
  • User Control Events (00:14)
  • Demo: Investigate the Control (00:30)
  • Demo: Providing States Data (02:13)
  • Demo: User Control Properties (01:47)
  • Demo: User Control Events (04:15)
  • Demo: Test the User Control (01:04)
  • Summary (01:08)
Custom Controls (54:02)
  • Introduction (01:11)
  • Demo: Custom Control (07:56)
  • StateDropDownList Control (00:37)
  • Rendering the Control (00:50)
  • HtmlTextWriter Class (00:35)
  • Demo: Creating the Control (05:35)
  • Adding Control Attributes (01:42)
  • Demo: Adding Attributes (04:02)
  • Rendering Control"s Contents (04:01)
  • Control Properties (00:41)
  • Demo: Control Properties (02:14)
  • Managing Property Behavior (01:12)
  • Demo: Property Behavior (03:09)
  • Working with Postback Data (01:25)
  • IPostBackDataHandler (00:33)
  • Demo: IPostBackDataHandler (01:54)
  • PostBack Sequence (00:53)
  • Loading Postback Data (00:36)
  • Raising Postback Events (01:35)
  • Demo: Postback Events (03:45)
  • Review the Postback Events (01:05)
  • Specifying a Toolbox Icon (01:47)
  • Demo: Toolbox Icon (02:17)
  • Finishing Touches (01:21)
  • Demo: Ease-of-Use Features (02:09)
  • Summary (00:44)

Module 3

Caching (34:26)
  • Introduction (01:13)
  • Improvements (01:01)
  • Types of Caching in ASP.NET (02:13)
  • Page Output Caching (01:04)
  • Caching Static Pages (00:34)
  • Demo: Caching Static Pages (06:17)
  • Caching Multiple Pg Versions (02:13)
  • Demo: Multiple Page Versions (04:20)
  • Varying by Form Parameters (00:23)
  • Demo: Form Parameters (01:53)
  • Varying by HTTP Header (00:53)
  • Demo: Vary by HTTP Header (03:42)
  • Varying by Browser (01:10)
  • Demo: Varying by Browser (02:12)
  • Varying by a Custom String (00:53)
  • Demo: Varying by String (03:50)
  • Summary (00:27)
Page Fragments (26:32)
  • Introduction (01:10)
  • Demo: Cache Page Fragments (04:49)
  • Using VaryByControl (01:25)
  • Demo: Using VaryByControl (01:12)
  • Multiple Versions of a Control (01:01)
  • Demo: Multiple Ctrl Versions (02:32)
  • Post-Cache Substitution (01:30)
  • Call a Method to Insert HTML (01:00)
  • Demo: WriteSubstitution (03:57)
  • Caching Configuration (01:28)
  • Demo: Caching Configuration (05:56)
  • Summary (00:26)
Advanced Caching (28:43)
  • Introduction (01:19)
  • Declarative Output Caching (00:46)
  • Demo: Declarative Output (02:39)
  • Advanced Caching Features (02:18)
  • Test Caching in VS 2008 (01:21)
  • Programmatic Page Caching (00:33)
  • Setting Cacheability (02:14)
  • Demo: Set Cacheability (01:53)
  • Vary by Parameters, Headers (00:48)
  • Demo: Vary by Parameters (01:02)
  • Additional Options (01:04)
  • Caching Data (01:18)
  • Using Cache.Add/Cache.Insert (00:56)
  • Controlling Expiration (01:25)
  • Item Expiration Notification (00:49)
  • Demo: Dependencies (07:39)
  • Summary (00:32)

Module 4

Data Caching (26:41)
  • Introduction (01:14)
  • SqlCacheDependency Object (01:30)
  • Demo: Poll Changes to a Table (05:40)
  • Steps for Poll-Based Caching (00:50)
  • Data Source Controls (00:28)
  • Demo: Data Source Controls (01:56)
  • Source Control vs. Directive (01:03)
  • Polling on Query Results (01:10)
  • Demo: Polling (03:14)
  • SQL Query Notifications (01:19)
  • Demo: Enable Notifications (02:00)
  • Rules for Query Notifications (00:42)
  • Common Notification Rules (01:40)
  • Demo: Query Notifications (03:21)
  • Summary (00:27)
AJAX (21:06)
  • Introduction (02:17)
  • Web Form Processing (01:01)
  • Traditional Page Processing (00:55)
  • AJAX Processing (01:39)
  • Two Faces of ASP.NET AJAX (01:11)
  • Server-Side AJAX (02:25)
  • Client-Side AJAX (02:43)
  • AJAX and Visual Studio (03:14)
  • Demo: Debug/Explore AJAX (05:08)
  • Summary (00:29)
Server Side AJAX (36:59)
  • Introduction (01:47)
  • AJAX Server-Side Controls (01:42)
  • ScriptManager Control (01:02)
  • Demo: ScriptManager (03:27)
  • UpdatePanel Control (00:59)
  • Demo: UpdatePanel (11:25)
  • UpdateProgress Control (01:11)
  • Demo: UpdateProgress (03:56)
  • Multiple UpdatePanel Controls (00:52)
  • Demo: Two UpdatePanels (04:21)
  • Timer Control (00:57)
  • Demo: Timer Control (03:05)
  • ScriptManagerProxy Control (01:50)
  • Summary (00:18)

Module 5

AJAX Control Toolkit (53:15)
  • Introduction (02:05)
  • AccordianPane (01:07)
  • Demo: AccordianPane (02:37)
  • AlwaysVisibleExtender (01:40)
  • Demo: AlwaysVisibleExtender (01:31)
  • AutoCompleteExtender (00:39)
  • Demo: AutoCompleteExtender (04:51)
  • FilteredTextBoxExtender (00:34)
  • Demo: FilteredTextBoxExtndr (01:40)
  • ListSearchExtender (00:36)
  • Demo: ListSearchExtender (01:30)
  • Validator Controls (01:23)
  • Demo: MaskedEditExtender (04:16)
  • PagingBulletedListExtender (00:48)
  • Demo: List Extender (01:56)
  • TextBoxWatermarkExtender (01:00)
  • Demo: TextBoxWtrmrkExtndr (01:27)
  • PasswordStrength (00:45)
  • Demo: PasswordStrength (03:39)
  • Client-Side AJAX (02:08)
  • Demo: AJAX Client Library (02:46)
  • Demo: Call a Web Service (09:12)
  • Server-Side Page Method (00:58)
  • Demo: Server-Side Pg Method (03:06)
  • Summary (00:47)
Repeater Control (23:10)
  • Introduction (00:42)
  • List-Bound Controls (00:30)
  • Data Binding (00:37)
  • Controls and Templates (00:49)
  • What About ListView? (00:32)
  • What About Templates? (01:28)
  • Using the Repeater Control (00:30)
  • Demo: Repeater Control (03:59)
  • Demo: Displaying Data (02:27)
  • Binding to Data (00:44)
  • Demo: Binding to Data (02:21)
  • Demo: CategoryDetail.aspx (03:00)
  • Reviewing the Repeater Ctrl (00:46)
  • Repeater Control Events (01:44)
  • Demo: Item Command Event (01:52)
  • Summary (01:00)
DataList Control (19:02)
  • Introduction (00:51)
  • Creating a DataList Control (00:24)
  • DataList Templates (00:56)
  • Demo: DataList Example (01:46)
  • Formatting the DataList (00:41)
  • Demo: Format DataList Control (02:17)
  • Binding Data to the DataList (00:51)
  • Demo: Binding Data (01:00)
  • Demo: Editing Templates (01:01)
  • Demo: Select a Row (00:59)
  • Demo: Editing Data (03:28)
  • Demo: EditCmd Event (01:11)
  • Demo: UpdateCmd Event (01:44)
  • Demo: CancelCmd Event (00:43)
  • Summary (01:05)

Module 6

Web Services (30:24)
  • Introduction (02:04)
  • Web Service Technologies (04:47)
  • Creating a Web Service (01:01)
  • Demo: HelloWorld (04:53)
  • Demo: Example Web Service (03:04)
  • Define Web Methods (01:15)
  • Demo: Inventory Web Service (03:24)
  • Testing the Web Service (00:32)
  • Demo: Test Web Service (01:33)
  • WSDL Document Details (01:23)
  • Demo: WSDL Document (01:10)
  • Define the Target Namespace (02:20)
  • Designing XML Web Services (02:25)
  • Summary (00:28)
Web Service Consumers (24:43)
  • Introduction (00:49)
  • Web References (01:37)
  • Demo: Add Web Reference (04:05)
  • Call a Web Service (00:50)
  • Demo: Call Web Services (02:33)
  • WCF (03:13)
  • Define a WCF Service (02:42)
  • Demo: Define a WCF Service (04:44)
  • Demo: WCF Serv Consumer (03:28)
  • Summary (00:37)
ListView Control (27:24)
  • Introduction (00:53)
  • Intro to ListView Control (01:19)
  • Demo: ASP.NET ListView (01:13)
  • Demo: Configuring ListView (02:27)
  • ListView Control Templates (03:24)
  • Demo: ListView Templates (03:48)
  • Demo: Conf LV Templates (02:22)
  • Grouping Items (00:33)
  • Demo: Grouping Items (05:42)
  • Modifying ListView Data (00:29)
  • Demo: Modifying ListView Data (04:30)
  • Summary (00:39)

Module 7

Static Page To ListView (31:04)
  • Introduction (00:58)
  • Demo: A Static Page Version (02:11)
  • Demo: Add a ListView Control (01:53)
  • Demo: Add LINQ Data Source (02:48)
  • Demo: Enable Data Editing (03:25)
  • Sort Data in a ListView (00:42)
  • Demo: Sort Data in a ListView (02:03)
  • Adding Paging with DataPager (01:16)
  • Demo: Add a DataPager (03:32)
  • Demo: More Flexible Paging (04:10)
  • Display the Paging Location (00:44)
  • Demo: Paging Location (02:03)
  • PagerCommand Event (01:12)
  • Demo: PagerCommand Event (03:21)
  • Summary (00:39)
Reading XML (52:37)
  • Introduction (00:41)
  • Working with XML (01:59)
  • Tree-Based XML Handling (04:03)
  • Non-Cached XML Handling (01:04)
  • What is the XML DOM? (00:47)
  • The Sample File (03:50)
  • The Sample File in Memory (01:24)
  • Load XML Data (01:01)
  • Demo: Load XML Data (02:28)
  • Work with a Node"s Children (02:00)
  • Iterate through All Nodes (00:23)
  • Demo: Traverse Child Nodes (04:40)
  • Retrieve Element Nodes (01:52)
  • Demo: Retrieve by Name (02:28)
  • Demo: Retrieve Text Nodes (01:30)
  • Match a Criterion (00:46)
  • Get Started with XPath (03:06)
  • Demo: Searching with XPath (05:34)
  • What About Namespaces? (01:22)
  • Demo: Searching Namespaces (04:27)
  • Reference to Specific Nodes (01:26)
  • Node Attributes + Demo (05:09)
  • Summary (00:25)

Module 8

Writing XML (19:00)
  • Introduction (00:40)
  • Create XML Programmatically (00:46)
  • Adding Nodes (01:25)
  • Add or Delete Elements (00:46)
  • Remove All Nodes/Attributes (00:24)
  • Demo: Create XML (02:17)
  • Demo: Modify Nodes (02:54)
  • Demo: Remove All (00:34)
  • Add or Delete Attributes (01:04)
  • Modify the Element"s Value (00:32)
  • Modify the Attribute"s Value (00:27)
  • Demo: Work with Attributes (02:55)
  • Dealing with Errors (00:25)
  • Handle XML Loading Errors (00:29)
  • Demo: XML Loading Errors (02:22)
  • Summary (00:50)
Intro to Profiles (41:14)
  • Introduction (01:17)
  • Introducing Profiles (00:29)
  • Strongly Typed Access (01:28)
  • Demo: Profile Behavior (04:22)
  • Storing Profile Data (00:42)
  • Demo: Storing Profile Data (02:02)
  • Considering Profiles (02:28)
  • Configuring Profiles (00:16)
  • Setting Up Web.config (01:05)
  • Adding New Properties (01:43)
  • Creating Property Groups (00:56)
  • Using Custom Types (01:12)
  • Demo: Using Custom Types (02:30)
  • SQL Server for Profile Storage (00:14)
  • Modifying Provider Behavior (01:07)
  • Demo: Machine.config (05:45)
  • Investigating the Sample Site (00:43)
  • Demo: Sample Site (11:40)
  • Summary (01:05)

Module 9

Anonymous Profiles (18:17)
  • Introduction (00:54)
  • Work with Anonymous Profiles (01:23)
  • Enabling Anonymous Profiles (00:43)
  • Migrating Anonymous Users (00:43)
  • Demo: Anonymous Users (04:51)
  • Custom Profile Provider (01:29)
  • A Provider Toolkit (00:46)
  • Demo: Custom Provider (04:47)
  • Profiles/Session State (01:56)
  • Summary (00:42)
Web Parts (38:02)
  • Introduction (01:31)
  • Web Parts in Action (01:41)
  • Demo: Personalization (05:35)
  • Design and Edit Modes (00:37)
  • Demo: Design and Edit Modes (02:48)
  • Catalog Mode (00:31)
  • Demo: Catalog Mode (02:42)
  • Connect Mode (00:35)
  • Demo: Connect Mode (02:14)
  • Custom Properties and Menus (00:42)
  • Demo: Properties and Menus (09:23)
  • Web Part Server Controls (01:05)
  • WebPartManager (01:28)
  • ProxyWebPartManager (00:41)
  • WebPartZone (01:54)
  • CatalogZone (01:33)
  • EditorZone (01:45)
  • ConnectionsZone (00:43)
  • Summary (00:25)
Coding Web Parts (19:02)
  • Introduction (00:52)
  • Page"s Display Mode (00:32)
  • Demo: Control Display Mode (02:38)
  • Demo: Personalization Scope (01:16)
  • Resetting Personalization Data (00:53)
  • Demo: Reset Data (01:48)
  • Coding Connections (02:13)
  • Demo: Web Part Connections (02:50)
  • User Controls as Web Parts (01:21)
  • Demo: User Controls (00:55)
  • Custom Controls as Web Parts (01:40)
  • Demo: Custom Controls (01:42)
  • Summary (00:16)

Module 10

Web Deployment/History (27:51)
  • Introduction (02:07)
  • Web Deployment Projects (02:16)
  • Demo: Web Deployment Projs (10:02)
  • ASP.NET AJAX History (01:05)
  • Demo: AJAX History (01:39)
  • Use AJAX History (01:04)
  • Demo: Using AJAX History (05:38)
  • Demo: Pg Using AJAX History (03:38)
  • Summary (00:19)
Dynamic Data (41:17)
  • Introduction (02:53)
  • Dynamic Data Web Site (00:38)
  • Demo: Dynamic Data Web Site (05:47)
  • Demo: Run Dynamic Data Site (06:18)
  • Dynamic Web Site Structure (01:04)
  • Demo: Structure of the Site (04:13)
  • Demo: Routing (03:12)
  • Demo: Web Site Templates (02:28)
  • Change Data Display (01:12)
  • Demo: Change Data Display (07:55)
  • Change Page Templates (01:40)
  • Demo: Change Pg Templates (03:24)
  • Summary (00:28)