Lataa esitys
Esittely latautuu. Ole hyvä ja odota
JulkaistuMarkku Lehtilä Muutettu yli 9 vuotta sitten
3
ASP.NET 3.5 – Uudet ominaisuudet Jani Järvinen, C# MVP Technical Manager, Software Dev. Moonsoft Oy
4
Agenda •Kaksi esitystä, lounas välissä •Osa 1, käyttöliittymät –Uudet kontrollit •Osa 2, AJAX ja tietokannat –AJAX-ominaisuudet –LINQ
5
Mitä uutta ASP.NET 3.5:ssä?
6
Yleiskatsaus uutuuksiin •Uusia kontrolleja –ListView ja DataPager •Uusia nimiavaruuksia –System.Web.Extensions-koonnissa •Sisäkkäiset mallisivut –Tuki Visual Studiossa, viimeinkin •AJAX-tuki
7
Lisää uutuuksia •Tietokantayhteydet –LINQ-tuki –LinqDataSource-kontrolli •IIS 7.0 -integrointi –Käyttäjäntunnistus ja välimuisti käytettävissä kaikilla tiedostotyypeillä
8
Työkaluja •ASP.NET Merge Tool –Aspnet_merge.exe –Kääntää web-projektista yhden tai useamman koonnin
9
Laajennuksista.NET 3.5:een •Aiemmista erillisosista ja laajennuksista tullut osa.NET 3.5:ttä •Vihreät ja punaiset bitit
10
Uudet kontrollit
11
•ASP.NET 1.1 –Repeater –DataGrid –DataList •ASP.NET 2.0 –GridView –FormView •ASP.NET 3.5 –ListView –DataPager Komponenttihistoriaa
12
•ListView –Monipuolisemmat tarpeet –Ei pelkkiä taulukkoja –”Point & click” •DataPager –Helpompi sivutus Miksi uusia kontrolleja?
13
ListView
14
•System.Web.UI.WebControls.ListView •Yhdistää grid- ja Repeater-kontrollien ominaisuuksia •Voi olla täysin CSS-pohjainen, ei HTML:n table-elementtiä •Tukee myös tietojen muokkausta ListView-kontrolli
15
•ListView tarvitsee toimiakseen mallipohjia •ItemTemplate –Toistaa rivit esim. tietokannasta –Tarvitaan kontrolli, jonka ID="itemPlaceHolder" •LayoutTemplate –Määrittää ulkoasun •EditTemplate –Muokkaamista varten Mallit (templates)
16
<asp:PlaceHolder ID=" itemPlaceHolder ” runat="server" /> : Esimerkki mallista
17
•EditItemTemplate-malli •Määrittelee mallin, jonka mukaan muokkaus tapahtuu •Eval-metodin sijaan käydä Bindia – •Määrittele ItemEditing-tapahtumankäsittelijä –Aseta EditIndex –Tee DataBind() Muokkausominaisuudet
18
•ListView-kontrollinen yhteyteen tarvitaan painikkeita •Painikkeiden CommandName-ominaisuus –Edit, Insert, Delete –Update, Cancel •Toteuta Item*ing-tapahtumat –Esim. ItemUpdating, ItemEditing •Paluu katselutilaan –EditIndex = -1 Komennot ja tapahtumat
19
•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 Valinta (selection)
20
•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 Lajittelu (sorting)
21
•Ryhmittely –GroupTemplate –GroupItemCount •Ulkoasu –LayoutTemplate –Sivutus-mahdollisuus •EmptyItem/EmptyDataTemplate Muita mahdollisuuksia
22
DataPager
23
•Mahdollistaa sivutustoiminnot •Voidaan yhdistää muihin kontrolleihin –Esim. ListView jne. •Kaksi päätyyliä –Numerot –Painikkeet DataPager-komponentti
24
•PagedControlID –Mikä kontrolli sivutetaan •PageSize –Montako elementtiä per sivu •Painike- tai numerokomponentit –NextPreviousPagerField –NumericPagerField –Tai sekä että Sivutustoiminnallisuus
25
<asp:DataPager ID="DataPager1" PagedControlID ="ListView1” runat="server"> <asp:NextPreviousPagerField ButtonType="Button“ ShowFirstPageButton="True" ShowNextPageButton="False" ShowPreviousPageButton="False" /> <asp:NextPreviousPagerField ButtonType="Button" ShowLastPageButton="True" ShowNextPageButton="False" ShowPreviousPageButton="False" /> Esimerkki DataPagerista
26
•Rajapinta sivutukselle •ListView-kontrolli toteuttaa •SetPageProperties-metodi –Kutsutaan aina, kun sivutettava kontrollin sivua on tarpeen vaihtaa •Toteutettavissa itsekin IPageableItemContainer
27
•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 Siirtyminen sivulta toiselle
28
2.7.2014 System.Web.Extensions
29
•System.Web. Extensions.dll •Monia uusia nimi- avaruuksia –Monet liittyvät WCF:ään –AJAX-toteutukset •Esim. JavaScript serializer •System.Web.UI. WebControls Uusi koonti (assembly)
30
AJAX-toiminnallisuus
31
•Paljon puhetta, vähän tekoja? •Onko AJAXille aidosti tarvetta? •Voitko kehittää moderneja sovelluksia ilman AJAXia? Missä mennään tänään
32
•AJAX-kontrollit kaikkien käyttöön •Ei enää erillisiä laajennuksia •Helppo ottaa käyttöön omissa ASP.NET- sovelluksissa Visual Studio &.NET 3.5
33
•Kaksi komponenttia –ScriptManager –Update Panel •Yksi ScriptManager per sivu •Koodia voidaan kirjoittaa kuten ennenkin Alkuun AJAX-toteutuksissa
34
•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ä UpdateProgress-kontrolli
35
<asp:UpdateProgress ID="UpdateProgress1” runat="server" AssociatedUpdatePanelID="UpdatePanel1” DisplayAfter="2000"> Hetki pieni... Esimerkki
36
•Tarjoaa joukon valmiita kontrolleja •Laajentaa Visual Studion ja.NET 3.5:n vakiotarjontaa •Maksuton, lähdekoodi saatavilla •Lataa –www.asp.net/ajax/downloadwww.asp.net/ajax/download AJAX Control Toolkit
37
•Muokkaavat valmiiden komponenttien toiminnallisuutta –Esim. ConfirmButton •System.Web.UI.ExtenderControl •Katso –”Adding ASP.NET AJAX Client Behaviors to Web Server Controls” Laajennukset (extenders)
38
JavaScript-tuki
39
•Visual Studio 2008 tuo mukanaan uusia JavaScript-ominaisuuksia •IntelliSense-tuki •Omien luokkien dokumentointi- mahdollisuus –XML-dokumentaatiota myös JavaScript-koodiin Uusia ominaisuuksia
40
•Huomaa, että XML-dokumentit on kirjoitettava metodin lohkon sisään! function SayHello(name) { /// This method returns a string saying Hello, World! /// < param name="name" type="string">Specifies the name to send greetings to. return "Hello, "+name+"!"; } Esimerkki
41
LINQ ja ASP.NET-sovellukset
42
•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 LINQ – pikakertaus
43
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) { … } Pikaesimerkki: omat oliot
44
•.NET 3.5 sisältää yksinkertaisen oliomapperin SQL Serverille –O/R Mapper •Lisää projektiin ”LINQ to SQL Classes” -malli LINQ ja SQL Server
45
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 + " "); } Label1.Text = buffer.ToString(); Esimerkki SQL-kyselystä
46
LinqDataSource
47
•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ähteeksi normaalisti esim. ListView- ja GridView- kontrolleille LinqDataSource-kontrolli
48
•ContextTypeName –Tietolähden LINQ-kyselyille •TableName –Mistä taulusta haetaan tietoja •Select, Where, OrderBy –Lähdekoodikieliset ehtolauseet –Ota AutoGenerate*-ominaisuudet pois päältä Ominaisuuksia
49
< asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="AlbumID" DataSourceID ="LinqDataSource1"> … < asp:LinqDataSource ID="LinqDataSource1" runat="server" ContextTypeName ="WebAppDemo.PhotosDataContext" TableName ="Albums"> Esimerkki
50
<asp:LinqDataSource ID="LinqDataSource1" runat="server” ContextTypeName="WebAppDemo.PhotosDataContext" TableName="Albums" AutoGenerateWhereClause ="True"> <asp:ControlParameter Name="AlbumID" ControlID="DropDownList1" Type="Int32" /> Where-ehto
51
Yhteenveto
52
•ASP.NET 3.5 on monipuolinen laajennus •Uusia kontrolleja •AJAX-tuki •LINQ ja tietokannat 2.7.2014 Mitä uutta ASP.NET 3.5:ssä?
53
•Yhteystiedot –Jani Järvinen, Moonsoft Oy –jani.jarvinen@moonsoft.fijani.jarvinen@moonsoft.fi •Seuraa CodeZonea ja ITpro.fi:tä –www.codezone.fiwww.codezone.fi –www.itpro.fi/asiantuntijaryhmat/ohjelmistokehityswww.itpro.fi/asiantuntijaryhmat/ohjelmistokehitys 2.7.2014 Kiitos!
Samankaltaiset esitykset
© 2024 SlidePlayer.fi Inc.
All rights reserved.