Referatai

.NET komponentai ir pasaulinio tinklo sąveika

10   (1 atsiliepimai)
.NET komponentai ir pasaulinio tinklo sąveika 1 puslapis
.NET komponentai ir pasaulinio tinklo sąveika 2 puslapis
.NET komponentai ir pasaulinio tinklo sąveika 3 puslapis
.NET komponentai ir pasaulinio tinklo sąveika 4 puslapis
.NET komponentai ir pasaulinio tinklo sąveika 5 puslapis
.NET komponentai ir pasaulinio tinklo sąveika 6 puslapis
.NET komponentai ir pasaulinio tinklo sąveika 7 puslapis
.NET komponentai ir pasaulinio tinklo sąveika 8 puslapis
.NET komponentai ir pasaulinio tinklo sąveika 9 puslapis
.NET komponentai ir pasaulinio tinklo sąveika 10 puslapis
.NET komponentai ir pasaulinio tinklo sąveika 11 puslapis
.NET komponentai ir pasaulinio tinklo sąveika 12 puslapis
.NET komponentai ir pasaulinio tinklo sąveika 13 puslapis
.NET komponentai ir pasaulinio tinklo sąveika 14 puslapis
.NET komponentai ir pasaulinio tinklo sąveika 15 puslapis
www.nemoku.lt
www.nemoku.lt
Aukščiau pateiktos peržiūros nuotraukos yra sumažintos kokybės. Norėdami matyti visą darbą, spustelkite peržiūrėti darbą.
Ištrauka

