Course Description

This five-day ASP.NET using C# training course provides a comprehensive and practical hands-on introduction to developing Web applications using ASP.NET and C#.

It includes an introduction to ASP.NET MVC, a new Web programming framework that incorporates use of the Model-View-Controller (MVC) pattern.

It also includes coverage of using ASP.NET AJAX to build rich client applications. The fundamentals of Web applications are reviewed, and a testbed is established for ASP.NET and Internet Information Services.

The architecture of ASP.NET is outlined, including the role of compilation, the Page class and code-behind. Web Forms are introduced, including server controls, view state, life cycle, and the event model. Request/response HTTP programming using ASP.NET is covered as are ASP.NET Web applications, caching in ASP.NET, and the fundamentals of configuration and security.

Data access is covered in some detail in two chapters, including an introduction to ADO.NET, Language Integrated Query (LINQ), and the powerful data access controls provided by ASP.NET.

The final section of the course introduces rich client-side development with ASP.NET AJAX and use of the ASP.NET MVC framework.



A working knowledge of C# and the .NET Framework. Knowledge of JavaScript is recommended.


Who is this course for?

This course is designed for experienced application developers and solution architects.


Course content

Introduction to ASP.NET

Web Application Fundamentals
Benefits of ASP.NET
Creating a Virtual Directory
An Echo Program
ASP.NET Features
Compiled Code
Server Controls
Browser Independence
Separation of Code and Content
State Management

Web Forms Architecture

Web Forms Architecture
Page Class
Code-behind Inheritance Model
Web Forms Page Life Cycle
View State
Enabling View State for Controls
Web Forms Event Model
Page Processing
Page Events
Page Properties
Page Directive


Classical Web Programming
Active Server Pages Object Model
Request/Response Objects
ASP Code
Request/Response in ASP.NET
HttpRequest Class
Properties of HttpRequest
Using HttpRequest Class
HTTP Collections
HttpResponse Class
Echo Program in ASP.NET
GET and POST Compared
QueryString and Forms Collections

Web Applications using Visual Studio

Using Visual Studio
Visual Web Developer
Using Components in ASP.NET
Compilation Error
Shadow Copying
Temporary Copy of the Component
ASP.NET Applications
Web Application Life Cycle
Global.asax code
Log Class
Adding Global.asax File
Data Binding
Items Collection
XHTML in Visual Studio
Absolute Positioning

State Management and Web Applications

Session & Application State
Session Object
Page_Load Event
Session Variable Issues
Session State & Cookies
Session State Timeout
Session State Store
Application State
Implementing Application State
Multithreading Issues
Bouncing the Web Server
Cookies and ASP.NET
HttpCookie Properties
Acme Travel Agency Case Study
State Management Techniques

Server Controls

Server Controls in ASP.NET
HTML Server Controls
Using HTML Server Controls
HTML vs. Web Forms Server Control
Code for Login
HTML Controls in Visual Studio
Using HTML Controls
Web Controls
Validation Controls
Required Field Validation
Regular Expression Validation
Rich Controls
Copying a Web Site
User Controls
Using a User Control

Caching in ASP.NET

What Is Caching?
Need for Caching (Why Cache?)
Data to be Cached – Time Frame
ASP vs. ASP.NET Response Model
Caching in ASP.NET
Three Types of Caching in ASP.NET
Output Caching
@ OutputCache Directive
@ OutputCache – Attributes in Detail
VaryByParam in Detail
HttpCachePolicy Class
Page Fragment Caching
Common Mistakes in Using Fragment Caching
Data Caching or Application Caching
Add an Item to the Cache Object
Insert and Add Methods
Problems in Caching

Configuration and Security

One-minute Introduction to XML!
ASP.NET Configuration – Overview
Multi-level Configuration
Configuration Hierarchy
Web.Config File Structure
Web.Config Sections
Application Settings
ASP.NET Security – Overview
Role-Based Security and CAS
Types and Steps
Steps in Enabling Role-Based Security
Three Ways to Authenticate
Forms Authentication – Default.aspx
Forms Authentication – Web.Config
Features of Forms Authentication
Forms Authentication Classes
Customizing Forms Authentication
Authentication Source
Forms Authentication – Analysis
Windows Authentication
Windows Authentication – Analysis
Passport Authentication
Passport Authentication – Analysis

