You are on page 1of 21

Programiranje Windows aplikacija u C#

Sadraj
1. 2. 3. Uvod ................................................................................................................................................ 2 Programski jezik C#.......................................................................................................................... 3 Osnove programiranja u C# ............................................................................................................. 5 3.1. 3.2. 4. Tipovi podataka, deklaracija i definicija promenljive ............................................................. 5 Klasa, objekat .......................................................................................................................... 8

.NET Framework ............................................................................................................................ 12 4.1. 4.2. 4.3. Objektno - orijentisano programiranje (Klase, objekti i metode) ......................................... 12 Kljune rei u C# .................................................................................................................... 12 Kreiranje konzolnih aplikacija u Microsoft Visual C# 2010 Express ...................................... 13

5.

Programiranje Windows aplikacija u C# ........................................................................................ 15 5.1. Visual Studio .......................................................................................................................... 16

6. 7.

Zakljuak ........................................................................................................................................ 21 Literatura ....................................................................................................................................... 21

1|Strana

Programiranje Windows aplikacija u C#

1. Uvod
Programski jezik C spada u proceduralne programske jezike koji je razvijen u ranim 70im godinama 20. stoljeda. Autor ovog programskog jezika je Dennis Ritchie, no znaajan doprinos nastanku C-a dali su Ken Thompson kao autor programskog jezika B i Martin Richards, autor programskog jezika BCPL. Dennis Ritchie je stvorio ovaj programski jezik za rjeavanje praktinih problema kodiranja sistemskih programa i jezgre operacijskog sustava UNIX, koji je praktiki u cijelosti napisan u C-u. Programski jezik C dosta se mijenjao tokom godina te je u vie navrata neformalno i formalno standardiziran. Prva vanija inaica poznata je pod nazivom "K&R C", to je engl. kratica prezimena dvaju autora najpoznatijeg C prirunika "The C Programming Language", a to su Brian Kernighan i Dennis Ritchie. Prvo izdanje te vrlo saeto i precizno pisane knjige koje datira iz 1978. godine ujedno je de facto standardiziralo jezik u 70-ima. Drugo izdanje iz 1988. godine opisuje "ANSI C", standard kojeg je 1983. godine definirao ameriki nacionalni institut za standardizaciju, a koji je i danas najbolje podran. Donedavni je standard bio ISO/IEC standard skradeno poznat kao "C99", no krajem 2011. usvojen je ISO/IEC 9899:2011, poznat kao "C11", za koji su kompajleri jo u razvoju. Kao jedan od najvanijih jezika u povijesti komercijalne raunalne industrije, C je do danas ostao jedini programski jezik prilagoen za sve raunalne p latforme, od malih sustava pa do mrenih superraunala. Programi napisani u njemu vrlo su bliski nainu rada hardvera te u naelu zahtijevaju od programera dobro razumijevanje rada procesora, memorije, ulaznoizlaznih sklopova itd. No, rad s registrima procesora i adresiranje memorije apstrahirani su pomodu koncepta varijabli i pokazivaa to uz eksplicitne kontrolne strukture i funkcije znatno olakava programiranje u odnosu na izravno programiranje u strojnim jezicima. Tokom 1980-ih, Bjarne Stroustrup zajedno s drugim istraivaima u Bell Labs proiruje C dodavajudi sposobnosti objektno orijentiranog programiranja, a naziv ovog novog programskog jezika je C++. Naalost, ta je 100%-na kompatibilnost ujedno i razlog to su problemi koje programiranje u C-u nosi sa sobom naslijeeni u C++-u. Efikasno i sigurno programiranje u C-u vrlo je zahtjevna vjetina koja trai viegodinje iskustvo pa je stoga C jezik koji se ne preporuuje poetnicima, posebice ako im programiranje nije primarni posao. Mnogobrojni problemi vezani prije svega za upravljanje memorijom koje programer mora sam eksplicitno kodirati razlog su da je danas vedina novih korisnikih aplikacija napi sana u nekom modernijem jeziku koji ima ugraeno automatsko upravljanje memorijom (engl. garbage collection), ne doputa izravan rad s memorijom pomodu pokazivaa te ima podrku za upravljanje kodom odnosno njegovom okolinom za vrijeme njegova izvoenja. D anas se relativno rijetko ukazuje potreba za pisanjem novih korisnikih aplikacija izravno u C-u, pa ak i u vrlo malim sustavima kao to su primjerice mobilni telefoni. Glavno podruje njegove uporabe su sistemski programi na strani posluitelja (engl. servers), programi prevoditelji (engl. compilers) i jezgre operativnih sustava (engl. operating system kernels), gdje je
2|Strana

