EPK Praktikum Ver2.5

Embed Size (px)

Citation preview

FAKULTET ZA POSLOVNU INFORMATIKU

Mihajlo Stanki, dipl. in.

ELEKTRONSKEPOSLOVNE KOMUNIKACIJE

PRAKTIKUM{ primena .NET tehnologije u Web programiranju }

2010.

Elektronske poslovne komunikacije PRAKTIKUM

SadrajP r e d g o v o r ............................................................................................... 5 Arhitekture elektronskog poslovanja (eBusiness) ......................................... 7 Troslojni (vieslojni) sistemi............................................................................. 8 Tehnologije distribuiranih objekata.................................................................. 10 Problemi sa starijim protokolima ..................................................................... 11 Web kao platforma poslovnih aplikacija ...................................................... 14 Server Side Scripting ..................................................................................... 18 ASP objektni model .................................................................................... 22 ASP slabosti ............................................................................................... 23 Objektno orijentisano Web programiranje .................................................. 26 .NET (dot net) strategija ................................................................................ 27 XML (eXtensible Markup Language)................................................................. 31 AJAX (Asynchronous JavaScript and XML) ........................................................ 32 ASP.NET deo Mikrosoftovog .NET Framework-a ...................................... 34 ta je to zapravo ASP.NET? ............................................................................ 35 . NET Framework .......................................................................................... 37 Platformaska nezavisnost i jezika neutralnost .................................................. 42 HTML i Web kontrole ..................................................................................... 44 WEB servisi .................................................................................................. 46 Procesiranje .aspx stranice ............................................................................. 47 Opsezi imena ili imenski prostor (namespaces) ................................................. 50 Izvravanje Web Stranica i Web Servisa ..................................................... 51 ASP.NET prednosti ..................................................................................... 55 Tendencije u razvoju ASP.NET-a ..................................................................... 60 Web forme i AutoPostBack ............................................................................ 61 Serverske kontrole ........................................................................................ 63 Korisnike kontrole ........................................................................................ 66 Teme........................................................................................................... 67 Master Pages ................................................................................................ 69 Personalizacija i lokalizacija ............................................................................ 71 Visual Studio .NET ........................................................................................ 72

2

Elektronske poslovne komunikacije PRAKTIKUM

IDE (Integrated Development Environment)..................................................... 75 Temelji prve aplikacije ................................................................................... 76 Transformacija HTML kda na serveru ............................................................. 81 Tipovi serverskih kontrola .............................................................................. 81 Pristup bazi podataka .................................................................................... 82 Kodiranje ..................................................................................................... 83 Page_Load ................................................................................................... 84 SQL ............................................................................................................. 84 Postback ...................................................................................................... 85 Popunjavanje HTML liste ................................................................................ 86 Skrivena kontrola .......................................................................................... 87 HTML tabl ................................................................................................. 87 Svojstva Web kontrola ................................................................................... 89 DataGrid (GridView) ...................................................................................... 90 Events ......................................................................................................... 92 AutoPostBack ............................................................................................... 92 Open Source reenja .................................................................................... 93 MySQL ......................................................................................................... 94 Aplikativni Server(i) ................................................................................... 103 Web (HTTP) Server(i)................................................................................. 106 L A B O R A T O R I J S K E V E B E ......................................................... 108 Veba 1: Upoznavanje sa .NET razvojnim alatima ..................................... 110 Visual Studio komponente ......................................................................... 111 Integrisano razvojno okruenje ..................................................................... 112 Terminologija objektno orijentisanog programiranja ........................................ 117 Veba 2: Upoznavanje sa sintaksom i svojstvima Web stranice, kontrolama i objektima ASP.NET aplikacije .................................................................... 120 Svojstva i sintaksa....................................................................................... 120 ASP.NET i ADO.NET konektovani i diskonektovani scenario ........................... 140 Veba 3: Kreiranje prostih Web formi kao demonstracija komunikacije sa Web serverom ............................................................................................ 152 Veba 4: Modelovanje baze podataka jedne Web aplikacije .................... 165 Veba 5: Fizika realizacija baze podataka eProdavnice .......................... 177

3

Elektronske poslovne komunikacije PRAKTIKUM

Kreiranje baze podataka pomou nezavisnog alata za modelovanje................... 177 Kreiranje SQL Server baze podataka korienjem MS SQL Server Management Studio Express alata .................................................................................... 188 Kreiranje SQL Server baze podataka korienjem Visual Studio server explorera. 197 Veba 6: Realizacija dinamike Web stranice za prikaz podataka iz izabrane SQL Server (MySQL) tabele ........................................................................ 202 Veba 7: Kreiranje Web stranice za auriranje i brisanje podataka u odabranoj SQL Server tabeli ...................................................................... 210 Veba 8: Kreiranje osnovnog menija za navigaciju ................................... 221 Veba 9: Realizacija Web forme za unos novog i auriranje tekueg sloga (reda) Details View ................................................................................. 231 Veba 10: Realizacija novog projekta novi Web sajt .............................. 239 Master strane Web sajta .............................................................................. 243 Povezivanje sa bazom podataka.................................................................... 248 Veba 11: Realizacija osnovnih sigurnosnih kontrola Web sajta .............. 252 Autentifikacija, Autorizacija, Korisniki nalozi, Uloge ........................................ 252 Veba 12: Realizacija Web stranice za prikaz i auriranje povezanih (master-detail) tabela ................................................................................ 259 Veba 13: Programiranje eCommerce funkcijonalnosti u sklopu Web aplikacije eProdaja..................................................................................... 272 eKatalog proizvoda ...................................................................................... 274 Identifikacija kupca ..................................................................................... 279 Veba 14: Realizacija eShoppingCart (eKorpa za naruivanje) ................ 281 Prijava kupca .............................................................................................. 285 Prikaz funkcionisanja korpe .......................................................................... 288 Administracija ............................................................................................. 290 Veba 15: Mogue varijante plaanja po zakljuenju narudbe ................ 295 Rad s raunima evidentiranih kupaca............................................................. 296 Plaanje ..................................................................................................... 296 Online autorizacija naplate karticama ............................................................ 297 Postupak korienja PayPal servisa za online plaanje ..................................... 298 Literatura ................................................................................................... 312

4

Elektronske poslovne komunikacije PRAKTIKUM

PredgovorU ovom Praktikumu prikazane su osnovne funkcionalnosti .NET tehnologije ika primena predstavlja trend u razvoju aplikativnog softvera uopte, a posebno Web baziranih poslovnih aplikacija. Praktikum je prvenstveno namenjen studentima Fakulteta za poslovnu informatiku Univerziteta "Sinergija" u Bijeljini, mada moe biti od koristi i svima onima koji ele da upoznaju savremene tehnike izrade Web aplikacija odnosno dinamikih Web sajtova. Kompletan sadraj Praktikuma ima univerzalan cilj - da se prenese znanje i viegodinje iskustvo izvoaa vebi na studente i da im se daju osnove za samostalno dizajniranje poslovnih Web aplikacija u buduem profesionalnom angamanu. U uvodnom delu, pored osvrta na savremene eBusiness modele, data su osnovna obeleja novog razvojnog koncepta u kome se Web prepoznaje kao platforma poslovnih aplikacija. Praktikum zatim prikazuje .NET familiju Mikrosoftovog softvera: .NET Framework, ASP.NET i Visual Studio .NET. Slede osnovni postupci dizajniranja jednog poslovnog modela baze podataka, sama fizika realizacija te baze, naini povezivanja sa bazom i naravno, kreiranje gradivnih elemenata konkretne Web aplikacije. Sve je to demonstrirano serijalom laboratorijskih vebi, tokom kojih se postupno izgrauje jedna vrsta e-commerce Web sajta gde se posebno izdvaja eShoppingCart (virtuelna korpa za online kupovinu) kao tipino reenje u savremenoj elektronskoj trgovini. Smisao svake vebe je upoznavanje studenata sa postupcima i mogunostima kreiranja jednostavnih elemenata dinamikog Web sajta upotrebom savremenog grafikog okruenja za dizajn i programiranje kakav je Visual Studio. U skladu sa studijskim programom predmeta Elektronske poslovne komunikacije, svi primeri u Praktikumu, obraeni kroz formu laboratorijskih vebi, realizovani su .NET tehnologijom to podrazumeva upotrebu ASP.NET-a, MS SQL SERVER baze podataka i C# programskog jezika za programiranje logike koja se izvrava na strani servera. Uporedo sa primerima zasnovanim na Mikrosoftovom softveru, sugerisana su i neka reenja iz Open Source domena kao to je naprimer, upotreba MySQL DBMS. Uloen je odreeni napor da primeri, realizovani kroz konkretne vebe, budu izloeni prikladnim logikim tokom koji diktira sama .NET tehnologija. Ukoliko se izgrauju predloenim redosledom predstavljae osnovne elemente kompletnog,

5

Elektronske poslovne komunikacije PRAKTIKUM

potpuno upotrebljivog Web sajta koji se uz nekoliko dodatnih funkcionalnosti i manje modifikacije u segmentu grafikog dizajna, moe primeniti u praksi. Svi saveti, uoene greke i eventualne primedbe na izloenu materiju su dobrodoli, a mogu se uputiti na e-mail adresu: [email protected]. Koristim priliku da se zahvalim kolegama - saradnicima na sugestijama pri izboru praktinih primera za ovaj Praktikum. Posebnu zahvalnost dugujem recenzentu, predmetnom profesoru dr. Duanu Regodiu na metodolokim savetima i sveukupnoj pomoi bez koje bi ovaj Praktikum bio nedoreen. Bijeljina, oktobar 2010. godine Autor

6

Elektronske poslovne komunikacije PRAKTIKUM

Arhitekture elektronskog poslovanja (eBusiness)Najefikasniji modeli arhitektura elektronskog poslovanja izgraeni su na osnovu paljive analize naina na koji kompanije posluju. Tokom analize se dolazi do zakljuka da implementacija odreene e-biznis arhitekture prua mogunost da njihovo poslovanje postane u celini efikasnije. Kada kompanija identifikuje osnovne funkcije svog poslovanja, tada treba da odlui koje od tih funkcija moe konvertovati u mrene aplikacije, posmatrajui ceo model sa praktinog stanovita, sa stanovita trokova kao i onoga ta se time dobija. Tek poto se odlui koji procesi mogu da se prevedu u uspene e-biznis aplikacije, kompanija moe poeti da bira tehnoloke komponente. Po definiciji, arhitekturu e-poslovanja ine svi delovi poslovanja kompanije u kojima se koristi raunarska mrea da bi se obavio neki deo transakcije. Tipina arhitektura se sastoji od aplikativnih reenja za naruivanje, obraunavanje, isporuku i realizaciju, kao i od mrene infrastrukture koja sve to povezuje i naravno, bezbednosnog sistema. Dobro je poeti od onih oblasti koja mogu lako da se transformiu u mrenu aplikaciju. Na taj nain kompanija lako moe da stekne iskustvo u elektronskom poslovanju i eventualno ostvari brz povraaj investicija. Druga dobra polazna taka su one oblasti u kojima mogu da se smanje trokovi uz pomo automatizacije koju donosi elektronsko poslovanje. Arhitekturu e-poslovanja ini nekoliko osnovnih hardverskih i softverskih kategorija. To su mrena infrastruktura, Web serveri, same aplikacije i serveri aplikacija, baze podataka i serveri transakcija, nasleena integracija i operativno okruenje na kome se sve to zasniva. Kako e-poslovanje osnovne kompanijske resurse stavlja na raspolaganje irem auditorijumu, odluke o sistemu bezbednosti su takoe vane. Kompanija mora da unapredi ve postojee bezbednosne mere ako one nisu adekvatne za elektronsko poslovanje - to obino jeste sluaj. Kompanija takoe treba da integrie novi sistem za e-poslovanje sa alatima za automatizaciju poslovanja koje ve ima, kao to su planiranje korporativnih resursa ili sistemi obrauna i fakturisanja. Slika 1 prikazuje kako napredni sistemi za e-poslovanje moraju da budu potpuno

