This five-day course provides a comprehensive and practical hands-on introduction to developing Web applications using ASP.NET 4.5.1 and Visual Studio 2013. It includes an introduction to ASP.NET MVC, a newer 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 and the use of Web API to create HTTP services. 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. Visual Studio 2013 is used to greatly simplify the development of ASP.NET Web applications, including facilitating UI design. ASP.NET Web applications are covered, including issues of application and session state and the use of cookies. Server controls represent an important innovation in ASP.NET and are covered in detail, including validation, rich controls, and user controls. There is an introduction to caching in ASP.NET, which provides an effective mechanism for optimizing the performance of your ASP.NET application. The fundamentals of configuration and security are introduced. Diagnostics and debugging are covered, including the use of tracing. Additional server controls are introduced, including menus and master pages. Data access is covered in some detail in two chapters, including an introduction to ADO.NET, Language Integrated Query (LINQ), the Entity Data Model (EDM) and the powerful data access controls provided by ASP.NET 4.5. The LocalDB version of SQL Server 2012 Express is used as the database. This section of the course is tied together by a progressive case study illustrating a Web site for a publishing company. The final section of the course introduces three important ASP.NET technologies: ASP.NET AJAX, ASP.NET MVC, and ASP.NET Web API.
Objectives
Gain a thorough understanding of the philosophy and architecture of Web applications using ASP.NET.
Acquire a working knowledge of Web application development using Web Forms and Visual Studio 2013.
Optimize an ASP.NET Web application using configuration, security, and caching.
Access databases using ADO.NET, LINQ and the Entity Data Model
Use newer features in ASP.NET.
Implement rich client applications using ASP.NET AJAX.
Create Web applications using the Model-View-Controller design pattern.
Create HTTP services using ASP.NET Web API.
Detailed Outline
- Introduction to ASP.NET
- Web Application Fundamentals
- Benefits of ASP.NET
- 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
- HelloCodebehind.aspx
- HelloCodebehind.aspx.cs
- 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
- Tracing
- ASP.NET and HTTP
- Classical Web Programming
- Active Server Pages Object Model
- Request and Response Objects
- Request/Response in ASP.NET
- HttpRequest Class
- Properties of HttpRequest
- Using HttpRequest Class
- HTTP Collections
- HttpResponse Class
- Redirect
- HttpUtility
- Echo.aspx
- EchoBack.aspx
- GET and POST Compared
- QueryString and Forms Collections
- Web Applications Using Visual Studio
- Using Visual Studio
- Starter Web Site
- ASP.NET Empty Web Site
- Adding a Web Form
- Default.aspx
- Adding Controls
- Using Components in ASP.NET
- Running Under IIS
- Shadow Copying
- Temporary Copy of the Component
- ASP.NET Applications
- Global.asax
- Web Application Life Cycle
- Code in Global.asax
- Log Class
- Adding Global.asax File
- ListBox
- Data Binding
- Items Collection
- XHTML
- XHTML in Visual Studio
- Flow Positioning
- State Management and Web Applications
- Session and Application State
- Session Object
- Page_Load
- Session Variable Issues
- Session State and Cookies
- Session State Timeout
- Session State Store
- Application State
- Implementing Application State
- Global.asax
- Users.aspx.cs
- Multithreading Issues
- Bouncing the Web Server
- Cookies
- 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
- Copyright.ascx
- Copyright.ascx.cs
- 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
- Expiration
- Problems in Caching
- ASP.NET 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
- Authentication Cookie
- Forms Authentication Classes
- Customizing Forms Authentication
- Authentication Source
- Forms Authentication – Analysis
- Windows Authentication
- Windows Authentication – Analysis
- Authorization
- 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
- Newer Controls in ASP.NET
- Master Pages
- HTML 5 and Modernizr
- Creating Content Pages
- TreeView Control
- Master Page Application
- ADO.NET and LINQ
- ADO.NET
- ADO.NET Architecture
- .NET Data Providers
- .ADO.NET Interfaces
- .NET Namespaces
- Connected Data Access
- SQL Express LocalDB
- SqlLocalDB Utility
- Visual Studio Server Explorer
- Queries
- ADO.NET with ASP.NET
- 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
- DataSet Architecture
- Why DataSet?
- DataSet Components
- DataAdapter
- Data Access Class
- Retrieving the Data
- 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)
- ADO.NET Entity Framework
- IntelliSense
- Basic LINQ Query Operators
- Obtaining a Data Source
- Filering
- Ordering
- Aggregation
- Obtaining Lists and Arrays
- Deferred Execution
- Modifying a Data Source
- Entity Framework in a Class Library
- Data Access Class Library
- Client Code
- Data Controls and Data Binding
- 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
- ASP.NET AJAX
- Desktop Applications
- Web Applications
- Plug-Ins
- Client-Side Scripting
- Script Code
- JavaScript in ASP.NET
- Dynamic Pages
- Efficient Page Redraws
- AJAX
- Google Maps
- ASP.NET AJAX
- Partial Page Rendering
- UpdatePanel Control
- AJAX Extensions Controls
- AJAX Client Library
- Using the Client Library
- ScriptManager Control
- Client Library Namespaces
- Sys.Debug Tracing
- Document Object Model
- JavaScript for Simple Calculator
- Using the Client Library
- AJAX Control Toolkit
- Installing AJAX Control Toolkit
- ACT Controls in Visual Studio
- AjaxControlToolkit.dll
- ToolkitScriptManager
- Extender Controls
- NumericUpDownExtender Control
- ASP.NET MVC
- Model-View-Controller (MVC)
- What is ASP.NET MVC?
- Advantages of ASP.NET MVC
- Advantages of Web Forms
- 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
- Dynamic Output
- Razor View Engine
- Embedded Scripts
- Using a Model with ViewBag
- Controller Using Model and ViewBag
- View Using the Model and ViewBag
- Using Model Directly
- A View Using Model in Visual Studio
- View Created by Visual Studio
- Using Forms
- HTML Helper Functions
- Handling Form Submission
- Model Binding
- Greet View
- Input Validation
- Nullable Type
- Checking Model Validity
- Validation Summary
- ASP.NET Web API
- REST
- Representation, State and Transfer
- Collections and Elements
- Specifying a Start Page
- Implementing PUT verb
- Using Fiddler
- Composing a Request
- ASP.NET MVC and Web API
- Route Registration
- HTTP Response Codes
- POST Response Code
- HttpResponse Exception
- Web API Clients
- HttpClient
- Intializing HttpClient
- Issuing a GET Request
- Issuing a POST Request