1 / 52

ASP.NET 3.5 – Uudet ominaisuudet Jani Järvinen, C# MVP Technical Manager, Software Dev. Moonsoft Oy

ASP.NET 3.5 – Uudet ominaisuudet Jani Järvinen, C# MVP Technical Manager, Software Dev. Moonsoft Oy. Agenda. Kaksi esitystä, lounas välissä Osa 1, käyttöliittymät Uudet kontrollit Osa 2, AJAX ja tietokannat AJAX-ominaisuudet LINQ. Mitä uutta ASP.NET 3.5:ssä?. Yleiskatsaus uutuuksiin.

lotus
Download Presentation

ASP.NET 3.5 – Uudet ominaisuudet Jani Järvinen, C# MVP Technical Manager, Software Dev. Moonsoft Oy

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. ASP.NET 3.5 – Uudet ominaisuudet Jani Järvinen, C# MVP Technical Manager, Software Dev. Moonsoft Oy

  2. Agenda • Kaksi esitystä, lounas välissä • Osa 1, käyttöliittymät • Uudet kontrollit • Osa 2, AJAX ja tietokannat • AJAX-ominaisuudet • LINQ

  3. Mitä uutta ASP.NET 3.5:ssä?

  4. Yleiskatsaus uutuuksiin • Uusia kontrolleja • ListView ja DataPager • Uusia nimiavaruuksia • System.Web.Extensions-koonnissa • Sisäkkäiset mallisivut • Tuki Visual Studiossa, viimeinkin • AJAX-tuki

  5. Lisää uutuuksia • Tietokantayhteydet • LINQ-tuki • LinqDataSource-kontrolli • IIS 7.0 -integrointi • Käyttäjäntunnistus ja välimuisti käytettävissä kaikilla tiedostotyypeillä

  6. Työkaluja • ASP.NET Merge Tool • Aspnet_merge.exe • Kääntää web-projektista yhden tai useamman koonnin

  7. Laajennuksista .NET 3.5:een • Aiemmista erillisosistaja laajennuksistatullut osa.NET 3.5:ttä • Vihreät ja punaisetbitit

  8. Uudetkontrollit

  9. Komponenttihistoriaa • ASP.NET 1.1 • Repeater • DataGrid • DataList • ASP.NET 2.0 • GridView • FormView • ASP.NET 3.5 • ListView • DataPager

  10. Miksi uusia kontrolleja? • ListView • Monipuolisemmat tarpeet • Ei pelkkiä taulukkoja • ”Point & click” • DataPager • Helpompi sivutus

  11. ListView

  12. ListView-kontrolli • System.Web.UI.WebControls.ListView • Yhdistää grid- ja Repeater-kontrollien ominaisuuksia • Voi olla täysinCSS-pohjainen,ei HTML:ntable-elementtiä • Tukee myös tietojen muokkausta

  13. Mallit (templates) • ListView tarvitsee toimiakseen mallipohjia • ItemTemplate • Toistaa rivit esim. tietokannasta • Tarvitaan kontrolli, jonka ID="itemPlaceHolder" • LayoutTemplate • Määrittää ulkoasun • EditTemplate • Muokkaamista varten

  14. Esimerkki mallista <asp:ListView ID="ListView1" runat="server"> <LayoutTemplate> <ul> <asp:PlaceHolder ID="itemPlaceHolder” runat="server" /> </ul> </LayoutTemplate> <ItemTemplate> <li> <%# Eval("ID") %>: <%# Eval("Name") %></li> </ItemTemplate> </asp:ListView>

  15. Muokkausominaisuudet • EditItemTemplate-malli • Määrittelee mallin, jonka mukaan muokkaus tapahtuu • Eval-metodin sijaan käydä Bindia • <%# Bind(”Name") %> • Määrittele ItemEditing-tapahtumankäsittelijä • Aseta EditIndex • Tee DataBind()

  16. Komennot ja tapahtumat • ListView-kontrollinen yhteyteen tarvitaan painikkeita • Painikkeiden CommandName-ominaisuus • Edit, Insert, Delete • Update, Cancel • Toteuta Item*ing-tapahtumat • Esim. ItemUpdating, ItemEditing • Paluu katselutilaan • EditIndex = -1

  17. Valinta (selection) • SelectedItemTemplate • Määrittää, miten valittu rivi (tms.) näytetään • SelectedIndex-ominaisuus • Lue tai aseta valittu rivi • Aina suhteellinen näkymään, ei tietolähteeseen • Tapahtumat • SelectedIndexChanging • SelectedIndexChanged

  18. Lajittelu (sorting) • ListView-kontrolli tukee myös tietojen lajittelua • Kutsu vain Sort-metodia • Parametreina lajiteltava sarake ja suunta • Paluu normaaliin: lajiteltava sarake = ”” • Vaihtoehtona esim. LinkButton • CommandName = ”Sort” • CommandArgument=”sarakkeen nimi” • Tapahtumat • Sorting, Sorted

  19. Muita mahdollisuuksia • Ryhmittely • GroupTemplate • GroupItemCount • Ulkoasu • LayoutTemplate • Sivutus-mahdollisuus • EmptyItem/EmptyDataTemplate

  20. DataPager

  21. DataPager-komponentti • Mahdollistaa sivutustoiminnot • Voidaan yhdistää muihin kontrolleihin • Esim. ListView jne. • Kaksi päätyyliä • Numerot • Painikkeet

  22. Sivutustoiminnallisuus • PagedControlID • Mikä kontrolli sivutetaan • PageSize • Montako elementtiä per sivu • Painike- tai numerokomponentit • NextPreviousPagerField • NumericPagerField • Tai sekä että

  23. Esimerkki DataPagerista <asp:DataPager ID="DataPager1" PagedControlID="ListView1” runat="server"> <Fields> <asp:NextPreviousPagerField ButtonType="Button“ ShowFirstPageButton="True" ShowNextPageButton="False" ShowPreviousPageButton="False" /> <asp:NumericPagerField /> <asp:NextPreviousPagerField ButtonType="Button" ShowLastPageButton="True" ShowNextPageButton="False" ShowPreviousPageButton="False" /> </Fields> </asp:DataPager>

  24. IPageableItemContainer • Rajapinta sivutukselle • ListView-kontrolli toteuttaa • SetPageProperties-metodi • Kutsutaan aina, kun sivutettava kontrollin sivua on tarpeen vaihtaa • Toteutettavissa itsekin

  25. Siirtyminen sivulta toiselle • Oletusarvoisesti DataPager-kontrolli käyttää POST-metodia • javascript:__doPostBack('DataPager1$ctl01','') • Vaihtoehtoisesti voidaan käyttää myös GET-metodia • QueryStringField-ominaisuus • http://firma.fi/DataPager.aspx?mun_oma=2 • Painikkeet vaihtuvat linkeiksi

  26. System.Web.Extensions

  27. Uusi koonti (assembly) • System.Web.Extensions.dll • Monia uusia nimi-avaruuksia • Monet liittyvät WCF:ään • AJAX-toteutukset • Esim. JavaScript serializer • System.Web.UI.WebControls

  28. AJAX-toiminnallisuus

  29. Missä mennään tänään • Paljon puhetta, vähän tekoja? • Onko AJAXille aidosti tarvetta? • Voitko kehittää moderneja sovelluksia ilman AJAXia?

  30. Visual Studio & .NET 3.5 • AJAX-kontrollit kaikkien käyttöön • Ei enää erillisiä laajennuksia • Helppo ottaakäyttöön omissaASP.NET-sovelluksissa

  31. Alkuun AJAX-toteutuksissa • Kaksi komponenttia • ScriptManager • Update Panel • Yksi ScriptManager per sivu • Koodia voidaankirjoittaa kutenennenkin

  32. UpdateProgress-kontrolli • Näyttää käyttäjälle, että jotain tapahtuu • Tarvitaan • ProgressTemplate • Pätkä HTML-koodia, joka näytetään • AssociatedUpdatePanelID • Mihin paneeliin toiminto liitty • DisplayAfter • Aikaraja, oletus 0,5 sekuntia • Ei tarvitse olla UpdatePanelin sisällä

  33. Esimerkki <asp:UpdateProgress ID="UpdateProgress1” runat="server" AssociatedUpdatePanelID="UpdatePanel1” DisplayAfter="2000"> <ProgressTemplate> <b>Hetki pieni...</b> </ProgressTemplate> </asp:UpdateProgress>

  34. AJAX ControlToolkit • Tarjoaa joukon valmiita kontrolleja • Laajentaa Visual Studion ja .NET 3.5:n vakiotarjontaa • Maksuton, lähdekoodi saatavilla • Lataa • www.asp.net/ajax/download

  35. Laajennukset (extenders) • Muokkaavat valmiiden komponenttien toiminnallisuutta • Esim. ConfirmButton • System.Web.UI.ExtenderControl • Katso • ”Adding ASP.NET AJAX Client Behaviors to Web Server Controls”

  36. JavaScript-tuki

  37. Uusia ominaisuuksia • Visual Studio 2008 tuomukanaan uusiaJavaScript-ominaisuuksia • IntelliSense-tuki • Omien luokkiendokumentointi-mahdollisuus • XML-dokumentaatiotamyös JavaScript-koodiin

  38. Esimerkki • Huomaa, että XML-dokumentit on kirjoitettava metodin lohkon sisään! function SayHello(name){    /// <summary>This method returns a string saying Hello, World!</summary>    /// <param name="name" type="string">Specifies the name to send greetings to.</param>     return "Hello, "+name+"!";}

  39. LINQ ja ASP.NET-sovellukset

  40. LINQ – pikakertaus • Uusi tapa käsitellä erilaisia tietolähteitä yhdellä tavalla, suoraan ohjelmointikielen syntaksia käyttäen • Tuettuina: • omat oliot • XML-tiedostot • DataSet-tietovarasto • SQL Server -tietokannat

  41. Pikaesimerkki: omat oliot int[] numbers = { 3, 6, 2, 9, 12, 7, 4, 5, 11 }; var bigNumbers = from n in numbers where n > 5 select n; foreach (int bigNum in bigNumbers) { … }

  42. LINQ ja SQL Server • .NET 3.5 sisältääyksinkertaisenoliomapperinSQL Serverille • O/R Mapper • Lisää projektiin”LINQ to SQLClasses” -malli

  43. Esimerkki SQL-kyselystä PhotosDataContext context = new PhotosDataContext(); var albums = from album in context.Albums orderby album.Name select album; StringBuilder buffer = new StringBuilder(); foreach (var album in albums) { string name = album.Name; buffer.AppendLine(name + "<br />"); } Label1.Text = buffer.ToString();

  44. LinqDataSource

  45. LinqDataSource-kontrolli • Tarjoaa web-sovelluksille helpon tavan viitata LINQ-tietolähteisiin • Projektiin on oltava jo lisätty LINQ-luokkia kuten edellä • Visual Studio näkee projektin DataContext-oliot • Käy tietolähteeksinormaalistiesim. ListView-ja GridView-kontrolleille

  46. Ominaisuuksia • ContextTypeName • Tietolähden LINQ-kyselyille • TableName • Mistä taulusta haetaan tietoja • Select, Where, OrderBy • Lähdekoodikieliset ehtolauseet • Ota AutoGenerate*-ominaisuudet pois päältä

  47. Esimerkki <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="AlbumID" DataSourceID="LinqDataSource1"> <Columns> … </Columns> </asp:GridView> <asp:LinqDataSource ID="LinqDataSource1" runat="server" ContextTypeName="WebAppDemo.PhotosDataContext" TableName="Albums"> </asp:LinqDataSource>

  48. Where-ehto <asp:LinqDataSource ID="LinqDataSource1" runat="server” ContextTypeName="WebAppDemo.PhotosDataContext" TableName="Albums" AutoGenerateWhereClause="True"> <WhereParameters> <asp:ControlParameter Name="AlbumID" ControlID="DropDownList1" Type="Int32" /> </WhereParameters> </asp:LinqDataSource>

  49. Yhteenveto

More Related