7

Elektronske poslovne komunikacije PRAKTIKUM

konzistentni i da se sastoje iz minimalno tri osnovne tehnoloke komponente integrisana mrenim hardverom: korisniki interfejs zasnovan na Web itau kao prvi tehnoloki sloj, pri emu nije bitno koristi li se Internet ili privatna intranet mrea; sloj poslovne logike u sredini i u pozadinskom delu infrastruktura baze podataka.

Slika 1: Tehnoloke komponente savremene Web aplikacije

Troslojni (vieslojni) sistemi Pretea savremenih raunarskih sistema su mainframe sistemi, veliki centralni raunari koji su izmeu ostalog integrisali bazu podataka i na koje su bili prikljueni "glupi" terminali za manipulaciju informacijama iz baze, predstavljajui tako korisniki interfejs. Ovakvi sistemi bili su neraskidivo vezani, u ekonomskom i eksploatacionom smislu, za firmu koja je proizvodila i isporuivala i hardver i softver. Proirivanje i nadogradnja sistema bila je redovno skupa i teka, uvek je postojalo ogranienje na postojeu hardversko-softversku platformu, a esto samim tim i na jednu firmu koja je odravala sistem. Takvi sistemi su bili poznati kao dvoslojni (twotier), zato to je prezentacioni nivo (sistem terminala) bio neposredno vezan i praktino neodvojiv od nivoa podataka (DBMS/Operativni sistem).

8

Elektronske poslovne komunikacije PRAKTIKUM

Razvoj personalnih raunara i komunikacionih tehnologija, pre svega Internet tehnologija, uslovili su potrebu za nadogradnjom postojeih sistema i tesnu povezanost sa korisnicima, bilo da su to zaposleni u organizaciji, potroai, drugi delovi organizacije, srodne institucije ili poslovni partneri. Za takvu zamisao reenje je naeno u troslojnim (three-tier) i vieslojnim (multi-tier) sistemima. Delovi aplikacije koji su zadueni za poslovnu logiku instaliraju se na posebnom serveru, PC raunari, mobilni ureaji i sl. obuhvataju korisniki interfejs (presentation layer), a baza je izdvojena na poseban server (database-tier) - Slika 2. Na taj nain su olakani instalacija i odravanje softvera. Kako su korisniki programi postali mali, pitanje njihove distribucije reeno je prikljuenjem na mreu. Nadogradnja postojeih aplikacija je postala bezbolna po prikljuenju na mreu, aplikacija detektuje da postoji nova verzija, preuzme je sa mree, instalira ja i nastavlja rad. Aplikacije na srednjem nivou se lako administriraju, a svaka promena na serveru ne zahteva promenu na korisnikim aplikacijama.

Slika 2: Koncept savremene troslojne arhitekture Praktino, ostvaruje se nezavisnost u smislu odvojenog razvoja klijentskih aplikacija, dodavanja novih operacija unutar poslovne logike ili intervencija na samoj bazi. Ukoliko na srednjem nivou ima vie raunara sa kojima korisnik moe da komunicira u zavisnosti od tipa obrade, govorimo o vieslojnim (multi-tier) sistemima. Komponente aplikacije su tada distribuirane po razliitim raunarima: ulazimo u eru arhitekture distribuiranih objekata.

9

Elektronske poslovne komunikacije PRAKTIKUM

Tehnologije distribuiranih objekata ta je to distribuirani objekat? Prosta definicija kae da je to objekat koji se definie na jednom sistemu, a moe se koristiti i na drugom. U ovoj komunikaciji moe uestvovati jedan ili vie raunara. Cilj je da se obezbedi integracija servisa sa razliitih platformi. Sistem zasnovan na distribuiranim objektima je skup objekata koji jasno razdvaja one koji zahtevaju usluge (klijenti) od onih koji pruaju usluge (serveri) uz pomo dobro definisanog enkapsulirajueg interfejsa. Drugim reima, klijenti su odvojeni od implementacije servisa, npr. zapisa podataka i izvrnog kda. Ovo je jedna od najbitnijih razlika koja izdvaja model zasnovan na distribuiranim objektima od istog klijentserver modela. Primenom distribuiranih objekata mogu se kreirati klijentserver aplikacije sa troslojnom ili vieslojnom arhitekturom, koje omoguavaju implementaciju sinhronih ili asinhronih reenja za Internet, intranet i/ili ekstranet. S obzirom da se sistemi zasnovani na distribuiranim objektima razvijaju ve deceniju unazad, na tritu postoji niz razliitih platformi (tehnologija) za implementaciju vieslojne arhitekture. Pri odabiru distribuirane tehnologije treba obratiti panju na sledee parametre: prenosivost (portabilnost) klijentske i serverske platforme, prenosivost programskog jezika, performanse pri izvravanju, jednostavnost razvoja, sigurnost. Rezultati testiranja na razliitim komunikacionim modelima za udaljeno pozivanje komponenata do danas su jasno identifikovali sledee tehnologije:

COM+ / DCOM COM+ predstavlja evoluciju starije tehnologije COM (Component Object Model). COM je specifikacija za objekte koja definie interfejs preko koga razliiti objekti mogu da komuniciraju. COM je nezavisan od programskog jezika ukoliko implementira COM interfejs. Teoretski moe da se implementira na razliitim operativnim sistemima, meutim, ne podrava ih niko osim Microsoft Windows-a. Da bi se omoguilo da COM objekti sa razliitih sistema meusobno razmenjuju informacije, COM specifikacija je proirena i nastao je DCOM (Distributed COM). DCOM poseduje znatno kompleksniji model konfiguracije i sigurnosti.

10

Elektronske poslovne komunikacije PRAKTIKUM

CORBA / IIOP CORBA (Common Object Request Broker Architecture) je konkurentska specifikacija kreirana od strane Object Management Group, grupe IT firmi koje razvijaju srednji sloj. CORBA je nezavisna od jezika i implementirana je na veem broju platformi nego COM. Meutim, postoje nekompatibilnosti izmeu implementacija razliitih proizvoaa. CORBA predstavlja object bus koji omoguava klijentu da poziva metode sa objekta na serveru uz nezavisnost programskog jezika i lokacije objekta. Interakcija je omoguena preko ORB (Object Request Brokers) komponenata na klijentu i na serveru, a komunikacija se odvija preko IIOP-a (Internet Inter-ORB Protocol). Mogunosti CORBA objekata definisane su pomou IDL (Interface Definition Language). EJB / RMI over IIOP EJB (Enterprise JavaBeans) je specifikacija koju je izdao Sun Microsystems za Java Platformu. EJB je nezavisna od platforme, ali ne i od jezika. Svi EJB objekti moraju biti napisani u jeziku Java. Za komunikaciju izmeu razliitih sistema, EJB koristi varijantu IIOP (Internet Inter-Orb Protocol) nazvanu RMI preko IIOP (Remote Method Invocation over IIOP). RMI je protokol rezervisan samo za Javu. SOAP SOAP (Simple Object Access Protocol) je kompletno kreiran na postojeim, proverenim i iroko prihvaenim tehnologijama kao to su HTTP i XML. SOAP koristi XML za prenos podataka izmeu aplikacija, a poto je XML univerzalni standard, sve platforme mogu da pristupe i obrade informaciju. Poto koristi HTTP, jednostavno prolazi kroz port 80, tako da firewall-ovi ne predstavljaju problem. Pristup razliitim aplikacijama na raznim platformama sa SOAP-om postaje jednostavan, Java aplikacija na Unix-u jednostavno moe da poziva metode COM objekta na Windows serveru, a klijentska aplikacija na iMac-u pristupa objektu na mainframe raunaru. Sve ovo postaje transparentno i ne zahteva bilo kakvu posebnu administraciju. Problemi sa starijim protokolima Glavni problem kod starijih protokola, kao to su DCOM, IIOP i RMI/IIOP, nalazi se u nekompatibilnosti (teko prilagoavanje datih protokola), tako da razliite aplikacije meusobno ne mogu da komuniciraju. Druga bitna stvar je da ne

11

Elektronske poslovne komunikacije PRAKTIKUM

funkcioniu u prisustvu firewall-a, to znai da aplikacije sa raznih lokacija ne mogu uvek meusobno da komuniciraju.COM+/DCOM Format Platforma Programski jezik Izrada Sigurnost Lociranje Opis tipova podataka DogaajiCOM+ Events Binarni Windows Nezavisan Moderna(RAD) Win NT Security

IIOPBinarni Unix Nezavisan Sloena CORBA security service Referenca IDL CORBA event service

RMI/IIOPBinarni Nezavisan Java Moderna Java security

SOAPUnicode Nezavisan Nezavisan Jednostavna HTTP/SSL, XML signature URL XML Schemas

SOAP ne pokuava da zameni bilo koji drugi distribuirani sistem. SOAP je manje moan, ali je impresivan u svojoj jednostavnosti i proirivosti, to je veoma korisno s aspekta potrebe za to irim prihvatanjem, i od strane kompanija, i od strane programera. Jednostavne stvari se mnogo bre usvajaju i prihvataju. Web servisi i druge tehnologije su kreirani iz razliitih razloga korienja, iako su u prirodi komplementarni. CORBA, COM+, DCOM, EJB omoguavaju razvijanje infrastrukture srednjeg sloja, sa snanim i skalabilnim funkcionalnostima, za kreiranje informacionih sistema. Za mnoge kompanije, proces prelaska poslovnih funkcija na novu, savremenu WEB tehnologiju je deo reinenjeringa tih funkcija radi poboljanja njihove efikasnosti, boljeg reagovanja korisnika i bolje strukture trokova. Na slici 3. su prikazane komponente e-poslovanja (eBusiness) odnosno, dat je prikaz kako su povezani kritini poslovni sistemi direktno sa klijentima, zaposlenima, partnerima i dobavljaima putem intraneta, extraneta ili najee Interneta. Treba imati u vidu da je svrha svake tehnologije da zadovolji odreenu ljudsku potrebu. im se to promeni, bilo da tehnologija postane sama sebi svrha, navedena potreba nestane, nae se kvalitetnija ili jeftinija tehnologija koja reava isti zadatak ili se desi neto tree - ta tehnologija jednostavno umire. Tako su pogon na elektrinu

12

Elektronske poslovne komunikacije PRAKTIKUM

energiju i motori sa unutranjim sagorevanjem zamenili parnu mainu, tako je telefonija zamenila telegraf i tako dalje.

Slika 3: Komponente e-poslovanja Ono to je bitno u celoj prii je da se stvari menjaju. Ljudske potrebe se menjaju, nestaju, ire se ili smanjuju. A tehnologije za njihovo reavanje prate te promene, evoluiraju i generalno tee da budu bolje, isplativije, jednostavnije, zdravije. Internet kao tehnologija (tanije skup tehnologija) nije nimalo drugaiji. I on evoluira, raste, menja se, a zanimljivo je da se to deava daleko bre nego kod veine tehnologija koje su mu prethodile. Internet je za nekoliko godina napravio rast za koji je mnogim tehnologijama pre bilo potrebno niz decenija (televiziji na primer). Pored velike brzine kojom raste zanimljivo je i to da dobar procenat posetilaca (njih oko 70%) vreme na Internetu provodi na utrb vremena koje su ranije provodili ispred televizora ili itajui tampu. Prema nekim istraivanjima, sam Internet preti da pretekne medije kao to su televizija i tampa u izrazito urbanim sredinama tehnoloki visoko razvijenih zemlja. Internet je pre svega osmiljen za razmenu informacija. Zahvaljujui svojoj fleksibilnosti i dinamici kojom se raunari razvijaju uspeo je da integrie stvari koje su do tada bile nezamislive. Uspena kombinacija multimedijalnog sadraja kao to je video i tekst nije se mogla jednostavno izvesti nigde drugde. A to je na najpoznatijem Internet servisu WEB-u danas sasvim normalno. itate portfolio neke kompanije i onda klikom na jedan link gledate snimak njihovog poslovnog prostora, proizvodnih pogona i zaposlenih kako rade. Pogledajte samo sajtove sa implementiranom, takozvanom Flash tehnologijom gde se pored bogate animirane grafike i interakcije istovremeno emituju muziki sadraji i slino.

