ASP.NET 4.0 and VS 2010 Web Development

Download Report

Transcript ASP.NET 4.0 and VS 2010 Web Development

ASP.NET 4.0 AND
VS 2010 WEB DEVELOPMENT
BETA 1
VTALKS #12 @Microsoft Thailand All Season Place
Agenda
 Web Forms
 Core Services
 Web Designer Improvement
 Web Application Deployment
 Dynamic Data
 AJAX Functionality in ASP.NET 4.0
ASP.NET 4.0 Web Forms Feature
Set meta tags on Web Forms
 Feature for Search Engine Optimize (SEO)
 Allow set page meta tags
 keywords
 description
 With Coding
this.MetaKeywords = "Greatfriends.biz, Visual Studio 2010, .NET, ASP.NET 4.0,
SilverLight, Team System 2010";
this.MetaDescription = "VTALKS #12“;
 Demo
View State for Individual
Controls
 ViewStateMode tag
 Enabled (default value)
 Disabled
 Inherit
 Able to specify for each control
 Able to force all control at Page Directive
 Demo
Browser Capabilities
 Using determines browser that user is using
browse to you site.
 To get user browser information
 HTML, XHTML support version
 JavaScript version
 Mobile Browser
 HttpBrowserCapabilities object after using
this feature.
Browser Capabilities
New Browser Definition Files:
 blackberry.browser
 iemobile.browser
 chrome.browser
 iphone.browser
 Default.browser
 opera.browser
 firefox.browser
 safari.browser
 gateway.browser
 generic.browser
 ie.browser
Using Browser Capabilities
Providers
 Using ASP.NET Standard Browser Capabilities
 Use aspnet_regbrowsers.exe –i , It’s will create
ASP.BrowserCapsFactory.dll and install to GAC
 Restart IIS iisreset
 Custom your Browser Capabilities
 Derived HttpCapabilitiesProvider Class
 Override GetBrowserCapabilities Method to return
your BC.
 Register to web.config <browserCaps …
 Use in Global.asax Application_Start() Event
Browser Capabilities
Providers
 HttpBrowserCapabilities object caching
 Extending ASP.NET Browser Capabilities
Functionality
 Extending Browser Capabilities
Functionality by Adding New Capabilities to
Existing Capabilities Definitions
ASP.NET Web Forms Routing
 Let you configure new simple URL
 SEO Optimize
 It Likes ASP.NET MVC Routing
 Such as from
 http://website/products.aspx?categoryid=12
 To new URL
 http://website/products/software
ASP.NET Web Forms Routing
 Map routing in Global.asax file on
Application_Start() Event, Add
RouteTable.Routes.MapPageRoute() method
 checkPhysicalUrlAccess for restrict URL
access permission
 Reading Routing Information in a Web Forms
Page
 Page.RouteData.Values["searchterm"] as string;

value “http://localhost/search/scott/”
ASP.NET Web Forms Routing
 Accessing Routing Information in Markup

<asp:HyperLink ID="HyperLink1" runat="server“
NavigateUrl="<%$RouteUrl:SearchTerm=scott%>">Search for Scott</asp:HyperLink>
 value “http://localhost/search/scott/”
 Using Route Data for Data Source Control Parameters
 RouteParameter class lets you specify route data as a parameter
value for queries in a data source control. It works much like
FormParameter
 <asp:sqldatasource id="SqlDataSource1" runat="server“
connectionstring="<%$ ConnectionStrings:MyNorthwind %>”
selectcommand="SELECT CompanyName,ShipperID FROM
Shippers where CompanyName=@companyname“
<selectparameters><asp:routeparameter name="companyname"
RouteKey="searchterm"
/></selectparameters></asp:sqldatasource>
ASP.NET 4.0 Client ID
 Control ID Feature
 ClientIDMode
 AutoID – Auto Generate by ASP.NET.
 Static – Fix ID
 Predictable – For repeating template control,
in ClientIDRowSuffix should be PrimaryKey or
Object ID
 Inherit –default behavior, same as its parent.
Persisting Row Selection in
Data Controls
 Persist Selected Row
 Enabled for GridView and ListView controls
 Use EnablePersistedSelection


<asp:GridView id="GridView2" runat="server"
EnablePersistedSelection="true"> </asp:GridView>
ASP.NET 4.0 Core Services
Feature
Web.config File Minification
 Move major configuration to machine.config,
and leave your new configuration only
 Able to override value on web.config
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation targetFramework="4.0" />
</system.web>
</configuration>
Extensible Output Caching
 Session State
 SQL Server State
 Output Cache Providers (New)
 Allow your set default cache provider
 Able to customize your output cache provider
 Able to configure one or more
New 4.0 Cache Functionality
Namespace System.Caching
{
Disk
based
Inmemory
Cache
Windows
Azure
CacheProvider
Distributed
}
New 4.0 Output Cache
Functionality
Namespace System.Web.Caching
{
Disk
based
Inmemory
Default.aspx
Foo.ascx
Windows
Azure
OutputCacheProvider
Distributed
}
Extensible Output Caching
 Add Output Cache Provider in web.config
