aspnet 4 new features

43
ASP.NET 4 New Features Erkan BALABAN

Upload: erkan-balaban

Post on 17-Dec-2014

2.410 views

Category:

Technology


2 download

DESCRIPTION

asp.net 4 new features

TRANSCRIPT

Page 1: Aspnet 4 new features

ASP.NET 4New Features

Erkan BALABAN

Page 2: Aspnet 4 new features

What’s new at a glance?Metakeyword & MetadescriptionViewStateClientIDRoutingListView, Formview, CheckBoxList,

RadioButtonListChart ControlWeb.config, Browser capabilities, MenuExtensible Output Caching

Page 3: Aspnet 4 new features

MetaKeyword & MetaDescription protected void Page_Load(object sender, EventArgs e) {

Page.MetaDescription = "ASP.NET 4'ün yeni özellikleri";Page.MetaKeywords = "ASP.NET 4";

}

<%@ Page Language="C#" AutoEventWireup="true" MetaKeywords="ASP.NET 4" MetaDescription="ASP.NET 4'ün yeni özellikleri" CodeBehind="MetaKeyword.aspx.cs" Inherits="ASPNET4.MetaKeyword" %>

Page 4: Aspnet 4 new features

MetaKeyword &MetaDescription <html xmlns="http://www.w3.org/1999/xhtml"> <head>

<title> </title><meta name="description" content="ASP.NET

4’ün yeni özellikleri" /><meta name="keywords" content="ASP.NET 4" /></head> <body>

(Page Description overrides)

Page 5: Aspnet 4 new features

ViewState improvementsASP.NET 3.x

EnableViewState (true, false)Page level, server level

ASP.NET 4 ViewStateMode

Enabled Disabled Inherit (Default)

Page 6: Aspnet 4 new features

ViewState improvements<%@ Page Language="C#"

AutoEventWireup="true" CodeBehind="ViewState.aspx.cs" ViewStateMode="Disabled" Inherits="ASPNET4.ViewState" %>

.....

<asp:Label ID="Label1" runat="server“ViewStateMode="Enabled"Text="Label"></asp:Label>

Page 7: Aspnet 4 new features

ViewState improvementsCode behind :Label1.ViewStateMode = ViewStateMode.Disabled;

NOTE : If we disabled the viewstate through EnableViewState property, setting any values for ViewStateMode property will make no impact.

Page 8: Aspnet 4 new features

ClientIDASP.NET 3.x and earlier versions

<input name="ctl00$ContentPlaceHolder1$TextBox2" type="text" id="ctl00_ContentPlaceHolder1_TextBox2" />

Page 9: Aspnet 4 new features

ClientIDClientIDMode

AutoID (Default, old name is Legacy) InheritPredictableStatic

Page 10: Aspnet 4 new features

ClientID (Demo)public class Oyunlar{ public string Isim { get; set; } public string Sirket { get; set; }}

List<Oyunlar> oyunListesi = new List<Oyunlar>{

new Oyunlar { Isim = "Hitman", Sirket = "IO Interactive" },new Oyunlar { Isim = "Crysis", Sirket = "Crytek Studios" },new Oyunlar { Isim = "Assassin's Creed", Sirket = "Gingerbread Studios" },new Oyunlar{ Isim = "Call of Duty", Sirket = "N-Space" }

};

Page 11: Aspnet 4 new features

ClientID (Demo)<asp:GridView ID="GridView1" runat="server" ClientIDMode="AutoID"

AutoGenerateColumns="false"> <Columns> <asp:TemplateField> <ItemTemplate> <asp:Label runat="server" ID="Label1" Text='<%# Bind("Isim")

%>' /> </ItemTemplate> </asp:TemplateField> <asp:TemplateField> <ItemTemplate> <asp:Label runat="server" ID="Label2" Text='<%# Bind("Sirket") %>'

/> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView>

Page 12: Aspnet 4 new features

ClientIDMode="AutoID"<span id="GridView1_ctl02_Label1“>Hitman</span><span id="GridView1_ctl02_Label2“>IO Interactive</span>