Įvadas Šito darbo pats pagrindinis tikslas yra apžvelgti .Net bei web servisų komponentines technologijas, bei pasiūlyti efektyvų heterogeninių programų sistemų būdą. Siekiama pagilinti tiek teorines tiek ir praktines žinias susijusias su minėtųjų programų sistemų kūrimu. Šita tema yra aktuali tuo, kad web servisų egzistavimas tampa vis aktualesnis šiandieniniame pasaulyje (prisiminkime „google maps“, orų prognozes internetu ir t.t...). Be to vis labiau populiarėja internetinės parduotuvės, kurioms taipogi reikalingi patiki ir saugūs web servisai. Viso šito pabaigoje galiu pasakyti, kad mano darbo siekiamas rezultatas sukurti kažkokią tai praktinio naudojimo programą kuri iliustruotų web servisų, bei .Net komponentinių programų veikimą. Nesuklysiu pasakydamas, kad yra ir kitas rezultatas, tai yra supažindinti skaitytoją su šia iš pirmo žvilgsnio sudėtinga technologija, parodyti pora nesudėtingų pavyzdžių ir taip gal būt pakeisti susidariusią klaidingą nuomonę apie web servisų kūrimo sudėtingumą. 1. .Net komponentas 1.1. .NET komponentinės technologijos sąvoka 1.1.1. .Net komponentinė technologija Tikriausiai ne kartą teko susidurti su šia sąvoka, bet ar susimastėt nors vienas ką šita sąvoka galėtu iš tikro reikšti. Kas slypi už šio pavadinimo. Anot .Net kūrėjų, „Microsoft“ kompanijos, tai yra Microsoft programinis sprendimas skirtas WEB servisams, tai tarsi nauja programinių sistemų karta, kuri jungia mus supančią informaciją, įvairiausius įrenginius, bei žmones su jų individualiais poreikiais. Šitame skyrelyje aš pasistengsiu paaiškinti kas iš tiesų yra .Net technologija, paprastų mirtingųjų kalba. Tradiciškai programavimo aplinkos (nesvarbu ar tai būtų autonominis kompiliatorius ar integruotos programų kūrimo aplinkos, kurios padaro kodo rašymą ir derinimą daug lengvesnį) suteikia galimybę programuotojui surinkti kodą ir jį sukompiliuoti į mašininį kodą, kurį po to galima vykdyti, kad ir kokiai jis aplinkai pritaikytas būtų. Dauguma programavimo kalbų turi galimybę prisijungti prie duomenų bazės, kompiuterio tinklo, išorinių įrenginių. Šitas galimybes programuotojas gali naudoti kaip tinkamas. Tai yra labai gerai, tačiau yra vienas bet. Kaip jau tikriausiai C programavimo kalbos programuotojai žino, visa šita paversti į tinklapį yra labai sunku, kartais tai tampa netgi neįmanoma. Taip atsitinka todėl, kad pats programuotojas turi aprašyti visas prisijungimo, užklausų pateikimo/priėmimo operacijas, apdoroti kritines situacijas, pertraukimus ir taip toliau. Aišku tai padaryti yra įmanoma, bet atvirai pasakius nelabai malonu. Kaip jau bet kuris „Perl“ programuotojas žino, tai atlikti daug lengviau, kadangi standartiniame Perl pakete yra nemažai modulių skirtų darbui su mūsų aptartomis problemomis. Perl programuotojui tereikia pasakyti: „Ei, čia yra tinklapio adresas“, nueik ir atnešk kas ten padėta arba bent jau pasakyk kodėl negalima gauti šito rezultato.“ Priėjimas prie tinklapio naudojantis .Net nieko nesiskiria. Visi programuotojai yra pripratę rašyti funkcijas, po to jas kviesti, apdoroti gautus rezultatus ir taip toliau. Nesvarbu ar tos funkcijos būtų toje pačioje klasėje, ar jau sukompiliuotoje bibliotekoje. Bet kodėl nepadarius, kad šitas funkcijas būtų galima laikyti bet kuriame kompiuteryje kažkur interneto gelmėse? Tai visiškai įmanoma naudojant tokias sąvokas kaip HTTP (suteikia ryšį tarp mašinos kviečiančios funkciją ir mašinos talpinančios ją), WSDL/SOAP (leidžia serveriui apibrėžti kaip klientas turi bendrauti su funkcija) ir XML (duomenų mainai). O triukas yra tame kad .Net sukurtas visiškai kaip ir Perl. .Net atlieka visą purviną darbą, kai tuo tarpu programuotojui užtenka paprastai pasakyti: „Iškviesk man šitą funkciją va su šitais parametrais ir man neįdomu kur ta funkcija yra.“ O kuriant funkcijas kurios bus pasiekiamos iš kitų kompiuterių užtenka pasakyti: „Beje, padaryk, kad ši funkcija būtų pasiekiama iš kitų kompiuterių.“ Atrodo paprasta, tačiau išties .Net atlieka labai sudėtingus procesus tuo metu kai mes kviečiame nutolusias funkcijas, tačiau kaip jau minėjau tai mums neturėtų kelti galvos skausmo, nes .Net tuo pasirūpina už mus. 2. Pasaulinis tinklas 2.1. Pasaulinio tinklo sąvoka 2.1.1. Pasaulinis tinklas Pasaulinis tinklas, tai dar kitaip vadinamas web servisas. WEB servisas, tai mažas programos dalies vienetas, kuris yra: ▪ suprojektuotas atlikti ribotas, tam tikras užduotis, ▪ bendrauja su kitomis programomis naudodamas XML protokolą, ▪ nepriklausomas nuo operacinės sistemos, ▪ nepriklauso nuo programavimo kalbos, ▪ jungia žmones, sistemas bei įrenginius į vieną visumą. 2.1.2. Web serviso pavyzdžiai Vienas iš paprastesnių WEB serviso pavyzdžių būtų, web servisas kuris suteikia informaciją kitoms programoms apie akcijų kursus. Kitas pavyzdys, web servisas kuris atsakingas už kreditinės korteles atliekamus mokėjimus. Web servisas naudoja standartinius žiniatinklio protokolus, tokius kaip HTTP, XML, SOAP, WSDL, bei UDDI. Taigi atėjo metas trumpai apžvelgti ką kiekvienas protokolas suteikia. 2.1.3. Naudojami protokolai 2.1.3.1 HTTP (Hypertext Transfer Protocol) tai pasaulinio žiniatinklio standartas skirtas komunikavimui internetu. HTTP standartizuotas W3C konsorciumo. 2.1.3.2 XML (eXtensible Markup Language), tai gerai žinomas standartas skirtas duomenims saugoti, pernešti bei apsikeisti su kitomis sistemomis. XML taipogi standartizuotas W3C. 2.1.3.3. SOAP (Simple Object Access Protocol), tai supaprastinta platforma, skirta bet kuriai programavimo kalbai, kuri leidžia programoms bendrauti vienai su kita per standartinį HTTP protokolą. Priklauso W3C konsorciumui. 2.1.3.4. WSDL (Web Services Description Language), tai XML protokolo pagalba apibrėžta kalba, naudojama apibrėžti web servisus, bei apibūdinti prisijungimą prie jų. WSDL buvo pasiūlyta Ariba, IBM ir Microsoft. WSDL byla aprašo visus metodus, bei metodų signatūras. Šito dokumento veikimo principas labai panašus į tipų bibliotekas esančias COM, kuris klientui apibrėžia web serviso funkcionalumą. Visual Studio .Net naudoja šita dokumentą kliento pusėje nurodant web nuorodą i serverį (ang. WEB reference). VS Perskaito WSDL failą ir pagal jame nurodytas ypatybes sukuria proxy klasę kuri mėgdžioja web serviso interfeisą. 2.1.3.5. UDDI (Universal Description, Discovery and Integration), tai servisas adresų, į kurį galima užsiregistruoti arba ieškoti reikalingų adresų. Tai viešasis registras, kuriame gali paskelbti savo web servisą arba ieškoti sau naudingų jau užregistruotų. 2.2. Paskirtis WEB servisų užduotis – suteikti kliento aplikacijoms RCP (ang. remote procedure call) interfeisą per kurį būtų galima kviesti klasių metodus esančius serveryje. Tiesą sakant visa šitai apdorojantis interfeisas nebūtinai turi būti klasė. Aplamai kalbant atskira klasė kaip interfeisas iš vis nereikalingas. Mintis yra tokia, kad kuriant metodus serveryje, juos kuriame lygiai taip pat kaip ir paprastoje aplikacijoje, tik tai virš jos nurodome kad šitas metodas turi būti matomas visiems interneto vartotojams. Privalumas tame, kad šituos metodus gali kviesti bet kokia kliento programa. Nesvarbu kuom parašyt, kaip jungiasi prie serverio, svarbiausia turi palaikyti SOAP (Simple Object Access Protocol). Šitame kliento ir serverio bendravimo procese SOAP yra labai svarbus. Kaip jau minėjau anksčiau šitas protokolas maršrutizuoja RCP pranešimus keliaujančius iš kliento į serverį ir atgal. SOAP susideda iš dviejų daliu: visų pirma kliento pusės proxy, kuris atsakingas už išeinančiu pranešimų sukūrimą, bei rezultatų iššifravimą ir be abejo serverio dalies, kuris realizuoja serverio logiką. Šita serverio dalis tai tarsi įsivaizduojamas serveris, kuris kreipiasi į realųjį, jūsų sukurtą serverį. Dar vienas svarbus dalykas kurį mes turėtume prisiimti yra tai kad web servisai vienas nuo kito nepriklausomi. Tai reiškia, kad web servisai yra panašesni į nutolusiu procedūras interfeisus, o ne į nutolusių klasių interfeisus. Mes turime kviesti metodus su tam tikrais parametrais, vietoj to kad kviestume metodus su tam tikromis būsenomis, bandydami jas išsaugoti serverio pusėje ir po to panaudoti kviečiant sekantį metodą. Kitais žodžiais kalbant web servisai nepalaiko tokio dalyko kaip būsenų saugojimas. Jei jums būtinai tai reikia padaryti, tai teks daryti naudojant „Session“ objektą. Kaip jau sakiau web servisai remiasi standartiniu HTTP protokolu, taigi kuriant web servisą galima naudoti standartinius HTTP įrankius. Tačiau šitai nėra patartina daryti, nes .Net aplinka siūlo daug patogesniu ekvivalentus. 3. .NET komponentinių aplikacijų ir pasaulinio tinklo (web servise) sąveika 3.1. Veikimo principai 3.1.1. Visual studio ir .Net Aplikacijos gauna informaciją iš web servisų labai panašiai kaip ir paprastas žmogus kad gauna informaciją iš naršylės. .NET framework pristato web servisus kaip neatskiriamą savo architektūros dalį, tuo pat metu padarant juos labai lengvai sukuriamus bei naudojamus parašant išties minimalų kodo kiekį. .NET framework reziumuoja didžiąją dalį vidinės logikos, kuri atsakinga už nutolusių prisijungimų palaikymą, o tuo tarpu „Visual studio“ visa šitai mums leidžia kurti patogioje programavimo aplinkoje. Susumavus viską išeina, kad kviesti nutolusius metodus taip pat paprasta kaip ir lokalius. Po viso šito drąsiai galime teikti, kad .Net web servisų pagrindinis tikslas paversti serverio pusės logiką lengvai prieinama klientams. 3.1.2. Pagrindiniai elementai dalyvaujantys serviso – kliento bendravime Taigi pažiūrėkime kas slepiasi šitame web serviso ir .net komponentinės programos ryšyje: 1. be abejo WEB servisas, serviso pusėje 2. klieno programa kviečianti web servisą nurodytą „web reference“ laukelyje 3. WSDL WEB serviso deskriptorius kuris nusako web serviso funkcionalumą 1 pav. .Net web servisai naudoja WSDL bylas, šituo bylos nurodo visas detales reikalingas klientui susikurti proxy. Proxy jungiasi prie web serviso naudodama SOAP protokolą, pasiųsdama bei gaudama atgal rezultatus parametrus(nurodytus WSDL bylose) iš nutolusių metodų. 3.2. Sąryšio realizavimo principai 3.2.1 Serviso metodai Web servisai sukurti .net aplinkoje susideda iš pagrindinio .asmx puslapio, kuriame gali būti reikalingos klasės arba gali būti išorinė klasė kurioje yra visi metodai. Tokiu atveju .asmx puslapyje bus nurodyta, kad klasė į kurią reikia kreiptis yra kitoje byloje. Pačios klasės niekuo nesiskiria nuo standartinių .net klasių, skiriasi tik metodai. • skirtumas tėra tik toks, kad prie kiekvieno metodo, kuris bus matomas nutolusiems klientams, viršuje deklaracijos reikia prirašyti „[WebMethod]“. • Dar vienas dalykas kurį turėtume žinoti, tai yra tas, kad serviso pusėje negalime išsaugoti jokiu būsenų. Taigi dar vienas skirtumas, nėra jokių „set“, „get“ metodų. 3.2.2. Pradinis .asmx puslapis Kaip jau minėjau ankstesniame skyrelyje .asmx puslapis yra pagrindinis web serviso puslapis į kurį kreipiamasi iš išorės. Šitame puslapyje pagrindinis dalykas yra šita eilutė: Apart šitos eilutės gali daugiau nieko ir nebūti. Visi reikalingi metodai bus išorinėje klasėje nurodytoje „CodeBehind“ ląstelėje. Kai jau bus sukurtas .asmx puslapis, serveris bus pasiruošęs priimti prisijungimus iš išorinio pasaulio. .Net aplinka suteikia labai naudingos informacijos apie web servisą šitame puslapyje, tokios kaip visų metodų sąrašas, informacija kaip pasiekti web servisą internetu. Kas yra labai naudinga, tai kad jūsų susikurtus metodus galima testuoti šitame puslapyje neturit jokio realaus kliento. 2 pav. čia matome serverio .asmx puslapį kuriame galima testuoti sukurtus metodus, susižinoti informaciją kaip jungtis prie serviso. 3.2.3. Web servisų pasiekiamumas .Net web servisai kurie sukasi ant HTTP gali būti pasiekiami trimis būdais: 3.2.3.1 „HTTP GET “ operacija Naudojant šitą operaciją galima paduoti parametrus iškviečiant .asmx puslapį ir jame nurodant užklausos eilutę kurioje būtų metodo pavadinimas, bei visi reikalingi parametrai. Pvz.: WebDemo.asmx/MetodoPavadinimas?Parm1=reikšmė 3.2.3.2. „HTTP POST“ operacija Šita operacija veikia taip pat kaip ir GET tik kad parametrai yra pasiunčiami kaip standartiniai užkoduoti URL kintamieji. pvz.: WebDemo.asmx/MetodoPavadinimas 3.2.3.3. SOAP Tai yra pats tinkamiausias būdas kviesti web servisus naudojant .Net. Šitas metodas taip pat naudojamas kai kviečiame servisus iš vidaus. GET ir POST operacijos naudingos tik tada kai norime greitai iškviesti web servisą o neturime jokių SOAP klientų. Šitie metodai taip pat naudingi kai klientas yra web naršyklė. Tuomet daug paprasčiau yra nusiųsti užklausos eilutę, nei konstruoti SOAP užklausas. SOAP naudingas tada kai mums neužtenka paprastų parametrų, pvz. Dataset kintamojo tipas gali būti gaunama tik naudojant SOAP. 3.3. Klientas 3.3.1. Sąryšio susiejimas su servisu Klientas gali būti bet kokia programa, nesvarbu ar tai būtų web puslapis ar windows forma. Prisijungimo prie serviso procesas visada toks pat: nurodome web nuorodą (ang. Web reference), pridedam vardų sritį ir tuomet paprasčiausiai kviečiam web serviso metodus. Paprasta ar ne? Aišku už viso šito slypi kur kas sudėtingesnė sistema. Išties kliento suaktyvintas metodo kreipinys iš tikrųjų kreipiasi į proxy objektą, kuris suaktyviną nutolusį web servisą. Proxy pagrindinė klasė turi tarsi stebuklingą dėžutę kuri atlieka visus SOAP paketų perdavimus tinkle. Konkreti proxy klasė tiesiog kviečia metodus esančius tėvinėje klasėje, kad jie atliktų visą sunkų darbą. Proxy perskaito WSDL dokumentą tam, kad išsiaiškintu metodų aprašymus, patikrina ar jie patys naujausi (ar nebuvo pakeitimų), tada sukuria SOAP voką ir siunčia jį į web servisą tolimesniam darbui. 3 pav. Taip atrodo SOAP užklausos paketas keliaujantis iš kliento į serverį. Serverio pusėje .Net framework apdorotojas (ang. Handler) paima šitą SOAP paketą, apdoroja jį ir pasiunčia į nurodytą klasę. SOAP pakete nurodyta kokį metodą reikia sužadinti taigi šis metodas ir sužadinamas (Mūsų atveju metodo pavadinimas „AddNumbers“), į jį paduodami du parametrai. Šitoje vietoje metodas pradeda savo darbą. Tai vieta kurioje prasideda vartotojo aprašytas funkcionalumas. Kai metodas baigia darbą jis tiesiog grąžina reikalingą reikšmę tokiu pat būdu kaip ir jas gavo. 4 pav. SOAP paketas kuris grąžina web serviso metodo „return“ reikšmę. Dabar gal jau pakeitėte nuomonę ir manote jog tai labai sudėtingas procesas? Deja jūs vėl suklydote. Viskas ką mum reikia parašyti yra šitos dvi eilutės: 5 pav. web serviso metodo iškvietimas kliento pusėje. Aišku prieš tai turim būti nusistatę web nuorodą. (ang. Web reference) Apie šitai pakalbėsiu truputį vėliau. 4. Pavyzdžiai 4.1. Paprastas web servisas bei klientas Šitoje dalyje aš pademonstruosiu kaip greitai ir nesunkiai yra sukuriamas web servisas naudojantis visual studio 2005. Manau visiems bus aiškiau jei šitą darysiu rodydamas piešinukus ir juos komentuodamas. 4.1.1. Web servisas Taigi norint norėdami sukurti kažkokį tai realų web servisą spauskite File>new>web site. Atsiradusiame lange pasirinkite asp .net web service. Štai ir viskas, web servisas sukurtas su vienu pavyzdiniu metodu „HeloWorld()“. Aš jį šiek tiek pakeičiau ir įdėjau viena parametrą: „name“. Štai kaip atrodo pagrindinis programos langas sukūrus servisą: 6 pav. Pagrindinis Visual studio programavimo aplinkos langas sukūrus naują servisą Ką aš pakeičiau šitame servise yra apbraukta. Iš ties labai nesudėtinga. Galime paspausti „f5“ ir pratestuoti šitą metodą. Tai, mes tai galime padaryti net neturėdami jokio kliento, nes Visual Studio mums suteikia tokią galimybę sukurdama virtualų puslapį su visais web serviso metodais. 4.1.2. Klientas Na bet mums neužtenka vien web serviso mes norime turėti programėlę su kuria būtų galima iškviesti web servisą kad ir iš kito kompiuterio. Taigi kuriame naują „windows application“ formą (jei norime galime kurti ir web puslapį, nėra skirtumo). Sukūrus pirmiausias dalykas ką mums reikia padaryti tai nurodyti kur yra mūsų web servisas, taigi spaudžiame ant projekto dešinį pelės klavišą ir darome kaip pavaizduota. 7 pav. web nuorodos sukūrimas Ką mes darome toliau tai įkeliame į formą mygtuką bei laukelį vardui įvesti. Sukuriame „Button_click“ įvykį ir jame parašome kreipimąsi i serverį štai tokiu būdu. 8 pav. visų web serviso galimų metodų sąrašas Jeigu pastebėjote, Visual Studio programavimo aplinka mus informuoja kokie metodai yra web serveryje ir suteikia informacijos apie metodų deklaracijas, kas išties palengvina programavimo procesą. Visas programavimas kuris liečia kreipimąsi i serverį užima vos dvi eilutes. Užrašius šitas eilutes mums belieka parašyti kur atvaizduoti rezultatą gautą iš serviso. Aš pasirinkau „MessageBox“ objektą. Taigi spustelkime „Project run“ ir žiūrėkime kas gavosi. Iš ties paprasta ir genialu. 9 pav. Programas rezultatas Šitas pavyzdys buvo labai paprastas. Juo siekiau pademonstruoti kaip nesudėtinga sukuri serverį ir klientą kuris kreiptus į jį. 4.2. Sudėtingesnis klientas Prie šio kursinio darbo pridedu šiek tiek sudėtingesnį kliento programėlę, kuri kreipiasi į Lietuvos Banko sukurtą web servisą ir kaip rezultatą gauna tam tikros dienos norimos valiutos kursą arba visus kursus iškarto vienu metu. Šitą variantą pasirinkau todėl, kad norėjau sukurti kažką realaus ir naudingo. Trumpai papasakosiu kas čia per programa ir kaip ji veikia. Turbūt ne visi žino, o tiems kam reikia žino ir tyli, kad Lietuvos bankas teikia tam tikras web servisų paslaugas. Pirmiausiai pradėkim nuo paprasto pavyzdžio. Kaip matome pagal specifikaciją esančią puslapyje: http://webservices.lb.lt/ExchangeRates/ExchangeRates.asmx?op=getCurrentExchangeRate mums reikia paduoti valiutos santrumpą ir funkcija gražins šios dienos oficialų kursą. Pabandykit įvesti “USD” arba “EUR” (be kabučių). Ką gi jau pasiruošę pradėti? Susikūrėt naują Visual Studio C#, kokių komponentų reikės? Aš įsidėsiu Label, o jeigu norite jūs galite dar įsidėti „Button“, bet aš asmeniškai kodą rašysiu į Form funkciją Load. Svarbiausias dalykas prisikabinti web servisą prie programos, tam atlikti „Solusion Explorer“ lange paspauskite dešinį ant programos pavadinimo ir pasirinkite „Add Web Reference“. Atsiradusiame lange įveskite adresą norimo web serviso (pvz. http://webservices.lb.lt/ExchangeRates/ExchangeRates.asmx?op=getCurrentExchangeRate) paspauskite enter. Programa susiras jį ir pasiūlys įsidėti, standartiškai siūlomas pavadinimas yra lt.lb.webservices, tačiau aš tingiu tokį ilgą suvedinėti, todėl jį sutrumpinau iki webservices. Ir paskutinis žingsnis paspausti Add Reference. Taigi, prie visų džiaugsmų šone atsirado dar vienas naujas - web servisas. Dabar jau galim parašyti truputį kodo: webservices.ExchangeRates webresult = new webservices.ExchangeRates(); label1.Text = webresult.getCurrentExchangeRate("USD").ToString(); Sukuriam naują webservices.ExchangeRates objektą, užklausiam rezultatų ir priskiriam juos label. Paprasta? Sukompiliuojam, veikia. Šaunu! Tačiau toks kodas nebūtinai turėtų jus tenkinti. Galbūt jūs norėtumėte, kad būtų galima pasižiūrėti visų valiutų kursus? Ką gi pabandysim taip padaryti pasinaudodami kita web serviso funkcija – getListOfCurrencies. Šiuo atveju funkcijai nereikia paduoti jokių parametrų, bet už tai pažiūrėkite kokius rezultatus jinai gražina. Pabandom parašyti truputį kodo: webresult = new webservices.ExchangeRates(); myDataSet = new DataSet(); XmlNode node = webresult.getListOfCurrencies(); XmlNodeReader reader = new XmlNodeReader(node); myDataSet.ReadXml(reader); Vėlgi pirmiausia susikuriam naujus webservices.ExchangeRates ir DataSet objektus. Deja, šiuo atveju funkcija gražinanti rezultatus nėra tokia draugiška kaip mes norėtume, todėl jų negalime priskirti iš karto myDataSet, todėl sukuriamas XmlNodeReader objektas, kurį jau galime atiduoti myDataSet. Aišku šis kodas jums taip paprastai neveiks, nes reikia įtraukti papildomą biblioteką using System.Xml; Turbūt jau spėjote pastebėti, kad tas kodas, neišveda jokių rezultatų, o juk taip norėtųsi pažiūrėti kas darosi ar ne? Kad pažiūrėtumėte galite įsidėti dataGridview, jeigu neatsimenate - primenu kodą reikalingą duomenų priskyrimui šiam komponentui: dataGridView1.DataSource = myDataSet.Tables[0]; Rezultatai nevisai tokie kokių tikėjomės? Prirašome dar šitas eilutes: DataRow [] rows= myDataSet.Tables[1].Select("lang='en'"); foreach (DataRow row in rows) { myDataSet.Tables[1].Rows.Remove(row); }   foreach (DataRow ltrow in myDataSet.Tables[1].Rows) { listBox1.Items.Add(ltrow[1]); } Pirmoji eilutė išrenka visas eilutes, kurių stulpelis „lang“ turi reikšmę en, tada ciklo pagalba tokias eilutes pašalinu, na, o antrasis ciklas viską kas liko sušeria listBox. Jau turime visų valiutų sąrašą, bet tai vis dar ne tai, ką norėjome padaryti. Dabar patobulinsiu valiutos paėmimo kodą aptartą aukščiau, beje, jį aš rašysiu listBox click metode. int number = int.Parse(listBox1.SelectedIndex.ToString()); string money = myDataSet.Tables[0].Rows[number][0].ToString(); label1.Text = webresult.getCurrentExchangeRate(money).ToString(); Paspaudus ant listBox, tam tikras elementas yra pažymimas, pirmojoje eilutėje gauname pažymėto elemento eilės numerį ir pagal tą numerį paimame valiutos kodą saugomą myDataSet. O paskutinė eilutė jau turėtų būti aiški - užklausiame kurso. Dar norėčiau atkreipti dėmesį į Rows[number][0] pirmasis skaičius nurodo eilutės numerį, antrasis stulpelio. Net jei stulpelis yra tik vienas, kaip šiuo atveju, vis tiek jį reikia nurodyti. Štai ir viskas, beliko tik sukompiliuoti. Praktinė šio kodo nauda būtų tokia, kad greičiausiai jūs nežiūrėsite valiutų kursų kasdien, bet tuo pačiu principu galima pasidaryti įvairių programų pvz.: orų rodymas, Google Maps ir t.t. Išvados 1. Eksperimentiškai nustatyta, kad galima kurti heterogenines programų sistemas kuriuose būtų panaudoti ir .Net komponentai ir Web servisai. 2. Sukurtas tokios heterogenines sistemos komponento pavyzdys kuris pateikia bet kokios dienos, tam tikros valiutos kursą litais. Šiuos duomenis programa gauna tiesiogiai jungdamasi prie Lietuvos Banko valiutų kursų web serviso. 3. Mano nuomone, būtų pats laikas užmiršti tokius populiarius įrankius kaip PHP ir pradėti naudotis šiuolaikiškesnėmis technologijomis tokiomis kaip asp .Net. Literatūros sąrašas [Car04] David Cartwright, Microsoft .NET: What is it? - http://www.techworld.com/applications/features/index.cfm?featureid=327, 12KB, 2004-02-04 [Nep06] NePo, Laukinių web servisų medžioklė - http://pixel.lt/laukiniu-web-servisu-medziokle.html, 321Kb, 2006-04-01 [Pei06] Chris Peiris. Creating a .NET Web Service - http://www.15seconds.com/issue/010430.htm, 21,6KB, 2006-05-15 [Str02] Rick Strahl. Creating and using Web Services with the .NET framework and Visual Studio.Net - http://www.west-wind.com/presentations/dotnetwebservices/DotNetWebServices.asp. 23,4 KB, 2002-07-03