Programiranje Windows aplikacija u C# potreba za najvedom mogudom brzinom izvoenja, efikasnom kontrolom resursa i izravnom kontrolom hardvera od primarne vanosti. C je jezik opde namjene, to znai da se u njemu moe napraviti apsolutno sve: od rjeavanja zadataka, do pisanja drivera, operacijskih susatava, tekst procesora ili igara. C, kao jezik, ni u emu ne ograniava. Omoguduje i ukljuivanje naredbi pisanih asemblerski, zbog ega je zajedno s mogudnodu direktnog pristupa pojedinim bitovima, bajtovima ili cijelim blokovima memorije, pogodan za pisanje sistemskog softvera. Zbog tih karakteristika C je meu popularnijimprogramskim jezicima i rabe ga mnogi programeri. Rezultat toga je postojanje velikog broja prevoditelja za C i alata te stalno dostupne pomodi na internetu. Programi pisani u C-u su prenosivi (mogu se prevoditi i izvravati na razliitim porodicama raunala uz minimalne ili nikakve ispravke) i obino su vrlo brzi. Postoje mnogi prevoditelji za jezik C, a jedan od najire koritenih je GNU C Compiler.

2. Programski jezik C#
C# je zreo programski jezik koji omogudava izradu aplikacija za Web sa svom potrebnom funkcionalnodu. Osim to prua programski okvir za razvoj softvera, omogudava i podrku za pristupanje brojnim bazama podataka. On predstavlja jedan od jezika koji slue za izradu aplikacija koje mogu raditi pod .NET okruenjem. Kako predstavlja evoluciju jezika C i C++, kao takav je kreiran uz koridenje svih prednosti ostalih jezika i otklanjanje njihovih mana. Sam razvoj aplikacije je jednostavniji u C# jeziku, a sam jezik je izuzetno modan. S vremena na vreme njegov kod je mnogo razumljiviji u odnosu na druge jezike, ali je neto robusniji i jednostavnije je otkloniti greke u njemu. Sam jezik nema ogranienja u pogledu toga kakve se aplikacije mogu napraviti u njemu, on koristi okruenje i samim tim nema ogranienja u vezi sa mogudim aplikacijama. Za programiranje u C# koriden je Visual Stud io .NET, koji je u mnogome olakao razvoj same aplikacije. Visual Studio .NET pored toga to sadri dizajnerske alatke za aplikacije, alatke za prikazivanje i navigaciju elemenata projekta, omogudava jednostavniju distribuciju i prilagoavanje projekta klijentimai obezbeuje napredne tehnike otklanjanja greaka pri razvoju projekta. Programski jezik C# (C sharp) je proizvod kompanije Microsoft i nastao je kao odgovor na nedostatke postojedih jezika kao to su C, C++ i Visual Basic, u isto vrijeme kombinujudi njihove dobre strane. C# je potpuno objektno-orijentisani programski jezik, to znai da svi elementi unutar njega predstavljaju objekt. Objekt predstavlja strukturu koja sadri podatkovne elemente, kao i metode i njihove meusobne interakcije. Kao primjer jednostavnog C# programa, navest demo sljededi kod: Using System; Class Primjer{ statis void Main()
3|Strana

Programiranje Windows aplikacija u C# { Console.WriteLine("Pozdrav!"); } } Nakon izvoenja ovog programskog koda, na ekranu se ispisuje poruka "Poz drav!". Using System; je kompajlerska naredba koja mu govori da aplikacija koristi skup elemenata pod nazivom System. Na ovaj nain sve funkcije i klase unutar prostora (namespace) System postaju izravno dostupne unutar aplikacije. Na primjer, koritena kl asi Console u naem primjeru pristupa se direktno iako se ona nalazi unutar klase System.

Slika 1. Nain na koji je C# dobio ime U suprotnom bismo joj morali pristupati na sljededi nain: System.Console; Nadalje definiramo vlastitu klasu naziva Primjer. Za ovo koristimo kljunu rije Class, te vitiaste zagrade koje idu nakon imena klase, i definiu opseg klase. Drugim rijeima, svi objekti koje definiemo unutar ovih zagrada pripadati de toj klasi. Svaki program mora imati taku u kojoj krede sa izvravanjem, i to je u C# aplikaciji funkcijaMain(). U naem primjeru ta funkcija definisana je pomodu dvije kljune rijei: static i void. Za kraj ostaje objasniti naredbu za ispis teksta koritenu u primjeru.

4|Strana

Programiranje Windows aplikacija u C# Ta naredba imenom WriteLine sadrana je u klasi Console. Svim sastavnim elementima neke klase/objekta pristupamo na nain da napiemo ime klase/objekta te nakon njega stavimo toku i napiemo ime elementa (varijable, funkcije...) kojem pristupamo. Funkcija WriteLine prima jedan argument, i to upravo tekst kojeg elimo ispisati. Konano, naredba izgleda: Console.WriteLine("Pozdrav!"); Jo je bitno napomenuti da u C# jeziku svaka linija zavrava taka-zarezom (eng. semicolon)

