0
ASP.NETWebForms 4.5uudet piirteet             Régis                           Laurent                           Director o...
- Strongly Typed    Data Controls-   Model Binding-   HTML Encoded    Régis    Data-Binding    Laurent    Expressions     ...
Tyypitetty Data Bindings<div>    <asp:Repeater ID="CustomerRepeater" runat="server"ItemType="Demoilua.Model.Henkilo">     ...
Model Binding – Tiedon valinta<div>    <asp:Repeater ID="CustomerRepeater" runat="server"ItemType="Demoilua.Model.Henkilo”...
Value Providers - QueryStringpublic IQueryable<Customer> GetCustomers([QueryString]string keyword){      return CustomerRe...
Value Providers - Kontrollitpublic IQueryable<Customer> GetCustomers([Control("customers")]int? id){    if (id.HasValue)  ...
Value Provider vaihtoehtoja• Controls• Query string values• View Data• Session State• Cookies• Posted Form data• View Stat...
2-suuntainen Binding<EditItemTemplate>           ID:<asp:TextBox ID="IDTextBox" runat="server"Text=<%# BindItem.ID %> />  ...
DemoBinding, Value Providers
Markup based validointi<asp:RequiredFieldValidatorID="RequiredFieldValidator1"runat="server"    ControlToValidate="nimiTex...
Unobtrusive (”huomaamaton”) validointiPienentää sivun kokoa vähentämällä inline Javacriptkoodin käyttöä     ->Käyttää HTML...
javascript validointi
Unobtrusive validointiEdellinen ”Unobstrusive” muodossa
Data annotaatiot Model luokassapublic class Henkilo{[Key]public int ID { get; set; }[Required]public string Nimi { get; se...
Joitain Data Annotaatioita• CreditCard• Phone• EmailAddress• Range• Compare• Url• FileExtensions• Required• Key• RegularEx...
Model luokan validointipublic void SaveCustomer(Customer customer){      if (ModelState.IsValid)      {             using ...
Validointikontrollit<asp:ValidationSummary runat="server"ShowModelStateErrors="true"ForeColor="Red" HeaderText="Pleasechec...
Tulos:
DemoValidointi
Request validointi• Korvaa tarvittaessa HttpEncoderin• Auttaa suojautumaan cross-site scripting (XSS) ja LDAPinjection hyö...
4.5 Request validointi<system.web>…<httpRuntimeencoderType="System.Web.Security.AntiXss.AntiXssEncoder"/></system.web>
Tuki await/async ja Task pohjaisille pyynnöille• HTTP ModulesEventHandlerTaskAsyncHelperTaskEventHandler• HTTP HandlersHtt...
Async tuki• Web.config<addkey="aspnet:UseTaskFriendlySynchronizationContext"value="true"/>• Page directive<%@ Page Title="...
Async Task esimerkkiRegisterAsyncTask(new PageAsyncTask(async (t) =>{      using (var wc = new WebClient())      {        ...
HTML5 päivityksiä• TextBox TextMode– Tukee email, datetime tyyppejä jne.• FileUpload – tuki useammalle upload tiedostolle–...
ASP.NET Core päivityksiä• WebSockets Protocol (IIS8) • Javascriptin ja CSS:n pakkaus (Bundling /Minification)• Suorituskyk...
Javascriptin ja CSS:n pakkauksen määrittelyusing System.Web.Optimization;//…public class BundleConfig{  public static void...
Visual Studio 2012 parannuksiaHTML EditorSmart Tasks, loppu/alku elementin päivitysHTML 5 snippets, parempi Intellisense, ...
YhteenvetoModel pohjainen bindingValidointiLaajentunut Html 5 tukiAsync/Await ja Task –pohjaiset toiminnotSuorituskykyä Co...
Kiitos ja kumarrusJari.kallonen@tieturi.fi© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows V...
Upcoming SlideShare
Loading in...5
×

TechDays 2013 Jari Kallonen: What's New WebForms 4.5

286

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
286
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "TechDays 2013 Jari Kallonen: What's New WebForms 4.5"

  1. 1. ASP.NETWebForms 4.5uudet piirteet Régis Laurent Director of Operations, Global Knowledge Competencies include:Jari Kallonen Software Gold Learning Silver System ManagementSpecialist at Tieturi Oy
  2. 2. - Strongly Typed Data Controls- Model Binding- HTML Encoded Régis Data-Binding Laurent Expressions Director of Operations, Global Knowledge Competencies include:- Unobtrusive Gold Learning Silver System Management Validation- HTML5 tuki- Muuta sälää
  3. 3. Tyypitetty Data Bindings<div> <asp:Repeater ID="CustomerRepeater" runat="server"ItemType="Demoilua.Model.Henkilo"> <ItemTemplate> <li> ID:<%# Item.ID %> Nimi:<%# Item.Nimi %> Puhelin:<%# Item.Puhelin %> </li> </ItemTemplate> </asp:Repeater></div>
  4. 4. Model Binding – Tiedon valinta<div> <asp:Repeater ID="CustomerRepeater" runat="server"ItemType="Demoilua.Model.Henkilo” SelectMethod="GetData"> <ItemTemplate> <li> ID:<%# Item.ID %> Nimi:<%# Item.Nimi %> Puhelin:<%# Item.Puhelin %> </li> </ItemTemplate> </asp:Repeater></div>public IEnumerable<Demoilua.Model.Henkilo> GetData(){ return Demoilua.Model.HenkiloRepository.HaeKaikki();}
  5. 5. Value Providers - QueryStringpublic IQueryable<Customer> GetCustomers([QueryString]string keyword){ return CustomerRepository.GetByName(keyword);}
  6. 6. Value Providers - Kontrollitpublic IQueryable<Customer> GetCustomers([Control("customers")]int? id){ if (id.HasValue) return CustomerRepository.GetOne(id); else return CustomerRepository.GetAll();}
  7. 7. Value Provider vaihtoehtoja• Controls• Query string values• View Data• Session State• Cookies• Posted Form data• View State• Custom
  8. 8. 2-suuntainen Binding<EditItemTemplate> ID:<asp:TextBox ID="IDTextBox" runat="server"Text=<%# BindItem.ID %> /> LastName:<asp:TextBox ID="NimiTextBox" runat="server"Text=<%# BindItem.Nimi %> /> Puhelin:<asp:TextBox ID="PuhelinTextBox" runat="server"Text=<%# BindItem.Puhelin %> /></EditItemTemplate>
  9. 9. DemoBinding, Value Providers
  10. 10. Markup based validointi<asp:RequiredFieldValidatorID="RequiredFieldValidator1"runat="server" ControlToValidate="nimiTextBox" ErrorMessage="Nimi puuttuu" ForeColor="Red" />
  11. 11. Unobtrusive (”huomaamaton”) validointiPienentää sivun kokoa vähentämällä inline Javacriptkoodin käyttöä ->Käyttää HTML5 data-* attribuutteja• ValidationSettings:UnobtrusiveValidationMode• Asetus:– Web.Config– Global.asax– Page luokka
  12. 12. javascript validointi
  13. 13. Unobtrusive validointiEdellinen ”Unobstrusive” muodossa
  14. 14. Data annotaatiot Model luokassapublic class Henkilo{[Key]public int ID { get; set; }[Required]public string Nimi { get; set; }[Range(0, 130)]public int Ika { get; set; }[Phone]public string Puhelin { get; set; }[EmailAddress, StringLength(256)]public string Email { get; set; }}
  15. 15. Joitain Data Annotaatioita• CreditCard• Phone• EmailAddress• Range• Compare• Url• FileExtensions• Required• Key• RegularExpression
  16. 16. Model luokan validointipublic void SaveCustomer(Customer customer){ if (ModelState.IsValid) { using (var db = new Demoilua.Model.ProductsContext()) { db.Customers.Add(customer); db.SaveChanges(); Response.Redirect("~/Customers.aspx"); } }}
  17. 17. Validointikontrollit<asp:ValidationSummary runat="server"ShowModelStateErrors="true"ForeColor="Red" HeaderText="Pleasecheck the following errors:" /><asp:ModelErrorMessageModelStateKey="phone" runat="server"ForeColor="Red" />
  18. 18. Tulos:
  19. 19. DemoValidointi
  20. 20. Request validointi• Korvaa tarvittaessa HttpEncoderin• Auttaa suojautumaan cross-site scripting (XSS) ja LDAPinjection hyökkäyksiltä• AntiXSS libraryssa– HtmlEncode, HtmlFormUrlEncode,HtmlAttributeEncode– XmlAttributesEncode, XmlEncode– UrlEncode , UrlPathEncode– CssEncode
  21. 21. 4.5 Request validointi<system.web>…<httpRuntimeencoderType="System.Web.Security.AntiXss.AntiXssEncoder"/></system.web>
  22. 22. Tuki await/async ja Task pohjaisille pyynnöille• HTTP ModulesEventHandlerTaskAsyncHelperTaskEventHandler• HTTP HandlersHttpTaskAsyncHandler
  23. 23. Async tuki• Web.config<addkey="aspnet:UseTaskFriendlySynchronizationContext"value="true"/>• Page directive<%@ Page Title="" Language="C#"MasterPageFile="~/Site.Master" AutoEventWireup="true"CodeBehind="ProductDetails.aspx.cs"Inherits="WebFormsLab.ProductDetails"Async="true" %>
  24. 24. Async Task esimerkkiRegisterAsyncTask(new PageAsyncTask(async (t) =>{ using (var wc = new WebClient()) { //aikaisemmin wc.DownloadFile await wc.DownloadFileTaskAsync( imageUrl, Server.MapPath(product.ImagePath)); }}));
  25. 25. HTML5 päivityksiä• TextBox TextMode– Tukee email, datetime tyyppejä jne.• FileUpload – tuki useammalle upload tiedostolle– Selainriippuvainen• Validointikontrollit tukee HTML5 elementtejä• runat=“server” lisäksi URL osoite –<video runat=“server” src=“~/file.wmv”/>
  26. 26. ASP.NET Core päivityksiä• WebSockets Protocol (IIS8) • Javascriptin ja CSS:n pakkaus (Bundling /Minification)• Suorituskyky – Yhteisten komponenttien jako (muistin kulutus) – Multi-core JIT käännös – Garbage Collection – Web sovellusten esilataukset
  27. 27. Javascriptin ja CSS:n pakkauksen määrittelyusing System.Web.Optimization;//…public class BundleConfig{ public static void RegisterBundles(BundleCollection bundles) { bundles.Add(new ScriptBundle("~/bundles/jquery").Include( "~/Scripts/jquery-{version}.js")); bundles.Add(new ScriptBundle("~/bundles/jqueryui").Include( "~/Scripts/jquery-ui-{version}.js")); bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include( "~/Scripts/jquery.unobtrusive*", "~/Scripts/jquery.validate*")); bundles.Add(new ScriptBundle("~/bundles/WebFormsJs").Include( "~/Scripts/WebForms/WebForms.js", "~/Scripts/WebForms/WebUIValidation.js", "~/Scripts/WebForms/MenuStandards.js", "~/Scripts/WebForms/Focus.js", "~/Scripts/WebForms/GridView.js“);}}
  28. 28. Visual Studio 2012 parannuksiaHTML EditorSmart Tasks, loppu/alku elementin päivitysHTML 5 snippets, parempi Intellisense, …http://www.asp.net/vnext/overview/whitepapers/whats-new#_Toc303354490JavaScript EditorCode outlining, Go to Definition, …http://www.asp.net/vnext/overview/whitepapers/whats-new#_Toc303354500CSS EditorColor Picker, CSS 3 support, custom region (/*#region Menu */ …/*#endregion */http://www.asp.net/vnext/overview/whitepapers/whats-new#_Toc303354508
  29. 29. YhteenvetoModel pohjainen bindingValidointiLaajentunut Html 5 tukiAsync/Await ja Task –pohjaiset toiminnotSuorituskykyä Coreen
  30. 30. Kiitos ja kumarrusJari.kallonen@tieturi.fi© 2012 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries. The information herein is for informationalpurposes only and represents the current view of Microsoft Corporation as of the date of this presentations. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft,and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×