13

Elektronske poslovne komunikacije PRAKTIKUM

Web kao platforma poslovnih aplikacijaWeb je jednostavno sadrajno bogat medijum. Tako je osmiljen i evoluirao je u odlian, danas moda ak i najbolji izvor informacija na Internetu. Pored samog sadraja koji dominira Web-om, Internet se razvio i u specifian usluni medijum, gde ljudi mogu da upravljaju dokumentima, pretrauju razne baze podataka, meusobno komuniciraju i tako dalje, a za sve je potreban samo Web ita (Web browser). Danas su uobiajni sajtovi gde se moete logovati, podesiti izgled sajta prema svojim potrebama, pretraivati brzo i jednostavno arhive, vriti razne kalkulacije, konverzije i slino. Takve stvari su definitvno danas deo online svakodnevice. Zbog specifinosti okruenja u kome Internet servisi pruaju takve usluge oni sami predstavljaju poseban tip aplikacija: Web aplikacije. Sasvim sigurno, pojam WEB je ve poznat iz apsolviranih studijskih sadraja, ali ipak definiimo ga na jedan pragmatian nain. Web (WWW = World Wide Web) je u sutini distribuirani, interaktivni sistem izgraen nad Internetom. Radi se dakle o usluzi koja se prua putem Interneta (i intraneta). Ta usluga je zapravo mogunost pregledanja (engl. browse) takozvanih Web stranica. Komunikacija se odvija HTTP protokolom, a osnovna karakteristika se ogleda u injenici da sve ide u paketima odnosno podaci se dele na pakete i alju mreom.

Slika 4: Koncept statikih WEB stranica

14

Elektronske poslovne komunikacije PRAKTIKUM

Jedna od najupeatljivijih karakteristika Interneta je njegova dinaminost i brzina kojom se sadraji na njemu menjaju. to se neki sajt ee menja i to vie raste potrebno je znatno vie vreme da se odreene izmene izvedu. U takvim sluajevima, a posebno na mestima gde su potrebne specifine funkcionalnosti Web sajta, statine stranice se zamenjuju dinamikim stranicama. Najoiglednija razlika meu njima je ta to dinamike stranice mogu da odgovore na razne zahteve korisnika umesto da se prikazuju samo onakvim kakvim ih je neko izvorno napravio. Kada, recimo, traimo arhivu vesti za mesec januar 2010. godine na nekom sajtu generalno se mogu desiti dve stvari: 1. Da budemo uslueni stranicom koja je namenski, "runo" napravljena (sakupljene su vesti za januar i kao takve objavljene). 2. Da aplikacija "razume" da traimo vesti za januar mesec 2010. godine, automatski ih pronae u bazi vesti za 2010. godinu, izdvoji ih i prikae.

Prednosti drugog pristupa su oigledne, posebno ako imamo na umu da neki sajtovi mogu da budu toliko veliki da je potrebna mala armija ljudi koja bi ih odravala. Naravno, treba napomenuti da na "klasian" nain neke stvari i ne mogu biti izvedene (Web-mail aplikacija, e-commerce reenja, itd.). Scenario po kome funkcioniu Web aplikacije je prilino jednostavan. Mi (tanije, na browser) aljemo zahtev Web serveru koji prosleuje upit Web aplikaciji, ona ih obradi, a rezultat vraa serveru, pa on opet nazad browseru (Slika 5.). U toj situaciji uopte ne znamo da li smo uslueni statikom stranicom ili je kd koji na browser prikazuje generisan od strane Web aplikacije. Nije ni bitno, dokle god prosleeni kd razume i moe da prikae na browser. Najbitniji zakljuak koji se prirodno namee je: Web aplikacije se ponaaju kao sajtovi. Razlog je vrlo jednostavan: one jesu sajtovi. I desktop aplikacije kao i Web aplikacije imaju jedan zadatak: reavanje odreenog ljudskog problema. Iako se pristup problemu i nain na koji ga reavaju ne razlikuje bitno izmeu ova dva modela aplikacija, okruenje u kome se obe izvravaju i nain interakcije sa korisnikom pravi veliku razliku meu njima. Oba koncepta donose niz prednosti i mana u odnosu na drugi, a meu najupeatljivije odlike Web aplikacija spadaju: - Aplikacija je samo na jednom mestu

15

Elektronske poslovne komunikacije PRAKTIKUM

Slika 5: Dinamiki koncept sa aplikacionim serverom Desktop aplikacije moraju biti instalirane na svim klijent raunarima da bi se uopte mogle koristiti. Kod Web aplikacije to nije sluaj jer se ona nalazi na jednom mestu (serveru ili grupi servera). Ovim se uklanjaju mnogi problemi, pre svega problemi sa distribucijom i nadgradnjom aplikacije. Bitna stvar je da u sluaju Web aplikacija korisnik nikada ne dobija samu aplikaciju, ve samo interfejs ka njoj to je u sutini sve to mu i treba. Ova injenica znatno olakava ivot obema stranama (i autorima i korisnicima Web aplikacija). - Sve to vam treba je browser Ovo je moda najbitnije obeleje Web aplikacija. Da biste koristili neku od ovih aplikacija potreban i dovoljan vam je samo Web browser. Ovo povlai niz prednosti: - veina zaposlenih ve zna da koristi Web browser, Web aplikacija se ponaa kao sajt sa im su skoro svi zaposleni ve imali priliku da se sretnu, klijent raunar nema posebne hardverske ili softverske zahteve osim onih koje mu namee sam browser, a one su u principu minimalne, aplikaciji se moe pristupiti sa bilo kog mesta na planeti pod uslovom da namenski nije izolovana (radi samo u okviru kompanijskog intraneta),

16

Elektronske poslovne komunikacije PRAKTIKUM

-

klijent nema potrebe da brine o instaliranju bilo kakvih dodatnih funkcionalnosti (upgrade, ispravke greaka i slino), sve izmene postaju dostupne korisnicima onog trenutka kada su implementirane u aplikaciju.

Kod desktop aplikacija korisnik je esto duan da instalira aplikaciju na svoj raunar, konfigurie je i da se kasnije stara da je sve u redu i da radi. Na ovaj nain klijent nije samo korisnik aplikacije ve i njen administrator. Kod Web aplikacija tog problema nema. Korisnik je samo korisnik, ne i osoba koja odrava aplikaciju. Nema glavobolje oko rezervnih kopija podataka, "padanja" aplikacije, softverske nekompatibilnosti i slinih stvari koje esto znaju biti veliki problem, posebno neiskusnim korisnicima raunara. Nadalje, kod Web aplikacija ne morate brinuti o tome da li e vam one instalirati neki dodatni, maliciozni (neeljeni) softvr (virus i sl.) ili na bilo koji nain ugroziti stabilnost vaeg raunara. Web aplikacije su sigurne koliko i browser na vaem raunaru poto on predstavlja sponu izmeu njih i sistema u celini. Slika 6. prikazuje bogatstvo klijentskih programa Web browsera koje svakodnevno upotrebljava 1,7 milijardi korisnika na koliko je procenjena Internet populacija poetkom 2010. godine.IE Microsoft Internet Explorer Mozilla Fire Fox Mozilla Sea Monkey Netscape nema tehniku podrku od januara 2008. Google Chrome Opera

Apple Safari

Slika 6: Najpoznatiji Web browser-i

17

Elektronske poslovne komunikacije PRAKTIKUM

Server Side Scripting Server side scripting je Web server tehnologija koja omoguava da se korisnikov zahtev ispunjava pomou skripta koji se izvrava na serverskoj strani kako bi se generisale dinamike HTML stranice. Uobiajno se koristi da bi se interaktivne Web stranice povezale sa bazama podataka, radi identifikacije korisnika, auriranja sadraja, stvaranja raznih diskusionih grupa i jo mnogo toga. Razlika izmeu skriptovanja na serverskoj i korisnikoj strani je u tome to se na korisnikoj strani skriptovi izvravaju u Web browseru korisnika, najee je u pitanju JavaScript. Tokom prvih godina Web-a, sve se obavljalo preko C programskog jezika, Perla ili Shell skripti (skripte pisane za komandni interpreter operativnog sistema) pomou Common Gateway Interface-a. Te skripte su bile izvravane od strane operativnog sistema, a rezultati prosleivani Web serveru. Danas ovi, i drugi online scripting jezici, kao to su ASP i PHP se najee direktno izvravaju od strane Web servera ili preko modula (mod_perl i mod_php) koji se dodaju Web serveru. I jedan i drugi oblik se moe iskoristiti da se napravi kompleksan Web sajt, ali se drugi nain pokazao efikasnijim, zbog breg izvravanja i manjeg korienja raunarskih resursa. Pregled server side scripting tehnologija:

ASP Active Server Pages, reenje firme Microsoft, preko vie jezika se moe ostvariti, mada se najvie koristi VBScript (koji se moe koristiti i kao client side scripting); ASP.NET naslednik ASP-a, deo Mikrosoftove .NET platforme; ColdFusion nekada u vlasnitvu Macromedije, danas deo Adobe-ove porodice, ColdFusion je programski jezik baziran na tagovima, slian HTMLu; JSP Java Server Pages, vlasnitvo firme Sun Microsystems (2010. godine Sun prelazi u vlasnitvo Oracle Corporation); SSI Server Side Includes, deo Apache Web servera; Perl - nije specijalno dizajniran za server side scripting, ali se esto koristi preko CGI ili specijalnog Apache modula; Python i TCL - jo dva jezika koji se koriste preko CGI; PHP veoma popularno open source reenje.

18

Elektronske poslovne komunikacije PRAKTIKUM

Nakon nekoliko loih poetaka (ADC, HTX), Mikrosoft se fokusirao na Active Server Pages tehnologiju (ASP) da bi olakao razvoj dinamikih HTML stranica i interaktivnih Web aplikacija. Kao to je ve izneto, za podrku ASP stranicama, na server raunar ste uz Internet Information Server (IIS) morali instalirati i ISAPI, koji je presretao sve zahteve za stranicama sa .asp ekstenzijom. Zahtevi i stranice na koje su oni upuivali obraivani su unutar ASP run-time okruenja. Takvo okruenje je omoguavalo ubacivanje programskog kda u HTML stranice. Skriptovi su se nalazili unutar specijalnih blokova ogranienih sa znakovima ili unutar elemenata koji su imali runat=server atribut. Na osnovu korisnikog zahteva, ovi skriptovi su procesirani i kao rezultat su kreirane HTML stranice koje su potom prosleivane korisniku.

Slika 7: Koncept Web aplikacije sa troslojnom arhitekturom

19

Elektronske poslovne komunikacije PRAKTIKUM

Pogledajmo kako izgleda ASP kd: Dobro doli u svet dinamikog Web-a! Dodali smo jednu liniju izvrnog kda da bismo demonstrirali nain na koji ASP prikazuje dinamiki sadraj. Korisnik nikada ne vidi kd izmeu znakova. Kada server primi zahtev za ASP stranicom, on e najpre izvriti ASP kd, a rezultat e biti obina HTML datoteka koju alje nazad korisniku. Slika 8. prikazuje kako funkcija Response.Write() ispisuje podatke u izlazni HTML dokument, dok je prikaz trenutnog datuma i vremena (asovnik na serveru) rezultat funkcije Now( ). Pogledajmo sada kako izgleda HTML kd vraen klijentovom itau:

Dobro doli u svet dinamickog Web-a! 22.12.2009 16:01:48

Slika 8: Primer jednostavne ASP Web aplikacije

20

Elektronske poslovne komunikacije PRAKTIKUM