3. Osnove programiranja u C#
Programski jezik C# je nastao 2002. godine u radionici uvene kompanije Microsoft kao proizvod elje da se napravi objektno orijentisani programski jezik (poput Jave) koji omogudava relativno lako kreiranje aplikacija u grafikom korisnikom okruenju (poput programskog jezika Borland Delphi). Ovaj programski jezik je jezik opte primene i namenjen je izradi aplikacija za Microsoft .NET platformu. Sintaksne konstrukcije programskog jezika C# su izgraene na uobiajenoj azbuci (velika i mala slova abecede, cifre, specijalni znaci). Kao i u svakom drugom programskom jeziku postoje takozvene slubene ili rezervisane rei koje imaju svoje unapred definisano znaenje i ne mogu se koristiti za imenovanje bilo kakvih podataka od strane programera. Ovde navodimo skup rezervisanih rei poreanih u leksikografskom poretku: abstract, as, base, bool, break, byte, case, catch, char, checked, class, const, continue, decimal, default , delegate, do, double, else, enum, event, explicit, extern, false, finally, fixed, float, for, foreach, goto, if, implicit, in, int, interface, internal, is, lock, long, namespace, new, null, object, operator, out , override, params, private, protected, public , readonly, ref, return, sbyte, sealed, short, sizeof, stackalloc, static, string, struct, switch, this, throw, true, try, typeof, uint, ulong, unchecked, unsafe, ushort, using, virtual, volatile, void, while U ovom dijelu seminarsko rada govori se o tipovima podataka kojima C# manipulie kao i sa graenjem osnovnih sintaksnih i semantikih konstrukcija ovog programskog jezika.

3.1.

Tipovi podataka, deklaracija i definicija promenljive

Svakom aplikacijom obraujemo podatke. Svi podaci uvaju se u memoriji raunara u obliku nizova bistabilnih elemenata (0 i 1), bez obzira da li podatak predstavlja broj, re, sliku ili zvuk. Razliite vrste podataka registruju se na razliite naine. Takoe, nad razliitim vrstama podataka su dozvoljene razliite operacije. U zavisnosti od vrste podatka, mora se odvojiti odreeni prostor za njegovo registrovanje i obezbediti izvravanje odreenih akcija
5|Strana

Programiranje Windows aplikacija u C# nad tim podatkom. Raunaru moramo dati informaciju koja vrsta podatka je registrovana da bi ga na pravi nain tumaio i obraivao. Potrebne informacije saoptavamo raunaru tipom podataka. Tipom podataka definisan je: o nain registrovanja podataka u memoriji; o skup mogudih vrednosti tih podataka; o skup mogudih akcija nad podacima. Promenljiva je ime (identifikator) memorijske lokacije u kojoj aplikacija uva vrednost. Identifikator (ime) koji programer definie gradi se na osnovu slededeg pravila: Identifikator je niz slova (velikih i malih) engleske abecede, znaka za podvlaenje (_) i cifara. Ime mora da pone slovom ili znakom za podvlaenje. Prema tome, primeri identifikatora su nazivPredmeta, ucenik1, Rezultat, radni_dan, _x, ... dok nazivPredmeta, godisnje-doba, 1dan, ... nisu identifikatori. Vano je napomenuti da C# (poput programskog jezika C) razlikuje velika i mala slova tako da identifikatori GodisnjeDoba i godisnjeDoba nisu isti. U programskom jeziku C# promenljive su podeljene u dve kategorije: vrednosne i referentne promenljive. Memorijska lokacija, imenovana promenljivom vrednosnog tipa, direktno sadri vrednost, dok lokacija imenovana promenljivom referentnog tipa sadri adresu lokacije u dinamikoj memoriji u kojoj se uva vrednost. Za podatke osnovnih tipova (tj. sistemskih struktura) u programskom jeziku C# (int, double, char, bool) ime promenljive predstavlja vrednost a za objekte sistemskih i od strane programera definisanih klasa, ime promenljive predstavlja adresu lokacije u dinamikoj memoriji u kojoj su ti objekt i kreirani i gde egzistiraju, pa se njima pristupa indirektno. Referentna promenljiva uva memorijsku adresu podatka, tj. referencira na pravu vrednost. Imenovanje podataka u aplikaciji i definisanje tipa podataka kojem pripadaju postiemo deklaracijom promenljivih na slededi nain: <ime tipa><ime promenljive1>, , <ime promenljiveN> ; Deklaracijom promenljive vrednosnog tipa u memoriji se odvaja prostor neophodan za registrovanje podatka zadatog tipa, a pri deklaraciji promenljive referentnog tipa odvaja se prostor za registrovanje adrese memorijske lokacije u kojoj de se nalaziti objekat.

6|Strana

