Aspnet 4 new features
-
Upload
erkan-balaban -
Category
Technology
-
view
2.410 -
download
2
description
Transcript of Aspnet 4 new features
ASP.NET 4New Features
Erkan BALABAN
What’s new at a glance?Metakeyword & MetadescriptionViewStateClientIDRoutingListView, Formview, CheckBoxList,
RadioButtonListChart ControlWeb.config, Browser capabilities, MenuExtensible Output Caching
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" %>
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)
ViewState improvementsASP.NET 3.x
EnableViewState (true, false)Page level, server level
ASP.NET 4 ViewStateMode
Enabled Disabled Inherit (Default)
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>
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.
ClientIDASP.NET 3.x and earlier versions
<input name="ctl00$ContentPlaceHolder1$TextBox2" type="text" id="ctl00_ContentPlaceHolder1_TextBox2" />
ClientIDClientIDMode
AutoID (Default, old name is Legacy) InheritPredictableStatic
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" }
};
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>
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>
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>
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>
ClientIDMode="Static"<span id="Label7">Hitman</span><span id="Label8">IO Interactive</span>
<span id="Label7">Crysis</span><span id="Label8">Crytek Studios</span>
ClientIDMode (Control Level) <asp:GridView
ID="GridView1"
runat="server"
ClientIDMode="AutoID"
AutoGenerateColumns="false">
</asp:GridView>
ClientIDMode (Page Level)<%@ Page Language="C#"
AutoEventWireup="true"
ClientIDMode="Predictable"
CodeBehind="ClientID2.aspx.cs"
Inherits="ASPNET4.ClientID2" %>
ClientIDMode (Application Level)
<system.web>
<pages
clientIdMode="Predictable"></pages>
</system.web>
RoutingASP.NET MCV
System.Web.Routing;
http://www.mysite.com/products/software
http://www.mysite.com/ products.aspx?category=software
Routingvoid Application_Start(object sender, EventArgs e)
{
RouteTable.Routes.Add("Product",
new Route("Products/{category}",
new
PageRouteHandler("~/Products.aspx")));
}
RoutingRouteParameter
<asp:SqlDataSource ID="SqlDataSource1" runat="server"> <SelectParameters> <asp:RouteParameter Name="Category"
RouteKey="category" /> </SelectParameters> </asp:SqlDataSource>
Runat=“server”Is it dead?Code snippet
Textbox + tabLabel + tab
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>
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>
Form View Control EnhancementNew player : RenderOuterTable
<asp:FormView ID="FormView2" runat="server" RenderOuterTable="false">
<ItemTemplate>ASP.NET 4</ItemTemplate></asp:FormView>
ASP.NET 4
CheckBoxList & RadioButtonListASP.NET 3.x and earlier
RepeatLayout Flow Table
ASP.NET 4RepeatLayout
Flow Table OrderedList UnorderedList
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.
ChartControl
ChartControl
ChartControl
ChartControl
ChartControl
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
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.
Persisting Row Selectionin Data ControlsGridview and ListView
EnablePersistedSelection
<asp:GridView id="GridView2" runat="server" EnablePersistedSelection="true"></asp:GridView>
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>
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>
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
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" %>
Extensible Output CachingGlobal.asax :public override string GetOutputCacheProviderName
(HttpContext context){ if
(context.Request.Path.EndsWith("Advanced.aspx")) return "DiskCache"; else return
base.GetOutputCacheProviderName(context);}
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
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) {...}}
Contact :