You are on page 1of 6

to ete nauiti u ovom

poglavlju
2.Kreiranje Windows aplikacije




osnove organizacije .NET


platforme
na emu se temelji i koji su glavni
koraci u izradi vizualne C#
programske aplikacije
kreirati jednostavnu Windows
aplikaciju

Razvoj poslovnih aplikacija, M.Zeki-Suac

Zato C#?





Razvoj poslovnih aplikacija, M.Zeki-Suac

Prednosti C# jezika

Prema (O'Rielly,2005) cilj nastanka C# programskog jezika


bio je kreirati jednostavan, siguran, moderan, objektno
orjentiran, Internet-centrian jezik visokih performansi za .NET
platformu.
Iako je C# relativno nov jezik, zapravo je nastao na temelju
objektnih jezika Java, C++ i Visual Basic-a.
C# je vrlo slian Javi i C++ jeziku (sintaksa i semantika je
dobrim dijelom preuzeta iz Jave, koja ja potpuno objektno
orjentirani jezik), ali za razliku od njih nije neovisan o platformi,
tj. operativnom sustavu, ve je kreiran za izradu stolnih
(desktop) i Internet aplikacija u .Microsoft .NET okviru
(framework).
C# je nastao u sklopu tvrtke Microsoft i na tritu se pojavljuje
2000. godine zajedno s .NET platformom.

C# sadri sve dobre odlike potpuno objektnog programskog jezika


(koje dobrim dijelom preuzima iz C++ i Java jezika),
u sklopu .NET platforme omoguava kreiranje vizualnih aplikacija i
korisnicima koji nemaju programerskog iskustva.

po svojoj univerzalnosti za stolne i web aplikacije nazvan je jezikom
budunosti (Barker, 2007)

daje dobar uvid u nain na koji nastaju objektne i vizualne aplilacije,
kako bi se korisnike osposobilo takve aplikacije projektirati i upravljati
njihovim koritenjem.
Autor jedne od najpoznatijih knjiga o C# jeziku kae (O'Reilly, 2005):



Frankly, having worked for ten years as a C++ programmer and written a
dozen books on the subject, I'd rather have my teeth drilled than work
with managed C++. Perhaps it is just that C# is so much friendlier. In
anycase, once I saw C# I never looked back.

Razvoj poslovnih aplikacija, M.Zeki-Suac

Jo o C# jeziku








Razvijen u Microsoft-u, autori: Anders Hejlsberg and Scott


Wiltamuth (Hejlsberg je autor i Turbo Pascal-a)
C# sadri samo oko 80 kljunih rijei naredbi i na desetke
ugraenih tipova podataka
C# ima velike mogunosti u definiranju klasa (tipova objekata),
novih metoda i svojstava, te koritenju enkapsulacije,
nasljeivanja i polimorfizma
Podrava XML stil unutar dokumenata, suelja, svojstva,
dogaaje
Kod aplikacija moemo birati da li emo kreirati .dll ili izvrne
.exe aplikacije
Podrava rad s pokazivaima, te garbage collection

Razvoj poslovnih aplikacija, M.Zeki-Suac

Razvoj poslovnih aplikacija, M.Zeki-Suac

Microsoft .NET platforma


to je .NET?
 .NET platforma je zapravo razvojni okvir koji
omoguava novo suelje za programiranje
aplikacija (eng. application programming interface
(API)) i ujedinjuje klasino suelje Windows
operativnog sustava, zajedno s brojnim
tehnologijama koje su proizale iz Microsoft-a
zadnjeg desetljea


kao npr. COM+ usluge komponenti, ASP razvojni okvir za