Programiranje Windows aplikacija u C# int x,y; char p,q; Ucenik ucenik1,ucenik2; Samom deklaracijom ne dodeljuje se vrednost promenljivoj vrednosnog tipa. Ako elimo da dodelimo vrednost promenljivoj (da definiemo promenljivu) koristimo operator = (operator dodele) na slededi nain: <promenljiva>=<izraz>; Tip vrednosti izraza mora se poklapati sa tipom promenljive (ili se implicitnom konverzijom moe konvertovati u tip promenljive). int x,y; x=5; y=!145+x; char p; p=A; Deklaracijom promenljive referentnog tipa ne zauzima se memorija za vrednost ved samo za njenu referencu. Da bismo napravili prostor za vrednost, upotrebljavamo izraz oblika new <ime referentnog tipa>(<lista parametara>) Koridenjem operatora new odvaja se u dinamikoj memoriji prostor za registrovanje vrednosti tipa <ime referentnog tipa >. Ovaj operator vrada adresu dodeljenog prostora koju onda moemo dodeliti referentnoj promenljivoj. Primer: mojRefTip x; x= new mojRefTip(); Ucenik a; a=new Ucenik(Pera, Peric); Promenljivoj referentnog tipa x, odnosno a, dodeljujemo adrese memorijskog prostora odvojenog koridenjem operatora new. Pozivima metoda mojRefTip() i Ucenik(Pera, Peric), u prostoru odvojenom koridenjem operatora new, postavljaju se odgovarajude vrednosti. Moemo zakljuiti da se uvoenje promenljive odvija u dva koraka: o deklaracija promenljive promenljiva vrednosnog tipa se pri deklaraciji ne inicijalizuje ukoliko to nije
7|Strana

Programiranje Windows aplikacija u C# eksplicitno navedeno: promenljiva referentnog tipa se pri deklaraciji inicijalizuje nulom; o inicijalizacija promenljive za promenljive vrednosnog tipa eksplicitno navodimo vrednost ; za promenljive referentnog tipa operator new odvaja u dinamikoj memoriji prostor za vrednost odgovarajudeg tipa. U programskom jeziku C# je data mogudnost objedinjavanja ova dva koraka, to vrlo esto koristimo. int x=32, y; mojTip z= new mojTip(); Ucenik a=new Ucenik(Pera, Peric); Osnovni podaci referentnog tipa u programskom jeziku C# su klase a vrednosnog strukture i enumeracijski tip. Promenljiva vrednosnog tipa direktno sadri podatak, dok promenljiva referentnog tipa sadri referencu na vrednost koja je smetena u p osebnom memorijskom prostoru. Svaka promenljiva vrednosnog tipa sadri sopstvenu kopiju podatka, pa operacije nad jednom promenljivom nemaju efekta na drugu promenljivu. Dve referentne promenljive mogu sadrati adresu iste vrednosti, pa operacije nad jednom referentnom promenljivom mogu uticati na vrednost na koji referie druga promenljiva.

3.2.

Klasa, objekat