<caching>
<outputCache defaultProvider="AspNetInternalProvider">
<providers>
<add name="DiskCache" type="Test.OutputCacheEx.DiskOutputCacheProvider, DiskCacheProvider" />
</providers>
</outputCache>
</caching>
 Can specify page to use output cache provider
with Page and Control Directive

<%@ OutputCache Duration="60" VaryByParam="None" providerName="DiskCache" %>
 Configure all in Global.asax

public override string GetOutputCacheProviderName(HttpContext context)
Auto-Start Web Applications
 Many web app need to load initialize data.




This expensive to do
Solve the first requests Timeout problem
Wake up asp.net app with your custom code
on Application_Load Event in Global.asax file
For ASP.NET 4.0 + IIS 7.5 + Win2K8 R2 Only
Config in %Windows%\System32\inetsrv\config applicationHost.config
<applicationPools>
<add name="MyApplicationPool" startMode="AlwaysRunning" />
</applicationPools>
Auto-Start Web Applications
 specify individual applications pool to be
automatically started
<sites>
<site name="MySite" id="1">
<application path="/“ preloadEnabled="true“ preloadProvider="PrewarmMyCache" >
<!-- Additional content -->
</application>
</site>
</sites>
<!-- Additional content 
<preloadProviders>
<add name="PrewarmMyCache"
type="MyNamespace.CustomInitialization, MyLibrary" />
</preloadProviders>
Auto-Start Web Applications
 For implement PreloadProvider using
System.Web.Hosting.IProcessHostPreloadClie
nt
public class CustomInitialization : System.Web.Hosting.IProcessHostPreloadClient
{
public void Preload(string[] parameters)
{
// Perform initialization.
}
}
Permanently Redirecting a Page
 Feature for Search Engine Optimize (SEO)
 Generate Http 301 on response header and
attached new URL of request page
 Just call this method
 Response. RedirectPermanent("/newpath/foroldcontent.aspx");
The Incredible Shrinking
Session State
 Support both out-of-process and session-
state providers
 Just configure in web.config
<sessionState mode="SqlServer"
sqlConnectionString="data source=dbserver;Initial Catalog=aspnetstate"
allowCustomSqlDatabase="true" compressionEnabled="true" />
Expanding the Range of
Allowable URLs
 Expand URL range from 260 characters (old
asp.net) to customize value
<httpRuntime maxRequestPathLength="260" maxQueryStringLength="2048" />
 Customize request path validator
<httpRuntime requestPathInvalidChars="<,>,*,%,&,:,\" />
Extensible Request Validation
 Prevent Cross-site scripting (XSS) attacks
 Validate Process on HttpRuntime, add tag in
web.config
<httpRuntime requestValidationType="Samples.MyValidator, Samples" />
 Customizable with your code
public class CustomRequestValidation : RequestValidator {
protected override bool IsValidRequestString( HttpContext
context, string value, RequestValidationSource
requestValidationSource, string collectionKey, out int
validationFailureIndex)
{ ... }
}
Object Caching and Object
Caching Extensibility
 New MemoryCache class in
System.Runtime.Caching.dll
 Allow call from any Application Type without
System.Web.dll dependency
 For do this required documentation for
implement, Please wait!
Extensible HTML, URL, and
HTTP Header Encoding
 System.Web.Util.HttpEncoder Extensible to
create Custom Encoding on HttpRuntime
 Add custom encoding in web.config file
<httpRuntime encoderType="Samples.MyCustomEncoder, Samples" />
Performance Monitoring for
Individual Applications in a
Single Worker Process
 Diagnostic worker process feature by CRL
 Admin can configure in aspnet.config file
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<runtime>
<appDomainResourceMonitoring enabled="true"/>
</runtime>
</configuration>
Multi-Targeting
 Allow to specify version of .NET framework
<Codedom>
<compilation targetFramework="4.0"/>
…..
ASP.NET Chart Control
 35 distinct chart types.
 An unlimited number of chart areas, titles, legends, and










annotations.
A wide variety of appearance settings for all chart elements.
3-D support for most chart types.
Smart data labels that can automatically fit around data points.
Strip lines, scale breaks, and logarithmic scaling.
More than 50 financial and statistical formulas for data analysis
and transformation.
Simple binding and manipulation of chart data.
Support for common data formats, such as dates, times, and
currency.
Support for interactivity and event-driven customization,
including client click events using AJAX.
State management.
Binary streaming.
ASP.NET Chart Control
Visual Studio 2010 Web
Designer Improvements
 Improved CSS Compatibility using CSS 2.1
 HTML and JScript Snippets
 JScript IntelliSense Enhancements
Web Application Deployment
with Visual Studio 2010
 Web packaging
 10 + 20 reasons why you should create a Web
Package
 Web.config Transformation
 Web Deployment: Web.Config Transformation
 Database deployment
 Database Deployment with VS 2010
 One-Click Publish for Web applications
 Web 1-Click Publish with VS 2010
Resource
 Visual Studio 2010 Beta 1
 http://go.microsoft.com/?linkid=9666892
 ASP.NET 4.0 Beta 2 Documentation
 http://www.asp.net/learn/whitepapers/aspnet40
 http://weblogs.asp.net/scottgu