UVOD U .NET WORLD WIDE WEB(WWW) - OSNOVNI KONCEPTI WWW je jedna od najkoritenijih usluga Interneta koja omoguava dohvaanje hipertekstualnih dokumenata. Dokumenti mogu sadravati tekst, slike i multimedijalne sadraje a meusobno su povezani tzv. hiperlinkovima. Za dohvaanje i prikaz sadraja koriste se raunarski programi koji se nazivaju web brauzer
OSI (OPEN SYSTEM INTERCONNECTION) MODEL OSI referentni model, predstavljen 1984. godine, bio je opisni model koji je stvorio ISO. Ovaj model pruio je proizvoaima skup standarda koji osiguravaju veu kompatibilnost i meufunkcionalnost izmeu razliitih mrenih tehnologija koje su stvorene od velikog broja kompanija diljem svijeta. OSI referentni model definira radnje/funkcije koje se zbivaju na razliitim slojevima mree. Jo vanije, OSI referentni model je okosnica koja olakava razumevanje kako informacija putuje kroz mreu. Dodatno, OSI referentni model opisuje kako informacija (ili paketi podataka) putuje od aplikacijskih programa (npr. Excel tabele, Word dokumenti), kroz mreni medij (npr. ice, kablovi, zrak...), pa sve do drugog aplikacijskog programa koji eMPIRICA IV Semestar: RWA 2013/2014
3
je smjeten na nekom drugom raunaru u mrei, ak i ako poiljatelj i primatelj imaju razliite tipove mrenih medija. OSI referentni model oznaen je sa sedam brojanih slojeva, a svaki od njih opisuje odreenu mrenu funkciju: Layer 7 Sloj aplikacije Layer 6 Sloj prezentacije Layer 5 Sloj sesije Layer 4 Transportni sloj Layer 3 - Mreni sloj Layer 2 - Podatkovni sloj Layer 1 - Fiziki sloj
Za web aplikacije i ono to nas interesuje su najvaniji:
Sloj aplikacije prua mogunost raznim aplikacijama i servisima koje koristimo na raunaru da poalju podatke na nii nivo tj. sloj prezentacije. Ovaj sloj takoe vodi rauna o tome da li postoji dovoljno resursa za eljenu komunikaciju. Neki od protokola koji su zastupljeni na ovom sloju su: HTTP, WWW, SMTP, POP3, FTP, DNS, DHCP i td.
eMPIRICA IV Semestar: RWA 2013/2014
4
Sloj prezentacije prezentuje podatke sloju aplikacija i zaduen je za prevoenje, ifrovanje i komprimovanje podataka. Sloj sesije dri podatke razliitih aplikacija meusobno odvojenim tj. zaduen je za pripremanje, upravljanje i prekidanje sesije izmeu entiteta sloja prezentacije.
SOFTVERSKA STRUKTURA INTERNETA Intrnt rdi po klint/srvr mdlu. U klint/srvr mdlu, klintski ureaj je pvzan n srvr runr n km s nlze resursi; klint je zvisan d srvr. U stvri, klint zhtv uslug od srvra. v uslug mgu d ukluuu pretraivanje infrmci i slanj nzd klintu, k n primr slanje upita bzi pdtk n Wbu. Drugi primri vih uslug su isporuka statikih web stranica ili rukvnj dlznom i dlznom - ptom. ipin, klint lklni prsnlni runr (mobilni ureaj), tj. sftvr ki rdi n njmu, srvr (pznt i k host) bin mniji runr na kome su smeteni pdci i/ili srvrski sftvr. U sluu World Wide Web -, klint u stvri web brauzer (pregleda), a srvr host runr koji se nlzi ngd n Intrntu (ili intranetu lokalna mrea koja je odvojena od interneta ali koristi internet tehnologije). Obin, prtriv l srvru zhtv z drnom Web strnicom. Srvr obrauje zahtev i l dgvr nzd prtrivu.
KLIJENT/SERVER ARHITEKTURA Web brauzer kntrli klintsku stranu wb plikci. Kristi CP / IP, pretraiva izdaje HP zhtve srvru. Prtriv m triti drnu Wb strnicu, ili m ztriti srvru dminu d izvri upit u bzu pdtk.U svakom sluaju, zhtv s u obliku HP pkt le prk CP/IP komunikacione infrastrukture serveru.
eMPIRICA IV Semestar: RWA 2013/2014
5
ULOGA WEB SERVERA Korisnik sa web brauzerom inicira zahtev do web resursa preko HTTP GET zahteva, Web server zatim obrauje taj zahtev i alje odgovor nazad do web brauzera putem HTTP protokola (response). Korisniki web brauzer obrauje taj odgovor (HTML, CSS, Javascript) i prikazuje sve te kontrole na ekranu korisnika. Ako je to npr. neka forma koju korisnik treba da popuni i proslijedi ponovo web serveru (submit) tada se koristi metod POST za slanje podataka nazad do web servera.
Na sledeem primjeru je prikazana situacija gdje korisnik zahteva neke podatke sa ifrom 1234 (postoje razliiti naini kako sauvati te podatke - cookies, SQL server i td.) i nakon ponovne komunikacija sa severom npr. dodavanje proizvoda u korpu za kupovinu, server moe da iskoristi te podatke u istoj sesiji ali iz prethodnog zahteva. Znai, web server dri otvorenom sesiju prema web brauseru odreeno vreme.
eMPIRICA IV Semestar: RWA 2013/2014
6
Web server softver IIS (Internet Information Services) Apache Nginx Oracle HTTP server Zope
ULOGA WEB BRAUZERA Komunikacija sa web serverom (servisima) Renderovanje sadraja (prikaz) Izvravanje koda (JavaScript, itd.) Dodaci (plugins) Flash, Silverlight
eMPIRICA IV Semestar: RWA 2013/2014
7
HTTP PROTOKOL HTTP (engl. HTTP, HyperText Transfer Protocol) je glavna i najea metoda prenosa informacija na Webu. Osnovna namjena ovog protokola je omoguavanje objavljivanja i prezentacije HTML dokumenata, tj. web stranica. Koristi se za ispostavljanje zahteva (request) web serverima i slanje odgovora (response) do klijenta. HTTP klijent, kao to je web brauzer najee inicira prijenos podataka nakon to uspostavi TCP vezu s udaljenim web serverom na odreenom portu. Server konstantno oslukuje zahteve na odreenom mrenom komunikacijskom portu (tipino port 80), ekajui da klijent poalje niz znakova (string), kao to je "GET / HTTP/1.1" - kojim e zahtjevati uspostavljanje komunikacije - a nakon toga i tekstualnu MIME poruku koja sadri nekoliko slovnih nizova (zaglavlje) koji odreuju aspekte zahteva, te paket neobaveznih podataka. Nakon "GET" poruke, klijent mora poslati niz znakova koji odreuju adresu virtualnog hosta, na primjer "HOST:www.example.com". Zahtev (engl. request) klijenta e rezultirati slanjem odgovora (engl. response) sa web servera, kao to je "200 OK" - nakon ega e server poslati i svoj paket podataka koji najee sadri traenu datoteku ili poruku o greci. Odmah po ispunjenju zahtjeva klijenta, server e prekinuti komunikaciju. Metodi: OPTION, GET, POST, PUT, DELETE, HEAD, TRACE, CONNECT, DEBUG, itd.
eMPIRICA IV Semestar: RWA 2013/2014
8
HTML form element Form elementi se generalno alju do web servera POST metodom, sadri atribut action koji daje link do neke dinamike stranice (getCustomer.aspx). Sa slike se vidi da forma sadri jedan tex box naziva ID i dugme.
POST POST metod sadri resurs koji se zahteva (getCustomer.aspx), host i paramtetre koji se unose preko web forme (id i color).
HTTP MONITORING I REAVANJE PROBLEMA Windows Server sadri alat Network monitor (prikazan na slici) gdje se detaljnije mogu pratiti paketi koji se razmjenjuju na mrei i Internetu.
eMPIRICA IV Semestar: RWA 2013/2014
9
UVOD U .NET Osnovu .NET-a predstavlja svakako .NET Framework. Najjednostavnije reeno, to je sistem koji nadograuje mogunosti samog operativnog sistema. Radi se o posebnoj infrastrukturi koja programerima nudi gotova rjeenja i funkcionalnosti da bi ubrzala i pojednostavila razvoj aplikacija svih vrsta i oblika. Najvanija komponenta .NET Frameworka zove se Common Language Runtime ili skraeno CLR. CLR je softverski sistem u kojem se kd izvrava. Kada korisnik pokrene aplikaciju pisanu za .NET Platformu, CLR ju izvrava kako bi joj osigurao stabilnost i funkcionalnost. Instrukcije u programu se u realnom vremenu prevode u izvorni strojni kd koji razumije raunar. Za taj je posao zasluan JIT-kompajler (eng. Just In Time). Upravo prevoenje u izvorni strojni kd raunara, omoguilo je .NET-u prelazak na druge operativne sisteme kao to su Linux ili MacOS (putem pomonog third-party MONO sustava). Kako kompajliranje zasigurno usporava izvravanje aplikacija, ono e se izvravati samo jednom, a njegov e se rezultat spremiti kako bi se kasnije mogao koristiti bez ponovnog kompajliranja. Aplikacije za .NET platformu mogu se pisati u raznim programskim jezicima, gotovo svim poznatijim. CLR, meutim, ne poznaje niti jedan taj jezik - on dobiva naredbe iskljuivo u jeziku nazvanom Microsoft Intermediate Language (skraeno MSIL), temeljen na pravilima koja se nazivaju Common Language Specifications (CLS). Stoga je jasno da mora postojati kompajler koji e programski jezik u kojem programer pie kd prevesti u MSIL kako bi ga CLR razumio. Ovi kompajleri nazivaju se IL-kompajleri te su dostupni za velik broj programskih jezika. Microsoft je izdao kompajlere za pet jezika: C#, J#, C++, Visual Basic i JScript, dok su se ostali proizvoai softvera potrudili oko brojnih drugih kao to su: Perl, Python, Cobol, Eiffel Kako se svi ovi jezici prvo pretvaraju u MSIL, sasvim je svejedno u kojem ete od njih pisati aplikacije. Iz ovoga takoer proizlazi i druga velika mogunost .NET-a - viejezino pisanje aplikacija. Tako sada vie nije nuno da svi programeri koji rade na odreenom projektu poznaju isti programski jezik, vano je samo da je podrka za njihov jezik dostupna u .NET-u, odnosno da postoji IL-kompajler za njihov jezik. Mogunosti koje CLR nudi su izuzetne, no same po sebi nisu dovoljno uporabljive iz ljudskog aspekta. Upravo zbog toga u .NET Frameworku postoje setovi klasa koje omoguavaju brzo i jednostavno koritenje mogunosti koje CLR nudi.
eMPIRICA IV Semestar: RWA 2013/2014
10
WEB DIZAJN Web design u stvari kombinuje nekoliko disciplina ukljuujui: Grfiki dizn Dizajn vezan za podatke Dizn intrfs HTML, stil i grafiku Izradu Skripting i programiranje Multimediju Bezbednost
FRONTEND DIZAJN Sledei poslovi se obino smatraju kao frontend discipline: Grfiki dizajn Dizn intrfs Izrada sajta ukljuujui HTML Dokumenta, stilovi i JavaScript
BCKND RZV Sledei poslovi se odvijaju na backend strani: Infrmcioni dizn s dnsi n t kk infrmci rgnizvn n srvru Obrada formi Programiranje baze podataka Sistmi z uprvlnj sdrm Druge serverske aplikacije korienjem Perl/CGI, PHP, ASP, JSP, Ruby on Rails, Java i drugih programskih jezika.
eMPIRICA IV Semestar: RWA 2013/2014
11
SOFTVER Softver za dizajn, izradu i odravanje web sajtova Softveri za rad sa HTML-om Softveri za grafiku Softveri za multimediju Internet alatke
SOFTVERSKI ZAHTEVI Za ovaj kurs je potrebno: Visual Studio 2012/2013 (Visual Studio 2012 Express for Web) .NET Framework 4.5 IIS (Internet Information Services) SQL Server 2012 Web pregleda EMA FUNKCIONISANJA DINAMIKE WEB APLIKACIJE Web server je duan prihvatiti zahtev od web klienta i ako je on zatraio neku .aspx stranicu on na osnovu mapiranja to prosleuje handleru koji obrauje kod iz te stranice. Taj ASP.NET runtime je u ovom sluaju aplikativni server. S druge strane imamo bazu podataka. Ako imamo veliki broj korisnika onda napravimo web farmu, vie web servera gdje se zahtevi ravnomerno rasporeuju po tim web serverima. Kada jedan server prestane da radi ostali nastavljaju sa radom.
eMPIRICA IV Semestar: RWA 2013/2014
12
DINAMIKE WEB APLIKACIJE Za razvoj dinamikih web apliacija potrebne su dve stvari: Pouzdano i mono okruenje za izvravanje web apliakcija (npr. . NET framework) Funkcionalno i proirivo okruenje za razvoj(izradu web aplikacija) (npr. Visual Studio) Tehnologije za izradu dinamikih web apalikacija Microsoft ASP Adobe ColdFusion PHP Java aplikativni serveri (J2EE) o IBM Websphere o Oracle Weblogic o Jboss Microsoft ASP.NET
eMPIRICA IV Semestar: RWA 2013/2014
13
VISUAL STUDIO IDE Neke karakteristike Visual Studio: o Page design o Automatic error detection o Otklanjanje greaka (debugging) o IntelliSense
Visual Studio je raspoloiv u nekoliko izdanja (Professional, Premium, Ultimate). Visual Studio Express for Web je besplatna verzija.www.microsoft.com/express/downloads
Visual Studio IDE prednosti Integracija razliitih alata Proirivost Testiranje Modeliranje Postavljanje (deployment) Grafiko okruenje
eMPIRICA IV Semestar: RWA 2013/2014
14
ASP.NET ASP.NET - Microsoft tehnologija za izradu web aplikacija Ranije platforme za razvoj web aplikacija su imale dve grupe problema: Znaajan pad performansi kod istovremenog rada vie korisnika Tekoe u pisanju koda zato to su pojedine funkcije kao to su kao to je provera identiteta korisnika ili itanje baze podataka morale biti pisane od poetka.
ASP.NET 4.5 je dio Microsoft .NET Framework 4.5 tehnologije, nasljednika revolucionarno nove razvojne platforme. Jedna od glavnih odlika ASP.NET-a je tehnologija nazvana Web Forms koja u Web donosi tzv. Event-driven Programming, tj. izvravanje naredbi programskog jezika inicirano nekim dogaajem. Web Forme ukljuuju velik broj programabilnih serverskih komponenti kao npr. Calendar Control, Data Grid i mnoge druge kompleksne objekte korisnikog Web suelja. Druga bitna komponenta .NET-a jesu Web Services, koja omoguuje Web serverima bilo gdje u svijetu da klijentima prue svu svoju funkcionalnost i sadraje pomou SOAP standarda i XML-a, neovisno o platformi. Naravno tu je i neizostavni ADO.NET kojim je u potpunosti moderniziran rad sa bazama podataka u visoko distribuiranom okruenju poput Interneta ili Intraneta.
eMPIRICA IV Semestar: RWA 2013/2014
15
SERVER-SIDE I CLIENT-SIDE PROGRAMIRANJE ASP.NET je kreiran kao server-side programska platforma. To znai da se kompletan kod nalazi na strani server gde se i izvrava. Kada se zavri izvravanje ASP.NET koda, rezultat se alje obino kao HTML stranica koju moe da obradi i prikae svaki web brauzer.
Druga opcija, programiranje na klijentskoj strani zahteva od brauzera da preuzme kod i da ga izvri na lokalnom raunaru. Kao i za server-side programiranje, tako i za client-side programiranje postoje razliite platforme, kao to su Adobe Flash i Microsoft Silverlight.
eMPIRICA IV Semestar: RWA 2013/2014
16
RAZLOZI ZA ASP.NET SERVER-SIDE MODEL Izolacija. Kod klijenta nema naina da pristupi resursima na strani servera. Na primer, da moe da pristupi bazi podataka, bilo za itanje bilo za upisivanje podataka. Sigurnost. Krajnji korisnici mogu da vide kod na strani klijenta. To prua mogunost zlonamernim korisnicima da eventualno otkriju ta kod radi i promene njegovu namenu ili onemogue rad. Thin klijenti. Ureaji kao to su tableti i pametni telefoni ne podravaju client-side programske platforme kao to su Adobe Flash i Microsoft Silverlight.
ASP.NET I KLIJENTSKE TEHNOLOGIJE Poslednjih godina dolo je do renesanse u client-side programiranju, naroito sa JavaScript-om. Kreiraju se aplikacije sa strane klijenta koje komuniciraju sa web serverom da itaju podatke i izvravaju programe koje ne bi bilo mogue izvriti nas lokalnom raunaru. U odnosu na ovu okolnost ASP.NET prua sledee mogunosti: Kombinovanje sa JavaScript-om ASP.NET Ajax
.NET FRAMEWORK NET okruenje je klaster sledeih tehnologija: .NET jezici kao to su Visual Basic, C#, F#, and C++, The Common Language Runtime (CLR): Izvrava sve .NET programe i prua servise kao to su provera bezbednosti, upravljanje memorijom i optimizacija. .NET biblioteka klasa sadri pripremljene funkcionalnosti koje mogu da se iskoriste u korisnikim aplikacijama. Nekad se organizuju u skupove tehnologija, ADO.NET i Windows Presentation Foundation (WPF). ASP.NET hostuje aplikacije razvijene u .NET Visual Studio je opcioni razvojni alat koji ukluuje i .NET Framework
eMPIRICA IV Semestar: RWA 2013/2014
17
.NET BIBLIOTEKA KLASA .NET biblioteka klasa je jedan ogromni repozitorijum klasa koje pruaju odreene funkcionalnosti za najrazliitiju upotrebu od itanja XML dokumenta, do slanja e-mail poruka. Nije mogue napisati niti jednu aplikaciju u bilo kojem .NET jeziku bez pomoi .NET klasa. Klase su svrstane u "namespace", te su logiki grupirane tako da su povezane klase unutar istog namespacea. Najvei dio funkcionalnosti .NETa se nalazi u klasama unutar System namespacea. Glavne podklase unutar "System" klase su: System.Data - slui za manipulaciju podacima unutar neke baze podataka.Najvaniji izvori podataka koji imaju i svoj namespace unutar System.Data podklase su: o ODBC (System.Data.ODBC) o OleDb (System.Data.OleDb) o SQL (System.Data.SqlClient) System.IO - slui za manipulaciju podacima iz datoteka i ostalih izvora podataka, osim onih iz System.Data, te XML. System.Security - kao to samo ime kae - klase vezane uz sigurnost. System.Web - sadri klase koje se koriste u izradi Asp.NET aplikacija, poput mail, web i html kontrola, konfiguracije, itd. System.Windows.Forms - za izradu samostojeih aplikacija.
eMPIRICA IV Semestar: RWA 2013/2014
18
CLR (COMMON LANGUAGE RUNTIME) CLR je "engine" za pokretanje svih aplikacija iz .NET porodice. Svaka aplikacija, bilo web ili samostalna, u bilo kojem programskom jeziku, kompajlira se u jednaki kod koji 'CRL' moe proitati (IL kod). Karakteristike: Potpuna integracija sa programskim jezicima Mogunost istovremenog uitavanja vie verzija iste komponente Manje greaka Potencijalni nedostaci: Performanse Transparentnost koda
C#, VB, i .NET jezici C# i VB su moderni jezici za pisanje web aplikacija. C# po sintaksi podsea na Java, JavaScript i C++.
eMPIRICA IV Semestar: RWA 2013/2014
19
INTERMEDIATE LANGUAGE Pre izvravanja se .NET jezici prevode u jezik nieg nivoa - Common Intermediate Language (CIL, ili IL)
eMPIRICA IV Semestar: RWA 2013/2014
20
PREDAVANJE 2
C# PROGRAMSKI JEZIK C# je objektno-orijentisani programski jezik kojeg je razvio Microsoft u okviru svoje Microsoft .NET inicijative. C# ima proceduralnu, objektno orijentiranu sintaksu, zasnovanu veinom na C++-u, ali takoer ukljuuje i neke aspekte iz drugih jezika, kao to su Delphi, Visual Basic, te Java, sa posebnim fokusom na pojednostavljenje (manje simbola od C++ i manje dekorativnih zahtjeva od Jave).
.NET JEZICI O .NET arhitekturi je ve bilo govora u prethodnom poglavlju. Neki od zakljuaka su: Osnovni jezici su C# i VB. Za korienje drugih jezika je potreban kompajler koji prevodi kod u IL. Performanse su identine. CLR razume samo IL.
eMPIRICA IV Semestar: RWA 2013/2014
21
CASE SENSITIVITY (MALA-VELIKA SLOVA) Case Sensitivity oznaava osjetljivost na veliinu slova. Programski jezici koji su osjetljivu su: Java C, C++ C#
VB nije osetljiv.
Kod Case Sensitiv programskih jezika treba se posebna panja posvetiti pisanju npr. if, for, foreach, while, typeof da li su napisani velikim, malim ili kombinacijom velikih i malih slova. I kod naziva varijabli je potrebno paziti na koji nain su imenovane. Npr. varijabla mojIndeks.
KOMENTARI Postoje dva tipa komentara // i /*: // C# komentar na jednoj liniji.
/* C# komentar na vie linija. */ C# ukljuuje i XML sintaksu za komentare: /// <summary> /// Ova aplikacija koristi ASP.NET /// tehnologiju za moj e-commerce sajt. /// </summary>
eMPIRICA IV Semestar: RWA 2013/2014
22
ZAVRETAK NAREDBE C# koristi ; kao karakter za zavretak naredbe. Svaka naredba se zavrava sa ovim karkterom izuzev kod blok struktura (metodi, uslovne naredbe, petlje). Primeri naina pisanja za izvravanje neke operacije:
BLOKOVI C#, Java i C jezici koriste vitiaste zagrade za blokove. U blokovima se grupiu naredbe. Na primer, naredbe ije izvravanje moe da se ponovi u petlji, izvre uslovno ili vre odreenu funkciju.
eMPIRICA IV Semestar: RWA 2013/2014
23
PROMENLJIVE I TIPOVI PODATAKA Promenljive memoriu brojeve, tekst, datume, vremena, ak mogu da ukau i na punopravne objekte. Promenljiva ima svoje ime i tip podataka. Lokalne promenljive poinju tipom podataka, a zatim se navodi ime.
eMPIRICA IV Semestar: RWA 2013/2014
24
DODELJIVANJE I INICIJALIZACIJA
Dodeljivanje moe da se izvri i pri deklarisanju. etiri linije prethodnog koda se svode na dve:
C# ima mehanizam za zatitu od korienja neinicijalizovanih promenljivih:
Ispravan nain:
C# I TIPOVI PODATAKA Neispravno: decimal myDecimal = 14.5; M (decimal) D (double) F (float) L (long)
Ispravno: decimal myDecimal = 14.5M;
ili
var myDecimal = 14.5M;
eMPIRICA IV Semestar: RWA 2013/2014
25
STRINGOVI I ESCAPE KARAKTERI C# tretira tekst neto drugaije od drugih programskih jezika poput VB.NET-a. \" (znaci navoda) \n (nova linija) \t (horizontalni tab) \\ (kosa linija unazad)
NIZOVI (ARRAYS) Nizovi omoguavaju skladitenje niza vrednosti koja su istog tipa podataka.
VIEDIMENZIONALNI NIZOVI Nizovi mogu imati i vie od jedne dimenzije. Na primjer, sljedea deklaracija stvara dvodimenzionalni niz od 4 reda i 2 kolone.
eMPIRICA IV Semestar: RWA 2013/2014
26
PRISTUP ELEMENTIMA U NIZU Ispod je prikazan nain pristupa treem elementu niza.
Na primjeru koji slijedi je pokupljana vrijednost koja se nalazi u prvom redu i drugoj koloni.
ARRAYLIST C# nizovi ne podravaju redimenzinisanje.
ENUMERATIONS Enumeratcija predstavlja grupu povezanih konstanti, gde je svakoj dato odreeno deskriptivno ime.
eMPIRICA IV Semestar: RWA 2013/2014
27
OPERACIJE SA VARIJABLAMA U C# se mogu koristiti svi standardni tipovi operacija sa varijablama.
NET MATH KLASA Obezbeuje metode vezane za trigonometriju, logaritme i ostale matematike funkcije.
Vie o .NET Math klasi i spisku metoda pogledajte na linku: http://msdn.microsoft.com/library/system.math.aspx
eMPIRICA IV Semestar: RWA 2013/2014
28
KONVERZIJE TIPOVA Konverzija moe da ide u dva pravca: proirivanje i suavanje. Proirivanje:
Suavanje:
string countString = "10"; // Convert the string "10" to the numeric value 10. int count = Convert.ToInt32(countString); // Convert the numeric value 10 into the string "10". countString = Convert.ToString(count); int count; string countString = "10"; // Convert the string "10" to the numeric value 10. count = Int32.Parse(countString);
eMPIRICA IV Semestar: RWA 2013/2014
29
RAD SA OBJEKTIMA U nastavku je prikazan nain konverzije celog broja u string.
STRINGOVI String klasa
eMPIRICA IV Semestar: RWA 2013/2014
30
DATETIME I TIMESPAN TIPOVI Imaju ugraene metode i svojstva. Upotreba: ekstrakovanje delova datuma, kalkulacije sa datumima, odreivanje trenutnog vremena i datuma, konvertovanje TimeSpan u odreeni oblik, itd.
eMPIRICA IV Semestar: RWA 2013/2014
31
KORISNI LANOVI DATETIME
KORISNI LANOVI TIMESPAN
eMPIRICA IV Semestar: RWA 2013/2014
32
ARRAY TYPE U .NET-u, nizovi se ponaaju kao objekti.
KORISNI ARRAY LANOVI
eMPIRICA IV Semestar: RWA 2013/2014
33
USLOVNA LOGIKA Uslovna logika predstavlja odluivanje o tome koje akcije treba preduzeti na osnovu unosa korisnika, eksternih uslova i drugih informacija. Sve uslovne logike poinju sa uslovom jednostavnim izrazom koji semoe evaluirati na tano ili netano. Logiki operatori
STRING.COMPARE() METOD Svi operatori poreenja se mogu koristiti za numerike tipove podataka, nizove se koristi samo operatori jednakosti (== and ! = ). Umesto drugih operatori koristi metod String.Compare().
eMPIRICA IV Semestar: RWA 2013/2014
34
IF NAREDBA IF naredba uslovne logike procenjuje bilo koju kombinaciju uslova i radi sa vie podataka ili delovima podatka.
IF naredba proverava najvie jedan uslov.
SWITCH NAREDBA Koristi se za procenu jedne promenljive ili izraza za vie moguih vrednosti.
eMPIRICA IV Semestar: RWA 2013/2014
35
PETLJE Omoguavaju ponavljanje jednog segmenta programa vie puta. Tipovi petlji: for loop foreach loop while loop
FOR PETLJA Omoguava ponavljanje bloka naredbi postavljanjem brojaa.
VARIJABLE I BLOKOVI Ako se varijabla definie u okviru nekog programskog bloka (npr. petlja ili uslov), ona se automatski ukida kada izvravanje koda napusti blok.
eMPIRICA IV Semestar: RWA 2013/2014
36
FOREACH PETLJA Omoguava prolazak kroz stavke u skupu podataka.
WHILE PETLJA Testira odreen uslov pre ili posle prolaska kroz petlju. Kada rezultat evaluacije uslova bude false (netano), izlazi se iz petlje.
eMPIRICA IV Semestar: RWA 2013/2014
37
METODI Metod je osnovni gradivni blok za organizovanje koda i sastoji se od jedne ili vie linije koda.
POZIVANJE METODA
eMPIRICA IV Semestar: RWA 2013/2014
38
PARAMETRI Metod prima podatke preko parametara.
PREKLAPANJE METODA Omoguava kreiranje vie od jednog metoda sa istim imenom ali sa drugaijim skupom parametara.
eMPIRICA IV Semestar: RWA 2013/2014
39
OPCIONI I IMENOVANI PARAMETRI Opcioni parametar je bilo koji parametar koji ima podrazumevanu vrednost.
Primer sa vie opcionih parametara:
DELEGATI Delegati su promenljive koje mogu da se koristite za pozivanje metoda.
eMPIRICA IV Semestar: RWA 2013/2014
40
VJEBA - ZADATAK 1 Zadatak 1 Kreirati ASP.NET aplikaciju (web sajt) koja treba da na web stranici prikae: Naslov (koristiti h2 element, crvene boje; proizvoljan naslov) brojeve 1-10 (1, 2, 3, 4, 5, 6, 7, 8, 9, 10,) - plave boje, font-Large nazive bivih republika SFRJ (Makedonija, Srbija, Crna Gora, Bosna i Hercegovina, Hrvatska, Slovenija,) zelene boje, font-Large
Napomena: kreirati dve web stranice jedna korienjem for petlje, a druga korienjem while petlje. Uputstva: U okviru .aspx stranice koristiti asp:Label kontrole za ispisivanje brojeva, odnosno naziva republika. Za prikaz brojeva koristiti for, odnosno while petlje, kao Text svojstvo Label objekta. Za prikaz naziva republika, koristiti nizove, zatim for, odnosno dowhile petlje, kao i Lenght svojstvo String objekta.
eMPIRICA IV Semestar: RWA 2013/2014
41
PREDAVANJE 3
KLASE Klasa je najmoniji podatkovni oblik u C#-u. Poput struktura, klasa definira podatke i ponaanje. Programeri nakon toga mogu stvoriti objekte koji su instance tih klasa. Za razliku od struktura, klase podravaju nasljeivanje to je fundamentalni dio objektno- orijentiranog programiranja. Klase se definiraju pomou class kljune rijei, kao to je prikazanu u primjeru: public class ClassName { //Fields, properties, methods and events go here... } lanovi klase: Svojstva Metodi Dogaaji
eMPIRICA IV Semestar: RWA 2013/2014
42
STATIC LANOVI Korienje lanova klasa bez prvobitnog kreiranja objekta.
KREIRANJE KLASE Prije class kljune rijei se nalazi rije public koja oznaava da svatko moe stvoriti objekt iz ove klase. Ime se nalazi nakon class rei. Ostatak definicije se nalazi unutar vitiastih zagrada gdje se obino nalaze definicije podataka i ponaanja objekta.
eMPIRICA IV Semestar: RWA 2013/2014
43
KREIRANJE OBJEKATA Objekt se stvara pomou kljune rei new nakon koje trebamo navesti ime klase po kojoj e taj objekt biti baziran:
Jednom kad je instanca klase stvorena, referenca na taj objekt je vraena programeru. U ovom sluaju, saleProduct je referenca na objekt baziran na Product klasi. Ta referenca pokazuje na novi objekt, ali ne sadri i same podatke.
eMPIRICA IV Semestar: RWA 2013/2014
44
DODAVANJE SVOJSTAVA property accessors mehanizam koji omoguava bezbednu manipulaciju objekata.
KORIENJE AUTOMATSKIH SVOJSTAVA Svojstva koja ne rade nita drugo do preuzimanja i setovanja vrednosti privatne varijable.
eMPIRICA IV Semestar: RWA 2013/2014
45
DODAVANJE METODA Metode su imenovane procedure koje su ugraene u klasu. Metoda je blok koda koji sadri niz naredbi. U C#-u, svaka izvrena instrukcija se nalazi u kontekstu metode. Metode su deklarirane unutar klase ili strukture tako to suspecificirani: nivo pristupa, povratna vrijednost, ime metode i parametri metode. Parametri su okrueni zagradama i razdvojeni zarezima. Prazne zagrade naznauju da metoda ne zahtijeva nikakve parametre.
DODAVANJE KONSTRUKTORA Konstruktor je metod koji se automatski izvrava kada se kreira klasa. Konstruktori imaju isto ime kao i klasa i obino se koriste za inicijalizaciju podatkovnih lanova novog objekta.
eMPIRICA IV Semestar: RWA 2013/2014
46
PREKLAPANJE KONSTRUKTORA
eMPIRICA IV Semestar: RWA 2013/2014
47
DODAVANJE DOGAAJA Da bi se definisao dogaaj, potrebno je kreirati delegata koji definie potpis (signature) za dogaaj koji e se koristiti. Dalje se moe koristiti kljuna re event za definisanje dogaaja na osnovu delegata. public delegate void PriceChangedEventHandler();
EVENT HANDLER Sadri kod koji treba da se izvri kada se desi odreeni dogaaj.
eMPIRICA IV Semestar: RWA 2013/2014
48
PRIMER
eMPIRICA IV Semestar: RWA 2013/2014
49
PREDAVANJE 4
TIPOVI VREDNOSTI I TIPOVI REFERENCI Prosti tipovi podataka su tipovi vrednosti (value type), dok su klase tipovi referenci (reference types). Tri sluaja kada su razlike izmeu ovih tipova uoljive: Operatori dodeljivanja Operatori poreenja Prosleivanje parametara
Video sa predavanja preuzmite sa ftp servera. Za gledanje istog koristite Network Recording Player (instalacija se nalazi na ftp serveru).
OPERATORI DODELJIVANJA U ovom sluaju integerA sadri kopiju sadraja integerB varijable i imamo duple podatke u memoriji.
Kada su u pitanju tipovi referenci kopiramo pointer na objekat, ne i sam objekat. Znai, imamo jedan objekat sa dva razliita naina za pristup istom.
eMPIRICA IV Semestar: RWA 2013/2014
50
OPERATORI POREENJA Jo jedan sluaj gdje imamo vidljivu razliku izmeu tipova vrednosti i referenci jeste kada poredimo dve varijable. Kod preenja referenci provjeravamo da li one pokazuju na isti objekat u memoriji.
PROSLEIVANJE PARAMETARA Mogu se kreirati tri tipa parametara metoda: pass-by-value pass-by-reference output parametar
eMPIRICA IV Semestar: RWA 2013/2014
51
.NET TIPOVI Klase Strukture Enumeratori Delegati Interfejsi Tipovi vrednosti i referenci
IMENOVANI PROSTORI (NAMESPACE) Kljuna re namespace se koristi za deklaraciju opsega koji sadri meusobno povezane objekte. Namespace se moe koristiti za organizaciju koda i za kreiranje globalnih jedinstvenih tipova.
Vie podataka o biblioteci klasa pogledajte ovdje. http://msdn.microsoft.com/library/ms229335.aspx eMPIRICA IV Semestar: RWA 2013/2014
52
lanovi (members) odreene klase
eMPIRICA IV Semestar: RWA 2013/2014
53
KORIENJE IMENOVANIH PROSTORA esto kada se pie neki ASP.NET kod koriste se imenovani prostori koje Visual Studio generie automatski. S druge strane mogu se kreirati vlastiti imenovani prostori na sledei nain.
UVOENJE IMENOVANIH PROSTORA Kada imamo imenovane prostore i elimo da koristimo neku klasu iz tog imenovanog prostora to radimo na sledei nain:
Bolji nain jeste da prvo uvezemo taj imenovani prostor i nakon toga pozovemo odreenu klasu preko naziva.
SKLOPOVI (ASSEMBLIES) Sve .NET klase su sadrane u sklopovima. Sklopovi su fizike datoteke koje sadre prevedeni kod. Sklopovi su smeteni u podirektorijumima C:\Windows\Assembly foldera i imaju ekstenzije .exe (za samostalne aplikacije) ili .dll (za komponente).
eMPIRICA IV Semestar: RWA 2013/2014
54
VEZE IZMEU OBJEKATA AGREGACIJA Da bismo kreirali neku relaciju izmeu objekata sve to je potrebno je da definiemo neku varijablu ili svojstva u nekoj klasi. Ovakav tip veze naziva se agregacija. Na sledeem primeru je prikazana ProductCatalog klasa koji sadri niz Product.
KOLEKCIJA (COLLECTIONS) Pomou kolekcija vri se grupisanje razliitih objekata. U nastavku je prikazan primjer kako moemo koristiti ArrayList da modifikujemo ProductCatalog klasu.
eMPIRICA IV Semestar: RWA 2013/2014
55
NASLEIVANJE (INHERITANCE) Nasleivanje je oblik ponovnog korienja koda. Omoguava jednoj klasi da stekne i proiri funkcionalnost od druge klase.
STATIKI LANOVI (STATIC MEMBERS) Kljuna re: static
eMPIRICA IV Semestar: RWA 2013/2014
56
CASTING OBJEKATA Promenljive objekata mogu da se konvertuju istom sintaksom koja se koristi za proste tipove podataka.
Provera da li postoji odgovarajui tip objekta, pre nego to se pokua sa casting-om.
eMPIRICA IV Semestar: RWA 2013/2014
57
PARCIJALNE KLASE Omoguavaju da se jedna klasa podeli u vie od jedne datoteke (.cs) izvornog koda.
eMPIRICA IV Semestar: RWA 2013/2014
58
GENERICS Generics omoguavaju kreiranje klasa koje su parametarizovane po tipu. Drugim reima, kreiramo ablon klasa koji podrava bilo koji tip.