Do klasa dolazimo polazedi od pojedinanih objekata. Posmatranjem objekata uoavamo njihova zajednika svojstva koja zovemo atributima. Takoe, objektima moemo pridruiti iste akcije koje u okviru klase nazivamo metodima klase. Njima opisujemo funkcionalnosti objekata klase. Klasu definiemo navoenjem rezervisane rei class iza koje sledi identifikator klase (ime klase). Posle imena, ako formiramo klasu koja nasleuje neku, prethodno definisanu klasu, navodimo : a zatim sledi ime klase iz koje je izvedena. Zatim u vitiastim zagradama {} definiemo lanove klase (atributi i metodi). class <imeKlase> :<imePrethodnoDefinisaneKlase> { opis / definicija lanova klase } Na primer, klasu uenika iz uvodnog primera moemo intuitivn o definisati na slededi nain: class Ucenik {
8|Strana

Programiranje Windows aplikacija u C# String ime, prezime; DateTime datumRodjenja; int razred; int SkolskaGodina; char odeljenje; int [] ocene; double prosek() { } void uci(Lekcija X) { } } Atributima opisujemo odreenu osobinu objekta (ime, prezime, datumRodjenja, razred, odeljenje). Najede, razliiti objekti iste klase imaju razliite vrednosti atributa. esto kaemo da vrednosti atributa definiu stanje objekta. Pri opisu atributa moramo navesti tip kome taj atribut pripada (celobrojni, realni, znakovni, Form, Button) i ime atributa. Pri tome, navedeni tip je prethodno definisan (ugraen u sistem ili definisan od strane programera). int a,b; //celobrojni atributi a i b Button dugme;// atribut dugme, objekat ugraene klase Button U programskom jeziku C#, po navoenju //, piemo komentare napisanog koda. Poev od // pa do kraja linije napisani komentar se pri prevoenju programa ignorie. Ukoliko piemo opirniji komentar, koji obuhvata vie redova, od ostalog dela koda odvajamo ga na poetku sa /* a na kraju sa */. Pristup atributima objekta u programskom jeziku C# realizujemo navoenjem imena objekta, znaka taka (.), pa imena atributa. Na primer, ako je X objekat klase Ucenik, atributu razred pristupamo sa X.razred. Metodom opisujemo ponaanje objekta u odreenoj situaciji i pod odreenim uslovima (npr. metod uci), ali i odreujemo nove vrednosti na
9|Strana

Programiranje Windows aplikacija u C# osnovu osobina koje objekat poseduje (npr. metod funkcionalnost objekta. prosek). Na taj nain opisujemo

Metod klase je imenovani blok naredbi koji se sastoji iz zaglavlja i tela metoda. U zaglavlju navodimo povratni tip (ako metod ne proizvodi vrednost koju vrada, navodimo rezervisanu re void), zatim ime metoda za kojim sledi u malim zagradama spisak parametara metoda. Za svaki parametar navodi se tip kome taj parametar pripada kao i ime parametra. Posle zaglavlja u vitiastim zagradama navodimo telo metoda koje se sastoji iz odgovarajudih naredbi programskog jezika C#. <povratni tip><ime metoda>(<lista parametara>) { <telo metoda> } Svi atributi konkretnog objekta dostupni su i vidljivi svim metodima tog objekta i traju dok traje objekat. Za razliku od njih, promenljive deklarisane u okviru nekog od metoda (lokalne promenljive), nastaju izvravanjem tog metoda, vidljive su samo u okviru njega, i gase se zavretkom tog metoda. Zato, ako je potrebno da koristimo vrednost u okviru vie metoda jedne klase (ili u vie izvravanja jednog metoda), moemo je definisati kao atribut klase. Neki od metoda se pokredu kao reakcija na dogaaje koji nastaju tokom izvravanja aplikacije. Za takve metode kaemo da obrauju dogaaje(engl. event handler). Kada u toku izvravanja aplikacije pritisnemo dugme za izlazak iz programa u naslovnoj liniji prozora u kome se izvrava aplikacija, automatski se pokrede metod Closing u okviru koga moemo programirati akcije koje de spreiti izlazak iz programa ukoliko uslovi za to nisu ispunjeni. Vrlo esto u toku izvravanja Windows aplikacija korisnik ima mogudnost da klikom na dugme usmeri dalje izvravanje aplikacije. Tok izvravanja aplikacije nakon klika na dugme programer definie metodom Click. Poziv metoda objekta u programskom jeziku C# realizujemo na slededi nain: imeObjekta.imeMetoda(lista vrednosti parametara) Na primer, ako je x objekat klase Ucenik, metod prosek pozivamo x.prosek() a metod uci x.uci(L) gde je L objekat klase Lekcija. Svaka klasa sadri metode koji omogudavaju kreiranje objekta, a moe sadrati i metod koji unitava objekat (destruktor). Metode koje kreiraju objekte zovemo konstruktorima. Konstruktori su sastavni deo svake klase i nose njeno ime. Pozivom konstruktora objekat
10 | S t r a n a

Programiranje Windows aplikacija u C# poinje svoj ivot. Klasa moe imati jedan ili vie konstruktora koji se razlikuju po listi parametara. Lista parametara najede sadri vrednosti kojima inicijalizujemo svojstva objekta, a moe biti i prazna. Konstruktor neke klase pozivamo pri definisanju objekta iste klase, koridenjem operatora new. Objekat A klase Ucenik moemo definisati izrazom A=new Ucenik("Pera","Peric"); Jedan od osnovnih koncepata objektno orijentisanog programiranja jeste kontrolisanje pristupa lanovima objekta (atributima i metodima). Za svaki lan klase (atribute i metode) moramo definisati nivo pristupa (vidljivosti, dostupnosti, zatite). Na taj nain definiemo koliko je taj lan klase otvoren prema spoljanjem svetu. U programskom jeziku C# postoje vie nivoa pristupa a mi demo, u poetku, koristiti privatni (private) i javni (public ) pristup. Neki lanovi klase mogu da se koriste interno, samo u metodima klase, i metodi drugih klasa im ne mogu pristupiti. Za takve lanove klase kaemo da su privatni i pri njihovom definisanju navodimo rezervisanu re private. Privatnim lanovima klase mogu pristupati samo metodi te klase i to je najvii nivo zatite. Pri opisu javnih lanova klase navodimo rezervisanu re public . Takvi lanovi klase su dostupni svetu van klase i pristup tim lanovima je potpuno slobodan. Podrazumevani pristup lanovima klase je privatni, to znai da su lanovi klase za koje nije naveden nivo pristupa, privatni lanovi. Uobiajeno je da su atributi privatni, a metodi javni lanovi klase. Ukoliko postoji potreba da se izvan klase pristupa privatnim atributima, potrebno je definisati javne metode ili javno svojstvo (engl. property) u okviru klase koji slue za komunikaciju sa privatnim atributom, odnosno omogudava postavljanje vrednosti ili itanje vrednosti atributa. Pri definisanju lanova klase, posle nivoa pristupa, moemo navesti i slubenu re static kojom definiemo da odgovarajudi lan postoji i da se koristi i bez kreiranja konkretnih instanci klase. Takvim lanovima pristupamo navoenjem imena klase umesto imena objekta. Bez obzira na broj instanci klase koja sadri atribut static, postoji tano jedna kopija tog atributa u aplikaciji. U navedenom primeru klase Ucenik, lan SkolskaGodina moemo definisati kao static jer je vrednost ista za sve uenike, i u tom sluaju tom atributu pristupamo Ucenik.SkolskaGodina.

11 | S t r a n a

Programiranje Windows aplikacija u C#

4. .NET Framework
NET Framework je revulucionarna platofrma koju je kreirao Microsoft za razvoj aplikacija. To je takva platforma na kojoj mogu raditi razliite vrste aplikacija (Windows aplikacije, Web aplikacije, Web servisi...). NET Framework je dizajniran tako da moe koristiti bilo ko ji programski jezik kao to su C++, Visual Basic, Jscript, ak i ranije verzije Cobol. Takoe je mogude da se kombinuju pojedini delovi koda iz razliitih programskih jezika. Npr. kod napisan u C# se moe kombinovati sa kodom iz Visual Basica. NET Framework sadri veliku biblioteku koda koji moe da koristi klijentski jezik (kao to je C#) koristedi tehnike objektno-orijentisanog programiranja. Ova biblioteka se sastoji od razliitih modula, pri emu je mogude koristiti pojedine delove u zavisnosti od potre be. Tako npr. neki moduli sadre blokove za kreiranje windows aplikacija, drugi deo za mreno programiranje, a neki drui za Web razvoj. Neki moduli su podeljeni u neke specifinije pod module.

4.1.

Objektno - orijentisano programiranje (Klase, objekti i metode)

Objekat je primerak (instanca) klase. Klasa predstavlja skup podataka i instrukcija koje se izvode na nekim podacima. Klasa je skup pravila koji odreuju kako de se formirati neki objekat. Svaka klasa ima svoje lanove i to su podaci i kod. Podaci koji se definiu u klasi obino se nazivaju polja (fields). Ovde se koriste termini kao to su funkcija (metoda) koja predstavlja kod programa koji se izvrava nad podacima. Metodi su ustvari podprogrami i oni mogu imati svojstva, dogaaje i konstruktore. Metodi se izvravaju nad poljima koja su definisana u klasi.

4.2.
abstract break char continue do event finally foreach in internal namespace operator params readonly sealed

Kljune rei u C#
as byte checked decimal double explicit fixed goto in (generic modifier) is new out private ref short base case class default else extern float if int lock null out (generic modifier) protected return sizeof bool catch const delegate enum false for implicit interface long object override public sbyte stackalloc
12 | S t r a n a

Programiranje Windows aplikacija u C# static this typeof unsafe void string throw uint ushort volatile struct true ulong using while switch try unchecked virtual

4.3.

Kreiranje konzolnih aplikacija u Microsoft Visual C# 2010 Express

Na slici 2 je prikazana startna strana, na kojoj se mogu odabrati ponuene mogudnosti za formiranje novog projekta izborom opcije New Project ili otvaranje ved postojedeg projekta izborom opcije Open Project.

Slika 2. Izgled startnog prozora Microsoft Visual C# 2010 Express

Pri kreiranju konzolne aplikacije izabere se opcija sa padajudeg menija FileNew Project. Zatim se u okviru panela Templates izabere Console Application. Potom se dobija sledede: using System; using System.Collections.Generic; using System.Linq;
13 | S t r a n a

Programiranje Windows aplikacija u C# using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { } } } Da bi aplikacija bilo ta radila potrebno je dodati bar jednu liniju koda ispod glavne funkcije static void Main(string[] args). Primjer 1. Ispisati tekst na ekranu. using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Console.WriteLine("Prva aplikacija kod C# proogramiranja!"); Console.ReadKey();/*trai se pritiskanje nekog tastera za prekid rada programa*/ }

14 | S t r a n a

Programiranje Windows aplikacija u C# } } namespace predstavlja .NET nain da se kod i njegov sadraj jedinstveno identifikuju. Takoe se koristi za kategorizaciju elemenata u .NET Framework. namespace je deklarisan za kod aplikacije koja se u ovom sluaju naziva ConsoleApplication1. using System;-predstavlja koridenje System namespace (odnosi se na biblioteku klasa .NET Framework, iju biblioteku koristi C#). Za vede projekte moe se kreirati sopstveni namespaces. class Primer{ -definicija klase Primer. Poetak klase poinje sa otvorenom vitiastom zagradom {, a zavrava se sa }. static void Main()-poinje glavni metod, gde se izvrava program. Ovaj metod poinje sa static, to znai da je statiki i void - ne vrada vrednost. Console.WriteLine("Jednostavan C# program."); -WriteLine() je funkcija koji kao rezultat vrada string koji mu je prosleen. Console- podrava konzolni I/O. U kombinaciji se kompajleru govori da je WriteLine() lanica Console klase. Izrazi u C# se zvravaju sa taka-zarezom (;). Console.ReadKey(); - funkcija za unos nekog znaka sa tastature (za prekid rada programa) Ovaj program se unosi izborom opcije New Project, pa se bira u okviru Online Template opcija Empty Project. Na padajudem meniju se izabere opcija Build Build Solution (F6), a potom sa padajudeg menija Debug Start Without Debugging. (Ukoliko je u padajudem meniju ne postoje ove opcije treba izabrati opciju Tools Settings Expert Settings). Ukoliko se fajl ne snimi pod nekim imenom, dodeljuje mu se automatski ime CodeFile1.cs. Naravno, postoji mogudnost preimenovanja. Pri izvravanju aplikacije pojavide se u komand propmptu tekstualna poruka: Jednostavan C# program.

5. Programiranje Windows aplikacija u C#


Nakon upoznavanja sa tim ta je u stvari jezik C# i kako se uklapa u .NET okruenje, doao je trenutak da zaponemo sa pisanjem koda. U tom poslu koristidemo Visual Studio .NET (VS), pa treba da nauimo osnovne stvari o torn razvojnom okruenju. VS je ogroman i komplikovan proizvod, tako da u prvo vreme korisniku moe delovati zastraujude, ali uz njegovu pomod pravljenje jednostavnih aplikacija moe biti iznenaujude prosto.

15 | S t r a n a

Programiranje Windows aplikacija u C# im ponemo sa koridenjem VS-a uvidedete da nije potrebno mnogo znati o njemu da bismo se poigrali sa C# kodom. Kasnije demo videti neke mnogo komplikovanije operacije koje je mogude izvesti u VS-u, ali za sada su dovoljna osnovna znanja. Poto zavirimo u VS, sastavidemo dve proste aplikacije. Za sada se nedemo mnogo opteredivati kodom, samo demo se upoznati sa tim koje su procedure potrebne da bi se aplikacija napravila i da bi funkcionisala kako treba, mada de sve to uskoro postati sporedno. Prva aplikacija koju demo napraviti bide jednostavna konzolna aplikacija. Konzolne aplikacije ne koriste grafiko okruenje Windowsa, tako da ne moramo da brinemo o dugmadima, menijima, interakciji sa pokazivaem mia i tako dalje. Umesto toga, pokrenudemo aplikaciju iz komandne linije i komunicirati sa njom na mnogo prostiji nain. Druga aplikacija de biti bazirana na Windows formularima. Njen izgled, kao i rad sa njom, bide vrlo prepoznatljiv onima koji su koristili Windows i njeno kreiranje ne zahteva nita vise rada nego prethodna. Ipak, sintaksa njenog koda je mnogo komplikovanija, mada esto nedemo morati da vodimo rauna o detaljima. Dodatna fleksibilnost Windows aplikacija nije neophodna da bi se nauio C# jezik, dok jednostavnost konzolnih aplikacija omoguduje da se skoncentriemo na uenje sintakse, a da za to vreme ne brinemo o tome kako aplikacija izgleda niti kakav je osedaj raditi sa njom.

5.1.

Visual Studio

Kada prvi put uitate VS, odmah se pojavi nekoliko prozora, od kojih je vedina prazna, zajedno sa nizom elemenata menija i ikona sa paletama alatki. Ukoliko prvi put pokredete VS bide vam predstavljena lista sa vrednostima namenjena za korisnike sa iskustvom u radu na prethodnim izdanjima ovog razvojnog okruenja. Automatski odabrani element! su sasvim u redu, za sada ih pri hvatite jer tu nema niega to se kasnije ne moe promeniti. Izgled VS okruenja je u potpunosti prilagodljiv, ali su nam sasvim dovoljne ved postavljene vrednosti. One su sreene na slededi nain:

16 | S t r a n a

Programiranje Windows aplikacija u C#

Slika 3. Korisniki interfejs Visual Studia paketa Glavni prozor, koji prikazuje uvodnu poetnu stranu" kada se VS pokrene, jeste onaj u kome se prikazuje ceo na kod. Ovaj prozor je podeljen na kartice tako da moemo lako skakati sa jedne na drugu datoteku tako to demo pritisnuti miem njihovo ime. Ovaj prozor ima i druge funkcije: moe prikazati grafiki korisniki interfejs koji dizajniramo za na projekat, iste tekstualne datoteke, HTML, kao i razliite alate ugraene u VS. Opisademo svaki, kako na njega naiemo tokom rada. Iznad glavnog prozora nalaze se palete sa alatkama, kao i VS meni. Ovde moete nadi nekoliko razliitih paleta sa alatkama rangiranih po funkcionaln osti - od alatki za snimanje i uitavanje datoteka, preko izgradnje i pokretanja projekta, do kontrola za otklanjanje greaka. O svima njima demo priati kada nam budu zatrebali. Slede kratki opisi glavnih karakteristika VS-a, koje dete najede koristiti: Server Explorer i Toolbox paleta sa alatkama izbacuju sopstvene menije kada se preko njih prede miem, i otvaraju nam nove dodatne mogudnosti, kao to su pristup i podeavanje karakteristika i servisa samog servera, i pristup korisnikom interfejsu za izradu elemenata Windows aplikacija.

17 | S t r a n a

Programiranje Windows aplikacija u C# Solution Explorer prozor prikazuje informacije o trenutno uitanim reenjima. Reenje je po terminologiji VS-a jedan ili vise projekata zajedno sa njihovom konfiguracijom. Ovde moemo videti razliiti pogled na projekte unutar reenja, kao to su datoteke iz kojih se sastoje i njihov sadraj. Properties prozor omoguduje detaljniji pogled na sadrin u projekta i dozvoljava nam da izvedemo dodatno konfigurisanje pojedinih elemenata. Na prime r, taj prozor moemo koristiti da promenimo izgled dugmeta unutar Windows formulara. Task List and Output prozor prikazuje informacije prilikom kompajliranja projekta zajedno sa zadacima koji treba da se izvre (slino listi zadataka u Microsoft Outlooku). Ovi zadaci se mogu uneti runo, a mogu biti i automatski generisani od VS-a. Primjer: Napravite novi projekat konzolne aplikacije birajudi File | New | Project... iz menija:

Izaberite Visual C# Projects direktorijum unutar prozora Project Types:, i tip projekta Console Application u okviru prozora Templates: (za ovo dete morati malo da pomerite prozor na dole). U okviru za tekst Location: promenite putanju u C:\Temp\SoftIng\LecturesCode\Vezba1 (ovaj de direktorijum biti automatski napravljen ukoliko ved ne postoji), i ostavite podrazumevani tekst u okviru za tekst Name: Pozdrav Svete.

18 | S t r a n a

Programiranje Windows aplikacija u C# Pritisnite miem na dugme OK. Kada se projekat inicijalizuje dodajte sledede redove u datoteku koja se bude pojavila u glavnom prozora:

Izaberite Debug | Start Without Debbuging iz menija. Posle nekoliko trenutaka trebalo bi da vidite sledede:

Takoe samu konzolnu aplikaciju moemo pokrenuti i na drugi nain: Odaberite Start | Programs | Microsoft Visual Studio .NET 2003 | Visual Studio .NET Tools | Visual Studio .NET Command Prompt. Pojavide se komandni prozor i bide definisane sve promenljive okruenja potrebne prevodiocima i alatkama Visual Studija. Ako se pokrene obino komandno okruenje, bez zadavanja tih promenljivih, .NET alatke nede raditi.

19 | S t r a n a

Programiranje Windows aplikacija u C# Posle otvaranja komandnog prozora .NET-a uite u folder u kome ste sauvali ovu konzolnu aplikaciju. Unesite u komandnom prozoru slededu komandu, koja prevodi kod konzolne aplikacije: csc Class.cs <Enter> Naravno programiranje pod celim Visual Studio .NET je tkz. Case Sensity, osetljiv velika i mala slova. Tako da morate da obratite panju pri kucanju koda. Ovde to nije sluaj, ali nije naodmet da se navikavate na velika i mala slova. Prvo dete dobiti obavetenje o verziji prevodioca i izvrnog okruenja, a zatim i o autorskim pravima. Pokrenute program i bidete pozdravljeni na slededi nain: C:\> Class1 Pozdrav svete na jeziku C# ! C:\> Funkcija Console.WriteLine() dodaje tekstu indikator novog reda (engl. Newline character). U windowsu je to kombinacija znaka za poetak reda i znaka za prelazak u novi red. Da biste u nekoliko iskaza pisali u istom redu, koristite funkciju Write(). Ona zahteva da sami dodate indikator novog reda. Sada u prethodnom programu zamenite iskaz WriteLine() slededim iskazima: Console.Write ("Zdravo svete " ) ; Console.Write ( "na jeziku C#! \ r \n" ) ; Obrnuta kosa crta (\) ispred znaka je signal prevodiocu da je u pitanju izlazna sekvenca (engl. escape sequence). Iz sledede tabele vidi se da C# koristi iste izlazne znake kao i C++. Ako iza obrnute kose crte stavite neki dragi znak, dobidete od prevodi oca poruku da nije prepoznao izlazni znak.

20 | S t r a n a

Programiranje Windows aplikacija u C#

6. Zakljuak
Kreiran kako bi se iskoristile ogromne mogudnosti .NET platforme , C# se ubrzo pokazao kao nevjerovatno univerzala programski jezik sposoban da zadovolji zahtjeve kako najsloenijih programskih zadataka kakvi se sredu na serverima, radnim stanicama i superaunarima pa sve do malih mobilnih uredjaja. Njegova sposobnost da direktno upravlja hardve rom ini ga veoma modnim sredstvom pri kreiranju novih i modifikovanju postojedih operativnih sistema. Uprkos svim svojim prednostima i sposobnostima, C# kao i njegove prethodnika karakterie sloenosti sintakse i samog procesa programiranja. Zbog toga, on predstavlja jezik vie klase namijenje za rad iskusnim, vrhunskim programerima koji su u stanju pravilno i u punoj mjeri iskoristiti njegove mogudnosti.

7. Literatura

1. 2. 3. 4. 5.

Objektno orjentisano programiranjeu jeziku C#, Dragan Milidev, Beogra 1996. Osnovni elementi programskog jezika C, Skripta Programiranje u C, Skripta, Univerzitet u Zagrebu C# - Auditorne vjebe, Skripta, Univerzitet u Beogradu Tehnike vizuelnog programiranja u C#, Zoran Dirovid, Ivan Dunerski, Via elektrotehnika kola, Beograd, 2006. 6. Programiranje u C#, Skripta, Elektrotehniki fakultet Mihajlo Pupin, Zrenjanin 7. Programski jezik C#, Mario Bonjak, Univerzitet u Zagrebu

21 | S t r a n a

You might also like