Budui da je ASP kd isprepleten s HTML kdom, a za razvoj ASP aplikacija nije postojala adekvatna razvojna okolina, programeri su lako mogli praviti greke. Analizirajmo sledei jednostavan primer ASP kda za generisanje proste HTML tabele: Rb. Naziv

Programiranje i ovako bezazlenog primera moglo je zavriti kobno po Web server. Ako ste samo zaboravili napisati liniju za uveanje brojaa (i=i+1) - blokirali bi ste server tako stvorenom beskonanom petljom. Slika 9. prikazuje rezultat ispravno napisanog kda .

21

Elektronske poslovne komunikacije PRAKTIKUM

Slika 9: ASP stranica primer jednostavnog tabelarnog prikaza

ASP objektni model ASP objektni model sastojao se samo od est objekata: Request, Response, Session, Application, ObjectContext i Server. Request objekt se koristio za itanje podataka koji su se nalazili unutar HTTP zahteva za stranicom. Response objekt je omoguavao ubacivanje podataka (ukljuujui i HTML cookies) ili redirekciju zaglavlja u povratnom nizu podataka koji je upuen nazad na korisniki browser. Prilikom prvog korisnikog zahteva za ASP stranicom kreirao se session objekt. On je ostajao aktivan sve do isteka predefinisanog vremena od poslednjeg zahteva istog korisnika. Session objekt se koristio za uvanje podatka i objekata prilikom viestrukih zahteva za ASP stranicama istog korisnika. Session objekat je zasnovan na cookie-ima koji slui za manipulisanje promenljivim meu stranicama. Application objekt je funkcionalno slian session objektu, s jednom razlikom. U njemu su sauvani podaci i objekti svih korisnika od trenutka pokretanja aplikacije do njenog zatvaranja. Pomou njega moete pisati kd koji se automatski izvrava prilikom startovanja i zatvaranja ASP aplikacije. ObjectContext je koriten za potvrivanje ili prekidanje MTS (Microsoft Transaction Server) i COM+ (Component Object Model) transakcija. Server objekt je

22

Elektronske poslovne komunikacije PRAKTIKUM

omoguavao kreiranje COM objekata, enkodiranje HTML i URL stringova, te za pronalaenje stvarnih lokacija datoteka u odnosu na virtuelne putanje. Veina ASP Web stranica se piu u VBScript-u, ali se i drugi Active Scripting jezici mogu izabrati pomou naredbe @Language. JScript je drugi jezik koji je podran. Perl i ostali jezici se mogu dodati, ali tek uz pomo third-party endina. ASP slabosti ASP model je bio uspean i opte prihvaen, ali i kao takav je patio od mnogih znaajnih nedostataka koji su neminovno doveli do razvoja savremenijeg i daleko funkcionalnijeg ASP.NET-a. Svaki put kada je korisnik pristupao ASP stranici, ASP kd se interpretirao liniju po liniju. Ovo ste mogli zaobii samo kreiranjem ActiveX DLL datoteka u Visual Basicu, ali jednom pozvani DLL ostajao je u memoriji sve do sputanja Web servera. Ako vam Web server fiziki nije bio dostupan, postupak registracije predmetnih DLL-ova je bio gotovo nemogu bez pomoi administratora "s druge strane" mree. Stoga je odravanje ASP aplikacija bilo prilino mukotrpno. Budui da je ASP programski kd bio isprepleten s HTML kdom, Web programerima i dizajnerima bilo je gotovo nemogue raditi svoj deo posla, a da se pri tome ne "petljaju" u tui posao. Nimalo manji nedostatak predstavljala je i injenica da nije postojala kvalitetna integrisana razvojna platforma koja bi olakala izradu i testiranje ASP aplikacija. Microsoftov InterDev, Macromedijin Visual UltraDev i ostali alati olakali su razvoj, ali se funkcionalnou nikada nisu pribliili razvojnim alatima za Windows aplikacije. Kako su se za razvoj tipine ASP stranice kombinovale mnoge razliite tehnologije (VBScript, JavaScript, Cascading Style Sheets, Dynamic HTML, ADO, XML, XSL), programeri su se veinom oslanjali na jednostavan Notepad ili slian editor. Uobiajno je da se ASP stranice ponovno uitavaju kako korisnik unosi i selektuje podatke. Da prilikom ponovnog uitavanja korisnik ne bi izgubio ono to je prethodno uneo, bilo je potrebno napisati programski kd koji prihvaa podatke i prilikom ponovnog uitavanja stranice alje ih korisniku. Kada su u pitanju kompleksne stranice s velikim brojem objekata, pisanje ovog kda bilo je iscrpljujue i vrlo sloeno. Zatim, prilikom razvoja intranet reenja, moglo se pretpostaviti da svi korisnici imaju instaliranu noviju verziju browsera, naprimer Internet Explorer 6.0. U sluaju Internet reenja - to nije dolazilo u obzir. Ne elimo li ograniiti svoje Web stranice iskljuivo na osnovne HTML mogunosti, moramo pisati kd koji detektuje

23

Elektronske poslovne komunikacije PRAKTIKUM

tip i verziju korisnikog browsera i prilagoava mu HTML kd. Ako elimo podravati vie razliitih browsera, stvari e se prilino iskomplikovati. Napomenimo samo da podrka za mobilne ureaje (PDA, GSM telefoni ...) nije ni postojala. Svedoci smo korenitih promena koje su potresale Web u zadnjih 15 godina. Do pre desetak godina Web sajt je bio jedan direktorijum na nekom serveru u kome su se nalazili meusobno povezani dokumenti. Nikakve dinamike meu njima nije bilo. Kako se Web razvijao polako se poela ukazivati potreba za monijim reenjem, koje e uneti vie dinamike i olakati razvoj i odravanje Web sajtova. Tako su nastali dinamiki sajtovi iza kojih stoje Web aplikacije kakve s danas najee sreu. Nastali su portal sistemi, sistemi za upravljanje sadrajem, alati za upravljanje projektima, ekomerc i e-banking reenja te mnoge druge manje ili vie kompleksne aplikacije. Ono to je programerima donedavno nedostajalo je mogunost direktnog odgovora na korisnikov zahtev bez potrebe za ponovnim uitavanjem kompletne stranice. Zahvaljujui AJAX1 konceptu programeri su napokon dobili i tu mogunost, a jedan od pionira tog pokreta je Google sa svojim servisima kao to su GMail i Google Maps. Ohrabreni ovim potezom, programeri su poeli AJAX prebacivati i na .NET pa ete na Internetu pronai i varijantu Ajax.NET. Iskusniji "arhitekti" su po pravilu i kritiari AJAX strategije razvoja Web stranica. Naime, svaka Web aplikacija se moe apstrahovati u tri logika dela: prezentacioni deo (Web forme sa kojim rade korisnici ali i administratori), deo biznis logike koji bi trebao biti transparentan i na kraju, naravno, perzistencija (trajne biblioteke rutina). AJAX spaja prezentacioni deo sa biznis logikom kako bi se poveala efikasnost, brzina rada i jednostavnost upotrebe, ali time znatno smanjuje kvalitet informacionog sistema, posebno njegovu fleksibilnost. Moe se dakle slobodno zakljuiti da je AJAX idealno reenje za male, jednostavne i esto koritene servise. Mikrosoft-ov odgovor na pitanje kako pojednostaviti AJAX i iskoristiti sve njegove mogunosti je ASP.NET 2.0 ATLAS tehnologija. Na klijentskoj strani ATLAS prua impresivan skup JavaScript biblioteka koje sadre objektno-orijentisane mogunosti, HTML/HTTP za pozive procedura na udaljenim raunarima, te komponente sa event-ima i esto koritenim metodama poput drag and drop, auto completion, popup i mouse hovering. Na serverskoj strani Atlas se sastoji od ASP.NET serverske kontrole i ASP.NET servisa. Serverske kontrole su odgovorne za slanje klijentskih skripti na korisniku mainu, ime se omoguava transparentan i nezavisan rad od korisnikog browser-a.1

Asinhroni JavaScript + XML

24

Elektronske poslovne komunikacije PRAKTIKUM

Servisi nam omoguavaju da uvamo podatke o korisniku kao to je novi ASP.NET profiles koji je bio poznat pod nazivom Application i Session varijable. Personalizacija interfejsa, autentifikacija i uloge (roles) omoguuju da korisnik u zavisnosti od privilegija dobije manji ili vei broj kontrola na interfejsu i da iste sloi po svom nahoenju.

Slika 10: Arhitektura savremene WEB aplikacije Ako se u obzir uzmu sve injenice, budunost Web aplikacija je zagarantovana, posebno kada poslovni korisnici uvide sve prednosti koje one donose (pojednostavljeno odravanje, platformska nezavisnost i tako dalje). Sa irim prihvatanjem AJAX koncepta Web aplikacije e postajati sve slinije desktop aplikacijama. Naravno, neke desktop aplikacije nikada nee biti zamenjene Web aplikacijama (razvojna okruenja, grafiki softverski alati i slino), ali sistemi za kolaboraciju i upravljanje projektima, skladita dokumenata i sistemi za upravljanje dokumentima i sadrajem, webmail servisi, e-commerc reenja itd. to su savrena mesta gde Web aplikacije ve danas predstavljaju proverena i pouzdana reenje. Nezahvalno je predviati budunost, bar kada je IT u pitanju, ali se jasno namee zakljuak da je Web platforma budunosti. U vremenima kada je informacija vrlo skupa i kada postoji naglaena potrebe za brzom i pouzdanom razmenom informacija i unapreenjem komunikacije meu ljudima Web ima ogroman potencijal, daleko vei od svih odavno dostupnih, "klasinih" platformi. Na samom poetku Internet je sluio za prenos statinih HTML stranica na osnovu HTTP zahteva Internet pretraivaa (browsera) kako je to ranije prikazano na Slici 4. Te Web stranice sadravale su hiperlinkove koji su korisnicima omoguavali

25

Elektronske poslovne komunikacije PRAKTIKUM

jednostavno kretanje s jedne stranice na drugu. Ali to je bilo sve to se tie interaktivnosti. Evolucijom Interneta, razvijali su se sve sofisticiraniji naini koji su korisnicima omoguavali veu kontrolu nad stranicama koje su uitavali. HTML forme su omoguile unos informacija korienjem kontrola slinih onima koje su koristili u Windows operativnim sistemima (text box, list box, check box). Podaci iz tih kontrola bili su integrisani u HTTP upite koji su se slali na Web server nakon to bi korisnik pritisnuo submit dugme. Web serverske tehnologije, poput CGI-a (Common Gateway Interface) razvijene su da bi dodatno poveale interaktivnost. CGI skriptovi su korieni za presretanje odreenih Web zahteva i pokretanje programa koji su kreirali i vraali Web stranice. CGI se esto upotrebljavao i za pristup bazama podataka. Dananji Web se meutim, ne moe zamisliti bez Active Server Pages (ASP) tehnologije. Od svog prvog pojavljivanja u drugoj polovini 1996. godine, ASP se veoma brzo irio, da bi danas postao najee koriena tehnologija i de facto standard za programiranje na serverskoj strani u Windows okruenju. Standardna specifikacija za interfejs Web servera, Common Gateway Interface, dakle CGI, omoguavala je da izvrni program pristupi svim informacijama koje stiu sa strane klijenta. Program onda moe da generie izlaz, HTML stranu, i da je poalje klijentu putem Web servera. Da bi posao izrade ovakvih aplikacija bio jednostavniji, neki programski jezici, kao to je Perl, koriste procedure koje prihvataju tekstualne skript datoteke i izvravaju ih. Sve to programer treba da uradi je da napie skript, a Web server e ga izvriti koristei Perl interpreter. Mikrosoft je za IIS (Internet Information Server) razvio svoj interfejs poznat pod imenom ISAPI (Internet Server Application Programming Interface) koji se razlikovao od CGI-a po tome to je dozvoljavao da se kompajlirani kd u okviru DLL-a izvrava direktno od strane Web servera.

