Web Services tietokantaohjelmoinnin perusteet



Samankaltaiset tiedostot
C# ja.net Framework. ADO.NET ja ASP.NET peruskäyttö

Jypelin käyttöohjeet» Ruutukentän luominen

ASP.NET Data Binding. Harjoitukset C# ja VB

Web järjestelmän ohjelmointi Kevät 2012 Hans Nieminen

Microsoft Visual Studio 2005

C# Windows ohjelmointi perusopas

Haaga-Helia/IltaTiko ict2tcd005: Ohjelmiston suunnittelutaito 1/7 Anne Benson. Tällä opintojaksolla käytämme VS:n kolmen kokonaisuuden luomiseen:

Microsoft Visual Studio 2005

INTERBASE 5.0 PÄIVITYS VERSIOON 5.6

Valikot ja työkalupalkit. 2008

Eclipse 3.2 pikku opas versio 1.0. Esittely Uuden projektin perustaminen Sovelluksen luominen Koodin siistiminen Vinkkejä

Tehtävä 1. Tietojen lisääminen, poistaminen, päivittäminen ja tulostaminen

Tech Conference Visual Studio 2015, C#6,.NET4.6. Heikki Raatikainen. #TechConfFI

Lab A1.FARM_Hyper-V.v3

VisualStudio Pikaopas, osa 1: WEB sivujen suunnittelu

Jypelin käyttöohjeet» Ruutukentän luominen

Testivetoinen ohjelmistokehitys

Eclipse 3.1 Pikaopas versio 1.0

VisualStudio Pikaopas, osa 1: WEB-sivujen suunnittelu

SQL Buddy JAMK Labranet Wiki

C# ja.net. Juha Järvensivu 2007

JUnit ja EasyMock (TilaustenKäsittely)

TIETOKONEYLIASENTAJAN ERIKOISAMMATTITUTKINTO

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.3.0

5 Näppäimistö. 5.1 Näppäimistön eventit

Tikon Ostolaskujenkäsittely/Web-myyntilaskutus versio 6.4.0

Pedacode Pikaopas. Web-sovelluksen luominen

Harjoitus 3: Flash-komponenttiarkkitehtuuri ( )

Pedacode Pikaopas. Java-kehitysympäristön pystyttäminen

Pedacode Pikaopas. Tietokantaa hyödyntävän sovelluksen luominen

2. PPPoE YHTEYDEN POISTAMINEN BAANA-CLIENT Windows 2000 / XP

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen

Selvitysraportti. MySQL serverin asennus Windows ympäristöön

Written by Administrator Monday, 05 September :14 - Last Updated Thursday, 23 February :36

2010-luvun kansalaistaito: Windows-puhelimen ohjelmointi. Kai Lindgren, Teollinen tuotanto/metropolia

Selaimen asetukset. Toukokuu (7) Selaimen asetukset Tikon Oy. All rights reserved.

Tehtävä 1. Tehtävä 2. Arvosteluperusteet Koherentti selitys Koherentti esimerkki

Toisessa viikkoharjoituksessa on tavoitteena tutustua JUnit:lla testaukseen Eclipse-ympäristössä.

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

Visma Nova. Visma Nova ASP käyttö ja ohjeet

Coolselector Asennusohje

Listarakenne (ArrayList-luokka)

CLOUDBACKUP TSM varmistusohjelmiston asennus

Tikon Web-sovellukset

Interaktiivinen tarinankerronta

Sisällysluettelo. Johdanto Dot NET Microsoft.NET -alusta Käyttäjämallit Ohjelmien kehitys.net-alustalla...

...ii...iii...x. 1 Silverlight NET Framework for Silverlight Silverlight Silverlight. 2-1 Visual Studio Silverlight...

Aditro Tikon ostolaskujen käsittely versio SP1

Hälyri-tietojärjestelmä, Palvelinohjelmiston version asennusohje

Aditro Tikon ostolaskujen käsittely versio 6.2.0

Digikoulu Pilviteknologiat - Tunti 1001: Tiedon varastointi Amazon Simple Storage Service (Amazon S3) palveluun

Väylään liitettävä laite: Pheonix Contact ILB PB DI8 DIO8

Tikon Web-sovellukset

Tapahtumapohjainen ohjelmointi. Juha Järvensivu 2007

Pikaohje formaatin valmistamiseen

erasmartcard-kortinlukijaohjelmiston asennusohje (mpollux jää toiseksi kortinlukijaohjelmistoksi)

