razvoj web aplikacije master (1)

Upload: ivana-bijelic

Post on 04-Jun-2018

240 views

Category:

Documents


1 download

TRANSCRIPT

  • 8/13/2019 Razvoj WEB Aplikacije Master (1)

    1/36

    Univerzitet u BeograduMatematiki fakultet

    Razvoj web-aplikacije za bankarsko poslovanjezasnovane na WPF/Silverlight tehnologiji

    Master rad

    Student Mentor

    Novak Markovi prof. dr. Duan Toi

    Beograd, februar 2010.

  • 8/13/2019 Razvoj WEB Aplikacije Master (1)

    2/36

    Sadraj

    I PREDGOVOR

    II OPIS WPF/SILVERLIGHT TEHNOLOGIJE

    III APLIKACIJA NAMENSKI RAUNI

    IV ZAKLJUAK

    V LITERATURA

    VI PRILOG

  • 8/13/2019 Razvoj WEB Aplikacije Master (1)

    3/36

  • 8/13/2019 Razvoj WEB Aplikacije Master (1)

    4/36

    II OPIS WPF/SILVERLIGHT TEHNOLOGIJE2.1 Uvod

    Inspiracija za uvoenje tehnologije kao sto je WPF dolazi od limita prethodnihtehnologija. Postoje tehnologije kao to je GDI (Graphics Device Interface) kojeomoguuju razvijanje osnovnog korisnikog interfejsa i postoje tehnologije kao sto suDirectX i OpenGL za razvijanje sofisticiranijeg i kompleksnijeg korisnikoginterfejsa. U sluaju da je programeru, koji programira poslovne aplikacije, potrebanneki kompleksniji korisniki interfejs, on bi bio doveden u situaciju da ui nekolikorazliitih tehnologija da bi to odradio.

    WPF je bogat skup biblioteka za programiranje korisnikog interfejsa koji je dostupani programerima i dizajnerima preko deklarativnog jezika zvanog XAML (Extensible

    Application Markup Language). WPF je jedna od etiri nove tehnologijepredstavljene u .NETframework-u 3.0. Da bismo koristili WPF aplikaciju potrebno jeda na raunaru imamo instaliran najmanje .NETframework3.0 ili noviju verziju.

    Dosadanji nain programiranja GUI-ja (Graphical User Interface odnosnoGrafiki Korisniki Interfejs) uz korienje Microsoft-ovih tehnologija jepodrazumevao Windows Forms biblioteku. Windows Forms se oslanja na Windows

    API, 20 godina staru biblioteku elemenata korisnikog interfejsa kao to su prozori,dugmad, dugmad sa ekiranjem, tekstualna polja i drugi. Svaki element ima svojprikaz na ekranu i mora da ekaDrawevent da bi se prikazao na ekranu. Procesiscrtavanja ne koristi GPU (Graphics Processing Unit odnosno Procesor GrafikeKartice), veceo posao odrauje CPU (Central Processing Unit), tako da nepostoji mogunost iskoriavanja prednosti modernih grafikih kartica.WPF sve ovo menja tako to uvodi novi model sa drugaijom logikom zasnovanom naDirectX-u.Svaki element je kompozicija osnovnih elemenata vektorske grafike. Svaki element

    iscrtava sebe u okviru jedne operacije koja je ubrzana hardware-om grafi

    ke kartice.

  • 8/13/2019 Razvoj WEB Aplikacije Master (1)

    5/36

    2.2 Osnovne karakteristikeOsnovne karakteristike i prednosti WPF-a su sledee:

    Vektorska grafika Prelazak na veu rezoluciju u sluaju WPF aplikacije ne znaida sve postaje manje, umesto toga grafika i tekst samo postaju jasniji. WPF koristiDirect3D za iscrtavanje to znai da koristi GPU procesor grafike kartice. Takose mogu razvijati korisniki interfejsi koji izgledaju dobro kako na malom ekranumobilnog telefona, tako i na 50-innom televizoru.

    Hardversko ubrzanje kao to je pomenuto, WPF za iscrtavanje koristi Direct3D.To znai da, za razliku od GDI sistema, WPF aplikacije koriste prednosti grafikog

    hardvera za kvalitetniji i bri prikaz. Meutim, WPF ne zahteva postojanje vrhunskoggrafikog podsistema jer takoe poseduje i softverski rendering.

    Deklarativno programiranje WPF donosi modifikovan XML, napravljen tako daje pogodan za deklarisanje korisnikog interfejsa XAML. Korienjem XAML-aelementi korisnikog interfejsa su prikazani kao XML tagovi. Na taj nain XAMLomoguava aplikacijama da ga dinamiki parsiraju i manipuliu elementima bilo uvreme kompajliranja ili u vreme izvravanja.Osnovna ideja XAML-a je razdvajanje korisnikog interfejsa i logike ime je

    omogu

    en paralelni rad grafi

    kih dizajnera i programera pri kreiranju korisni

    koginterfejsa.Druga osnovna ideja jeste unifikovanje korisinkog interfejsa razliitih tipovaaplikacija ( windows, internet aplikacije).Izgled korisnikog interfejsa pisan u C++, Java ili C# jeziku mora da bude kompletnouraen ponovo prilikom portovanja na Internet, dok se XAML kd portuje na sveplatforme bez promena.

    Kompozicija i prilagoavanje WPF kontrole se mogu komponovati na izuzetnojednostavan nain. Moemo kreirati padajuu listu u koju emo smestiti dugmadposebno dizajnirana uMicrosoft Expression Blend-u sa raznim efektima (MouseOver,Focus)ili meni u kojem e stavke biti video klipovi. Takoe, mogue je definisatimaske (skin) koje e drastino promeniti izgled aplikacije u skladu sa eljamakorisnika.

    Jednostavna instalacija WPF aplikacije mogu biti isporuene kao samostalneaplikacije ili kao web aplikacije kojima se pristupa kroz internet pretraiva(InternetExplorer, Mozilla Firefox).

  • 8/13/2019 Razvoj WEB Aplikacije Master (1)

    6/36

    Portabilnost dokumenata u WPF je ukljuen novi set tehnologija za obradu itampu dokumenata. Zajedno sa pojavom paketa Office 12, WPF koristi OpenPackaging Convention koji nudi kompresiju dokumenata, prilagodljive meta-podatke,digitalne potpise i upravljanje pravima pristupa. Slino PDF-u, XPS (XML Paper

    Specification odnosno XML Specifikacija Dokumenta) omoguuje razmenudokumenata izmeu raunara bez potrebe za instalacijom aplikacije u kojoj sunapravljeni.

    2.3 Arhitektura WPF-aAnatomiju WPF-a ine servisi, podsistemi kao i kontrolisani programski interfejs(Managed API) dostupan za korienje u WPF aplikacijama, koji se nazivaPresentation Framework. Na slici 1 prikazana je osnovna arhitektura WPF.

    Slika 1

    Sistem elemenata (Element system)predstavlja povrinu WPF-a sa kojomkomuniciraju programeri. Sistem elemenata se sastoji od osnovnih komponentikorisnikog interfejsa kao to su stilovi, izgled (layout), kontrole, povezanost kontrolai podataka (binding)i tekst. Elementi su u WPF aplikacijama grupisani u stabla.

  • 8/13/2019 Razvoj WEB Aplikacije Master (1)

    7/36

    Postoje dve vrste stabla elemenata, to su logiko stablo i vizuelno stablo. Logikostablo je hijerarhijska struktura elemenata koji su definisani deklarativno u XAMLdatoteci ili imperativno u kodu. Za svaki element u logikom stablu kreiraju se dodatnielementi koji predstavljaju njegove vizuelne aspekte. Kombinacija elemenata

    aplikacije i elemenata kreiranih za vizuelni prikaz ine vizuelno stablo.

    Vizuelni sistem (Visual system)predstavlja podsistem kroz koji aplikacija pristupaosnovnim prezentacionim servisima WPF-a. Vizuelni sistem prolazi kroz svekomponente (labele, dugmad, tekst, 2D i 3D elemente) i na osnovu njih renderujegrafiki prikaz na ekranu (tj. prosleuje poruke sistemu kompozicije).

    Font sistem (Font system)je potpuno iznova napisan za potrebe WPF-a iobezbeuje jedinstveni mehanizam za kreiranje i keiranje informacija o fontovimaukljuujui TrueTypei OpenTypefontove. Sistem keiranja je napravljen kako bi seubrzao proces prikazivanja fontova koji je inae prilino zahtevan.

    Sistem za obradu dogaaja (Input/Event system)donosi znaajna unapreenja uodnosu na Win32. Input/Event sistem obezbeuje integraciju korisnikovih aktivnosti ivizuelnog stabla. WPF prihvata dogaaj koji je izazvala akcija korisnika i zatim se naosnovu vrste dogaaja i kontrola koje su taj dogaaj registrovale odluuje koji i kolikodogaaja e biti podignuto. tavie, WPF podrava tzv. rutirane dogaaje, koji pruajumogunost elementima vizelnog stabla da oslukuju i reaguju na dogaaje kakoroditelja tako i ugnjedenih kontrola. To se postie na dva naina: aktiviranje iprosleivanje dogaaja ka (tunneling) ili od(bubbling)izvorinog (source) elementa.Tunnelingpredstavlja situaciju kada se dogaaj (event) aktivira u korenu vizuelnogstabla, a potom na svakom od elemenata niz stablo sve dok se ne stigne do izvorinog(source) elementa (elementa koji je stvarno aktivirao dogaaj) ili dok metod (handler)ne prekine tunnelingi oznai da je dogaaj obraen.Bubblingje situacija u kojoj sedogaaj die u izvorinom (source) elementu a potom i u svakom elementu iznad svedok se ne doe do korena, ili dok metod (handler) ne prekine bubblingi oznai da jedogaaj obraen.

    Sistem svojstava (Property system)je takoe znaajno nadograen. WPF uvodinovi tip svojstava koji se naziva svojstvo zavisnosti (dependency property). Takvosvojstvo zavisi od vie objekata kako bi se utvrdila njegova vrednost u svakomtrenutku u vremenu. Najvea vrednost zavisnih svojstava je njihova mogunost daprue notifikaciju o promeni. Na taj nain se moe postii velika funkcionalnostkorienjem deklarativnog jezika. Pored notifikacije o promeni, sistem svojstavanadograen je nasleivanjem vrednosti svojstava tj. prenoenjem vrednosti svojstava

    niz stablo elemenata.

  • 8/13/2019 Razvoj WEB Aplikacije Master (1)

    8/36

    Sistem prenosa poruka (Message transport)je kljuna komponenta WPFarhitekture zaduena za povezivanje vizuelnog sistema i sistema kompozicije. Sistemprenosa poruka prua kanale za komunikaciju izmeu dva pomenuta sistema prekoprotokola za udaljeno pozivanje metoda (.NET Remoting protocol). Ovakav pristup

    je posebno koristan prilikom tzv. terminal klijent scenarija (kao to je RemoteDesktop) gde e se procesiranje grafike preneti na klijentsku mainu i time rasteretitiserver.

    Sistem kompozicije (Composition system)predstavlja podsistem (zasnovan naunmanaged, nebezbednom kodu) koji prihvata instrukcije od vizuelnog sistema(managed, bezbedni, kontrolisani kod) i takve instrukcije pretvara u grafiku kojuvidimo na ekranu. Sistem kompozicije predstavlja deo WPF-a koji je u komunikacijisa grafikim hardverom raunara preko Direct3D tehnologije.

  • 8/13/2019 Razvoj WEB Aplikacije Master (1)

    9/36

    2.4 XAMLXAML (Extensible Application Markup Language) predstavlja deklarativni jezikkoji se koristi za instanciranje .NET objekata. Iako je XAML tehnologija koja se moe

    primeniti u vie domena, njena primarna uloga je konstrukcija WPF korisnikoginterfejsa.Drugim reima, XAML dokumenti definiu raspored panela, dugmadi i drugihkontrola koje ine UI aplikacije.Iako je takav sluaj mogu, XAML se ne pie runo. Postoji niz alata ija uloga jegenerisanje XAML koda. Koji alat e biti korien, zavisi od uloge korisnika urazvojnom procesu aplikacije. Programeri e, naravno, koristiti Visual Studio, dok ese grafiki dizajneri puno bolje snai u Microsoft Expression Blend-u. Upravo u tojinjenici lei i jedna od najveih prednosti XAML-a on predstavlja tehnologiju koju

    e deliti programeri i dizajneri korisni

    kog interfejsa. Pre pojave XAML-a proceskreiranja korisnikog interfejsa, koji bi ukljuivao dizajnere i programere, bio jefrustrirajui za obe strane i na kraju se obino svodio na sledee: grafiki dizajner bipripremio model korisnikog interfejsa, koji bi programeri kasnije morali da prevode ukod. Upotrebom XAML-a proces moe izgledati ovako:programer kreira osnovni korisniki interfejs i potom ga predaje dizajn timu koji daljeradi na njemu.Vano je napomenuti da XAML nije neophodan za WPF. Mogue je nastaviti sakorienjem Windows Forms pristupa i kreirati kod koji e sadrati izraze zagenerisanje WPF prozora. Takav WPF prozorbio bi zarobljen u Visual Studio okruenju i ne bi se mogao menjati van njega, toznai da bi bio dostupan samo programerima.I pored saradnje sa grafikim dizajnerima postoji mnogo drugih razloga za korienjeXAML-a:XAML je koncizan nain za predstavljanje korisnikog interfejsa ili druge hijerarhijeobjekata.Korienje XAML-a ohrabruje razdvajanje korisnikog interfejsa odpozadninske logike.XAML je jezik koji gotovo svi WPF alati generiu.XAML jerelativno jednostavan deklarativni jezik opte namene koristan za konstruisanje iinicijalizaciju .NET objekata. .NETframework3.5 ukljuuje kompajler i run-time

    parser za XAML, kao iplug-inpomou koga XAML datoteke moemo videti prekoInternet Explorera.XAML kd koji definie deo korisnikog interfejsa aplikacije Namenski raunimoe se videti u prilogu 6.1 .

  • 8/13/2019 Razvoj WEB Aplikacije Master (1)

    10/36

    2.5 Uitavanje i kompajliranje XAML-aXAML i WPF, kao to je ranije napomenuto, su dva odvojena koncepta iako su

    komplementarni. To znai da je mogue napisati WPF aplikaciju bez upotrebe XAMLjezika. Postoje dva razliita stila kodiranja koja se mogu koristiti pri razvoju WPFaplikacija:

    Samo kd tradicionalni nain generisanja korisnikog interfejsa koji se koristi uWindows Forms aplikacijama. Korisniki interfejs se generie kroz proceduralni kd.Oigledan nedostatak ovakvog pristupa je taj to moe biti prilino zamoran. WPFkontrole ne poseduju parametrizovane konstruktore tako da dodavanje najobinijegdugmeta zahteva pisanje nekoliko linija koda. Takoe, ne moe se ostvariti saradnja

    na liniji grafiki dizajner programer. S druge strane, nain razvoja WPF aplikacijakorienjem samo koda ima odreenih prednosti npr. moemo generisati formu punukontrola na osnovu podataka iz baze, ili koristiti uslovnu logiku za kreiranje kontrolaitd...Kd i nekompajlirani XAML Scenario u kojem se delovi interfejsa uitavaju zavreme izvravanja programa preko XamlReader klase. Koristi se pri kreiranjudinaminih korisnikih interfejsa. Ova tehnika donosi fleksibilnost u generisanjukorisnikog interfejsa, mogunost korienja uslovne logike, itd... Naravno, ovakav

    pristup donosi pad performansi aplikacije naro

    ito ako je korisni

    ki interfejskompleksan.

    2.6 Tipovi WPF aplikacijaUkoliko bi se WPF aplikacija sastojala samo od XAML stranica i njihovog

    pozadinskog koda, funkcionalnosti koje bi posedovala bile bi ograni

    ene i nedovoljneza veinu potreba. Za ozbiljniju aplikaciju potrebno je imati mehanizam uvanja stanjastranice, razmenu podataka i konteksta meu stranicama, detekciju dogaajauitavanja stranice, upravljanja globalnim promenljivim, itd...WPF aplikacioni model podrava objedinjavanje XAML stranica u jednu aplikaciju natradicionalni nain, analogno WinForms aplikacijama koje objedinjuju nekoliko formiu jednu izvrnu datoteku.

    WPF aplikacije se mogu izvravati na jedan od sledeih naina:XAML installed standardne Windows aplikacije koje se izvravaju lokalno ikorisniki interfejs prikazuju u jednom ili vie prozora. Ovakve aplikacije se

  • 8/13/2019 Razvoj WEB Aplikacije Master (1)

    11/36

    izvravaju u Win prozoru ili u WPF navigacijskom prozoru. WPF navigacijski prozorsadri navigacijsku traku na vrhu prozora koja sadri Nazad (Back) i Napred(Forward) komande za jednostavnije kretanje kroz aplikaciju. Navigacijska traka semoe posebno implementirati (override) upotrebom

    System.Windows.Navigation.NavigationWindowklase.

    Kao to je napomenuto, XAML instalirane (installed) aplikacije mogu bitistandardne Windows aplikacije ili aplikacije koje se izvravaju u WPF navigacijskomprozoru.Kada u Visual Studio okruenju kreiramo standardnu Windows aplikaciju, kreiraju sedve XAML datoteke (sa pozadinskim kodom) koje ine srsame aplikacije: App.xaml i Window.xaml. One sadre Application i Window objekatkoji su najbitniji delovi Win WPF aplikacije.

    Application klasa predstavlja jedinu ulaznu taku u aplikaciji i stara se oprosleivanju poruka u aplikaciji (message dispatcher). Takoe, ona sadri i nekolikodogaaja i metoda kao to su StartUp, Exit, Activated, Deactivated i dr. Aplikacija senaputa onog trenutka kada se svi prozori koji su deo nje zatvore ukoliko ShutDownmod nije podeen drugaije recimo interesantno je podeavanje po kojem seaplikacija gasi tek kada se Shutdown eksplicitno pozove, pa e klik na Close samospustitiaplikaciju u System Tray.

    Applicationobjekat predstavlja drugu bitnu komponentu WPF installedaplikacije.UnutarApplicationklase nalazi se Main() metod koji predstavlja ulaznu takuaplikacije.Thread-ovi unutar WPF aplikacije se izvravaju u tzv. STA (Single Threaded

    Apartment) okruenju. To znai da Main() metod mora biti obeleen STAThreadatributom.

    Applicationklasa takoe definie i Run() metod koji aplikaciju dri pokrenutom iobrauje poruke koje operativni sistem alje MainWindow klasi sve dok se ne pokrenenjeno zatvaranje.

    Osnovna implementacija izgleda ovako:

    [STAThread]public static void Main(){

    Application app = new Application();MainWindow window = new MainWindow();window.Show();app.Run(window);

    }

  • 8/13/2019 Razvoj WEB Aplikacije Master (1)

    12/36

    XAML browser aplikacije koje se izvravaju unutar Web browser-a. Takveaplikacije nazivaju se XBAP (XAML Browser Application) i imaju .xbap ekstenziju.Ovakve aplikacije rade samo pod Windows-om, samo u Internet Exploreru i samo ako

    je na sistemu instaliran .NETframework 3.5. Ovakva ogranienja su prevazienaplugin-om MS Silverlight koji je u toku razvoja bio poznat pod imenom WPF/E(WPF Everywhere odnosno WPF Svuda). Silverlight predstavljaframeworknezavisan od platforme i browsera.

    2.7 SilverlightSilverlight je novi Microsoftframework koji je zasnovan na WPF-u (originalno imeSilverlighta je bilo WPF/E). Osnovni cilj je pravljenje RIA-aplikacija (Rich Internet

    Applications, sofisticiranih web aplikacija). Ovo sve je dovelo do web aplikacija kojeimaju jednostavnost, performanse i odziv WinForms aplikacija. Od verzije 2.0, ovookruenje podrava klijentski .NET kd, to znai da se .NET kd izvrava u okviruweb pretraivaa, doputajui mnogo vie procesiranja na klijentskoj strani bezodlazaka do servera (slino Javascriptu).

    Veliina Silverlighta je mala (4.6 mb) i potrebno je malo vremena da se instalira naraunaru koji ga nema. Izvravanje Silverlight aplikacija ne zahteva instaliran .NETframework. Programeri mogu da piu Silverlight aplikacije koristei bilo koji .NETjezik (C#, VB, Javascript, IronPython i IronRuby). Silverlight poseduje bogat skuposobina koje ukljuuju:

    1. WPF UIframeworkSilverlight ukljuuje bogat UI (user interface)frameworkkoji omoguavarazvijanje aplikacija mnogo jednostavnije. Ukljuuje moan grafiki ianimacijski model, zatim bogatu podrku visokog nivoa UI kao to su kontrole,organizaciju izgleda (layout), povezanost kontrola i podataka (data-binding),stilove i maske (skin). WPF UIframework u Silverlight-u je kompatibilnipodskup WPF UI karakteristika i omoguava programerima da ponovo iskoristeznanja, kontrole i kd da bi razvijali bogate web multi-platformske aplikacijekao i napredne Windows aplikacije.

    2. Bogat skup kontrolaSilverlight ukljuuje bogat skup ugraenih kontrola koje programeri kao idizajneri mogu da koriste. Ukljuuje osnovne kontrole (TextBox, CheckBox,

    RadioButton, ComboBox,...), ugraene okvire za sofisticiraniji izgled

  • 8/13/2019 Razvoj WEB Aplikacije Master (1)

    13/36

    (StackPanel, Grid, Panel,..), standardne kontrole (Slider, ScrollViewer,Calendar, DatePicker,...) kao i kontrole za manipulaciju podacima (DataGrid,

    ListBox,...). Sve Silverlight-ove kontrole podravaju rad sa ablonima (template)to omoguava programerima i dizajnerima da zajedno prave krajnje

    sofisticirana i specifina reenja.

    3. iroka podrka komunikacijiSilverlight podrava komunikaciju preko REST, WS/SOAP, POX,RSS i prekostandarnog HTTP servisa. Omoguava klijentima direktan pristup resursima naInternetu. Takoe ima ugraenu podrku za sokete.

    4. Bogata osnovna biblioteka klasaSilverlight ukljuuje bogatu biblioteku osnovnih klasa/funkcionalnosti(kolekcije, ulaz-izlaz, generinost, niti, globalizacija, xml ) . Takoe,

    omoguuje integraciju html dom/javascripta sa .NET kodom. Ukljuuje LINQ iLING to XML biblioteku ( laka transformacija i upitovanje podataka).

    5. Bogatu podrku za multimedijuSilverlight dolazi sa ugraenim podrkom za putanje video materijala visokedefinicije, kao i za uivo putanje video materijala preko interneta (streaming,kako livetako i na zahtev (on-demand)). Podrava promenu video bitrate-a urealnom vremenu u zavisnosti od uslova mree, kao i zatitu sadraja.

    6. CLR (Common Language Runtime, Izvrno okruenje .NET-a)Silverlight ukljuuje prilagoenu verziju CLR-a, zajedno sa osnovnim klasama,garbage collector-om (mehanizam za dealokaciju i ienje memorije), JIT(Just-in-time, dinamiko kompajliranje) kompajlerom, podrkom zakonkurentno izvravanje (niti) i dr.

    Silverlight stremi ka tome da iskombinuje snagu i multi-platformnost Flash-a saprogramerskom platformom zasnovanom na konceptima .NET-a.

    Flash trenutno ima nadmonad Silverlight-om prvenstveno zbog iroke idugogodinje upotrebe i zrelosti, meutim Silverlight poseduje nekolikoarhitekturalnih prednosti koje Flash ne poseduje.Najvanija prednost je to da je zasnovan na prilagoenoj verziji CLR i da omoguavaprogramerima da razvijaju klijentski-kod u C#.Za programiranje i razvoj Silverlight aplikacija neophodno je da na raunaru budeinstaliran Microsoft Visual Studio 2008, standardni Microsoft-ov alat za razvojaplikacija u .NET okruenju, kao i dodatak web pretraivau za Silverlight (plug-in).Mogue je umesto Visual Studio-a koristiti Expression Blend, koji je vie orijentisan

    ka dizajnerima i aplikacijama sa dosta grafike i animacije, a manje poslovne logike.

  • 8/13/2019 Razvoj WEB Aplikacije Master (1)

    14/36

    Da bismo kreirali Silverlight aplikaciju potrebno je da, nakon pokretanja VisualStudio-ja u meniju File -> New -> Project, odaberemo sa leve strane tip projektaSilverlight i unesemo ime projekta, slika 2.Time smo napravili osnovno okruenje za razvoj ozbiljnih i modernih web aplikacija.

    Slika 2

    Nakon kreiranja Silverlight projekta, automatski su dodate dve XAML datoteke sapozadinskim kodom: App.xaml (App.xaml.cs) i Page.xaml (Page.xaml.cs).App.xaml klasa predstavlja ulaznu taku aplikacije i sadri dogaaje Startup,ExitiUnhandledException. Na sledeoj slici je prikazan sadraj klase App.xaml.cs.

  • 8/13/2019 Razvoj WEB Aplikacije Master (1)

    15/36

    Slika 3

    Kao to se na slici vidi u okviru metoda Application_Startup postavlja se poetnastranica Page.xaml. Page klasa predstavlja Silverlight korisniku kontrolu (usercontrol), tj. nasleuje klasu UserControl.Dakle, sam izgled aplikacije emo definisati u okviru Page.xaml datoteke, dok emoobradu dogaaja definisati u Page.xaml.cs.

  • 8/13/2019 Razvoj WEB Aplikacije Master (1)

    16/36

    2.8 Ostale koriene tehnologijePored tehnologije WPF/Silverlight, ije upoznavanje je i jedan od ciljeva ovog master

    rada, za razvoj aplikacije Namenski rauni korieno je jo nekoliko tehnologijanovog .NETframework-a.

    LINQ

    LINQ to SQL (Language-integrated query for relational data,jeziki-integrisani upiti) predstavlja novu komponentu vepostojee ADO.NETbiblioteke za pristup bazi podataka.LINQ predstavlja okruenje za manipulaciju relacionim podacima kao objektima bez

    gubitka mogunosti za postavljanje upita.LINQ radi tako to jeziki-integrisane upitekonvertuje u SQL upite spremne za izvravanje nad bazom i obratno, retultate SQLupita pretvara u odgovarajue .NET objekte.

    WCF

    WCF (Windows communication foundation) predstavlja novi Microsoft-ov okvir zarazvoj servisno-orijentisanih aplikacija, tj. razvoj distribuiranih sistema.Omoguava razvoj komponenti koje imaju transakcione mogunosti, pouzdan sistem

    poruka, nezavisnost od protokola i vremena.Na taj nain se ujedinjuju do sada postojee tehnologije: Web Services, .NETRemoting, COM+ i druge.

  • 8/13/2019 Razvoj WEB Aplikacije Master (1)

    17/36

    2.9 WPF i Win FormsTehnologija WPF nije predstavljena da bi zamenila postojeu i vrlo uspenu

    tehnologiju razvoja windows aplikacija Win Forms.WPF ne predstavlja samo tehnologiju za razvoj vizuelno dopadljivih aplikacija. Ovo jejedna od najveih zabluda vezanih za WPF.WPF je odlina platforma za razvoj aplikacija koje koriste razne vrste medija. Usluaju da imamo potrebu za prikazom video snimaka, dokumenata, 3D sadraja ilianimacija onda je WPF idealan izbor. Takoe je dobar izbor ako elimo da kreiramokorisniki interfejs sa temama (skin).

    Sa druge strane, Win Forms je i dalje aktivna i popularna tehnologija, pogodna za

    razvoj aplikacija koje nemaju potrebu za modernim funkcionalnostima WPF-a.Takoe, postoji mnogo vie kontrola razvijenih od strane razliitih firmi (3rd partycontrols), onlineresursa i programerskih zajednica za Win Forms, nego za WPF.

    Pored svih razlika i situacija u kojima treba koristiti jednu ili drugu tehnologiju,mogue je razvijati aplikacije koje koriste obe tehnologije.

    Kao zakljuak se namee injenica da e Win Forms trajati jo nekoliko godina, jerpostoji dosta poslovnih aplikacija (LOB, Line Of Business Applications) razvijenih uWin Forms tehnologiji, a da e razvoj WPF aplikacija doiveti svoj procvat tek unarednom periodu.

  • 8/13/2019 Razvoj WEB Aplikacije Master (1)

    18/36

  • 8/13/2019 Razvoj WEB Aplikacije Master (1)

    19/36

    3.2 Pretraga korisnikaAplikacija Namenski rauni predstavlja web aplikaciju kojoj se pristupa i izvrava u

    okviru web pretraivaa (web browser-a).Na sledeoj slici je prikazana poetna strana aplikacije.

    Slika 4

  • 8/13/2019 Razvoj WEB Aplikacije Master (1)

    20/36

    Omoguena su tri naina za upit stanja po klijentu tj. raunu:

    1.Unosom matinog broja klijenta (fiziko/pravno lice) u odgovarajue polje(pored natpisa JMBG/MBR).

    2.Unosom matinog broja (kastodi ID-a) pod kojim se klijent vodi u centralnomregistru hartija od vrednosti (pored natpisa CRHOV)

    3. Unosom broja partije u odgovarajue polje (pored natpisa partija)Ovde je znaajno napomenutio sledee:

    Ukoliko je MB isti i u Komercijalnoj banci i u CRHOV, pretraga se moe vritibilo po partiji bilo po MB u Komercijalnoj banci

    Ukoliko postoji veza 1:1 za matine brojeve u Komercijalnoj banci i CRHOV,pretraga se moe vriti bilo po partiji, bilo po matinom broju u Komercijalnojbanci, bilo po matinom broju CRHOV-a

    Ukoliko postoji veza 1:n za matine brojeve u Komercijalnoj banci i CRHOV,pretraga iskljuivo mora da ide preko CRHOV MB. U protivnom sistem ne bimogao da odlui za koji CRHOV MB se trae rezervisana sredstva.

    Dakle, za kreiranje poetnog izgleda aplikacije, kao na prethodnoj slici, u okviruPage.xaml datoteke dodaemo Gridkontrolu. Gridkontrola u Silverlight-u predstavlja

    pandan html tabeli, dakle slui za organizovanje izgleda (layout) aplikacije.Na sledeoj slici se nalazi Gridkontrola dodata u Page.xaml datoteku.

  • 8/13/2019 Razvoj WEB Aplikacije Master (1)

    21/36

    Slika 5

    Pre dodavanja Gridkontrole, dodali smoBorderkontrolu za definisanje ivica Gridkontrole, koje su u ovom sluaju blago zakrivljene (rounded corners). Broj redova ibroj kolona u okviru Gridkontrole definie se pomou Grid.RowDefinitionsiGrid.ColumnDefinitions svojstva.Poetni Gridje definisan sa 3 reda i 6 kolona. U okviru svakog elementa (cell) Grid-adodata je odgovarajua kontrola (TextBlock, TextBox,Button). Nain na koji sekontrola dodaje u odgovarajui element Grid-a se realizuje preko pridodatih svojstava(attached properties). Kao to se na slici 5 moe videti, npr. prvi TextBlockimapridodata svojstva, dakle svojstva koja ne pripadaju TextBlock-u, veGrid-u,Grid.Row=0i Grid.Column=0, ime se TextBlockpostavlja u prvi red i prvu

    kolonu Grid-a.

    Klikom na dugme Pretraga prikazuju se u padajuim listama spisak registrovanihbrokera za klijenta, kao i spisak partija registrovanih na odgovarajueg brokera.Automatski se selektuju prve vrednosti iz liste i prikazuju se odgovarajui detaljnipodaci koje moemo podeliti na:

    Podaci o korisniku Podaci o raunu Podaci o brokeru

  • 8/13/2019 Razvoj WEB Aplikacije Master (1)

    22/36

    Na sledeoj slici se nalazi strana sa rezultatom pretrage, slika 6.

    Slika 6

  • 8/13/2019 Razvoj WEB Aplikacije Master (1)

    23/36

    U nastavku opisaemo kako se preko WCF-a i LINQ-a dohvataju podaci iz bazepodataka i zatim prikazuju na silverlight kontrolama.WCF servis se dodaje u projekat klikom naAdd New Itemi odabirom odgovarajuegablona (template), kao na slici 7.

    Slika 7

    U okviru servis klase definiu se metodi za pristup i auriranje bazepodataka, kao na slici 8.

    Slika 8

  • 8/13/2019 Razvoj WEB Aplikacije Master (1)

    24/36

    Metod GetClientDetailsByMBna osnovu matinog broja klijenta dohvata prekoLINQ-a podatke o tom klijentu iz baze.Atribut ServiceContractukazuje da je ovaj WCF servis mogue koristiti i pristupatimu iz drugih aplikacija, i to samo onim metodima u okviru servisa koji imaju atribut

    OperationContract.Povratna vrednost metoda GetClientDetailsByMBje klasa KORISNIK, kojapredstavlja LINQ klasu i kreira se kada u projektu kliknemo naAdd New Itemiodaberemo odgovarajui ablon (template) kao na slici 9.

    Slika 9

    Zatim se u okviru Server Explorer-a, klikne na Connect to Databasei unesu seodgovarajui parametri povezivanja na bazu (ime servera, ime baze, korisniko ime ilozinka) i jednostavnim prevlaenjem tabela dobijaju se C# klase KORISNIK,PARTIJA_PROMET i druge, kao na slici 10.

  • 8/13/2019 Razvoj WEB Aplikacije Master (1)

    25/36

    Slika 10

    Sada, kada smo napisali WCF servis koji preko LINQ-a dohvata podatke iz baze

    podataka, ostaje da te podatke prikaemo preko neke silverlight kontrole.U okviru glavne silverlight stranice, Page.xaml.cs, definisaemo WCF servis. Pozivimetoda WCF servisa se odvijaju asinhrono tako da je potrebno da definiemo povratne(callback) funkcije za obradu rezultata tih poziva, slika 11.

  • 8/13/2019 Razvoj WEB Aplikacije Master (1)

    26/36

    Slika 11

    Kao to se vidi sa slike 11, naziv povratne (callback) funkcije, koja e obraditi rezultatpoziva metoda GetClientDetailsByMB, je sc_GetClientDetailsByMBCompleted.

    U okviru funkcije GetClientDetailsByMBCompleted, podatke o korisniku emoprikazati preko silverlight kontrole.U ovom sluaju izabrana je silverlight kontrolaPropertyGridkoja se ne nalazi u osnovnoj kolekciji silverlight kontrola, vejepreuzeta sa CodePlex-a i prilagoena potrebama aplikacije. CodePlex je Microsoft-ova zajednica projekata otvorenog koda (Open Source Project Community) na kojojima dosta zanimljivih i korisnih aplikacija i kontrola za Microsoft platformu.Definicija funkcije sc_GetClientDetailsByMBCompletedprikazana je na slici 12.

    Slika 12

    U okviru funkcije, PropertyGridkontroli postavljamo visinu, naslov i objekat koji eprikazati, tj. korisnika.

  • 8/13/2019 Razvoj WEB Aplikacije Master (1)

    27/36

    3.3 Podaci o korisnikuPodaci o korisniku, ije stanje se pregleda, prikazuju se u posebnom delu. Osnovne

    informacije koje se prikazuju jesu naziv korisnika, matini broj, mesto, adresa ipotanski broj.U okviru ovog dela postoji dugme Potvrda.Klikom na na dugme Potvrda, korisniku se otvara potvrda o stanju na raunu, zatampu. Potvrda predstavlja formu na kojoj se prikazuje potvrda o stanju nanamenskom raunu, u skladu sa sistemom kvaliteta obrazaca banke, definisanim odstrane odeljenja brokersko-dilerskih (custody) poslova.Na potvrdi se nalaze osnovni podaci o korisniku, stanje na raunu, kao i podaci obrokeru, datum i mesto. Potvrda vai bez potpisa.

    Potvrda se otvara u potpuno funkcionalnom PDF-itau u kome je mogue sauvatipotvrdu, odtampati i dr (slika 13).

  • 8/13/2019 Razvoj WEB Aplikacije Master (1)

    28/36

    Slika 13

  • 8/13/2019 Razvoj WEB Aplikacije Master (1)

    29/36

    3.4 Podaci o raunuPodaci o raunu sadre podatke po izabranoj partiji ili sumarno po svim partijamaukoliko partija pripada odgovarajuem tipu rauna.

    U okviru ovog dela postoje sledee opcije: Stanje na partiji po valutama u realnom iznosu, bez kursiranja,slika 14

    Slika 14

  • 8/13/2019 Razvoj WEB Aplikacije Master (1)

    30/36

  • 8/13/2019 Razvoj WEB Aplikacije Master (1)

    31/36

    Istorijski pregled promena rezervisanih sredstava po partiji, slika 16

    Slika 16

  • 8/13/2019 Razvoj WEB Aplikacije Master (1)

    32/36

    3.5 Podaci o brokeruBroker predstavlja berzanskog posrednika, koji ima pristup berzi i ovlaen je da

    skapa berzanske poslove u ime nalogodavca. Broker ne snosi nikakav rizik za ishodtrgovanja, vesamo nalogodavac.Podaci o brokeru sadre osnovne podatke o brokeru, kao to su naziv brokera, pib,matini broj, mesto i adresa.

  • 8/13/2019 Razvoj WEB Aplikacije Master (1)

    33/36

    3.6 Model baze podatakaDijagram koji predstavlja model podataka za aplikaciju Namenski raunipredstavljen je na slici . Veze meu tabelama predstavljaju standardne relacione

    odnose roditelj-dete, slika 17.

    Slika 17

  • 8/13/2019 Razvoj WEB Aplikacije Master (1)

    34/36

    IV ZAKLJUAKUvoenjem WPF-a Microsoft je promenio dosadanji nain razvoja kako windowstako i internet (web) aplikacija. Sada se jasno razdvajaju razvoj bogatog isofisticiranog korisnikog interfejsa na koji su dizajneri fokusirani, od razvoja kljunihsegmenata u okviru informacionog sistema, kao to je poslovna logika, sigurnost,manipulacija podacima, to je zadatak programera.

    Silverlight, kao tehnologija koja je zasnovana na WPF-u, predstavlja odlianMicrosoft-ov odgovor trenutnom vladaocu na polju razvoja modernih i brzih webaplikacija, Flash-u (Flex-u), koji se koristi u preko 90% web pretraivaa i postoji vieod 10 godina.

    Softversko reenje Namenski rauni je univerzalna aplikacija koju mogu da koristesve brokerske kue, ukljuujui i banke, kao i njihovi klijenti, obezbeujui uvid ukompletan portfolio klijenta.

    Uz moderne tehnologije i okruenja koje nudi Microsoft, mogue je razvijati vrlosloene veb aplikacije sa komplikovanim poslovnim procesima koje su u isto vremelake za korienje i vrlo performantne to se tie brzine i sigurnosti.

  • 8/13/2019 Razvoj WEB Aplikacije Master (1)

    35/36

    V LITERATURA1. Chris Andrade, Shawn Livermore WPF Programming, Wrox 20072. Chris Anderson Essential WPF, Addison Wesley 20073. Matthew MacDonald Pro Siverlight 3 in C#, Apress 20094. WPF Wiki - http://en.wikipedia.org/wiki/Windows_Presentation_Foundation5. MSDN WPF - http://msdn.microsoft.com/en-us/library/ms754130.aspx6. Silverlight homepage - http://silverlight.net/7. Silverlight Brad Abrams blog -

    http://blogs.msdn.com/brada/archive/tags/Silverlight/default.aspx

  • 8/13/2019 Razvoj WEB Aplikacije Master (1)

    36/36

    VI PRILOG6.1 XAML kod

    XAML kod koji definie deo korisnikog interfejsa aplikacije, deo vezan za podatke oraunu korisnika.