Upload
buu-nguyen
View
13.636
Download
2
Embed Size (px)
DESCRIPTION
Citation preview
New Features of ASP.NET 4.0
Buu Nguyen, MVP (ASP.NET)www.buunguyen.net/[email protected]
Microsoft Confidential 1
Agenda
− ASP.NET Web Forms 4.0− ASP.NET AJAX 4.0− ASP.NET MVC 2.0− ASP.NET Dynamic Data
ASP.NET Web Forms 4.0
Web Forms 4.0
−SEO Improvements− Clean HTML− Chart Control
Meta Tags
− Available in Page directive & Page object
set
out
Routing
− Tired of ugly URLs yet?
− Routing to rescue
http://server/songs.aspx?genre=rockhttp://server/albums.aspx?year=2010&month=4&day=12
http://server/songs/rockhttp://server/albums/2010/4/12
Routing
define
use
link
Meta Tags & Routing Demo
Web Forms 4.0
− SEO Improvements
−Clean HTML− Chart Control
Microsoft Confidential
10
Client IDs before 4.0
Not so CSS-friendly and JS-friendly!!!
Client IDs in ASP.NET 4.0
− ClientIDMode gives developers control− Can be specified at different levels
− machine.config and web.config
− Page
− Control
ClientIDMode
ClientIDMode Description
AutoID As in earlier versions of ASP.NET
Static Reserve the exact ID – duplication possibility
Predictable Less verbose and still uniqueDefault for pages
Inherit Inherit from parent naming containerDefault for controls
Client IDs Demo
Semantically Correct Markup
− Rendering version
− Menu control generates <ul>, <li>− CheckBoxList’s and RadioButtonList’s
RepeatLayout now has 4 values− Table (old)− Flow (old)− OrderedList (new)− UnorderedList (new)
− Many other small improvements
Web Forms 4.0
− SEO Improvements− Clean HTML
−Chart Control
Chart Control
− 35 chart types− 3-D support− Ajax support− Data binding− Statistical formulae− Highly customizability− Appearance & data serialization
Simple Static Chart
Dynamically Populated Chart
Chart Control Demo
ASP.NET AJAX 4.0
The ASP.NET AJAX Family
ASP.NET Ajax Library
Server-side ASP.NET AJAX
Ajax Minifier
Microsoft AJAX CDN
Microsoft Confidential
22
ASP.NET Ajax Library
− JavaScript library− Server-side platform agnostic− Include Ajax Control Toolkit (with client-side
support)− Tight integration with the “adopted” jQuery− Support client-side template with DataView− Provide script loader− Support invoking web services− Work seamlessly with ASP.NET services
− Released separately from ASP.NET and VS.NET− Latest version: 0911 beta− http://ajax.codeplex.com
Microsoft Confidential
23
Using Client Controls
− All ACT controls now available at client-side− Also known as “Client Controls”
− Also exposed as jQuery’s plugins
Microsoft Confidential
24
Script Loader
− Manage scripts & dependencies− Detect script duplication− Load scripts in parallel− Enable lazy script loading
Client Controls & Script Loader Demo
Microsoft Confidential
26
DataView
− A JavaScript component allowing JSON data to be bound to an HTML template
− Support 2-way binding, master-detail, and conditional rendering
− Can retrieve data from local or services (e.g. ASMX, WCF, and WCF Data Services etc.)
DataView Demo
ASP.NET MVC 2.0
Technology Stack
ASP.NET Web Forms
ASP.NET MVC
ASP.NET Framework(Configuration, Security, Membership, Roles, Profiles, Routing,
Caching, Session, Application State, Cookie, .aspx/.ascx/.asax/.master files etc.
.NET Framework
MVC 2.0
− Separation of Concerns− Model-based Validation− Model Rendering− Scalability
Microsoft Confidential
31
Areas
− Allow an MVC app to have multiple “areas”
− Like sub-projects although sharing 1 app
− Each area defines its routes
Microsoft Confidential
32
Partial Action
− Render partial might cause coupling except for no-model partial view
− Partial action to rescue: invoke action which renders UI
MVC 2.0
− Separation of Concerns
− Model-based Validation− Model Rendering− Scalability
Model Validation
− Model validation in MVC 1.0 is ad-hoc− xVal (http://xval.codeplex.com)− ASP.NET MVC Validation Library (
http://aspmvcvalidation.codeplex.com/)
− ASP.NET MVC 2.0 solves this nicely− Client-side and server-side validation− Provider for Data Annotations on server-
side− Adapters jQuery and MS AJAX on client-
side
Applying Validation
Action Method
Model
View
Model Validation Demo
MVC 2.0
− Separation of Concerns− Model-based Validation
− Model Rendering− Scalability
Strongly-Typed Helpers
1.0 Way
2.0 Way
Model Templates
− ASP.NET can render model based metadata provided by developers− Built-in templates for data types− Built-in provider for Data Annotations
− Data Annotations attributes− DisplayName, HiddenInput, DataType,
ReadOnly, ScaffoldColumn, DisplayFormat, and UIHint
Helper Methods
Display
Editor
Model Templates Demo
Custom Templates
− MVC is shipped with built-in templates− Can override templates easily
Custom Templates Demo
MVC 2.0
− Separation of Concerns− Model-based Validation− Model Rendering
− Scalability
Asynchronous Controller
− No blocking-thread during IO/network-bound operation => improved throughput
Source: http://msdn.microsoft.com/en-us/library/ee728598%28VS.100%29.aspx
Asynchronous Controller Demo
Dynamic Data
Overview
− Built-in page, entity, field and filter templates
− Easy to customize or add new templates
− Declarative validation and rendering
− Integrated with ASP.NET Web Forms and MVC applications
Dynamic Data Demo
References
50
ASP.NET Web Forms 4.0− URL Routing
− http://weblogs.asp.net/scottgu/archive/2009/10/13/url-routing-with-asp-net-4-web-forms-vs-2010-and-net-4-0-series.aspx
− Client IDs− http://weblogs.asp.net/scottgu/archive/2010/03/30/cleaner
-html-markup-with-asp-net-4-web-forms-client-ids-vs-2010-and-net-4-0-series.aspx
− Chart Control − http://www.4guysfromrolla.com/articles/072209-1.aspx
− SEO Improvements− http://weblogs.asp.net/scottgu/archive/2010/01/05/asp-net
-4-seo-improvements-vs-2010-and-net-4-0-series.aspx
ASP.NET AJAX 4.0− Libraries & source code for Ajax Library
− http://ajax.codeplex.com− Tutorials & sample apps for Ajax Library
− http://www.asp.net/ajaxlibrary− Microsoft Ajax CDN
− http://www.asp.net/ajaxLibrary/cdn.ashx− Microsoft Ajax Minifier 4.0
− http://aspnet.codeplex.com/releases/view/40584
ASP.NET MVC 2.0− Model validation
− http://weblogs.asp.net/scottgu/archive/2010/01/15/asp-net-mvc-2-model-validation.aspx
− Model Templates− http://bradwilson.typepad.com/blog/2009/10/aspnet-mvc-2
-templates-part-1-introduction.html− Strongly-typed Helpers
− http://weblogs.asp.net/scottgu/archive/2010/01/10/asp-net-mvc-2-strongly-typed-html-helpers.aspx
− Areas− http://msdn.microsoft.com/en-us/library/ee671793%28VS.
100%29.aspx− Asynchronous Controller
− http://msdn.microsoft.com/en-us/library/ee728598%28VS.100%29.aspx
ASP.NET Dynamic Data− Dynamic Data Presentation Layer Customization
− http://msdn.microsoft.com/en-us/library/ee211433%28VS.100%29.aspx
− Dynamic Data Schema Customization− http://msdn.microsoft.com/en-us/library/ee225428%28v=
VS.100%29.aspx