You are on page 1of 59

PREDMET

Razvoj Web Aplikacija (RWA)



eMPIRICA IV Semestar: RWA 2013/2014

2

PREDAVANJE 1

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.


eMPIRICA IV Semestar: RWA 2013/2014

59

PREDAVANJE 5

You might also like