Jos haluat uuden Share-työkalun, valitse Pods -> Share -> Add New Share tai jos sinulla on jo auki Share-työkalu, näyttää se tältä:

REST rajapintana mobiilikehityksessä

SCI- A0000: Tutustuminen Linuxiin, syksy 2015

C# 3.0:n uudet ominaisuudet Language Integrated Query...45

3. Asenna MySQLdb(MySQL-python-1.2.3b4.win32-py2.7.exe) ja pyserial (pyserial- 2.5.win32.exe)

Site Data Manager Käyttöohje

Flowcode 6 Omien komponenttien luonti 3D- tilassa Ledi

1 Tehtävän kuvaus ja analysointi

SQL Server 2008 asennus

TEHTÄVÄ 3: * Tehtävä 1, ** Tehtävä 2

Mikä yhteyssuhde on?

Eclipse ja JUnit-ohjelmoijatestit

XNA grafiikka laajennus opas. Paavo Räisänen. Tämän oppaan lähdekoodit ovat ladattavissa näiden sivujen Ladattavat osiossa.

CISS Base Excel raporttien määritys Käyttäjän käsikirja. CISS Base Käyttäjän Käsikirja Econocap Engineering Oy 1

1. HARJOITUS harjoitus3_korjaus.doc

Visma Business AddOn Tuotetarrat. Käsikirja


Osio 4: Graafinen käyttöliittymä

815338A Ohjelmointikielten periaatteet Harjoitus 5 Vastaukset

Johdatus ohjelmointiin

TTY TKT-1110 Mikroprosessorit TKT. HEW-ohjeet ver 1.0

Kompositio. Mikä komposition on? Kompositio vs. yhteyssuhde Kompositio Javalla Konstruktorit set-ja get-metodit tostring-metodi Pääohjelma

Site Data Manager Käyttöohje

Tikon Ostolaskujenkäsittely versio SP1

Osio 4: Tietovirrat. Properties- eli ominaisuustiedostot Logger: lokitietojen käsittely

Microsoft SQL Server -tietokannan hallinta. Jouni Huotari

10 Lock Lock-lause

1 www-sivujen teko opetuksessa

Asynkroninen ohjelmointi.net 4.5 versiolla

Pedacode Pikaopas. Web Service asiakasohjelman luominen

Power BI Tech Conference Power BI. #TechConfFI. Johdanto

Ohjeet asiakirjan lisäämiseen arkistoon

Viva-16. Käyttöohje Veikko Nokkala Suomen Videovalvonta.com

Delegaatit ja tapahtumakäsittelijät

Harjoitustyö: virtuaalikone

Visma Software Oy

Tikon Ostolaskujenkäsittely versio 6.2.0

MySQL Maestro. Aleksi Korpela IST4SO Markus Lamminaho IST4SO

Graafisen käyttöliittymän ohjelmointi

Rajapinta (interface)

Käyttöohje Planeetta Internet Oy

Kon Konepajojen tuotannonohjaus: ILOG CPLEX Studion käyttö

Automaster tai MBS. 2. ODBC - ajurin asennus (jos ei ole jo asennettu)

Salasanojen hallinta. Salasanojen hallintaopas RESTAURANT ENTERPRISE SOLUTION

Transkriptio:

ASP.NET Web Services Web Services tietokantaohjelmoinnin

2 (22) Sisällys Harjoitus 1: Tietokannat ja Web Services... 3 Harjoitus 2: Windows Client... 10 Harjoitus 3: Datan päivitys TableAdapterin avulla... 15 Harjoitus 4: Yhteentörmäyksen havaitseminen... 17

3 (22) Harjoitus 1: Tietokannat ja Web Services Tehtävä Harjoituksessa tehdään Web Service, jonka avulla voidaan hakea tietoja tietokannasta. Tässä harjoituksessa käytetään VS:n generoimaa TableAdapteria ja palvelu palauttaa tyypitetyn DataTablen. Tämä paluutyyppi soveltuu vain.net<->.net tyyppisiin palveluihin. Toimenpiteet 1. Aloita uusi ASP.NET Web Service nimellä KantaPalvelu (File > New Web Site > ASP.NET Web Service). Käytä ASP.NET Developer Serveriä (eli valitse location: File System). Palvelu saa olla.net Framework 3.5 sovellus. 2. Lisää projektiin SQL Server tietokanta AdventureWorksLT