Debugging, Diagnostics and Error Handling

ASP.NET Diagnostics
Debugging Using Visual Studio
Debugging Calculator
Application-Level Tracing
Tracing Calculator
Using the Page Cache
Preparing to Debug
Trace Messages
Tracing the Calculator Page
Conditional Tracing
Trace Category
Trace Warning
Exceptions in Trace
Errors in ASP.NET
Uncaught Exception
Custom Error Pages

More Server Controls

ASP.NET Control Improvements
New Controls in ASP.NET
Master Pages
Creating Content Pages
TreeView Control
Master Page Application


ADO.NET Architecture
.NET Data Providers
ADO.NET Interfaces
.NET Namespaces
Connected Data Access
AcmePub Database
Creating a Connection
Using Server Explorer
Performing Queries
Web Client Isolation
Web Client Database Code
Using Commands
Creating a Command Object
Using a Data Reader
Use of Session State
Generic Collections
Executing Commands
Parameterized Queries
DataSet Architecture
Why DataSet?
DataSet Components
Data Access Class
Filling a DataSet
Accessing a DataSet
Using a Standalone DataTable
Adding a New Row
Searching and Updating a Row
Deleting a Row
Row Versions
Row State
Iterating Through DataRows
Command Builders
Updating a Database
Language Integrated Query (LINQ)
Bridging Objects and Data
Object Relational Designer
Basic LINQ Query Operators
Obtaining a Data Source
Obtaining Lists and Arrays
Deferred Execution
Modifying a Data Source
Performing Inserts via LINQ to SQL
Performing Deletes via LINQ to SQL
Performing Updates via LINQ to SQL

Data Access in ASP.NET 4.0

Data Access in ASP.NET
SQL Generation Options
Enable Edit and Delete
Editing Records
GridView Control
DetailsView Control
Storing the Connection String
Protecting the Configuration String
FormView Control
Master/Detail Web Pages
Data Binding
Template Editing
Using XML Data
Multiple-Tier Data Access
Object Data Source
Data Access in ASP.NET 4.0
Using the Entity Data Model
Entity Data Source Control
ListView Edit
DataPager Control
LinqDataSource Control
Configuring LinqDataSource
QueryExtender Control

Personalisation & Security

Control Skins
Applying Themes
Security in ASP.NET 4.0
ASP.NET Membership
Login Controls
Web Site Administration Tool
Access Rules
Profile Properties
Using ASP.NET Profile Properties

Introduction to AJAX using ASP.NET

Desktop Applications
Web Applications
Client-Side Scripting
Script Code
JavaScript in ASP.NET
Dynamic Pages
Efficient Page Redraws
Google Maps
Partial Page Rendering
UpdatePanel Control
AJAX Extensions Controls
AJAX Client Library
Using the Client Library
ScriptManager Control
Embedded JavaScript Files
Client Library Namespaces
Sys.Debug Tracing
Document Object Model
JavaScript for Simple Calculator
Using the Client Library
JavaScript in Assemblies
Providing a ScriptReference
AJAX Control Toolkit
ACT Controls in Visual Studio
Extender Controls
NumericUpDownExtender Control

Model-View-Controller (MVC)

Model-View-Controller (MVC)
What is ASP.NET MVC?
Advantages of ASP.NET MVC
Advantages of Web Forms
Visual Studio ASP.NET MVC Project
Starter Application
Simple App with Controller Only
Action Methods and Routing
Action Method Return Type
Rendering a View
Creating a View in Visual Studio
The View Web Page
Passing Data from Controller to View
Embedded Scripts
Using a Model
Controller Using the Model
View Using the Model
Strongly Typed View
Creating Views in Visual Studio
Using Forms
HTML Helper Functions
Displaying Sign In Form
Handling Form Submission
Model Binding
Greet View
Input Validation
Nullable Type
Checking Model Validity
Validation Summary

Appendix - HTTP Pipeline

Web Applications
Customising the HTTP Pipeline
Customising Applications
Customising a Welcome Application
Logger Class
Custom Handlers
IHttpHandler Interface
.ashx Files
Custom Modules
Using DemoModule