Daugiau informacijos...

Šį darbą sudaro 3220 žodžiai, tikrai rasi tai, ko ieškai!

Turinys
  • Įvadas 3
  • 1. .Net komponentas 3
  • 1.1. .NET komponentinės technologijos sąvoka 3
  • 1.1.1. Kas tai yra? 3
  • 2. Pasaulinis tinklas 4
  • 2.1. Pasaulinio tinklo sąvoka 4
  • 2.1.1. Kas tai? 4
  • 2.1.2. Web serviso pavyzdžiai 5
  • 2.1.3. Naudojami protokolai 5
  • 2.1.3.1 HTTP 5
  • 2.1.3.2 XML 5
  • 2.1.3.3. SOAP 5
  • 2.1.3.4. WSDL 5
  • 2.1.3.5. UDDI 6
  • 2.2. Paskirtis 6
  • 3. .NET komponentinių aplikacijų ir pasaulinio tinklo (web servise) sąveika 7
  • 3.1. Veikimo principai 7
  • 3.1.1. Visual studio ir .Net 7
  • 3.1.2. Pagrindiniai elementai dalyvaujantys serviso – kliento bendravime 7
  • 3.2. Sąryšio realizavimo principai 8
  • 3.2.1 Serviso metodai 8
  • 3.2.2. Pradinis .asmx puslapis 9
  • 3.2.3. Web servisų pasiekiamumas 9
  • 3.2.3.1 „HTTP GET “ operacija 10
  • 3.2.3.2. „HTTP POST“ operacija 10
  • 3.2.3.3. SOAP 10
  • 3.3. Klientas 10
  • 3.3.1. Sąrysio susiejimas su servisu 10
  • 4. Pavyzdžiai 12
  • 4.1. Paprastas web servias bei klientas 12
  • 4.1.1. Web servias 12
  • 4.1.2. Klientas 12
  • 4.2. Sudėtingesnis klientas 14
  • Išvados 16
  • Literatūros sąrašas 16

