You are on page 1of 6

to !ete nau"iti 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

Razvoj poslovnih aplikacija, M.Zeki!-Suac

Zato C#?
Prema (O'Rielly,2005) cilj nastanka C# programskog jezika bio je kreirati jednostavan, siguran, moderan, objektno orjentiran, Internet-centri"an 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 sli"an 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.

Prednosti C# jezika
C# sadri sve dobre odlike potpuno objektnog programskog jezika (koje dobrim dijelom preuzima iz C++ i Java jezika), u sklopu .NET platforme omogu!ava kreiranje vizualnih aplikacija i korisnicima koji nemaju programerskog iskustva. po svojoj univerzalnosti za stolne i web aplikacije nazvan je jezikom budu!nosti (Barker, 2007) daje dobar uvid u na"in 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

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 klju"nih rije"i naredbi i na desetke ugra#enih tipova podataka C# ima velike mogu!nosti u definiranju klasa (tipova objekata), novih metoda i svojstava, te koritenju enkapsulacije, naslje#ivanja i polimorfizma Podrava XML stil unutar dokumenata, su"elja, svojstva, doga#aje Kod aplikacija moemo birati da li !emo kreirati .dll ili izvrne .exe aplikacije Podrava rad s pokaziva"ima, te garbage collection

Microsoft .NET platforma


to je .NET? .NET platforma je zapravo razvojni okvir koji omogu!ava novo su"elje za programiranje aplikacija (eng. application programming interface (API)) i ujedinjuje klasi"no su"elje Windows operativnog sustava, zajedno s brojnim tehnologijama koje su proizale iz Microsoft-a zadnjeg desetlje!a
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

Razvoj poslovnih aplikacija, M.Zeki!-Suac

Dijelovi .NET platforme


.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 ure#aji (koji nisu PC), kao npr. mobilni telefoni, ure#aji za igre, i dr.
Razvoj poslovnih aplikacija, M.Zeki!-Suac

.NET okvir
.NET okvir (Framework) je okvir koji povezuje programske jezike uklju"ene u .NET platformu, omogu!avaju!i koritenje istih objekata (klasa), njihovo naslje#ivanje i polimorfizam u razli"itim 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 omogu!ava 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 specifi"ne klase koja je dio korjenske klase System.Object). .NET okvir definira op!i koncept klasa, su"elja, delegata, tipova referenci i tipova vrijednosti .NET uklju"uje i Common Language Specification (CLS), specifikaciju s pravilima kojih se treba drati kako bi integracija jezika bila mogu!a 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 me#usobno 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

Instalacija .NETokvira
Da biste provjerili da li na ra"unalu imate instaliran .NET okvir, potrebno je pogledati sadraj mape C:/Windows/Microsoft .NET/Framework Instalacija mogu!a putem MSDN web stranica Provjeriti ina"icu .NET okvira (2.0 poeljno)

Razvoj poslovnih aplikacija, M.Zeki!-Suac

Glavne komponente .NET okvira


.NET okvir uklju"uje 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) - zajedni"ka 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

Arhitektura .NET okvira


CLR je jedan od glavnih dijelova, jer omogu!ava zajedni"ki na"in 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


CLR (Common Language Runtime) je mehanizam izvravanja
u zajedni"kom jeziku koji razli"ite .NET jezike prevodi u isti zajedni"ki jezik, koji se koristi kada se aplikacije izvravaju (Barker, 2007). - uklju"uje virtualni stroj (virtual machine), sli"no kao Java virtual machine (JVM), a radi tako da aktivira pojedine objekte uklju"ene u aplikaciju, radi debugging (provjeru greaka), provjeru tipova, te JIT (just in time) prevo#enje. Prilikom prevo#enja 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 prevo#enja na zahtjev (on demand). Svi jezici unutar .NET platforme proizvode sli"an IL kod i objekti i klase iz jednog jezika mogu se koristiti u drugom.
Razvoj poslovnih aplikacija, M.Zeki!-Suac

Biblioteke klasa u .NET okviru


Biblioteke (ili skupovi) klasa u .NET okviru su razli"iti prostori za nazive (namespaces). to su namespaces? Skupovi tipova koji su logi"ki organizirani, to omogu!uje koritenje vie verzija tipova s istim nazivom, ali unutar razli"itih prostora za nazive (npr. kao to postoje u prirodi skupine ili vrste ivih bi!a), npr. iva bi!a 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 System Opis 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

Reference prema prostorima za nazive u .NET aplikaciji


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

Prikaz formova koji se koriste u aplikaciji

Razvoj poslovnih aplikacija, M.Zeki!-Suac

Upotreba prostora za nazive


Svaki objekt u C# Express-u upotrebljava prostore za nazive (npr. svaka forma je napravljena u prostoru za nazive), op!enite prostore za nazive kreira sam razvojni alat umjesto nas Npr.
namespace Hello napravljen prostor za naziv za na projekt pod nazivom Hello

Prostori za nazive u aplikaciji


Op!eniti prostori za nazive koji se pozivaju u svakoj aplikaciji

Prostor za naziv za projekt Hello

Razvoj poslovnih aplikacija, M.Zeki!-Suac

Razvoj poslovnih aplikacija, M.Zeki!-Suac

Kako prona!i upute za koritenje prostora za naziv?


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 Pokre!e se s pomo!u 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
Razvoj poslovnih aplikacija, M.Zeki!-Suac

Object Browser
Polje za pretraivanje prostora za nazive Prikaz svih prostora za nazive

Razvoj poslovnih aplikacija, M.Zeki!-Suac

Primjer pretraivanja prostora za nazive


Pretpostavimo da elimo prona!i 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 prona!i samo klase za ispis poruka u Windows formi, tada !emo na popisu klasa ozna"iti 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
Razvoj poslovnih aplikacija, M.Zeki!-Suac

Slika uz primjer:
Prikaz svih metoda koje se mogu napraviti s pomo!u MessageBox objekta Tipkom F1 dobiva se pomo! (upute za koritenje treba do!i na upute za C#)
Razvoj poslovnih aplikacija, M.Zeki!-Suac

Primjer uputa za MessageBox


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

Naredba Using
Ova naredba govori C# jeziku da se planira koritenje odre#enih prostora za nazive (skupina klasa), "ije nazive kasnije nije potrebno ponavljati u programu kada se koristi odre#ena klasa ili objekt iz te skupine
Naredbe Using na po"etku koda za formu projekta u njima se navode ugra#eni prostori za nazive koji se mogu koristiti

naredbu, te je preurediti

Razvoj poslovnih aplikacija, M.Zeki!-Suac

Primjer dueg i kra!eg na"ina upotrebe prostora naziva u kodu


a) Upotreba dueg na"ina navo#enjem pune sintakse svih prostora naziva koji se koriste za ispis poruke na ekranu:
System.Windows.Forms.MessageBox.Show ("Izra"un je gotov", "Projekt1", MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk);

IntelliSense mogu!nost
Ako upisujemo dui na"in pozivanja nekog objekta, to se zove potpuno kvalificirana naredba Kod kra!eg na"ina moe se koristiti mogu!nost IntelliSense ugra#ena u alat, koja prua pomo! pri pisanju naredbi na na"in da nam prikazuje listu s mogu!im klasama, objektima, metodama koje moemo izabrati s popisa Aktivira se automatski pri po"etku pisanja naredbe ili tipkom Ctrl-Space
Razvoj poslovnih aplikacija, M.Zeki!-Suac

b) Upotreba kra!eg na"ina pozivanja klase iz prostora za nazive (ako je System.Windows.Forms klasa ve! navedena na po"etku programa u naredbi Using):
MessageBox.Show ("Izra"un je gotov", "Projekt1", MessageBoxButtons.OKCancel, MessageBoxIcon.Asterisk);
Razvoj poslovnih aplikacija, M.Zeki!-Suac

Primjer upotrebe IntelliSense


IntelliSense pokazuje popis objekata koje moemo izabrati a koji po"inju slovom M

Kada koristiti dui na"in pisanja naredbi?


Dui (potpuno kvalificirani) na"in pisanja naredbi ima smisla koristiti ako u razli"itim prostorima za nazive koristimo klase ili objekte s istim nazivom, jer se moe pratiti iz kojeg prostora je uzet odre#eni objekt U svakom drugom slu"aju prakti"nije je koristiti kra!i na"in pisanja naredbi
Razvoj poslovnih aplikacija, M.Zeki!-Suac

Izbor vrimo strelicama ili miem i tipkom Enter prebacujemo taj dio naredbe u programski kod

IntelliSense pokazuje popis metoda koje moemo izabrati za upisani objekt MessageBox

Razvoj poslovnih aplikacija, M.Zeki!-Suac

Kreiranje prve aplikacije


U C# Express razvojnoj okolini (IDE) mogu!e je kreirati sljede!e vrste aplikacija: Windows aplikaciju (sa grafi"kim su"eljem, formama) Konzolnu aplikaciju (bez grafi"kog su"elja)-radi u command promptu Bibilioteku klasa
Razvoj poslovnih aplikacija, M.Zeki!-Suac

Razvoj Windows aplikacije


Nakon izbora kreiranja Windows aplikacije, u C# Express-u vidljivi su glavni dijelovi (alati): Glavni editor koji se koristi za pisanje i ure#ivanje koda, kod Windows aplikacija je vezan uz forme Solution Explorer prikaz organizacije projekta (svih datoteka uklju"enih 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

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 prevo#enje, te pokretanje programa 4. ispraviti eventualne greke 5. Pohraniti aplikaciju (solution) nastavak datoteke je .sln 6. Iza!i 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 ra"unalu potrebno je prenijeti i instalirati aplikaciju aktiviranjem setup.exe datoteke

Pitanja za ponavljanje
1. 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 omogu!uje prikaz svih ugra#enih skupina klasa? Koja su dva na"ina za koritenje prostora za nazive u programskom kodu? to je IntelliSense? Koje tri vrste aplikacija je mogu!e kreirati u C# Express-u? Koji su glavni dijelovi C# Express razvojne okoline?
Razvoj poslovnih aplikacija, M.Zeki!-Suac

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