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

Slides:



Advertisements
Samankaltaiset esitykset
Näkövammaiset ja verkkosivustot Virpi Jylhä
Advertisements

ENTERPRISE SEARCH Toteutustekniikka Mikko Uusitalo Tampereen ammattikorkeakoulu.
Informaatioteknologian instituutti Esityksen tekeminen PowerPointilla Jouni Huotari.
Vippet Booking - majoitusvarausjärjestelmä
Marko Mäkinen Jesse Ketonen Mikko Yrjänä
Suunnitelma ohjelmiston testaukseen
Linuxin rakenne ja ominaisuudet
Pyry Heinonen.  Nykyisen Internet-pohjaisen painotuotetilausjärjestelmän korvaaminen uudella versiolla  Esitellään nykyinen järjestelmä ja mahdollinen.
Web-sovellusten arkkitehtuurit K1103TK CodeIgniter - perusteet Jouni Juntunen.
Julkaisukielet ja - tekniikat tMyn1 Julkaisukielet ja -tekniikat •Verkko-ohjelmointi voidaan jakaa kahteen osaan: asiakaspuolen ja palvelinpuolen ohjelmointiin.
Tekninen suunnit-telu
HTML-kielen perusteet Osa 5 Vilho Kemppainen
MULTIMEDIAN MONET MUODOT
Windows Presentation Foundation - perusteet
WORDPRESS -KOULUTUS Juha Konttinen – Miksi Wordpress?  on ilmainen  on helppo asentaa ja käyttää  omalle tai vuokratulle palvelimelle 
Visual Studio 2008 ja sovellusten elinkaaren hallinta Matti Antila Jukka Wallasvaara Iikka Paavolainen Microsoft Oy.
TFS vaiheittainen käyttöönotto
#tdweb UI kompositio Lenard Gunda / Fujitsu Finland #tdweb.
Jouni Heikniemi Offbeat Solutions MODERNI WEB-KEHITYS ASP.NETILLÄ.
T Projektikatselmus GenCode PS iteraatio
Käytännön ohjelmointi ja käytännön ketterä testaus
Pasi Helasuo Työn valvoja Professori Jukka Manner
Tilakatsaus Paatti-projekti 7. kokous Mitä on tehty? Projektisuunnitelma Vaatimusmäärittelyn muokkausta Mobiilikäyttöliittymän toteutusta Tutkijan.
Windows Presentation Foundation UxE:n näkökulmasta
Ketterä kehitys käytännössä – TFS & Meteor
Clojure – this one goes to eleven!. Antti Virtanen Software Architect // Clojure oikeassa projektissa.
Mikko Huilaja, Ohjelmistoarkkitehti EPiServer 7 ja MVC ”EPiServer tarjoaa kehittäjälle kaksi vaihtoehtoa sivupohjien rakentamisessa – valitse.
Julkaisujärjestelmät Mitä seuraavaksi? Rami Alanko.
Minne menet Microsoft Oy. Ohjelma 09:00-09:15 Avauspuheenvuoro: Juhani Vuorio / Microsoft Oy – Minne menet IE10? 09:15-10:15 HTML5 kehitys,
Ohjelmointi.
Internet-projekti - MUM2TM Heikki Hietala Jukka Mutikainen TIKO – Malmi
Jouni Mäkeläinen, Twinkle Oy Esteettömyyden huomioiminen palvelujen toteutuksessa.
Kalenteri 2005 AJAVA – Ajanvarausjärjestelmä CSP Compact Software Products.
Web 2.0 tiivistetysti 1. Ohjelmistoalusta on Web. Webtop korvaa Desktopin. Keskeistä yhteisöllisyys ja ”Software as a Service”. 2. Kollektiivisen älyn.
Koodistopalvelu. Mikä? Palvelu, jonka avulla koodistoja voidaan jakaa ja hallinnoida keskitetysti. Perustuu JHS-työryhmän suositusluonnokseen ja sen yhteydessä.
vuorovaikutteiset www-sivut1 Palvelinpuolen www- ohjelmointi Dynaaminen Internet  käyttäjän tai selaimen tunnistaminen  käyttäjän toiveiden.
GIMP ja muut kuvankäsittelyohjelmat
T Loppudemo Kaffetauko eAuction
Lomakkeet © Reiska, Lomakkeet Varsinkin Web-sovelluksia ajetaan täyttämällä sivulla lomake ja lähettämällä tiedot palvelimella olevan Web-sovelluksen.
Aihe: J2ME Log4J Esittäjä: Lokki-projekti Pvm: Loppuesittely.
402T20E Digitaalisen sovellustuotannon työvälineet, 3 op Flash MX –perusteet Ari Vainionpää.
Mi Menetelmä tosiaikaiseen sivustomuokkaukseen Sulake Dynamoid | Strictly confidential – legally protected and privileged information Ilari Tuominen Software.
Neuron Jyväskylän yliopisto Tietotekniikan sovellusprojekti Kevät 2004.
 MODx on julkaisujärjestelmän ja sovelluskehyksen risteytys, jonka lisenssinä on kaikille ilmainen avoimen lähdekoodin GNU GPL. MODx on suunniteltu ammattilaisten.
