What You Will Learn |
Course Highlights |
Course Details |
Dates & Locations |
Guerrilla ASP.NET MVC and HTML5 is an examination of Microsoft's latest web development framework using the web latest standards. MVC focuses on enabling the developer to build testable, maintainable, standards compliant browser based applications. HTML5 enables rich internet applications that rival Flash and Silverlight. You will learn about all of these aspects of MVC and HTML5 and other related topics and see how to use them in your web applications.
| Main Topic | |
|---|---|
| Day 1 | |
| MVC Intro | |
| URLs & Routing | |
| Action Methods | |
| Razor View Engine | |
| Day 2 | |
| Html Helpers | |
| Model Binding | |
| Server-side Validation | |
| Advanced JavaScript | |
| jQuery | |
| Day 3 | |
| Ajax | |
| Client-side Validation | |
| HTML5 & CSS3 | |
| HTML5 Forms | |
| Canvas | |
| Day 4 | |
| Audio/Visual | |
| Client Storage | |
| Offline | |
| Messaging | |
| Controller Filters | |
| Challenges Presented | |
| Day 5 | |
| Error Handling | |
| Authentication & Authorization | |
| Threats & Mitigation | |
| Organizing Code | |
| Close & Farewell | |
What You Will Learn |
Course Highlights |
Course Details |
Dates & Locations |
You'll get answers to these questions:
Come and learn to build great websites using MVC and HTML5!
What You Will Learn |
Course Highlights |
Course Details |
Dates & Locations |
Day 1
MVC Introduction
This module provides an introduction to the ASP.NET MVC framework. We will provide an overview of the MVC architecture including how a controller processes requests, communicates with the model layer and chooses a view to generate a response. Part of this overview will include looking at URL routing, model binding and the Razor view engine.
URLs and Routing
URL Routing is the part of the framework responsible for examining incoming requests and locating the code responsible for processing those requests. In this module we will examine how to configure the URLs that will be handled by your application and how those URLs can be customized.
Action Methods
Controllers and actions are the centerpiece of an MVC application. In this module we will examine the look at how the controller framework locates and invokes action methods. We will then explore the various action results which are used to generate a response.
Razor View Engine
Razor is the new default view engine introduced in MVC3. It is designed to provide a streamlined syntax for creating dynamic views. This module covers the Razor syntax and the underlying compilation model. We will also see Razor's support for reusable templates with partial views and layout templates.
Day 2
Html Helpers
While a goal of MVC is to allow developers a high degree of control over their markup, it is still desirable to provide conveniences for rendering common markup. This is why MVC includes Html Helpers. These are APIs to encapsulate rendering common markup such an input fields, hyperlinks, forms and URLs. We will then see how to create your own custom Html helpers.
Model Binding
Model binding is an important part of the MVC framework to ease input processing for controllers. We will see how data is mapped from the request to parameters of action methods and how complex objects can also be model bound.
Server-side Validation
In this module we examine how MVC provides a complete framework for server-side validation. We'll see how it uses validation helpers, ModelState, data annotations and the IValidatableObject interface.
Advanced JavaScript
JavaScript is the lingua franca of the Web. Knowing how to effectively use it is vital to understanding, maintaining, and extending the various JavaScript-based code that you're already including in your applications. This talk will cover the esoteric features of JavaScript. These are the features like prototypes, closures, and its odd scoping rules. These all make perfect sense in a dynamic language like JavaScript, but are very different from the static languages most of us develop in.
jQuery
jQuery is a popular open source JavaScript library used to enhance AJAX style web pages and improve developer productivity. We will introduce the query and document manipulation capabilities of jQuery.
Day 3
Ajax
Ajax is a style of writing browser-based application to leverage JavaScript and XmlHttpRequest callbacks to the server. This lecture covers MVC's basic support for Ajax as well as using jQuery to develop more sophisticated Ajax applications.
Client-side Validation
In this module we continue our examination of validation. We'll see how JavaScript and jQuery can be used to perform client-side validation. We'll also look at customizing the validation logic with remote validation and extending the jQuery.validate library used by MVC.
HTML5 & CSS3
This module introduces HTML5, providing an overview of what will be covered throughout the rest of the course. Browser support and techniques for detecting the different features in HTML5 are explored. HTML5 includes a handful of new, semantic elements that make your markup much easier to structure and reason about. We'll also look at some of the new CSS properties that you can use to enhance the style of your documents.
HTML5 Forms
HTML5 includes over a dozen new input control types for collecting data from your users. This module covers those new controls and discusses ways to use JavaScript to enhance forms in the cases where specific control types aren't available.
Canvas
The Canvas API makes it possible to do more than just display text and raster-based images in your web pages. You'll learn about the different shapes the Canvas API supports and the methods you need to draw them as well as the newer features for drawing text onto your canvases. The programming model used by canvases is different from the DOM so we'll discuss the new things you'll have to consider while working with it.
Day 4
Audio/Video
Previously, playing any sort of audio or video required the use of a 3rd party plugin like Flash, QuickTime, or Silverlight. HTML5 gives audio and video first-class support, but there are plenty of options to consider. This module will demonstrate the new tags and how to detect if a browser supports specific codecs.
Client Storage
Up until HTML5, the only way to store user-specific data has been to use cookies, but that's extremely limited and pales in comparison to the features available in HTML5. This module looks at local storage, the embedded SQL database, and the alternative "IndexedDB", how to detect them and how to use them.
Offline
As strange as it sounds, HTML5 allows you to take your web applications offline. This module looks at the ways you can do this, specifying the resources the browser will need to download in order to be able to do anything offline and what events and methods you'll need to know about in order to provide a proper, offline experience.
Messaging
One of the most revolutionary features of HTML5 is the new WebSocket protocol which allows servers to push data to clients enabling almost "real time" notifications. This module looks at the client-side APIs you'll need to be familiar with in order to use them and some different ways of setting up a server in order to handle the client requests. We'll also look at web workers which allow you to perform long-running tasks while keeping the main UI for your application usable and responsive.
Controller Filters
In this module we explore action filters and result filters as a technique to provide reusable functionality across controllers and action methods for such things as security, logging and error handling. We will see how to use controller filters and develop custom controller filters.
Day 5
Error Handling
Errors are bound to happen. In this module we'll show how to capture error information for logging and how to display user-friendly error pages. To achieve this we will utilize exception filters, application-wide error handler (from global.asax) and the custom errors plumbing from ASP.NET.
Authentication and Authorization
Security is crucial for online applications. This module on security discusses the basics of authentication and authorization in MVC. We will discuss Windows and Forums authentication, how roles are assigned to the user and how to prevent access to controllers using authorization filters.
Threats and Mitigation
This module on security describes many of the common attacks against websites including SQL injection, cross site scripting attacks and cross site request forgery attacks. We will see how MVC provides support to thwart or mitigate these and other types of attacks.
Organizing Code
This module examines areas which allow you to organize and segregate the development of discrete features of an application. This is ideal for different groups working on different features on a single web application. We also look into customizing the built-in view engines from MVC so that we can organize our code and files within our projects.
Appendices
Appendix: More HTML5
HTML5 includes more new features than any other previous version of HTML. This module tries to wrap things up by covering the "smaller", but still game-changing features that didn't fit in the other modules. Features such as being able to drag and drop between the browser and the OS, local file system access, the geolocation API, and cross-window messaging will be covered before you go off and implement these in your own applications.
Appendix: Custom Model Binding
Model binding can be customized. This allows for developers to customize what data will be used for model binding and control how the format of that data is converted to an object model.
Appendix: Custom Validation Providers
The validation framework of MVC can be customized. The source of metadata used for validation can be customized as well as the client-side JavaScript that is rendered to perform validation.
Appendix: Extending jQuery
jQuery is designed for extensibility. In this module we will see how a custom plug-in can be developed for jQuery.
Appendix: IIS 7
In order to understand MVC it's important to understand the web server in which you will be hosting your application. This module covers the architecture of Internet Information Server 7 (IIS 7) which is Microsoft's latest version of its web server product.
Appendix: URL Routing
URL Routing allows application developers fine grained control over URLs and how they are processed by application code. In this lecture we will discuss defining routes and route handlers at the IIS level and examine how requests are dispatched.
Appendix: Template Helpers
Template helpers are a feature that provides an abstraction layer for rendering data. It allows rendering based upon data type or other metadata. We'll see how to control this rendering and how to customize it.
Appendix: Caching
Caching is an approach to improving application performance. In this module we look at the data cache as a means to store data to avoid making expensive network round trips to a data store. We will also look at page output caching which allows for caching rendered HTML by setting the cache control headers on the HTTP response.
Appendix: State Management
While HTTP may be a stateless protocol, web applications are not. There are various state management mechanisms in MVC that we will cover including Cookies, Session and TempData.
Appendix: Dependency Injection
In this module we discuss designing for testability by decoupling layers of your application using dependency injection. We will use Microsoft's Inversion of control container (called Unity) to manage and create dependent objects in our application. We'll also look at MVC3's native support for dependency injection and how to utilize it.
Appendix: Mocking & Testing MVC
Unit testing is one of the main motivators for MVC. This module discusses strategies for unit testing your code. We will see using a mocking framework to implement fakes for testing as well as developing helper libraries for common tasks while unit testing.
Appendix: Localization
Localization is the process of translating an application for different languages and cultures. In this lecture, we will discuss how to use the localization features of the .NET framework to localize our MVC applications.
Appendix: WebForms View Engine
MVC allows for componentization and reuse of rendering logic with partial views and master pages. Both of these features leverage features from traditional ASP.NET WebForms (user controls and master pages), but the context is entirely different. We'll see how they are properly utilized in MVC.
Appendix: Windows Identity Foundation
Microsoft has released a new framework called WIF (Windows Identity Foundation) for identity management. It supports an enhanced authorization model that uses claims and the ability to federate authentication for single sign on scenarios.
Appendix: Asynchronous Controllers
Scalability is an ever important deign goal. MVC assists the developer designing for throughput in an application with asynchronous controllers.
Brock Allen has been excellent in presenting the subject from a bottom to top approach. This format allows the class to understand the foundations of using the MVC 3 library without blindly using the features of the MVC 3 library. Frank L.