★ Klientai rekomenduoja


Šį rašto darbą rekomenduoja mūsų klientai. Ką tai reiškia?

Mūsų svetainėje pateikiama dešimtys tūkstančių skirtingų rašto darbų, kuriuos įkėlė daugybė moksleivių ir studentų su skirtingais gabumais. Būtent šis rašto darbas yra patikrintas specialistų ir rekomenduojamas kitų klientų, kurie po atsisiuntimo įvertino šį mokslo darbą teigiamai. Todėl galite būti tikri, kad šis pasirinkimas geriausias!

Detali informacija
Darbo tipas
Šaltiniai
✅ Šaltiniai yra
Failo tipas
RTF failas (.rtf)
Apimtis
18 psl., (3220 ž.)
Darbo duomenys
  • Interneto referatas
  • 18 psl., (3220 ž.)
  • RTF failas 8 MB
  • Lygis: Universitetinis
  • ✅ Yra šaltiniai
www.nemoku.lt Atsisiųsti šį referatą
Privalumai
Pakeitimo garantija Darbo pakeitimo garantija

Atsisiuntei rašto darbą ir neradai jame reikalingos informacijos? Pakeisime jį kitu nemokamai.

Sutaupyk 25% pirkdamas daugiau Gauk 25% nuolaidą