web, XML, objektno-orjentirani dizajn, podrku za nove
web uslune protokole kao to je SOAP, WSDL, i UDDI,
sa aritem na Internet, a sve integrirano unutar DNA
arhitekture. (O'Rielly, 2005)
Razvoj poslovnih aplikacija, M.Zeki-Suac

Dijelovi .NET platforme

.NET okvir

.NET se sastoji od ove 4 grupe proizvoda:


 skup programskih jezika u okviru Visual Studio
razvojne okoline (jezici: C#, Visual Basic .NET,
Managed C++, Jscript .NET)
 skup .NET Enterprise servera (u ijem sklopu se
nalaze SQL Server, Exchange Server, BizTalk)
 ponuda komercijalnih web usluga (Project
Hailstorm)
 mobilni .NET ureaji (koji nisu PC), kao npr. mobilni
telefoni, ureaji za igre, i dr.

.NET okvir (Framework) je okvir koji povezuje


programske jezike ukljuene u .NET
platformu, omoguavajui koritenje istih
objekata (klasa), njihovo nasljeivanje i
polimorfizam u razliitim jezicima koje ta
platforma podrava.
Dakle, jezici u .NET platformi su u isto vrijeme i
nezavisni i integrirani.

Razvoj poslovnih aplikacija, M.Zeki-Suac

Kako .NET okvir radi?


Kako .NET okvir omoguava integriranje programskih jezika?

.NET okvir definira specifikaciju zvanu CTS (Common Type
System) koje se moraju drati svi .NET jezici (npr. sve u .NET
jeziku je objekt neke specifine klase koja je dio korjenske
klase System.Object). .NET okvir definira opi koncept klasa,
suelja, delegata, tipova referenci i tipova vrijednosti

.NET ukljuuje i Common Language Specification (CLS),
specifikaciju s pravilima kojih se treba drati kako bi integracija
jezika bila mogua i kako bi neki jezik mogao biti dio .NET
platforme. Prevoditelji (compiler-i) tih jezika rade na principu
CLS pravila i mogu kreirati objekte koji mogu meusobno
komunicirati neovisno o jeziku u kojem su napisani. Tako se
stvara biblioteka klasa unutar .NET okvira - Framework Class
Library (FCL) koju moe koristiti bilo koji jezik koji se dri
CLS-a.
Razvoj poslovnih aplikacija, M.Zeki-Suac

Glavne komponente .NET


okvira

Razvoj poslovnih aplikacija, M.Zeki-Suac

Instalacija .NETokvira





Da biste provjerili da li na
raunalu imate instaliran
.NET okvir, potrebno je
pogledati sadraj mape
C:/Windows/Microsoft
.NET/Framework
Instalacija mogua putem
MSDN web stranica
Provjeriti inaicu .NET okvira
(2.0 poeljno)

Razvoj poslovnih aplikacija, M.Zeki-Suac

Arhitektura .NET okvira

.NET okvir ukljuuje ove glavne komponente:


 4 slubena programska jezika: C#, Visual Basic
.NET, Managed C++, Jscript .NET
+ ova dva glavna dijela koja moe koristiti svaki .NET
jezik:
1. Common Language Runtime (CLR) - zajednika
platforma izvravanja programa, koju dijele
Windows i web aplikacije kreirane u .NET okviru
2. Skup kreiranih klasa (FCL) - biblioteka klasa koju
dijele programski jezici unutar ovog okvira

CLR je jedan od
glavnih dijelova,
jer omoguava
zajedniki nain
izvravanja
aplikacija.

Slika 2.2. Arhitektura .NET okvira (Izvor: O'Rielly, 2005)


Razvoj poslovnih aplikacija, M.Zeki-Suac

Razvoj poslovnih aplikacija, M.Zeki-Suac

CLR u .NET okviru

Biblioteke klasa u .NET okviru

CLR (Common Language Runtime) je mehanizam izvravanja


u zajednikom jeziku koji razliite .NET jezike prevodi u isti
zajedniki jezik, koji se koristi kada se aplikacije izvravaju
(Barker, 2007).

- ukljuuje virtualni stroj (virtual machine), slino kao Java


virtual machine (JVM), a radi tako da aktivira pojedine
objekte ukljuene u aplikaciju, radi debugging (provjeru
greaka), provjeru tipova, te JIT (just in time) prevoenje.
Prilikom prevoenja programa u .NET-u se ne kreira odmah
izvrna datoteka u strojnom jeziku, nego najprije MSIL ili IL
datoteka (Microsoft Intermediate Language), koja se tek kod
pokretanja projekta prevodi u strojni jezik po principu JIT,
odnosno prevoenja na zahtjev (on demand).
Svi jezici unutar .NET platforme proizvode slian IL kod i objekti i
klase iz jednog jezika mogu se koristiti u drugom.
Razvoj poslovnih aplikacija, M.Zeki-Suac

Biblioteke (ili skupovi) klasa u .NET okviru su razliiti prostori za nazive


(namespaces).
to su namespaces?

Skupovi tipova koji su logiki organizirani, to omoguuje koritenje
vie verzija tipova s istim nazivom, ali unutar razliitih prostora za
nazive (npr. kao to postoje u prirodi skupine ili vrste ivih bia), npr.

iva bia
 Vodozemci
 Gmazovi
 Sisavci

ivotinje

Ljudi
...daljnja podjela prema rasi, spolu, itd.

Postoji hijerarhija prostora za nazive jedan prostor moe
sadravati druge prostore u hijerarhijskom poretku

Prostori za nazive su sadrani unutar .NET okvira, ali i korisnici
razvojnih alata mogu koristiti te prostore.
Razvoj poslovnih aplikacija, M.Zeki-Suac

Osnovni prostori za nazive u


.NET-u
Naziv klase

Reference prema prostorima


za nazive u .NET aplikaciji

Opis

Solution Explorer
prikazuje reference
na prostore za
nazive (skupine
klasa) koje se
koriste u aplikaciji

System

Glavni prostor za nazive


sustava
System.Data
Klase koje se upotrebljavaju
za ADO.NET i globalnu
manipulaciju podacima
System.Drawing
Klasa za crtanje oblika i
objekata u aplikacijama
System.Windows.Forms Prostori za nazive i klase za
koritenje formi u windows
aplikacijama
Razvoj poslovnih aplikacija, M.Zeki-Suac

Upotreba prostora za nazive

Prikaz formova koji se


koriste u aplikaciji

Razvoj poslovnih aplikacija, M.Zeki-Suac

Prostori za nazive u aplikaciji


Openiti prostori za
nazive koji se
pozivaju u
svakoj aplikaciji

Svaki objekt u C# Express-u upotrebljava


prostore za nazive (npr. svaka forma je
napravljena u prostoru za nazive), openite
prostore za nazive kreira sam razvojni alat
umjesto nas
Npr.


Prostor za naziv za
projekt Hello

namespace Hello napravljen prostor za naziv za


na projekt pod nazivom Hello

Razvoj poslovnih aplikacija, M.Zeki-Suac

Razvoj poslovnih aplikacija, M.Zeki-Suac

Kako pronai upute za


koritenje prostora za naziv?





Object Browser
Polje za
pretraivanje
prostora za
nazive

Alat koji daje prikaz svih raspoloivih


prostora za nazive, klasa i metoda, te prua
i sintaksu i pomo za upotrebu nekog
prostora za naziv ili klase je Object
Browser
Pokree se s pomou izbornika View, Other
windows, Object Browser
Najprije se u prozoru prikazuju prostori za
nazive koji se koriste u aktivnom projektu, ali
se pretraivanjem moe dobiti pomo za
bilo koji prostor za nazive

Prikaz svih
prostora za
nazive

Razvoj poslovnih aplikacija, M.Zeki-Suac

Razvoj poslovnih aplikacija, M.Zeki-Suac

Primjer pretraivanja prostora


za nazive







Slika uz primjer:

Pretpostavimo da elimo pronai upute kako se koristi


klasa za ispis poruke korisniku na ekranu aplikacije
Ako u polje za pretraivanje u Object Browser-u
upiemo npr. MessageBox i pritisnemo Enter, dobije se
popis svih skupina klasa za ispis poruka
Ako elimo pronai samo klase za ispis poruka u
Windows formi, tada emo na popisu klasa oznaiti
System.Windows.Form.MessageBox
Na ekranu e se pojaviti sve metode (postupci koji se
mogu napraviti) za tu klasu
Tipkom F1 na ekranu se dobiva pomo za koritenje te
klase
Za povratak natrag potrebno je zatvoriti i prozor za
pomo i prozor Object Browser-a

Prikaz svih metoda


koje se mogu
napraviti s
pomou
MessageBox
objekta
Tipkom F1 dobiva
se pomo
(upute za
koritenje
treba doi na
upute za C#)

Razvoj poslovnih aplikacija, M.Zeki-Suac

Razvoj poslovnih aplikacija, M.Zeki-Suac

Primjer uputa za MessageBox

Naredba Using

public void PerformCalculations()


Naziv neke procedure
{

// Code is entered here that performs a calculation


// Display a message box informing the user that
the calculations are complete
MessageBox.Show ("The calculations are
U svoju
complete", "My Application",
proceduru
MessageBoxButtons.OKCancel,
potrebno je
MessageBoxIcon.Asterisk);
kopirati
samo ovu
}
Naziv objekta i metode
Razvoj poslovnih aplikacija, M.Zeki-Suac

naredbu, te
je preurediti

Ova naredba govori C# jeziku da se planira


koritenje odreenih prostora za nazive (skupina
klasa), ije nazive kasnije nije potrebno ponavljati u
programu kada se koristi odreena klasa ili objekt iz
te skupine
Naredbe Using na poetku koda za
formu projekta u njima se navode
ugraeni prostori za nazive koji se
mogu koristiti

Razvoj poslovnih aplikacija, M.Zeki-Suac

Primjer dueg i kraeg naina


upotrebe prostora naziva u kodu

IntelliSense mogunost

a) Upotreba dueg naina navoenjem pune sintakse


svih prostora naziva koji se koriste za ispis poruke na
ekranu:

System.Windows.Forms.MessageBox.Show ("Izraun je gotov",


"Projekt1",
MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk);

b) Upotreba kraeg naina pozivanja klase iz prostora


za nazive (ako je System.Windows.Forms klasa
ve navedena na poetku programa u naredbi
Using):
MessageBox.Show ("Izraun je gotov", "Projekt1",
MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk);

Razvoj poslovnih aplikacija, M.Zeki-Suac

Razvoj poslovnih aplikacija, M.Zeki-Suac

Primjer upotrebe IntelliSense


IntelliSense
pokazuje popis
objekata koje
moemo
izabrati a koji
poinju slovom
M

Izbor vrimo strelicama ili miem i tipkom Enter


prebacujemo taj dio naredbe u programski kod

Ako upisujemo dui nain pozivanja nekog


objekta, to se zove potpuno kvalificirana
naredba
Kod kraeg naina moe se koristiti
mogunost IntelliSense ugraena u alat,
koja prua pomo pri pisanju naredbi na
nain da nam prikazuje listu s moguim
klasama, objektima, metodama koje
moemo izabrati s popisa
Aktivira se automatski pri poetku pisanja
naredbe ili tipkom Ctrl-Space

IntelliSense
pokazuje popis
metoda koje
moemo
izabrati za
upisani objekt
MessageBox

Razvoj poslovnih aplikacija, M.Zeki-Suac

Kada koristiti dui nain


pisanja naredbi?


Dui (potpuno kvalificirani) nain


pisanja naredbi ima smisla koristiti ako
u razliitim prostorima za nazive
koristimo klase ili objekte s istim
nazivom, jer se moe pratiti iz kojeg
prostora je uzet odreeni objekt
U svakom drugom sluaju praktinije
je koristiti krai nain pisanja naredbi
Razvoj poslovnih aplikacija, M.Zeki-Suac

Kreiranje prve aplikacije

Razvoj Windows aplikacije

U C# Express razvojnoj okolini (IDE)


mogue je kreirati sljedee vrste
aplikacija:
 Windows aplikaciju (sa grafikim
sueljem, formama)
 Konzolnu aplikaciju (bez grafikog
suelja)-radi u command promptu
 Bibilioteku klasa

Nakon izbora kreiranja Windows aplikacije, u C#


Express-u vidljivi su glavni dijelovi (alati):
 Glavni editor koji se koristi za pisanje i ureivanje
koda, kod Windows aplikacija je vezan uz forme
 Solution Explorer prikaz organizacije projekta
(svih datoteka ukljuenih u projekt)
 Toolbox alat za dodavanje kontrola na forme
 Datasources prikaz koritenih baza podataka u
aplikaciji
 Properties prozor prikazuje svojstva koritenih
objekata

Razvoj poslovnih aplikacija, M.Zeki-Suac

Razvoj poslovnih aplikacija, M.Zeki-Suac

Koraci u razvoju Windows


aplikacije
1. otvoriti novi projekt, dodijeliti mu naziv
2. na forme dodati eljene kontrole, koristiti potrebne objekte,
postaviti im svojstva

3. aktivirati naredbu Debug kako bi se izvrila provjera
ispravnosti programa i prevoenje, te pokretanje programa

4. ispraviti eventualne greke

5. Pohraniti aplikaciju (solution) nastavak datoteke je .sln

6. Izai iz razvojne okoline i testirati program aktiviranjem
izvrne datoteke (exe)

7. Izgraditi aplikaciju (Build) pri emu e se kreirati setup.exe
datoteka i povezati sve potrebne datoteke za aplikaciju
Za koritenje aplikacije na drugom raunalu potrebno je prenijeti i
instalirati aplikaciju aktiviranjem setup.exe datoteke


Pitanja za ponavljanje
1.

Razvoj poslovnih aplikacija, M.Zeki-Suac

2.
3.
4.
5.
6.
7.
8.
9.

U kojoj mapi na disku se nalazi instaliran .NET okvir


(framework)?
Navedite dva glavna dijela .NET okvira?
Kako se jo zovu biblioteke klasa?
Koja kategorija u Solution Explorer-u prikazuje popis
prostora za nazive koji se koriste u projektu?
Kako se zove alat koji omoguuje prikaz svih ugraenih
skupina klasa?
Koja su dva naina za koritenje prostora za nazive u
programskom kodu?
to je IntelliSense?
Koje tri vrste aplikacija je mogue kreirati u C# Express-u?
Koji su glavni dijelovi C# Express razvojne okoline?
Razvoj poslovnih aplikacija, M.Zeki-Suac

Literatura


J. Liberty, Programming C#, Fourth edition, OReilly and Associates,


2005.
Prijevod: C# programiranje, A. Dragosavljevi (ur.), Dobar plan,
2005.
S. Barker, Visual C# 2005 Express, Mihailo J. olaji (ur.),
Kompjuter biblioteka, 2007.
Predavanja i zadaci na web stranici kolegija
Web izvori





Razvoj poslovnih aplikacija, M.Zeki-Suac

You might also like