<span id="GridView1_ctl03_Label1">Crysis</span><span id="GridView1_ctl03_Label2">Crytek Studios</span>

<span id="GridView1_ctl04_Label1">Assassin's Creed</span>

<span id="GridView1_ctl04_Label2">Gingerbread Studios</span>

Page 13: Aspnet 4 new features

ClientIDMode="Inherit"<span id="GridView2_Label3_0">Hitman</span> <span id="GridView2_Label4_0">IO Interactive</span>

<span id="GridView2_Label3_1">Crysis</span> <span id="GridView2_Label4_1">Crytek Studios</span>

<span id="GridView2_Label3_2">Assassin's Creed</span> <span id="GridView2_Label4_2">Gingerbread

Studios</span>

Page 14: Aspnet 4 new features

ClientIDMode="Predictable"ClientIDRowSuffix="Isim”

<span id="GridView3_Label5_Hitman">Hitman</span> <span id="GridView3_Label6_Hitman">IO Interactive</span>

<span id="GridView3_Label5_Crysis">Crysis</span> <span id="GridView3_Label6_Crysis">Crytek Studios</span>

<span id="GridView3_Label5_Assassin's Creed">Assassin's Creed</span>

<span id="GridView3_Label6_Assassin's Creed">Gingerbread Studios</span>

Page 15: Aspnet 4 new features

ClientIDMode="Static"<span id="Label7">Hitman</span><span id="Label8">IO Interactive</span>

<span id="Label7">Crysis</span><span id="Label8">Crytek Studios</span>

Page 16: Aspnet 4 new features

ClientIDMode (Control Level) <asp:GridView

ID="GridView1"

runat="server"

ClientIDMode="AutoID"

AutoGenerateColumns="false">

</asp:GridView>

Page 17: Aspnet 4 new features

ClientIDMode (Page Level)<%@ Page Language="C#"

AutoEventWireup="true"

ClientIDMode="Predictable"

CodeBehind="ClientID2.aspx.cs"

Inherits="ASPNET4.ClientID2" %>

Page 18: Aspnet 4 new features

ClientIDMode (Application Level)

<system.web>

    <pages

clientIdMode="Predictable"></pages>

</system.web>

Page 19: Aspnet 4 new features

RoutingASP.NET MCV

System.Web.Routing;

http://www.mysite.com/products/software

 http://www.mysite.com/ products.aspx?category=software

Page 20: Aspnet 4 new features

Routingvoid Application_Start(object sender, EventArgs e)

{

RouteTable.Routes.Add("Product",

new Route("Products/{category}",

new

PageRouteHandler("~/Products.aspx")));

}

Page 21: Aspnet 4 new features

RoutingRouteParameter

<asp:SqlDataSource ID="SqlDataSource1" runat="server"> <SelectParameters> <asp:RouteParameter Name="Category"

RouteKey="category" /> </SelectParameters> </asp:SqlDataSource>

Page 22: Aspnet 4 new features

Runat=“server”Is it dead?Code snippet

Textbox + tabLabel + tab

Page 23: Aspnet 4 new features

List View Control EnhancementCome with ASP.NET 3.5

Does not require a layout template

Has all the functionality of the GridView control

Gives you complete control over the output