Pirkdamas daugiau nei vieną darbą, nuo sekančių darbų gausi 25% nuolaidą.

Greitas aptarnavimas Greitas aptarnavimas

Išsirink norimus rašto darbus ir gauk juos akimirksniu po sėkmingo apmokėjimo!

Atsiliepimai
www.nemoku.lt
Dainius Studentas
Naudojuosi nuo pirmo kurso ir visad randu tai, ko reikia. O ypač smagu, kad įdėjęs darbą gaunu bet kurį nemokamai. Geras puslapis.
www.nemoku.lt
Aurimas Studentas
Puiki svetainė, refleksija pilnai pateisino visus lūkesčius.
www.nemoku.lt
Greta Moksleivė
Pirkau rašto darbą, viskas gerai.
www.nemoku.lt
Skaistė Studentė
Užmačiau šią svetainę kursiokės kompiuteryje. :D Ką galiu pasakyti, iš kitur ir nebesisiunčiu, kai čia yra viskas ko reikia.
Palaukite! Šį darbą galite atsisiųsti visiškai NEMOKAMAI! Įkelkite bet kokį savo turimą mokslo darbą ir už kiekvieną įkeltą darbą būsite apdovanoti - gausite dovanų kodus, skirtus nemokamai parsisiųsti jums reikalingus rašto darbus.
Vilkti dokumentus čia:

.doc, .docx, .pdf, .ppt, .pptx, .odt