Objektno orijentisano Web programiranjeSvakih desetak godina pojavi se nova tehnologija koja menja pristup razvoju aplikacija. U ranim osamdesetim godinama prolog veka, te nove tehnologije bile su operativni sistem Unix s grafikim korisnikim okruenjem, i programski jezik C, za iji je razvoj zasluna kompanija AT&T. Poetkom devedesetih stigli su operativni sistem Windows i jezik C++. Svi ovi tehnoloki pomaci doneli su mnotvo promena u pristupu programiranju. Sledei talas stigao je 2000. godine, u vidu platforme .NET i programskog jezika C#. Prelaz na nove tehnike programiranja zaokruila je platforma .NET 2.0. Ipak treba naglasiti da se kompanije, pri razvoju svojih informacionih

26

Elektronske poslovne komunikacije PRAKTIKUM

sistema, u sutini opredeljuju izmeu dve platforme: Java i .NET. Ponekad obe platforme figuriu u istoj kompaniji gde delovi sistema rade na razliitim platformama i gde je neophodna njihova integracija. Reenje za integraciju su otvoreni standardi: XML za prezentaciju podataka XML Web servisi za integraciju sistema: - omoguuju komunikaciju izmeu slabo spregnutih delova sistema, - delovi sistema mogu raditi na razliitim platformama (Java, .NET, ...). Mikrosoft je neprikosnoveno krenuo napred s platformom .NET. Kada kompanija te veliine i uticaja potroi milijarde dolara i reorganizuje itave svoje strukture da bi podrala novu platformu, programeri to moraju zapaziti. Platforma .NET predstavlja veliku promenu u nainu na koji pristupamo programiranju. Ukratko, re je o novoj razvojnoj platformi za objektno orijentisano programiranje okrenuto Internetu. Za ovu platformu odabran je jezik C#, koji je od jezika C preuzeo efikasnost, od C++ objektno orijentisanu strukturu, od Jave visok nivo bezbednosti i mehanizam "ienja smea", a od jezika Visual Basic brzinu razvoja aplikacija. Zahvaljujui tim odlikama, C# je idealan jezik za programiranje vieslojnih Web aplikacija, zasnovanih na komponentama. Verzija C# 2.0 odabrana je za platformu .NET 2005, i sadri poboljane alatke i novo mono razvojno okruenje. Jednom reju, u pitanju je kruna istraivanja i razvoja u kompaniji Mikrosoft. .NET (dot net) strategija Predstavljajui novu strategiju razvoja aplikacija kao odgovor novostvorenim potrebama modernog poslovanja, Mikrosoft je za cilj postavio novi koncept: "Bilo kada, bilo gde, na bilo emu". Na tom konceptu je razvijena .NET tehnologija. Ona omoguava razvoj nove generacije kako desktop tako i Web aplikacija. Ideja je da se omogui pristup informacijama bilo kada, bilo gde i preko bilo kog ureaja. Za primer moemo uzeti neki Web servis za generisanje izvetaja, iji su finalni proizvod podaci u XML formatu. Kada se nalazite u kancelariji i koristite PC raunar, pozivom predmetnog Web servisa dobijate bogat ispis i kompletnu funkcionalnost. U sluaju da se nalazite izvan firme, naprimer u jednom od Internet kafea, i pomou Internet browsera pristupate istom Web servisu, ponovno e vam biti poslati isti XML podaci, ali e u ovom sluaju biti formatirani tako da se prilagode Internet browseru koji koristite i uz manje grafikih detalja zbog utede vremena prenosa. Istom Web servisu moete

27

Elektronske poslovne komunikacije PRAKTIKUM

pristupati i preko savremenih mobilnih ureaja i GSM telefona. I u tom sluaju e vam biti prikazani isti podaci, ali oni e biti formatirani i prikazani u skladu s mogunostima ureaja koji koristite za prikaz podataka. "Bilo kada, bilo gde, na bilo emu" je u stvari .NET tehnoloka vizija. Komponente Visual Studio .NET-a, ASP.NET-a i .NET Framework-a imaju zadatak pojednostavljenja razvoja takvih svestranih aplikacija.

Slika 11: .NET Framework - nova programerska paradigma .NET je dakle ime najmodernije platforme koju Microsoft vezuje za softverske tehnologije budunosti. U nazivu je osnovna poruka koju nosi ova tehnologija dostupnost u svakom trenutku na svakom mestu. Ova platforma predstavlja dugoroni i strategijski plan razvoja ne samo u Microsoftu. .NET daje realne osnove da postane osnovna platforma razvoja modernih aplikacija. Radni okvir .NET razvijen je sa ciljem da obezbedi okruenje za razvoj svih modernih aplikacija na Windows operativnom sistemu. Jedna od osnovnih osobina ove platforme je njena orijentacija ka distribuiranim aplikacijama preko Interneta. Ovo obavezno sa sobom nosi jo prednosti: Distribuirane aplikacije su vie objektno orijentisane; Ovaj stil programiranja ubrzava stvaranje kolekcije specifinog koda na jednom mestu, nasuprot dosadanjem stilu gde se stvaraju redundantne kopije na mnogo mesta;

28

Elektronske poslovne komunikacije PRAKTIKUM

Ovaj tip aplikacije prua softverske celine raspoloive razliitim ureajima preko posebnog interfejsa; Kontrolisanjem pristupa u realnom vremenu (real-time) ka distribuiranim vorovima (delovi jedne softverske celine ) mogue je lake kontrolisanje rada takvih aplikacija. Ovaj pristup pomera aplikacije od objektno orijentisanih u pravcu 'services provided'; Biblioteka klasa razvijena je od samog poetka koristei dragocena iskustva. Ovo kao rezultat ima dobar dizajn, dosledno i dobro definisanje osnovnih tipova; Jezika nezavisnost. Ovo je postignuto postojanjem meujezika, IL (Intermediate Language, ili MSIL), tj. kd napisan na bilo kom jeziku koji ima podrku za .NET prevodi se u kd razumljiv tom meujeziku; Podrka za Web (XML) servise. .NET ima razvijene alate za jednostavno pisanje XML servisa; Poboljani pristup dinamikim Web stranicama baziran na ASP.NET tehnologiji; Efikasniji pristup podacima preko ADO.NET klasa; .NET postavlja i novi pristup za zajedniko korienje koda. Nasuprot tradicionalnih .dll biblioteka, uvodi se koncept sklopova (assembly);

Zajedniko funkcionisanje razliitih platformi imperativ je u distribuiranim aplikacijama. Zato je bilo neophodno obezbediti standardizaciju u razmeni podataka. Tako je .NET platforma sagraena na standardima tehnologije XML i SOAP. Bez obzira na neosporan rast vanosti Web aplikacija u poslednjih desetak godina, mnogi iskusni programeri svim su silama nastojali izbei uee u njihovom razvoju. Zato? Proces razvoja Web aplikacija bio je neelegantan i ruan. Programeri su se odjednom nali na kljunoj prekretnici, vanoj poput one kada su s karakterbaziranog korisnikog interfejsa (MSDOS) prelazili na grafiki orijentisani interfejs (Windows - GUI). Veliki izazov je bilo odabrati novi alat i prihvatiti novu programersku paradigmu - Mikrosoftov .NET Framework. Ova paradigma je temelj razvoja, distribucije i korienja XML Web servisa (XML Web Services), ali i ostalih tipova aplikacija: desktop, mobilnih i svakako Web orijentisanih. Ideja vodilja prilikom razvoja .NET Framework modela bila je reiti fundamentalni problem prisutan od samih poetaka raunarstva - integraciju.

29

Elektronske poslovne komunikacije PRAKTIKUM

Poetkom treeg milenijuma aplikacije su evoluirale od pojedinanih softverskih sistema do kompleksnih mrenih reenja koja se prostiru na razliitim ureajima, servisima i operativnim platformama. Povezivanje ovih solucija je frustrirajui posao ako smo primorani da koristimo tradicionalne programerske alate i modele. XML Web servisi su Mikrosoftov odgovor na ovaj kompleksan izazov.

30

Elektronske poslovne komunikacije PRAKTIKUM

XML (eXtensible Markup Language)

Extensible Markup Language (XML) je specijalizovani jezik koji slui prenoenju formatiranih podataka. XML koncepcijski je slian HTML-u, moemo ga smatrati metajezikom koji upotrebljavamo za kreiranje drugih, specijalizovanih jezika. XML je dakle jezik koji programerima omoguuje kreiranje specifinih jezika za upotrebu na Webu. Microsoft, IBM i Oracle prihvatili su ga kao standard za podizanje performansi i funkcionalnosti Interneta. XML se upotrebljava prilikom razmene informacija izmeu poslovnih aplikacija, pa se pomou njega jednostavno i jeftino mogu obavljati on-line transakcije. Moe biti koriten i za prenos zvunog i video zapisa, i uopte bilo kojeg oblika podataka putem Weba. XML specifikacija se sastoji od tri dela. Prvi deo (primarni) je dizajniran kao uvod u ono to kreira XML emu. Drugi deo opisuje temeljne strukture koje se mogu kreirati korienjem XML eme, i definie pravila provere dokumenata, to omoguava izradu XML procesora. U treem delu su definisani jednostavni tipovi podataka zbog lakeg rukovanja datumima, brojevima i ostalim posebnim tipovima informacija. Upotrebom XML eme programeri mogu bolje definisati tipove stringova u dokumentu (npr. moete definisati predstavlja li broj u dokumentu celobrojnu vrednost ili recimo datum). Definisanje stringova je vano prilikom razmene informacija s korisnicima koji moda ne koriste isti XML jezik. Kompletnu specifikaciju XML jezika moete pronai n http://www.w3.org/XML/.

31

Elektronske poslovne komunikacije PRAKTIKUM

AJAX (Asynchronous JavaScript and XML)

Naziv potie od Asynchronous JavaScript and XML i odnosi se na nestandardni nain upotrebe JavaScript objekta XMLHttpRequest za povezivanje sa serverskim skript-kdom u razliitim formatima, npr. XML-om, HTML-om i standardnim tekst fajlom. Asinhroni nain rada se odnosi na mogunost izmene delova stranice bez osveavanja kompletne stranice, to omoguava bru reakciju na dogaaje koji nastaju u interakciji s korisnikom. Uz to, predvien je i rad sa XML dokumenatima. AJAX predstavlja posebnu kombinaciju vie tehnologija: Prikaz podataka je zasnovan na standardima XHTML i CSS, Dinamiki prikaz i interakcija se realizuju korienjem Document Object Model-a, Razmena i manipulacija podacima se vri korienjem XML i XSLT, Asinhroni pristup podacima se realizuje upotrebom XMLHttpRequest, Integracija tehnologija se vri pomou jezika JavaScript.

Na Slici 12. su prikazana dva razliita modela: klasine i AJAX Web aplikacije.

32

Elektronske poslovne komunikacije PRAKTIKUM

Slika 12: Dva savremena modela Web aplikacije Razlika je i u mehanizmu interakcije s korisnikom, koji je kod klasine Web aplikacije sinhroni, a kod Ajax aplikacije asinhroni:

Slika 13: Klasina sinhrona Web aplikacija

33

Elektronske poslovne komunikacije PRAKTIKUM

Slika 14: Asinhrona Web aplikacija (AJAX) U danima razvoja prvih aplikativnih reenja programeri su brinuli samo o tipu raunara za koje su izraivali aplikacije. Nedugo zatim morali su obratiti panju i na razliite operativne sisteme koji su se mogli instalirati na isti tip raunara. Ako danas elimo biti programer u trendu, moramo razvijati aplikacije koje e se moi izvravati na bilo kom raunaru, na bilo kom operativnom sistemu, bilo gde u svetu. ASP.NET bi nam mogao u tome pomoi.