<asp:ListView ID="ListView1" runat="server">   <ItemTemplate>      <% Eval(“Isim")%>   </ItemTemplate></asp:ListView>

Page 24: Aspnet 4 new features

Form View Control Enhancement .NET 3.x and earlier versions notation<asp:FormView ID="FormView1" runat="server"> <ItemTemplate>ASP.NET 4</ItemTemplate> </asp:FormView>

At browser<table cellspacing="0" border="0" id="FormView1"

style="border-collapse:collapse;"><tr>

<td colspan="2"> ASP.NET 4</td> </tr></table>

Page 25: Aspnet 4 new features

Form View Control EnhancementNew player : RenderOuterTable

<asp:FormView ID="FormView2" runat="server" RenderOuterTable="false">

<ItemTemplate>ASP.NET 4</ItemTemplate></asp:FormView>

ASP.NET 4

Page 26: Aspnet 4 new features

CheckBoxList & RadioButtonListASP.NET 3.x and earlier

RepeatLayout Flow Table

ASP.NET 4RepeatLayout

Flow Table OrderedList UnorderedList

Page 27: Aspnet 4 new features

ChartControl35 distinct chart typesAn 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.

Page 28: Aspnet 4 new features

ChartControl

Page 29: Aspnet 4 new features

ChartControl

Page 30: Aspnet 4 new features

ChartControl

Page 31: Aspnet 4 new features

ChartControl

Page 32: Aspnet 4 new features

ChartControl

Page 33: Aspnet 4 new features

Web.config File MinificationNew .NET Framework bigger web.config

Tell Visiual Studio which framework version targeting

<?xml version="1.0"?><configuration> <system.web> <compilation targetFramework="4.0" /> </system.web></configuration>

Major config elements moved to machine.config

Page 34: Aspnet 4 new features

Browser CapabilitiesHttpBrowserCapabilities

Now supports for Google ChromeResearch in Motion BlackBerry,Apple iPhone.

Using for detect supporting Javascript version or page requested by a mobile device.

Page 35: Aspnet 4 new features

Persisting Row Selectionin Data ControlsGridview and ListView

EnablePersistedSelection

<asp:GridView id="GridView2" runat="server" EnablePersistedSelection="true"></asp:GridView>

Page 36: Aspnet 4 new features

Disabling ControlscontrolRenderingCompatibilityVersion

Set to 4.0<span id="Label1"

class="aspNetDisabled">Test</span>

<asp:Label id="Label" runat="server" Text="Test" Enabled="false">

Set to 3.5<span id="Label1" disabled="disabled">Test</span>

Page 37: Aspnet 4 new features

Menu Control ImprovementsRunders as unordered list<div id="Menu1"> <ul> <li><a href="#" onclick="...">Home</a></li> <li><a href="#" onclick="...">About</a></li> </ul></div>

Page 38: Aspnet 4 new features

Extensible Output CachingEnables you to configure one or more custom

output-cache providers

Output-cache providers can use any storage mechanism to persist HTML content including local or remote disks, cloud storage, and distributed cache enginesOutput-cache providers can use any storage mechanism to persist HTML content

System.Web.Caching.OutputCacheProvider

Page 39: Aspnet 4 new features

Extensible Output Caching<caching> <outputCache defaultProvider="AspNetInternalProvider"> <providers> <add name="DiskCache"

type="Test.OutputCacheEx.DiskOutputCacheProvider, DiskCacheProvider"/> </providers> </outputCache></caching>

<%@ OutputCache Duration="60" VaryByParam="None“ providerName="DiskCache" %>

Page 40: Aspnet 4 new features

Extensible Output CachingGlobal.asax :public override string GetOutputCacheProviderName

(HttpContext context){ if

(context.Request.Path.EndsWith("Advanced.aspx")) return "DiskCache"; else return

base.GetOutputCacheProviderName(context);}

Page 41: Aspnet 4 new features

Permanently Redirecting a PageResponse.Redirect : HTTP 302 (Temporary

Redirect)RedirectPermanent : HTTP 301 (Permenant Redirect)

RedirectPermanent("/newpath/foroldcontent.aspx");

Search engines and other user agents that recognize permanent redirects

Page 42: Aspnet 4 new features

Extensible Request ValidationCross-site scripting (XSS) attacksWe can use custom request-validation logic<httpRuntime

requestValidationType="Samples.MyValidator, Samples" />

public class CustomRequestValidation : RequestValidator{ protected override bool IsValidRequestString( HttpContext context, string value, RequestValidationSource requestValidationSource, string collectionKey, out int validationFailureIndex) {...}}

Page 43: Aspnet 4 new features

Contact :

[email protected]