Kaksi- ja kolmitasoiset sovellukset Two and Three Tier Systems.
CAD-suunnittelun ja dokumentinhallinnan yhdistäminen
Miksi tietokannattMyn1 Miksi tietokannat Esim. kirjastossa oli kortisto, joka koostui käsin täytettävistä arkistokorteista. Kortit oli järjestetty tekijän.
Kymenlaakson digitaalinen pääkirjasto Kymenlaakson kirjastojen yhteinen sosiaalista mediaa hyödyntävä verkkosivusto Verkkotyöryhmä: Mika Hatakka, Sinikka.
Ydinpalveluiden (käyttäjä, käyttöoikeus, potilas).NET-palvelutoteutus: CoreServiceDemo PlugIT-loppuseminaari Koulutustyöpaja 1: Avoimet ohjelmistorajapinnat.
Tietokannat -kurssi KSAO, Datanomit, käytön tuki kevät 2015 Lauri Tapola.
XSL Teppo Räisänen
Pakkauskaavio– Package Diagram Jani Pelkonen, Niko Viinikanoja, Teemu Tervahauta.
PHP ja MySQL PHP: Hypertext Preprosessor. PHP, johdanto Komentosarjakieli, joka on suunniteltu dynaamisen sisällön tuottamiseen verkossa PHP on sekä kieli,
Silverlight Expression Blend 3 työkaluna. Mikäs on Silverlight? (1/2) Pääasiassa teknologia webbiin –Internet Explorer –Mozilla –Opera –Safari.
D OMAINHALLINTATYÖKALUN TOTEUTUS JQUERY JAVASCRIPT - KIRJASTOLLA Insinöörityö Irko Palenius 2009.
RUMBA Loppuesittely Tietoa projektista Tekijät:  Jari-Pekka Heini Projektipäällikkö Testaus  Olli Lajunen Dokumentointi  Ville-Veikko Pasanen.
Neuron Jyväskylän yliopisto Tietotekniikan sovellusprojekti Kevät 2004.
RUMBA Väliesittely
.NET ohjelmointi C#-kielellä RäsSe, lokakuu 2004.
Projekti  Projektina luoda Suomen Snookerille viralliset nettisivut  Koostaminen Drupal-järjestelmällä.
JOOSE - PROJEKTI Väliesittely Hannu Hautakangas, Nikolai Koudelia, Joel Lehtonen, Johan Nysten.
Harjoitustyö kurssille Mobile Application Development
Web-sisällönhallintajärjestelmät
Symbian-työkaluja Kurssilla käytettävä ympäristö
Helsingin normaalilyseo Jani Kiviharju syksy 2016
Aaltonen Petteri Laine Risto Nuutinen Ossi
PowerPoint-vinkkejä Jouni Huotari 11/16/2018 Jouni Huotari.
CLT132 Tehtävät (viikko 8).
Google Docs Teppo Räisänen,
Esityksen transkriptio:

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 •Uusia kontrolleja –ListView ja DataPager •Uusia nimiavaruuksia –System.Web.Extensions-koonnissa •Sisäkkäiset mallisivut –Tuki Visual Studiossa, viimeinkin •AJAX-tuki

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

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

Laajennuksista.NET 3.5:een •Aiemmista erillisosista ja laajennuksista tullut osa.NET 3.5:ttä •Vihreät ja punaiset bitit

Uudet kontrollit

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

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

ListView

•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

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

<asp:PlaceHolder ID=" itemPlaceHolder ” runat="server" /> : Esimerkki mallista

•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

•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

•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)

•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)

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

DataPager

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

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

<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

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

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

System.Web.Extensions

•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)

AJAX-toiminnallisuus

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

•AJAX-kontrollit kaikkien käyttöön •Ei enää erillisiä laajennuksia •Helppo ottaa käyttöön omissa ASP.NET- sovelluksissa Visual Studio &.NET 3.5

•Kaksi komponenttia –ScriptManager –Update Panel •Yksi ScriptManager per sivu •Koodia voidaan kirjoittaa kuten ennenkin Alkuun AJAX-toteutuksissa

•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

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

•Tarjoaa joukon valmiita kontrolleja •Laajentaa Visual Studion ja.NET 3.5:n vakiotarjontaa •Maksuton, lähdekoodi saatavilla •Lataa – AJAX Control Toolkit

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

JavaScript-tuki

•Visual Studio 2008 tuo mukanaan uusia JavaScript-ominaisuuksia •IntelliSense-tuki •Omien luokkien dokumentointi- mahdollisuus –XML-dokumentaatiota myös JavaScript-koodiin Uusia ominaisuuksia

•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

LINQ ja ASP.NET-sovellukset

•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

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

•.NET 3.5 sisältää yksinkertaisen oliomapperin SQL Serverille –O/R Mapper •Lisää projektiin ”LINQ to SQL Classes” -malli LINQ ja SQL Server

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ä

LinqDataSource

•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

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

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

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

Yhteenveto

•ASP.NET 3.5 on monipuolinen laajennus •Uusia kontrolleja •AJAX-tuki •LINQ ja tietokannat Mitä uutta ASP.NET 3.5:ssä?

•Yhteystiedot –Jani Järvinen, Moonsoft Oy •Seuraa CodeZonea ja ITpro.fi:tä – – Kiitos!