4 (22) 2.1. RClick (==Paina hiiren oikeaa) Solution Explorerissa App_Data hakemiston päällä > Add Existing Item, 2.2. valitse All Files, ja AdventureWorksLT_Data.mdf 3. Tuplaklikkaa lisättyä tiedostoa (edelleen Solution Explorerissa), jolloin saat avattua tietokannan Server Exploreriin. Siellä näet esim. tietokannan rakenteen ja voit myös ylläpitää kannassa olevaa dataa.

5 (22) 4. Lisää projektiin uusi DataSet nimellä Asiakkaat.xsd 4.1. RClick Solution Explorerissa Web Siten päällä > Add new Item.. 4.2. Valitse Dataset ja anna nimeksi Asiakkaat.xsd

6 (22) 4.1. Kun VS huomauttaa, että dataset kannattaisi lisätä App_Code hakemistoon, hyväksy tämä (==paina Yes) 5. Valitse Server Explorerissa Data Connections>AdventureWorksLT_Data.mdf>Tables>Customer(SalesLT) taulusta alla olevat sarakkeet ja raahaa ne Asiakas.XSD designerin kanvaasille. Tämä muodostaa DataSet-määrittelyn ja tarvittavat SQL-lauseet.

7 (22) 6. Raahauksen jälkeen syntyy tämä DataSet ja sen TableAdapter :it

8 (22) 7. Voit tutkia TableAdapterin ominaisuuksia RClickaamalla Datasettiä ja valitsemalla Configure. Voit myös tutkia TableAdapterin palauttamaa dataa Preview Data -komennolla. 8. Sulje DataSet - editori ja käännä sovellus (Build Build Solution) 9. Lisää GetScrapReason metodi Service.cs tiedostoon. Metodi hakee tiedot kannasta. Huom: jos teet alustariippumattoman palvelun (==palvelua käytetään myös muista kuin.net-sovelluksista käsin niin ei ole hyvä idea palauttaa datasetiä tai datatablea. Nyt teemme palvelun, jota on tarkoitus käyttää vain.net-clienteista käsin. Siksi DataTablen palauttama metodi) C# [WebMethod] public Asiakkaat.CustomerDataTable HaeAsiakkaat() { AsiakkaatTableAdapters.CustomerTableAdapter ta = new AsiakkaatTableAdapters.CustomerTableAdapter(); } return ta.getdata(); 10. Käännä ja testaa sovellus selain-käyttöliittymällä

9 (22)

10 (22) Harjoitus 2: Windows Client Tehtävä Tee palvelua käyttävä Windows-testeri, joka näyttää asiakastiedot DataGridView-kontrollissa. Toimenpiteet 1. Lisää (File > Add New Project ) uusi Windows Application - projekti nimellä KantaClient. Huom.: valitse.net Framework 2 2. Aseta tämä projekti oletusprojektiksi (RClick projektinimen päällä > Set as Startup Project)

11 (22) 3. Lisää Windows sovellukseen referenssi Web Service palveluun (Project Add Web Reference WebServices in this solution Service) ja anna nimeksi KantaPalvelu.

12 (22) 4. Maalaa oheinen käyttöliittymä DataGridView ja Button - kontrollein

13 (22) 5. Lisää ikkuna-luokan alkuun KantaPalvelu proksiolion luonti. Määrittele myös dtasiakas-kenttä. C# public partial class Form1 : Form { KantaPalvelu.Service palvelu = new KantaClient.KantaPalvelu.Service(); KantaPalvelu.Asiakkaat.CustomerDataTable dtasiakas; public Form1() { 6. Toteuta Hae Tiedot painonappi, jossa tehdään kutsutaan palvelua ja sidotaan tulos-datatable Grid-kontrolliin. C# private void bhae_click(object sender, EventArgs e) { dtasiakas = palvelu.haeasiakkaat(); datagridview1.datasource = dtasiakas; } 7. Testaa Hae Tiedot painonapin toiminta.

14 (22)