ASP.NET deo Mikrosoftovog .NET Framework-aKada se 1996. pojavila beta verzija ASP-a (codename: Denali), zauvek je promenila razvoj Web aplikacija. Izvravanje kda u okviru Web strane je postalo veoma jednostavno i veoma mono. Finalna verzija ASP 1.0 koja se pojavila kao dodatak za IIS 3.0, ubrzo je postala iroko rasprostranjena. ASP 2.0 je stigao 1998. godine, kao deo besplatnog Windows NT4 Option Pack-a. ASP 2.0 i IIS 4.0 omoguili su kreiranje ASP aplikacija i izvravanje komponenti u zasebnom, sopstvenom, memorijskom prostoru (out-of-process). Poetkom 2000. godine, zajedno sa Windows-om 2000 i IIS-om 5.0 pojavio se i ASP 3.0, sa par manjih poboljanja. Meutim, to je danas samo deo istorije Web programiranja, a sve posle toga je ASP.NET.

34

Elektronske poslovne komunikacije PRAKTIKUM

ta je to zapravo ASP.NET?

Jednostavan, ali ne i dovoljno precizan odgovor bi bio da se radi o novom Mikrosoftovom "server side" skriptnom jeziku. Meutim, bilo bi to nedopustivo minimiziranje mone tehnologije. Za preciznije odreivanje uloge ASP.NET-a u svetu Web programiranja, potrebno je istai i par injenica iz prolosti razvoja tih tehnologija. Pre vie od petnaest godina napravljen je prvi prenos podataka http protokolom. Nedugo nakon toga protokol je iroko prihvaen, te se ukazuje potreba za definisanjem standardnog formata za opis dokumenata. I tu se HTML prepoznaje kao favorit, te neto kasnije i XML. HTML se pokazao odlinim za opis statikih dokumenata sa tekstom i grafikom. Meutim, za bilo kakvu interakciju s potencijalnim korisnicima bilo je potrebno neto vie. Reenja za izneti problem uglavnom se mogu svrstati u dve kategorije: skripte koje se izvravaju na strani servera, posebne aplikacije koje se takoe izvravaju na serveru. U prvu grupu se svrstavaju jezici poput PHP-a i klasinog ASP-a. Karakteristika tih jezika je kd koji je potpuno isprepleten s HTML kdom unutar iste datoteke. Na serveru se pokrene aplikacija koja izvrava taj kd naredbu po naredbu, te rezultat vraa unutar HTML stranice. Uz to to kd nije odvojen od dizajna, najvea mana ovog pristupa je brzina. Skripte se interpretiraju to znai izvravaju se daleko sporije od kompajliranih aplikacija. Reprezentativan primer drugog pristupa je CGI (Common Gateway Interface). Za svaki zahtev klijenta na serveru se pokree posebna aplikacija koja dinamiki generie HTML stranicu. Poto se ne radi o skripti, ve o kompajliranoj aplikaciji, brzina izvoenja je vea, ali su vei i zahtevi za serverskim resursima. ASP.NET nije mogue svrstati niti u jednu od ovih grupa. Integracijom (novih) programskih jezika i posebnih softverskih sistema na serveru (.NET Framework) u svet Web programiranja uvedene su pogodnosti do sada dostupne samo programerima desktop aplikacija. Zato takav zaokret? Zato je Mikrosoft odustao od klasinog ASP-a i okrenuo se potpuno novoj platformi? Ako ve iznetom problemu brzine dodamo i to da su za najjednostavnije operacije klasinim reenjima potrebne desetine linija kda, sve skupa postaje gotovo

35

Elektronske poslovne komunikacije PRAKTIKUM

neupotrebljivo za bilo kakve kompleksnije e-biznis zadatke. Drugi veliki problem bio je sam jezik. Za kreiranje ASP kda koriste se skriptni jezici poput VBScripta, koji izvorno nisu bili namenjeni za korienje u Web okruenju. Jedina prednost je bila ta to programeri nisu morali uiti novi jezik, a cena koju je bilo potrebno platiti za to su znatno loije performanse. Svaka varijabla unutar ASP skripti je tipa variant, zbog ega zauzima vie memorije. Osim toga, bilo je gotovo onemogueno kreiranje razvojne platforme koja bi ASP programerima ponudila naprednije opcije poput upotrebljivog Debugging alata ili IntelliSens-a. Sa ASP.NET-om stvari stoje mnogo bolje. Web aplikacije se piu na slian nain kao i desktop aplikacije, uz potovanje pravila objektno orijentisanog programiranja. Ipak najvanija razlika u odnosu na klasini ASP je ta to se sada kd prevodi (kompajlira), te izvrava unutar CLR-a (Common Language Runtime). Sam kd je mogue pisati u bilo kom programskom jeziku za koji postoji prevodilac. Jedna od velikih novosti su i Web servisi, o kojima neto vie u jednom od narednih poglavlja. ASP.NET je dakle vrlo efikasan programski model (platforma) za razvoj: Windows aplikacija; Web aplikacija; Web formi (UI za Web aplikacije); Web servisa (programske komponente, koje donose dodatne, vrlo specifine funkcionalnosti, do kojih dolazimo putem posebnih Web protokola). ASP.NET se temelji na: Microsoft .NET Framework-u; Microsoft Internet Information Services-u (IIS). Primetite da izbegavamo frazu: "razvoj aplikacija u operativnom sistemu Windows". Iako je prva verzija .NET okruenja radila samo na operativnom sistemu Windows, budui planovi su podrazumevali i rad na drugim sistemima, kao to su FreeBSD, Linux, Macintosh, pa ak i na ureajima klase linog digitalnog asistenta (PDA). Jedan od kljunih razloga za razvoj ove tehnologije je namera da ona postane sredstvo kojim se vri integracija razliitih operativnih sistema. Pored toga, ova definicija .NET okruenja ne ograniava mogunosti bilo kog tipa aplikacije. Ogranienja zapravo ne postoje - .NET okruenje daje nam mogunost izrade Windows aplikacija, Web aplikacija, Web servisa i skoro svega ostalog to bi se moglo zamisliti. .NET okruenje je dizajnirano tako da se moe koristiti bilo koji programski

36

Elektronske poslovne komunikacije PRAKTIKUM

jezik: C#, C++, Visual Basic, JScript, pa ak i stariji jezici kao to je COBOL. Da bi sve to funkcionisalo, pojavile su se i posebne verzije ovih jezika za .NET: Managed C++, Visual Basic .NET, JScript .NET, kao i razni drugi. Ne samo da svi oni imaju pristup .NET okruenju, ve mogu i meusobno komunicirati. Sasvim je mogue prilikom programiranja u jeziku C# koristiti kd napisan u Visual Basic.NET-u, kao i obrnuto. Sve ovo omoguuje dosad nezamisliv nivo viestruke namene, to pored ostalog .NET okruenje ini toliko atraktivnim.

