Course Overview
In this
course, students will learn to develop advanced ASP.NET MVC and Web
Forms applications using .NET Framework 4 tools and technologies.
The focus will be on coding activities that enhance the performance
and scalability of the Web site application. ASP.NET MVC will be
introduced and compared with Web Forms so that students know when
each should/could be used. This will also prepare the student for
exam 70-515.
Audience
This course is intended for professional Web developers who use
Microsoft Visual Studio in a team-based, medium-sized to large
development environment. Members of the audience have a minimum of
two to three years of experience developing Web-based applications
by using Microsoft Visual Studio and Microsoft ASP.NET. Members of
the audience are experienced users of Microsoft Visual Studio 2008
SP1 and newer releases of the Visual Studio product. The audience
understands how to use the new features of Visual Studio 2010.
At Course Completion
After
completing this course, students will be able to:
• Describe the underlying architecture and design of a Web
application.
• Apply best practices and make appropriate trade-offs based on
business requirements when designing a Web application.
• Develop MVC models.
• Develop MVC controllers.
• Develop MVC views.
• Optimize the design of a Web application for discoverability by
search engines.
• Write server-side code for Web Forms.
• Optimize data management for Web Forms.
• Ensure quality by debugging, unit testing, and refactoring.
• Secure a Web application.
• Apply Master Pages and CSS for a consistent application UI.
• Develop client-side scripts and services for a responsive, rich,
and interactive UI.
• Implement advanced AJAX in a Web application.
• Deploy a Web application.
• Develop a Web application by using Silverlight
Prerequisites
In addition to their professional Web development experience,
students who attend this training should have the following
technical knowledge:
• An understanding of the problem-solving techniques that apply to
software development, including the following principles of software
development:
modern software development model
typical phases of a software development lifecycle
concepts of event-driven programming
concepts of object-oriented programming
creating use-case diagrams
designing and building a user interface
developing a structured application
• A basic understanding of the following scripting techniques and
some hands-on experience writing scripts:
Web scripting techniques
Macro scripting techniques
Windows scripting techniques
• A general understanding of the purpose, function, and features
of following .NET Framework topics:
Common Language Runtime
.NET Framework class library
Common Type System
Component interoperation
Cross-Language Interoperability
Assemblies in the Common Language Runtime
Application Domains
Runtime hosts supported by the .NET Framework
• Experience using Visual Studio 2008 in the following task areas:
Declaring and initializing typed variables using the Camel case
naming convention
Using arithmetic, relational, and logical operators in code
statements
Using branching statements to control code execution
Using looping statements to iterate through collections or repeat
steps until a specified condition is met
Creating classes and methods to establish the basic structure of an
application
Using methods and events to implement the programming logic of an
application
Identifying syntax and logic errors
Accessing and managing data from a data source
• Experience in object oriented design and development as follows:
Creating and accessing classes and class properties
Creating and accessing methods and overloaded methods
Implementing inheritance, base classes, and abstract classes
Declaring, raising, and handling events
Responding to and throwing exceptions
Implementing interfaces and polymorphism
Implementing shared and static members
Implementing generics
Creating components and class libraries
• Experience in N-Tier application design and development as
follows:
Managing a software development process
Controlling input at the user interface level in Windows Client and
Web applications
Debugging, tracing, and profiling .NET applications
Monitoring and logging .NET applications
Implementing basic testing best practices
Performing basic Data Access tasks with LINQ
Implementing basic security best practices in .NET Applications
Implementing basic service calls
Using .NET Configuration Files
Deploying .NET Framework Applications using ClickOnce and the MS
Installer
Course Outline
Module 1: Overview of Web Application
Design
This module describes the underlying architecture and design of a
Web application
Lessons
• Overview of IIS 7.0
• Overview of ASP.NET 4.0
• Introduction to the MVC Framework
• Overview of the Request Life Cycle
Lab : Exploring the Adventure Works Web Site
• Exercise 1: Explore the Adventure Works Web Site
• Exercise 2: Comparing Web Forms and MVC
• Exercise 3: Working with the Web Forms Page Life Cycle
After completing this module, students will be able to:
• Describe the underlying architecture of ASP.NET 4.0.
• Identify new features in ASP.NET 4.0.
• Describe the components of the MVC framework.
• Describe the structure of an MVC application.
• Describe the life cycle of a Web Forms page.
• Describe the life cycle of an MVC page.
• Describe the differences between the life cycle of a Web Forms page
and an MVC page
Module 2: Designing a Web Application
This module describes the best practices and trade-offs
that you need to make when designing a Web application.
Lessons
• Web Applications: Case Studies
• Web Application Design Essentials
• Guidelines for Determining When to Use Web Forms and MVC
• Visual Studio 2010 Tools and Technologies for Web Application
Design
Lab : Redesigning the Adventure Works Web site
• Exercise 1: Reviewing the Adventure Works Web site
• Exercise 2: Redesigning the Adventure Works Web site
• Exercise 3: Adding MVC Capabilities to the Adventure Works Web site
After completing this module, students will be able to:
• Explain the different types of web applications and their
characteristics.
• Choose the correct design based on the on business requirements,
utilizing Web Forms and MVC based.
• Explain the different tools and technologies and best practices
around each.
Module 3: Developing MVC Models
This module describes the MVC development model (Models,
Controllers, and Views) and how to create the Models that are used
to access and modify the data in a data source.
Lessons
• Exploring Ways to Create MVC Models
• Creating a Data Repository
Lab : Developing MVC Models
• Exercise 1: Exploring Ways to Create MVC Models
• Exercise 2: Creating Data Repository
After completing this module, students will be able to:
• Create MVC models by using classes and data mapping tools.
• Create a data repository
Module 4: Developing MVC Controllers
This module describes how to create the Controllers that are
used to respond to communications from the user and how to implement
the application flow and logic.
Lessons
• Implementing MVC Controllers
• Creating Action Methods
Lab : Developing MVC Controllers
• Exercise 1: Creating an MVC Controller
• Exercise 2: Adding Code to List the Blog Entries
• Exercise 3: Adding Code to Create a New Blog Entry
• Exercise 4: Adding Code to Edit a Blog Entry
• Exercise 5: Adding Code to Delete a Blog Entry
After completing this module, students will be able to:
• Implement MVC controllers.
• Create action methods
Module 5: Developing MVC Views
This module describes how to create the Views that are used to
expose the application UI. The module also covers how to manage
pre-action and post-action behavior of Controller action methods
using the included action filters are provided as part of MVC
Lessons
• Implementing MVC Views
• Implementing Strongly-Typed MVC Views
• Implementing Partial MVC Views
Lab : Developing MVC Views
• Exercise 1: Develop a List MVC View
• Exercise 2: Develop a Details MVC View
• Exercise 3: Develop a Create MVC View
• Exercise 4: Develop an Edit MVC View
• Exercise 5: Develop a Delete MVC View
After completing this module, students will be able to:
• Describe what an MVC view is and the varied types of views.
• Create an MVC view.
• Implement strongly typed MVC views.
• Implement partial MVC views
Module 6: Designing for Discoverability
This module describes how to implement the navigational design
and also how discoverability will be achieved through content
keywords and page URLs.
Lessons
• Overview of Search Engine Optimization
• Creating the Robots and Sitemap Files
• Using ASP.NET Routing
Lab : Designing for Discoverability
• Exercise 1: Mapping URLs of Web Forms Pages
• Exercise 2: Creating a Sitemap File
• Exercise 3: Building the Application Infrastructure
After completing this module, students will be able to:
• Describe the need to optimize the design of a Web site for
discoverability by search engines and how the IIS SEO Toolkit helps
in optimization.
• Create robots.txt and sitemap.xml files.
• Use ASP.NET with Web Forms and MVC pages.
Module 7: Writing Server-Side Code for
Web Forms
This module describes the advanced features of server-side
coding and technologies. The module describes how to allow the
website to move into a global and web farm environment through
localization, shared sessions, and custom user controls. The module
will also cover how to use the custom validator and regular
expressions.
Lessons
• Overview of the Structure of a Web Application
• Controlling ViewState
• Localizing a Web Application
• Persisting Data on a Web Forms Page
• Validating User Input
Lab : Writing Server-Side Code for Web Forms
• Exercise 1: Modifying a Web Forms Page to Display Localized
Content
• Exercise 2: Persisting data on a Web Forms Page
• Exercise 3: Exploring Viewstate
• Exercise 4: Adding Validation to Web Forms Pages
After completing this module, students will be able to:
• Describe the structure of a Web application.
• Control ViewState based on performance requirements.
• Localize a Web application by using resource files.
• Describe the techniques used to persist user information. Describe
the different technologies used in web farms.
• Validate user input in Web Forms and MVC pages.
Module 8: Optimizing Data Management for
Web Forms
This module describes how to optimize and display data
management tasks for a Web Forms-based application using Dynamic
Data, Data Binding, LinqToEntities, server side controls, and
server-side code.
Lessons
• Managing Data by Using LINQ to Entities
• Using Data Source Controls
• Using ASP.NET Dynamic Data
Lab : Optimizing Data Management for Web Forms
• Exercise 1: Managing Data by Using LINQ to Entities
• Exercise 2: Customizing the GridView
• Exercise 3: Using ListView, DetailsView | Charts
• Exercise 4: Managing Data by Using ASP.NET Dynamic Data
After completing this module, students will be able to:
• Use the LINQtoEntities framework to manage data
• Use data source and data bound controls in Web Forms.
• Use ASP.NET Dynamic Data in Web Forms.
Module 9: Ensuring Quality by Debugging,
Unit Testing, and Refactoring
This module describes how to perform check-in testing for their
Web Forms and MVC applications as well as how to use the built-in
debugging capabilities of VS2010.
Lessons
• Debugging and Refactoring Code
• Unit Testing Code
• Processing Unhandled Exceptions
• Test Driven Development
Lab : Debugging, Unit Testing and Refactoring
• Exercise 1: Configuring Error Handling
• Exercise 2: Debugging Code
• Exercise 3: Logging
• Exercise 4: Creating Unit Tests
• Exercise 5: Implementing the Test-First Development Methodology
After completing this module, students will be able to:
• Debug and refactor code
• Unit test code.
• Describe how to log information to a file, database, event or
other, including best practices.
• Describe the Test-Driven Development methodology.
Module 10: Securing a Web Application
This module describes how to mitigate common security threats
and to implement the essentials (must haves) of Web security in both
MVC and Web Forms applications.
Lessons
• Configuring Authentication
• Configuring ASP.NET Membership
• Managing Authorization by Using ASP.NET Roles
Lab : Securing a Web Application
• Exercise 1: Configuring ASP.NET Membership and Roles
• Exercise 2: Authentication
• Exercise 3: Authorization
After completing this module, students will be able to:
• Configure authentication
• Configure ASP.NET Membership
• Manage authorization by using ASP.NET Roles
Module 11: Applying Master Pages and CSS
This module describes how to achieve a consistent UI in a
reusable manner.
Lessons
• Applying Master Pages
• Applying CSS, Skins, and Themes
Lab : Applying Master Pages and CSS
• Exercise 1: Modify a Master Page
• Exercise 2: Create Nested Master Page
• Exercise 3: Integrating a Master Page
• Exercise 4: Control Skins
• Exercise 5: Applying Styles | Themes
After completing this module, students will be able to:
• Identify challenges in developing a Web application that is
compatible across a wide range of browsers and ways to address these
challenges.
• Apply master pages for a consistent application UI.
• Apply CSS for a consistent application UI.
Module 12: Developing Client Side
Scripts and Services
This module described how to develop client-side scripts and
services for a responsive, rich, and interactive application UI.
Lessons
• Developing Client-Side Scripts
• Implementing AJAX
• Creating Services
Lab : Developing Client Side Scripts and Services
• Exercise 1: Creating Client-Side Script
• Exercise 2: Advanced JQuery
• Exercise 3: Creating a WCF Service
After completing this module, students will be able to:
• Develop client-side scripts
• Implement advanced JQuery
• Create services
Module 13: Implementing Advanced AJAX in
a Web Application
This module describes the programmatic side of AJAX enabled
controls (as well as extending server controls to include AJAX
functionality) on a Web Forms page as well as implementing AJAX on a
MVC page
Lessons
• Implementing Ajax in ASP.NET MVC Pages Using Microsoft Ajax
• Implementing Ajax in ASP.NET MVC Pages Using jQuery
• Working With jQuery and Ajax Events
Lab : Implementing Advanced Ajax for the AdventureWorks web
application
• Exercise 1: Using AJAX in an MVC Page Scenario
• Exercise 2: Using jQuery in an MVC Page
• Exercise 3: Handling jQuery Ajax Events
After completing this module, students will be able to:
• Manage browser history
• Implement AJAX in MVC pages
• Implement jQuery
Module 14: Deploying a Web Application
This module describes how to plan, configure, and perform
deployment tasks associated with a production Web site. The module
also describes the Web site lifecycle as it pertains to deployment.
Lessons
• Overview of Web Application Deployments
• Overview of Web Site Deployments
• Deploying Adventure Works
Lab : Deploying Adventure Works
• Exercise 1: Deploying a Web Application Project Using One-Click
Publish
• Exercise 2: Deploying a Web Application Using a Web Deployment
Package
• Exercise 3: Deploying a Web Site with the Copy Web Site Tool
• Exercise 4: Deploying a Web Site with the Publish Web Site Utility
After completing this module, students will be able to:
• Identify challenges in deploying Web applications and describe
varied target environments.
• Describe Web application compilation methods and tools.
• Transform the web.config file when deploying a Web application
Module 15: Developing a Web Application
by Using Silverlight
This module introduce students to Silverlight by having them
integrate a Silverlight module into an existing ASP.NET application.
Students will learn how to add a Silverlight project to an existing
solution, leverage the existing Web application by calling a WCF
service, and display the information in Silverlight.
Lessons
• Introduction to Rich Internet Applications
• Overview of Silverlight
• Creating a Silverlight Application
Lab : Developing a Web Application by Using Silverlight
• Exercise 1: Creating a Silverlight Project
• Exercise 2: Creating a Silverlight WCF Service
• Exercise 3: Displaying Data by Using Silverlight Controls
After completing this module, students will be able to:
• Describe the characteristics of RIAs and the technologies for
building them.
• Describe the features of Silverlight, its architecture, and the use
of XAML for developing Silverlight applications
• Create a Silverlight application