15 (22) Harjoitus 3: Datan päivitys TableAdapterin avulla Tehtävä Toimenpiteet Lisää KantaPalvelut luokkaan WebMethod, jolla muutetut tiedot voidaan päivittää takaisin tietokantaan. Metodi palauttaa päivitetyn datatablen. 1. Lisää KantaPalvelut projektin Service-luokkaan luokkaan uusi metodi, jolla tiedot viedään takaisin kantaan. C# [WebMethod] public Asiakkaat.CustomerDataTable PäivitäAsiakkaat (Asiakkaat.CustomerDataTable muutetutasiakkaat) { AsiakkaatTableAdapters.CustomerTableAdapter ta = new AsiakkaatTableAdapters.CustomerTableAdapter(); } ta.update(muutetutasiakkaat); return HaeAsiakkaat(); 2. Käännä sovellus (Build Build Solution) ja päivitä Web Reference. 3. Kirjoita Palauta Tiedot nappiin koodi, joka vie muuttuneet tiedot Web Services palveluun. C# private void bpalauta_click(object sender, EventArgs e) { KantaPalvelu.Asiakkaat.CustomerDataTable muutetut; muutetut = dtasiakas.getchanges() as KantaPalvelu.Asiakkaat.CustomerDataTable; } dtasiakas = palvelu.päivitäasiakkaat(muutetut); datagridview1.datasource = dtasiakas;

16 (22) 4. Käynnistä ja testaa sovellus. Hae kannasta tietoja ja kokeile palauttaa muutettuja tietoja takaisin tietokantaan.

17 (22) Harjoitus 4: Yhteentörmäyksen havaitseminen Tehtävä Toimenpiteet DataSet käsittely on aina yhteydetöntä ja yhteentörmäyksien havaitseminen perustuu ns. optimistiseen malliin. Harjoituksessa aiheutetaan tahallinen yhteentörmäys editoimalla samaa riviä. Lisäksi tehdään rakenteet, joilla tämä yhteentörmäys havaitaan. Oletuksen optimistinen lukitus ei ole käytössä, mutta tässä harjoituksessa se asetetaan käyttöön. 1. Käynnistä kaksi KantaClient sovellusta tiedostojärjestelmästä. Hae tiedot molempiin käyttöliittymiin ja muuta samaa riviä. Vie lopuksi tiedot takaisin kantaa Palauta Tiedot painonapilla.

18 (22) 2. Totea, että viimeisin päivitys jää voimaan, optimistinen lukitus ei ole käytössä. 3. Sulje molemmat client-sovellukset ja siirry Visual Studiossa KantaPalveluprojektiin. 4. RClick Asiakkaat.xsd designerissa Customer-datatable:n päällä > Configure

19 (22) 5. Paina TableAdapter Configuration Wizard-lomakkeen Advanced Options nappia

20 (22) 6. Valitse Use optimistic concurrency. 7. Sulje Wizardi (Finnish painonappi) 8. Käännä solution. 9. Testaa palvelua jälleen kahdella clientilla. Totea, että nyt ruudulle tulee DBConcurrencyException poikkeus, jota ei käsitellä.

21 (22) 10. Tee koodiin seuraavat korjaukset. Ensin otetaan poikkeus kiinni KantaPalvelussa.. [WebMethod] public Asiakkaat.CustomerDataTable PäivitäAsiakkaat(Asiakkaat.CustomerDataTable muutetutasiakkaat) { AsiakkaatTableAdapters.CustomerTableAdapter ta = new AsiakkaatTableAdapters.CustomerTableAdapter(); } try { ta.update(muutetutasiakkaat); } catch (System.Data.DBConcurrencyException ex) { return muutetutasiakkaat; } return HaeAsiakkaat(); 11. Palvelu palauttaa DataTablen, jossa on tieto yhteentörmäyksestä. Tee seuraavat muutokset käyttöliittymään, jotka tuovat tiedot näkyviin DataGridView kontrolliin. Mikäli palautetussa datatablessa (muutetut) on virheitä, se ei korvaakaan nyt näytettävää datatablea, vaan se merga:taan siihen.

22 (22) C# private void bpalauta_click(object sender, EventArgs e) { KantaPalvelu.Asiakkaat.CustomerDataTable muutetut; muutetut = dtasiakas.getchanges() as KantaPalvelu.Asiakkaat.CustomerDataTable; } muutetut = palvelu.päivitäasiakkaat(muutetut); if (!muutetut.haserrors) { dtasiakas = muutetut; datagridview1.datasource = dtasiakas; } else { dtasiakas.merge(muutetut); } 12. Käynnistä kaksi KantaClient sovellusta tiedostojärjestelmästä. Hae tiedot molempiin ja muuta samaa riviä. Vie lopuksi tiedot takaisin kantaa Palauta Tiedot painonapilla. 13. Tarkista, että yhteentörmäys näkyy DataGridView - kontrollissa.