. NET FrameworkKada je u pitanju .NET Framework radi se zapravo o ogromnom, hijerarhijski ureenom skupu klasa, struktura, interfejsa i ostalih programskih elemenata. Te iste klase koriste se i kod programiranja desktop aplikacija i kod Web aplikacija, ime su ta dva tipa programiranja postala blia nego ikad do sada. Velika prednost ASP.NET-a u odnosu na neka druga reenja je brzina. Ta brzina je direktna posledica toga to se ASP.NET aplikacije prevode (kompajliraju). Prevoenje se odvija u dva stepena kako je to prikazano Slikom 16. U prvom stepenu kd se prevodi u "meujezik" nazvan Microsoft Intermediate Language (MSIL ili samo IL). Drugi stepen prevoenja deava se u trenutku kada se aplikacija izvrava. Tada se IL pseudo kd prevodi u mainski kd. Ova faza poznata je kao JIT ("just-in-time") prevoenje, i odvija se na isti nain kod svih .NET aplikacija. JIT prevoenje ne bi imalo smisla kada bi se odvijalo svaki put kada se zatrai Web stranica. Umesto toga, prevoenje se izvrava samo prvi put, te svaki put kada se izvre eventualne promene u kdu. Zahvaljujui prevoenju u IL, .NET kd je mogue pisati u itavom nizu razliitih jezika (C#, VisualBasic.NET, JScript.NET, ...). Svi se oni prvobitno prevode u IL, koji je zapravo jedini jezik kojeg CLR prepoznaje, te se zatim konano prevode u mainski kd razumljiv procesoru. Kao to je ve reeno, jedan od najvanijih aspekata ASP.NET-a je taj to se izvrava unutar CLR okruenja. Pa koja je zapravo uloga CLR-a? Radi se o kompleksnom okruenju iji su zadaci izmeu ostalog i automatsko upravljanje memorijom, takozvano "skupljanje smea", pruanje podataka o dostupnim klasama, njihovim lanovima, tipovima podataka, i ostalim programskim elementima, obraivanje greaka i slino.

37

Elektronske poslovne komunikacije PRAKTIKUM

Za razliku od ASP-a, iji objektni model predstavlja samo tanki sloj iznad HTTP-a i HTML-a, ASP.NET nudi pravi, objektno orijentisani model. Najbolji primer za to su serverske kontrole, kojima je mogue manipulisati preko implementiranih metoda, dok su detalji vezani za HTML kd skriveni od programera. U poslednjih nekoliko godina, znaaj Interneta je enormno porastao u gotovo svim oblastima raunarstva i obrade informacija. Direktan rezultat takvog rasta je taj to se od programera trai da kreiraju aplikacije koje maksimalno koriste mogunosti Interneta, bilo da je to proces naruivanja robe, isporuka robe, online saradnja ili bilo koja druga upotreba. Naalost, razvojni alati koji su ranije bili dostupni programerima, kao to je Visual C++ i Visual Basic, potiu iz pre-Internet ere. Bilo koja Internet mogunost koju su imali je bila rezultat naknadnog dodavanja, koje je trebalo da zadovolji potrebe programera. Treba ipak biti poten pa rei da su neke ranije tehnologije Internet programiranja, takoe bile impresivne i mnoge odline aplikacije su bile kreirane sa njima. Ali uprkos tome, injenica da potpune Internet mogunosti nisu bile ugraene u ove alate za programiranje od samog poetka vodila je do nezaobilaznih problema kod efikasnosti pri razvoju, grekama i oteanom odravanju programa. Mikrosoftov odgovor na ovu dilemu je da krene od poetka, kreirajui novi strukturni okvir programerskih alata koji je dizajniran sa potpuno integrisanom Internet podrkom. .NET (itaj: dot net) je dakle, naziv za najnoviju Mikrosoftovu viziju budunosti raunarstva u kojoj se aplikacije izvravaju distribuirano putem Interneta. Da bi to ostvarili, bilo je potrebno ispuniti nekoliko uslova. Kao prvo, distribuirano raunarstvo je konceptualno isto objektno orijentisanom programiranju, to se najbolje vidi u sposobnosti da se programski kd za odreenu operaciju smeta u jedan blok, umesto da se prepisuje gde god je to potrebno. Upravo prelazak na distribuirani model doneo je toliko potrebnu efikasnost u razvoju aplikacija. Drugo, smetanjem specijalizovanog kda na jedno mesto i otvaranjem javno dostupnog interfejsa, razliiti ureaji (telefoni, PDA, stoni raunari itd.) su podrani istim programskim kdom. Odavde vue korene Mikrosoftova filozofija pokrei uvek i na bilo emu. I kao tree, kontrolom pristupa u realnom vremenu distribuiranim resursima, kompanije imaju mogunost bolje kontrole izvravanja svojih aplikacija. Na taj nain aplikacije sa koncepta posedujem objekt prelaze na koncept podravam servis. Zanimljivo je da Mikrosoft prelaskom na .NET odustaje od strogog naina patentiranja svog vlasnitva (sve tehnologije koje razvije nastojao je prilagoditi Windows operativnom sistemu). Poto sada budunost vidi u pruanju softverskih servisa putem distribuiranih aplikacija, .NET Framework je napravljen tako da

38

Elektronske poslovne komunikacije PRAKTIKUM

aplikacije i na drugim platformama mogu pristupiti tim servisima. Na primer, .NET je izgraen na standardizovanim tehnologijama poput XML-a i SOAP-a. U aspektu razvoja aplikacija, .NET se oslanja na .NET Framework. .NET Framework, kao to smo ve nauili, je platforma za razvoj, instalaciju i pokretanje Web aplikacija i XML Web servisa. .NET Framework se sastoji od dva glavna dela: CLR-a (Common Language Runtime) i FCL-a (Framework Class Library). CLR upravlja memorijom, izvrava kd, brine se o sigurnosti kda, prevodi (compilation) kd u mainski jezik, te upravlja ostalim sistemskim resursima. CLR je dizajniran za maksimalno iskorienje performansi raunara na kojem se izvodi programski kd, tako da se CLR brine o mnogim standardnim servisima za vreme izvravanja kda. Jo jednom se potsetimo da se kd nikada ne interpretira. CLR koristi Just-In-Time (JIT) kompajler koji prevodi kompletan CLR pseudo-kd u mainske CPU instrukcije pre izvravanja. CLR ima dve zanimljive mogunosti. Prva je ta da mu je specifikacija otvorena to omoguuje portiranje na newindows operativne sisteme. Drugo, za pisanje aplikacija koje koriste standardne klase moe se koristiti bilo koji programski jezik koga podrava CLR.

Slika 15: Struktura .NET Framework-a

39

Elektronske poslovne komunikacije PRAKTIKUM

Jedan od jezika koji se savreno uklapa u .NET Framework jest C#. Taj novi jezik, naslednik C++, objavljen je zajedno s .NET Frameworkom, te je zato logino da bude primarni programski jezik za pisanje .NET aplikacija(Slika 15.). to se tie FCL-a, u pitanju je hijerarhijski set unifikovanih biblioteka klasa.

Tabela 1: Verzije .NET Framework-aVerzija 1.0 Slubena oznaka 1.0.3705.0 Godina izdavanja 2002. Visual Studio Visual Studio .NET Visual Studio .NET 2003 Visual Studio 2005 Windows Server 2003 Windows XP, Windows Server 2003 Windows Vista, Windows Server 2008 Visual Studio 2008 Visual Studio 2010 Windows Vista, Windows Server 2008 R2 Windows 7, Windows Server 2008 R2 Podrazumevani Windows OS

1.1 2.0

1.1.4322.573 2.0.50727.42

2003. 2005.

3.0

3.0.4506.30

2006.

3.5

3.5.21022.8

2007.

4 Beta 2

2009-2010.

40

Elektronske poslovne komunikacije PRAKTIKUM

ASP.NET je deo .NET SDK-a (Software Development Kit) koji predstavlja skup tehnologija neophodnih za pravljenje i testiranje .NET aplikacija. Microsoft tvrdi da SDK moete instalirati bez brige za svoje postojee klasine ASP aplikacije. Teoretski gledano, ASP.NET i ASP aplikacije mogu zajedno da egzistiraju. Ekstenzije datoteka ASP aplikacija (.asp, .asa) se razlikuju od ekstenzija datoteka ASP.NET aplikacija (.aspx, .asax, .ascx, .asmx) tako da se mogu nalaziti ak i u istom folderu. Kada se ASP3 pojavio, nije se mnogo razlikovao od verzije 2. Sa ASP.NET-om situacija je sasvim drugaija, on je radikalno promenjen u odnosu na stari ASP2 i ASP3. Doiveo je fundamentalne promene i obezbedio nam kompletno nov pristup Web programiranju. Kao to je bio sluaj kod ASP aplikacija i ASP.NET aplikacije se mogu pisati u najobinijem tekst editoru. Meutim, vie se ne koriste obini skript jezici ve je mogue koristiti proizvoljan .NET programski jezik. Za sad su na raspolaganju nekoliko takvih jezika: C#.NET, VB.NET, Visual C++.NET, Visual J#.NET i JScript.NET. Ove jezike podrava Visual Studio .NET, ali treba istai da postoji jo niz jezika za .NET: COBOL, Component Pascal, Delta Forth, Eiffel, Fortran, Perl, Python, SmallScript, SML.

Slika 16: Model dvostepenog prevoenje (kompajliranja) ASP.NET aplikacija

41

Elektronske poslovne komunikacije PRAKTIKUM

Iako uoavamo da je ASP.NET stranice jo uvek mogue razvijati sa JScriptom, re je o znaajno promenjenoj i unapreenoj verziji. Za razliku od "klasinog" ASP-a, ASP.NET stranice se ne interpretiraju kada ih browser zatrai. Umesto toga, prvi put kada se stranica poziva, ona se kompajlira u Intermediate Language (IL). IL kd se zatim sauva i svaki sledei put kada se ta stranica zatrai, on se poziva, dodatno kompajlira pomou Just-In-Time (JIT) kompajlera i kao takav izvrava (Slika 16.). Rezultujua HTML strana se zatim alje browser-u. Platformaska nezavisnost i jezika neutralnost Programski jezik C# je definisan u Mikrosoftu, ali je standardizovan (ECMA334). Multijezika .NET platforma je osnova za razvoj i izvrenje C# programa. C# nije jedini jezik za razvoj aplikacija za .NET platformu. U osnovi radi se o slinoj ideja kao kod Jave: C# se prevodi u meukd; meukd se ne interpretira, ve se JIT prevodiocem prevodi u toku izvrenja; Od pojave Jave (1996) desile su se znaajne promene na polju mogunosti savremenih informacionih tehnologija (IT): eksplozija Interneta - raspoloivost visoko-propusnih veza za kompanije i individualne korisnike velike promene u projektovanju softverskih sistema kompanija - tanki klijenti, vieslojni serveri, virtualizacija razvoj i usvajanje otvorenih standarda za podrku integracije sistema - XML - iroko prihvaeni standard za reprezentaciju, rukovanje i razmenu podataka ekspanzija inteligentnih ureaja - mobilni telefoni, PDA, konzole za igre porast raspoloivih besplatnih softverskih alternativa - open source inicijativa kompanije su pojaale naglasak na usvajanju tehnologija u interakciji B2C i B2B

42

Elektronske poslovne komunikacije PRAKTIKUM

eksplozija interesovanja za Web servise u komunikaciji izmeu preduzea i potroaa Anders Hejlsberg, glavni arhitekta C# programskog jezika - 1996. preao iz Borlanda u Microsoft, - inae je tvorac Turbo Pascal-a, glavni arhitekta za Borland Delphi. Prvobitno ime jezika "Cool" (11.07.2000.) - Tada Microsoft najavljuje .NET radni okvir za integrisanje programskih jezika Web namene, - Sredinom 2000. Microsoft podnosi predlog C# standarda organizaciji ECMA, - ECMA (European Computer Manufacturers Association 13.12.2001.), - ECMA standardizuje C# (334) i CLI (335). Trenutno je aktuelno etvrto izdanje ECMA specifikacije C# (Jun 2006.) Standardi meunarodne organizacije za standarde: - ISO/IEC 23270(C#)/23271(CLI):2006, Java slogan - "pii jednom, izvravaj svuda: - JVM, J2SDK za veinu platformi, Nedostatak: - nemogunost korienja specijalizovanog hardvera i naprednih mogunosti OS. .NET - drugaiji pristup "bilo kada, bilo gde, na bilo emu": izgraen na Windows platformi i podrava osobine Win32 API-a, definisan PAL (Platform Adaptation Layer), omoguuje koriene Win32 API poziva

CLI (Common Language Infrastructure), zajednika infrastruktura za razne jezike ECMA standardizuje CLI (osnova PAL) - implementacija PAL je mogua za bilo koju platformu, preslikavanjem Win32 API poziva, JVM - iroko raspoloiva, de facto standard, CLI - je takoe standard ali pre svega proizvod, Java je praktino jedini jezik Java platforme (JVM)

43

Elektronske poslovne komunikacije PRAKTIKUM

postoji pokuaj implementacije Python jezika (Jython) koji proizvodi bajt kd za JVM, .NET platforma je jeziki neutralna - aplikacije i komponente se piu na raznim jezicima, Zajedniki sistem tipova - CTS (Common Type System), Zajednika specifikacija jezika - CLS (Common Language Specification), Programi pisani na svakom jeziku koji potuje CLS, a kreira i koristi CTS tipove mogu se izvravati na .NET platformi, Postojei jezici koji se prilagoavaju .NET platformi malo menjaju sintaksu Visual Basic i Visual Basic.NET nisu identini jezici, C++ za .NET (upravljani C++) razlikuje se od standardnog C++ (Managed Extensions), .NET je prilagoen OO jezicima, proceduralni jezici se teko adaptiraju - ipak, postoji ak i COBOL.NET, kao i funkcionalni jezici kakav je SML. HTML i Web kontrole ASP.NET nam po prvi put predstavlja koncept pod nazivom Web Forms. Web Forms zapravo predstavljaju ASP.NET strane koje koriste serverske kontrole. Osnovni gradivni element za korisniki interfejs ine serverske kontrole. Re je zapravo o dve grupe kontrola HTML kontrolama i Web kontrolama. Instance HTML kontrola se generiu za svaki HTML tag koji sadri runat=server atribut. Na primer, sledei kd kreira instancu kontrole HtmlInputText pod nazivom textBox1.

Sve HTML kontrole postoje u okviru takozvanog imenskog prostora (namespace-a) System.Web.UI.HtmlControls i direktno ili indirektno su izvedene iz osnovne klase HtmlControl. U ove kontrole spadaju i HtmlAnchor (tag ), HtmlSelect (), HtmlTextArea (), HtmlInputButton (), HtmlInputHidden (), HtmlForm (), HtmlImage (), HtmlTable (), HtmlTableRow (),

44

Elektronske poslovne komunikacije PRAKTIKUM

HtmlTableCell

()

itd.

Ukoliko

dodamo

jo

jedan

atribut,

recimo

onserverclick=MojPotprogram, moemo izvriti povezivanje nekog dogaaja (u ovom sluaju click miem) sa naim kdom na serverskoj strani. Druga grupa serverskih kontrola u okviru ASP.NET-a su Web kontrole. Ove kontrole postoje u okviru System.Web.UI.WebControls namespace-a i izvedene su iz osnovne WebControl klase. Web kontrole sadre i tradicionalne kontrole sa HTML formulara, kao to su TextBox i Button, ali i neke sa veim stepenom apstrakcije kao to su Calendar i DataGrid (GridView) koje emo kasnije u konkretnim primerima intenzivno koristiti. Ove kontrole pruaju nekoliko zgodnih mogunosti koje znaajno pojednostavljuju razvojni proces Web aplikacije. Tu je pre svega dosledan i obiman objektni model. Osnovna WebControl klasa implementira vie svojstava koja su zajednika za sve Web kontrole (ForeColor, BackColor, Font, Enabled i dr.). Bilo koje svojstvo kontrole moe biti odreeno i parametrima iz same baze podataka. Atraktivno i potencijalno mono je i automatsko detektovanje browser-a i automatsko prilagoavanje. U praksi to znai da e se Web kontrola u klijentovom browser-u prikazati na nain koji e najbolje iskoristiti mogunosti tog browser-a. Interfejs se tako moe automatski prilagoavati da bude u HTML 3.2 formatu, DHTML-u, ili WML-u. Od prve verzije ASP-a pa do dananjih dana, nain na koji pristupamo Internetu se dosta izmenio. Danas nije retkost da se za surfovanje po Webu koriste razni Windows CE raunari, Palm Pilot ureaji i mobilni telefoni. To je stavilo poseban izazov pred projektante ASP.NET-a i oni su u velikoj meri reili sve te nove zahteve. U okviru HTML kda Web kontrole su takoe reprezentovane tagovima, ali je ovog puta re o posebnim tagovima sa prefiksom. Kao i za HTML kontrole i ovi tagovi moraju sadrati runat=server atribut. Pogledajmo primer za TextBox kontrolu. Prefiks asp se odnosi na System.Web.UI.WebControls namespace.

Na prvi pogled deluje da postoje velike slinosti izmeu nekih HTML i nekih Web kontrola, pa moda ak i duplirane funkcionalnosti. Meutim, izmeu ove dve grupe kontrola postoje i sutinske razlike. Kada koristite HTML kontrole, vi zapravo programirate slino kao u klasinom ASP-u. Dodavanjem atributa runat=server jednostavno dobijate serverske kontrole. Ove serverske kontrole imaju prilino siromaan objektni model, uglavnom sa atributima koji

45

Elektronske poslovne komunikacije PRAKTIKUM

odgovaraju atributima HTML taga, a Web kontrole imaju znatno bogatiji objektni model, umnogome slian Visual Basic modelu. Takoe, dok su HTML kontrole u 1:1 odnosu sa HTML tagovima, dotle Web kontrole imaju znatno vei stepen apstrakcije. Ovo omoguava prilagoavanje prikaza i funkcionalnosti otvara vrata za iroki spektar novih kontrola nezavisnih proizvoaa. Meutim, vea fleksibilnost podrazumeva i manju mogunost kontrolisanja kako e sama kontrola konano izgledati u nekom browser-u. Na programerima je da odlue koje je reenje bolje za konkretnu situaciju i traenu funkcionalnost. ak i u okviru jedne Web strane mogue je slobodno kombinovati HTML i Web kontrole. Da li je stvarno bilo potrebe za dve grupe serverskih kontrola? Strunjaci Microsoft-a nas autoritativno ubeuju da jeste. WEB servisi Web Forms nisu jedini adut ASP.NET tehnologije. Drugi veoma bitan inilac su Web Servisi (Web Services). Re je o tehnologiji za generisanje serverskih objekata, aplikacija, koje bi obezbeivale razliite servise - usluge udaljenim klijentima, pogotovo kada se server i klijent izvravaju na razliitim operativnim sistemima. Komunikacija izmeu servera i klijenta bi se obavljala u XML formatu, ili preciznije reeno u SOAP (Simple Object Access Protocol) formatu. Ovi servisi, generisani pomou ASP.NET-a mogu da primaju SOAP zahteve i da alju odgovore u SOAP formatu. Klijentu se ovi objekti otkrivaju i opisuju uz pomo SDL-a (Service Description Language), jo jednog jezika baziranog na XML-u. Klijent pristupa objektu uz pomo HTTP-GET, HTTP-POST ili HTTP-SOAP metoda koji obezbeuju dodatnu fleksibilnost.

Public Class Test1 Public Function Inkrementacija(a As Integer) As Integer Return a + 1 End Function End ClassRazmena poruka o SOAP formatu i nije neka velika mudrost. Ono to je velika prednost ASP.NET-a je veoma jednostavno generisanje ovakvih objekata. Dovoljno je

46

Elektronske poslovne komunikacije PRAKTIKUM

da u bilo kom od podranih jezika na serverskoj strani kreirate objekat definisan kao Public Class i da jednu, ili vie metoda obeleite posebnim WebMethod indikatorom. Nikakvo poznavanje DCOM/COM+, HTTP i SOAP tehnologija nije potrebno. ASP se iz korena promenio. Za prelazak sa klasinog ASP na ASP.NET tehnologiju potrebno je ipak malo truda i vremena. Ali to je cena koja se mora platiti, a pouen iskustvom, Mikrosoft je doneo ispravnu odluku da omogui paralelni rad ASP.NET i klasinih ASP skriptova. Ponekad Mikrosoft menja nazive tehnologijama koje je sam razvio, ali ne menja i samu tehnologiju. Podsetimo se, na primer, da je pre izvesnog vremena ta kompanija preimenovala tehnologiju OLE u ActiveX, pri emu je sutina vrlo malo izmenjena. Ali postoje suprotne situacije u kojim je Mikrosoft ostavljao nazive manje ili vie istim, dok je u isto vreme radikalno izmenio identitet date tehnologije. Upravo je ASP.NET blistav primer ovog drugog fenomena. Iako naziv zvui prepoznatljivo, u biti je mnogo drugaiji od klasine ASP tehnologije. Procesiranje .aspx stranice Najbolji nain da uvidite ta ovo znai jeste opis procesa koji se deava kada ASP.NET stranici pristupite iz Web browser-a. U svrhu ilustracija posluiemo se jednostavnom .aspx stranicom, .NET ekvivalentom klasine .asp stranice koja je ranije diskutovana i prikazana Slikom 9:

Sub PrikaziBrojeve() Dim broj As Integer For broj = 1 To 11 Response.Write(broj) Response.Write("Naziv(") Response.Write(broj) Response.Write(")") Response.Write("
") Next End Sub Datum i vreme: Brojevi i Nazivi:

47

Elektronske poslovne komunikacije PRAKTIKUM

Slika 17: ASP.NET stranica - jednostavni tabelarni prikaz Kao i tradicionalne ASP (.asp) stranice, ASP.NET (.aspx) stranice mogu da sadre HTML kd, plain tekst i kd isprepleten bilo putem taga ili kd umetnut izmeu . U stvari, stranica iz primera najvie lii na obinu .asp stranicu: oslobodite se Dim deklaracije, promenite deklaraciju jezika "vb" u "vbscript", i sve e biti po tradicionalnom ASP-u. Ali ono to se deava kada ovu stranicu izvrimo na ASP.NET platformi, veoma je razliito u odnosu na izvrenje u ASP okruenju. Ako bi ova stranica bila procesirana kao ASP stranica, kd koji sadri bio bi interpretiran od strane servera, a izlaz koji se generie bio bi ubaen u tok podataka i poslat ka browser-u. Tekst i HTML kd na stranici bili bi direktno prosleeni browser-u, nepromenjeni. Pristupanjem stranici iz primera, preko ASP.NET-a, kao rezultat imamo kompletno razliit proces izvravanja. ASP.NET aplikacije pripadaju .NET Framework reenjima, to znai da su zasnovane na Common Language Runtime (CLR). Zbog ovoga, svaka .aspx stranica se automatski prebacuje u klasu i to onog momenta kada joj pristupi prvi klijent. Ta nova klasa je naslednik standardne Page klase iz .NET Framework biblioteke klasa, a razliiti segmenti sadraja .aspx stranice umetnuti su na razliita mesta unutar ove klase. Na primer, bilo koji kd sadran unutar elemenata ubaen je u klasu samostalno. U naem

48

Elektronske poslovne komunikacije PRAKTIKUM

sluaju, jednostavna funkcija PrikaziBrojeve() postaje metod u generisanoj klasi. Ostatak ove stranice, ukljuujui tu i tekst, HTML tagove, i kd izmeu elemenata , smeta se u jednu metodu nazvanu Render, i to u istu klasu. Potom se ova nova klasa kompajlira i pakuje u jedan poseban sklop (engl. assembly), kako se naziva kontejner koji .NET koristi za skladitenje kompajliranog kda. Jednom kada je ovaj assembly kreiran, koristie se za upravljanje svim buduim zahtevima za ovom stranicom. Ukoliko ovu stranicu izmenimo, opisani proces se ponovo odigrava i generie se novi assembly. Ovako generisani sklopovi - assemblyes izgledaju tano kao dynamic link library (.dll) ili izvrni programi (.exe). Prvih nekoliko bajtova unutar svakog sklopa sadre mainski kd koji aktivira Common Language Runtime kada se sklopu pristupi iz drugog programa ili kada mu pristupi korisnik. Unutar sklopa je meavina IL-a i mainskog kda, u zavisnosti koliki deo sklopa je kompajliran CLR-om. Sklopovi takoe sadre metapodatke. Metapodaci za .NET program ukljuuju: - informaciju o svakoj javnoj klasi ili tipu, ukljuujui ime, iz kojih klasa je klasa izvedena i svaki interfejs koji klasa implementira, - informacije o svakoj javnoj metodi u svakoj klasi, ukljuujui ime i povratnu vrednost, - informacije o svakom javnom parametru za svaku metodu, ukljuujui ime svakog parametra i tip, - informacije o svakom javnom nabrajanju, ukljuujui imena i vrednosti za svaki lan nabrajanja, - informaciju o verziji specifikacije skupa. Jedan od problema svojstvenih DLL datotekama je taj to nema naina da se pregleda koje tipove funkcija podravaju, moete nai samo imena. COM datoteke ili komponente su obino izgraene na vrhu DLL datoteka i imaju isti problem. Moete povezati biblioteke COM-tipova sa COM objektom, u zavisnosti od ogromnog broja ulaza Windows Registry-a koji vrlo lako mogu postati nekonzistentni. Imajui tako obilje podataka u svakom sklopu, .NET Framework nema potrebu da koristi Registry za pokretanje sklopova. Ako .NET program ima potrebu da koristi drugi .NET sklop, oni samo treba da budu locirani u istom direktorijumu. Ovo znai da ako elite da razmestite .NET program na drugom raunaru, moete proi sa jednostavnim kopiranjem potrebnih datoteka. Moete pisati .NET kd za pregledanje metapodataka drugog sklopa da biste pronali da li podrava funkcije koje su vam potrebne. Ovaj proces se naziva refleksija o emu Microsoft online dokumentacija sadri veliki broj detalja.

49

Elektronske poslovne komunikacije PRAKTIKUM

Opsezi imena ili imenski prostor (namespaces) Termin opseg imena ili imenski prostor (namespaces) poznat je iz jezika C++, a predstavlja hijerarhijski objektni model koji podrava veliki broj osobina i metoda. Na primer, serverske HTML kontrole nalaze se u okviru System.Web.UI.HtmlControls namespace-u, dok su serverske Web kontrole u System.Web.UI.WebControls namespace-u, a ADO+ u System.Data namespaceu. Namespaces su slini referencama u Visual Basic 6. Oni predstavljaju gradivne blokove u koje ubacuju objekte koji se koriste u ASP.NET stranama i uopte u .NET okruenju. Opseg imena se koristi u .NET jezicima da bi se obezbedio kontejner za set klasa. Ovaj kontejner vam omoguuje da kreirate klase sa istim imenima koje koriste drugi programeri ili CLR-i. Na primer, moete koristiti set pomonih Visual Basic klasa koje ste preuzeli sa neke od Web aplikacija. Ove pomone klase mogu sadrati naprimer, klasu nazvanu ErrorLogger, koja ispisuje poruke o grekama u tekstualnu datoteku. Naalost, ve ste razvili klasu koja se takoe naziva ErrorLogger. Imati isto ime nije problem jer pomona klasa koristi razliit imenski prostor od vaeg. Pogledajte "Helloworld.vb", uobiajni "Hello, World" program:

Imports System Module Module1 Sub Main ( ) Console.Writeline ("Hello, World") End Sub End Module

Prva linija koristi Imports kljunu re, koja kae kompajleru da ukljui opseg imena System u ovaj program. Linija koja ispisuje "Hello, World" (Zdravo Svete), moe biti napisana razliito. Da u gornjem listingu nije koritena Imports kljuna re u prvoj liniji, linija za ispis bi morala izgledati ovako:

.

.

.

System.Console.WriteLine ("Hello, World.") . . .

Kao to se da primetiti, opsezi imena grupiu sline klase u jednu logiku grupu da bi spreili konflikte sa imenima. Druga linija, u gornjem listingu, deklarie modul za kd

50

Elektronske poslovne komunikacije PRAKTIKUM

programa, jedan od naina na koji VB.NET organizuje svoj kd. Linije od Sub Main() do kraja definiu podproceduru nazvanu Main ( ), gde se izvrava logika programa.

Izvravanje Web Stranica i Web ServisaPre uputanja u bilo kakvo Web programiranje potrebno je dobro razumevanje kako Web server izvrava Web stranice ili Web servise. Internet aplikacije kao to su dinamike Web strane ili korisniki Web servisi (Web Services) brinu o samo jednom zadatku - obrada korisnikih zahteva. Ovi zahtevi dolaze kao HTTP zahtevi iz klijentovog Web pretraivaa ili kao SOAP za