27
VISOKA TEHNIČKA ŠKOLA STRUKOVNIH STUDIJA KRAGUJEVAC PROJEKTNI RAD IZ PREDMETA: OBJEKTNO ORIJENTISANO PROGRAMIRANJE INSTALIRANJE I AŽURIRANJE APLIKACIJA KORIŠĆENJEM ClickOnce TEHNOLOGIJE Studenti: Profesor Ivan Batos 056/2009 Dr. Zoran Mirović Ivan Radaković 062/2009 Nikola Tucaković 063/2009 Nikola Dinić 121/2009

Projektni Zadatak Iz OOP-A

Embed Size (px)

DESCRIPTION

OOP OP Objektno programiranje kolokvijum seminarski vezbanje diplomski zavrsni rad

Citation preview

Page 1: Projektni Zadatak Iz OOP-A

VISOKA TEHNIČKA ŠKOLA STRUKOVNIH STUDIJA KRAGUJEVAC

PROJEKTNI RAD IZ PREDMETA: OBJEKTNO ORIJENTISANO

PROGRAMIRANJE INSTALIRANJE I AŽURIRANJE APLIKACIJA KORIŠĆENJEM ClickOnce

TEHNOLOGIJE

Studenti: Profesor Ivan Batos 056/2009 Dr. Zoran Mirović Ivan Radaković 062/2009 Nikola Tucaković 063/2009 Nikola Dinić 121/2009

Page 2: Projektni Zadatak Iz OOP-A

2

SADRŽAJ 1. UVOD ............................................................................................................................................................................................. 4

PROGRAMIRANJE .............................................................................................................................................................................. 4 KRATAK PREGLED RAZVOJA PROGRAMSKIH JEZIKA ......................................................................................................................... 4 MAŠINSKI ZAVISNI JEZICI ................................................................................................................................................................. 4 PROGRAMSKI JEZICI VIŠEG NIVOA .................................................................................................................................................... 5 KORACI U PROGRAMIRANJU ............................................................................................................................................................. 6 ANALIZA PROBLEMA ........................................................................................................................................................................ 6 KREIRANJE ALGORITMA ................................................................................................................................................................... 6 PISANJE PROGRAMSKOG KODA ......................................................................................................................................................... 6 UNOS KODA U RAČUNAR I TESTIRANJE PROGRAMA .......................................................................................................................... 6 POPULARNI PROGRAMSKI JEZICI ....................................................................................................................................................... 7

2. .NET RAZVOJNO OKRUZENJE ............................................................................................................................................... 9

SADRŽAJ .NET PROJEKTNOG OKRUŽENJA ...................................................................................................................................... 10 PISANJE APLIKACIJA KORIŠĆENJEM .NET PROJEKTNOG OKRUŽENJA ............................................................................................. 10 PROGRAMSKI SKUPOVI ................................................................................................................................................................... 10 UPRAVLJIVI KÔD ............................................................................................................................................................................ 11 KOLEKCIJA OTPADA ....................................................................................................................................................................... 11 UKLAPANJE U CELINU .................................................................................................................................................................... 11 ŠTA JE C# ....................................................................................................................................................................................... 11 VRSTE APLIKACIJA U C# ................................................................................................................................................................ 12 VISUAL STUDIO.NET ..................................................................................................................................................................... 12 REŠENJA U VS-U ............................................................................................................................................................................ 12 ZAKLJUČAK ................................................................................................................................................................................... 13

3. VISUAL STUDIO.NET IDE(INTEGRATED DEVELOPMENT ENVIRONMENT) ..................................................... 13

ARHITEKTURA VISUAL STUDIO-A .................................................................................................................................................. 14 FUNKCIONALOSTI: CODE EDITOR................................................................................................................................................... 14 DEBUGER ....................................................................................................................................................................................... 15 DESIGNER ...................................................................................................................................................................................... 15 WINFORMS DESIGNER ................................................................................................................................................................... 15 WPF DESIGNER ............................................................................................................................................................................. 16 WEB DESIGNER .............................................................................................................................................................................. 16 CLASS DESIGNER ........................................................................................................................................................................... 16 DATA DESIGNER ............................................................................................................................................................................ 16 MAPPING DESIGNER ....................................................................................................................................................................... 16 OPEN TABS BROWSER .................................................................................................................................................................... 16 PROPERTIES EDITOR ....................................................................................................................................................................... 16 SOLUTION EXPLORER ..................................................................................................................................................................... 17 TEAM EXPLORER............................................................................................................................................................................ 17 DATA EXPLORER ............................................................................................................................................................................ 17 SERVER EXPOLORER ...................................................................................................................................................................... 17 VISUAL STUDIO DODACI ................................................................................................................................................................ 17 VISUAL STUDIO IZDANJA: .............................................................................................................................................................. 17 VISUAL STUDIO EXPRESS ............................................................................................................................................................... 17 VISUAL STUDIO STANDARD ........................................................................................................................................................... 18 VISUAL STUDIO PROFESSIONAL ..................................................................................................................................................... 18 VISUAL STUDIO TEAM SYSTEM ...................................................................................................................................................... 18

4. UVOD U OBJEKTNO ORJENTISANO PROGRAMIRANJE ......................................................................................... 18

SUŠTINA I PRINCIPI OOP-A ............................................................................................................................................................. 18 APSTRAKCIJA ................................................................................................................................................................................. 19 ENKAPSULACIJA ............................................................................................................................................................................. 19 NASLEĐIVANJE .............................................................................................................................................................................. 19 POLIMORFIZAM .............................................................................................................................................................................. 19

Page 3: Projektni Zadatak Iz OOP-A

3

5. (POGLAVLJE 15.1 IZ KNJIGE “ MICROSOFT FRAMEWORK 2.0 ”) ............................................................................. 19

1. UVOD ......................................................................................................................................................................................... 19 2. INSTALIRANJE I AŽURIRANJE APLIKACIJA KORIŠĆENJEM CLICKONCE TEHNOLOGIJE ................................................................. 19

2.1 Pregled mogućnosti ClickOnce tehnologije ........................................................................................................................ 20 2.2 Objavljivanje ClickOnce aplikacije .................................................................................................................................... 20

SLIKA 1. PUBLISH PROPERTIES PROZOR ............................................................................................................................ 20

2.3 Određivanje publishing lokacije ......................................................................................................................................... 21 2.4 Konfigurisanje Install mode-a ............................................................................................................................................. 21 2.5 Konfigurisanje automatskog ažuriranja (automatic updates) ............................................................................................. 21

SLIKA 2. THE APPLICATION UPDATES DIALOG BOX ..................................................................................................... 21

2.6 Konfigurisanje potrebnih dozvola za ClickOnce aplikaciju ................................................................................................ 21

SLIKA 3. THE SECURITY PROPERTIES PROZOR................................................................................................................ 22

2.7 Instaliranje ClickOnce aplikacije na klijent-računaru........................................................................................................ 22 3. PRAKTIČAN PRIMER: OBJAVLJIVANJE APLIKACIJE NA NETWORK SHARE-U ........................................................................... 23 4. ZAKLJUČAK ................................................................................................................................................................................ 26

LITERATURA: ............................................................................................................................................................................... 27

Page 4: Projektni Zadatak Iz OOP-A

4

1. Uvod

Programiranje

Programiranje ili računarsko programiranje (en. programming) je veština pomoću koje korisnik stvara i izvršava algoritme koristeći određene programske jezike da bi napravio računarski program. Programiranje sadrži elemente umetnosti, nauke, matematike i konsultovanja.

Kratak pregled razvoja programskih jezika Računarski sistem se sastoji od hardvera i softvera. Hardver čine delovi računara, a softver programi koje računar izvršava. Računar je mašina bez inteligencije, on izvršava samo ono što mu je zadato i to na način na koji mu je zadato. Programom zadajemo računaru način na koji izvršava poslove. Da bismo rešili neki problem korišćenjem računara, moramo računaru precizno opisati sve korake-instrukcije (naredbe) koje on izvršava zadatim redosledom. Skup instrukcija napisan za rešavanje nekog problema naziva se program, a pisanje instrukcija programiranje. Ljudi za međusobnu komunikaciju koriste jezik. Jezik je sredstvo za predstavljanje i prenošenje informacija. Čovek mora na neki način da saopšti računaru niz instrukcija koje treba da izvrši. Programski jezik je sredstvo kojim čovek saopštava računaru program. Čovek i računar komuniciraju pomoću programskog jezika. Prirodni jezici dopuštaju nejednoznačnost i nepreciznost. Računar može „razumeti” samo formalin zapis, ne tolerišući ni najmanje nepreciznosti. Programski jezici računaru omogućavaju zapis niza instrukcija koje se ne mogu višeznačno protumačiti. Jednoznačnost svake konstrukcije programskog jezika je njegova najbitnija karakteristika. Programski jezik je skup pravila kojim se računaru predstavljaju instrukcije i opisuju podaci. Programske jezike možemo podeliti po stepenu zavisnosti programskog jezika i računara na: • mašinski jezik • simbolički jezik • jezici višeg nivoa Mašinski i simbolički jezici su zavisni od računara i njih nazivamo mašinski zavisnim jezicima. Jezici višeg nivoa pripadaju skupini koje nazivamo mašinski nezavisni jezici.

Mašinski zavisni jezici Najjednostavniji programski jezik je interni jezik računara – mašinski jezik. Najvažniji delovi računara izgrađeni su od elektronskih i magnetnih komponenti, koje karakterišu dva stabilna stanja (ima napona – nema napona, teče struja - ne teče struja, severni pol – južni pol). Zbog jednostavnije tehničke realizacije u računaru se sve predstavlja pomoću dva simbola, 0 i 1, binarnom azbukom. Jedan znak binarne azbuke predstavlja bit (skraćeno od binary digit). Sve informacije u računaru predstavljaju se nizom bitova grupisanim u grupe od 8, 16, 32, 64 bita. Grupa od 8 bitova naziva se bajt. Mašinski jezik je izgrađen nad binarnom azbukom. Sve operacije i svi podaci predstavljeni su nizovima bitova. U zavisnosti od arhitekture računara, ti nizovi bitova imaju različita tumačenja i različite su veličine. Kako se mašinski program sastoji od niza nula i jedinica i zahteva dobro poznavanje načina rada i arhitekture određenog računara, vrlo je teško programirati na njemu. Programi na prvim računarima bili su zapisani mašinskim jezikom što je uslovilo da uzak krug ljudi piše i održava programe. Da bi se premostile poteškoće pisanja programa na mašinskom jeziku, dolazi do razvoja simboličkih jezika. Umesto instrukcija pisanih nizom bitova, uvedene su mnemotehničke skraćenice za operacije i simboličke oznake podataka, npr. Naredbom ADD a, b vrši se sabiranje podataka a i b. Na taj način proces programiranja je u znatnoj meri olakšan, ali i dalje zavisi od konkretnog procesora, tj. i dalje je potrebno poznavati tehničke karakteristike konkretnog računara za koji pišemo program. Da bi se program napisan na simboličkom jeziku izvršavao na računaru, mora se prethodno prevesti na mašinski jezik. Kako svakoj naredbi simboličkog jezika odgovara jedna naredba mašinskog jezika, posao je automatizovan tako što je napisan program koji kao ulaz dobija program napisan u simboličkom jeziku, a kao izlaz odgovarajući program na mašinskom jeziku. Program koji vrši prevođenje iz simboličkog u mašinski jezik naziva se asembler (translator). Zato se simbolički jezik često naziva asemblerski jezik ili kraće asembler. Napomenimo da skup naredbi simboličkog jezika zavisi od arhitekture računara, pa program napisan u simboličkom jeziku za jedan računar ne može se koristiti za računar druge arhitekture, već se mora ponovo pisati. Često za mašinske i simboličke jezike kažemo da su mašinski zavisni jezici. Važno je istaći da pri programiranju na mašinski zavisnim jezicima programer mora vrlo detaljno, u malim koracima opisati rešavanje problema. Možemo to uporediti sa procesom gradnje kuće pri čemu moramo voditi računa o položaju svake cigle, daske i slično. Jasno je da prilikom izgradnje kuće u jednom momentu moramo detaljno opisati položaj svake cigle, tj. elemente kuće predstavljati na taj način. Međutim, pri izradi samog projekta, lakše i razumljivije je govoriti

Page 5: Projektni Zadatak Iz OOP-A

5

o većim jedinicama, npr. soba, kuhinja, vrata, prozor i slično. Kako to izgleda kada koristimo računare upoznaćemo na sledećem primeru. Pretpostavimo da treba da saberemo četiri broja. U višim programskim jezicima to radimo korišćenjem jedne instrukcije (npr. x=a+b+c+d), a kada koristimo simbolički jezik, prvom instrukcijom šaljemo prvi broj u poseban registar (akumulator) a zatim sledećom instrukcijom dodajemo drugi broj sadržaju registra i tako dok ne dodamo i poslednji broj. Poslednja instrukcija je premeštanje konačnog rezultata iz registra u memoriju.

Programski jezici višeg nivoa Da bi se premostile poteškoće u programiranju na asemblerskim jezicima, veoma rano počinju da se razvijaju mašinski nezavisni jezici, drugim rečima jezici višeg nivoa. Korišćenjem jezika višeg nivoa opis naredbi i podataka vrši se na način blizak prirodnom (engleskom) jeziku. U ovim jezicima jednoj naredbi odgovara više naredbi simboličkog jezika. Važno je napomenuti da ovi jezici imaju visok stepen nezavisnosti u odnosu na arhitekturu računara i operativni sistem na kojem se izvršavaju. S obzirom na to da računar razume samo program napisan na mašinskom jeziku, svaki program pisan jezikom višeg nivoa mora se prevesti na mašinski jezik. Na osnovu načina prevođenja i izvršavanja, jezike višeg nivoa delimo na kompajlerske i interpreterske jezike. Najpre su nastali kompajlerski jezici Algol, Fortran, Cobol, PL/I... Kod ovih jezika izgrađuju se programi za prevođenje (kompajleri) kojim se ceo program napisan na višem programskom jeziku prevodi u njemu ekvivalentan, mašinski program koji se može izvršavati na računaru. Kod interpreterskih jezika, program na višem programskom jeziku se prevodi i izvršava instrukcija po instrukcija. Primeri interpreterskih jezika su Lisp, Prolog, Basic, ... U početku se razlikovala primena računara u oblasti poslovanja od primene računara u nauci i tehnici. Prvu je karakterisao veliki broj ulazno/izlaznih podataka i relativno jednostavan opis obrade podataka, pa su i jezici namenjeni toj primeni zadovoljavali te karakteristike (Cobol...). Za primenu u nauci i tehnici karakterističan je mali broj ulazno/izlaznih podataka, ali i veoma složen opis obrade, pa su razvijani jezici za te namene poput Fortrana, Algola,... U to vreme programski jezik PL/I bio je dovoljno dobar za primenu u poslovanju kao i za primenu u oblasti složenih numeričkih izračunavanja. Današnjim razvojem jezika gubi se ova podela i savremeni programski jezici mogu se koristiti ravnopravno u svim oblastima. Prema načinu rešavanja problema, možemo izvesti podelu viših programskih jezika na proceduralne i deklarativne programske jezike. U proceduralnim jezicima jezikom dajemo računaru kompletan skup instrukcija kojim se rešava problem, tj. dajemo mu algoritam za rešavanje zadataka. Ovim jezicima opisujemo kako se rešava dati problem. Manje-više svi poznatiji viši programski jezici su ovog tipa: Fortran, Cobol, Basic, Pascal, C kao i mašinski zavisni jezici. Kasnije, u razvoju programskih jezika dolazi se do ideje da se problemi opisuju, a da sam interpreter ima ugrađene postupke kako da reši opisani problem što dovodi do razvoja deklarativnih jezika. Ovim jezicima opisujemo šta znamo o problemu i šta želimo da dobijemo rešavajući ga, a sistem (interpreter) sam dolazi do postupka za rešavanje problema. Primeri deklarativnih jezika su Prolog i SQL. Sistem ima ugrađen algoritam koji dovodi do rešenja. Postojanje i pisanje opšteg algoritma za nalaženje rešenja je glavna poteškoća u razvoju ovih jezika, pa su zato deklarativni jezici obično specijalizovani za određene vrste problema. Koliko god da je ova ideja napredna, u praksi je vrlo teško u potpunosti sprovesti deklarativnost. Neke deklarativne jezike možemo podeliti na relacijske i funkcijske. Osnovni objekti u prvima su relacije, a u drugima su funkcije. Ideja razvoja funkcijskih jezika je u spajanju unapred definisanih funkcija, koje imaju svoje ulaze i izlaze, u cilju dobijanja rešenja problema. Programer koji koristi takav programski jezik gleda na razvoj programa kao na način spajanja elementarnih funkcija, čime se dobija sistem koji izračunava željeni rezultat. Primeri funkcijskih jezika su LISP, LOGO, ML. Posebnu klasu čine objektno orijentisani jezici, kod kojih su prisutni i proceduralni i neproceduralni elementi. U proceduralnim jezicima isticani su postupci, način realizacije (procedura), neke više ili manje složene akcije. Podaci su na neki način u podređenom položaju u odnosu na algoritam. Moramo priznati da su podaci razlog postojanja programa. Svaki postupak obrađuje neke podatke (čita ih, prikazuje, menja...). Podaci i akcije koje se izvode nad njima predstavljaju jednu nerazdvojnu celinu, jer nam podaci bez postupaka kojim ih obrađujemo, kao i postupci za obradu bez podataka, ne znače puno. Kod objektno orijentisanih jezika podaci i postupci su objedinjeni u jednu celinu i čine aktivan objekat, za razliku od podataka u proceduralnim jezicima koji su krajnje pasivni. Svaki takav objekat izgleda kao mali računar: on ima unutrašnje stanje i ima operacije koje možemo zahtevati da izvrši. Jasno možemo uočiti analogiju između takvih objekata i objekata u realnom svetu. Posmatrajmo niz imena učenika jednog odeljenja. Kod proceduralnog programiranja niz imena se posmatra kao skup pasivnih podataka. Potom pišemo razne programe za rad sa ovim nizom u cilju njegovog abecednog uređivanja, modifikovanja (npr. dodavanje novog učenika, brisanje postojećeg učenika...). S jedne strane imamo podatke, a sa druge, od njih odvojene postupke (procedure) kojima obrađujemo te podatke. Kod objektno orijentisanih jezika, prethodni primer posmatra se objedinjeno: postoji objekat niz koji s jedne strane ima skup imena, a sa druge strane skup akcija koje se mogu primenjivati nad tim imenima i jedno od drugog je neodvojivo. Program koji koristi objekat niz ne mora imati nijedan od postupaka za obradu niza jer su oni ugrađeni u sam objekat. Mnoštvo različitih objekata možemo uočiti u okruženju grafičkih operativnih sistema (GUI, Graphic User Interface). Ikone su objekti. Svakoj je pridružen skup osobina i akcija koje opisuju kako reaguju na spoljašnje događaje, šta se dešava kada jednom kliknemo, kada dva puta kliknemo, kad pritisnemo desni taster, kako se ponašaju kada držimo pritisnut taster na mišu i slično.

Page 6: Projektni Zadatak Iz OOP-A

6

U objektno orijentisanom programiranju cilj programera je da sakupi podatke i akcije u neku vrstu „kutije sa alatom” koju će koristiti za brzi razvoj aplikacija. Primeri objektno orijentisanih jezika su SmallTalk, Java, C#. C++ je hibridni jezik; jeste iz klase objektno orijentisanih jezika ali nije čisto objektno orijentisan. Iz ovog kratkog prikaza razvoja programskih jezika možemo uočiti da objektno orijentisanim pristupom na prirodan način opisujemo realan svet. Ipak, prirodnost opisa nije glavni razlog ozbiljnijeg razvoja objektno orijentisanih jezika, već je to „softverska kriza” nastala osamdesetih godina. U to vreme, razvoj hardvera doveo je do znatnog povećanja primene računara u raznim oblastima, pa su samim tim čitavi timovi programera morali da rade na razvoju jednog projekta. Svaki deo tima razvijao je relativno nezavisne module, a zatim su se ti moduli uklapali u funkcionalnu celinu, korisničku aplikaciju. Svaki od modula moguće je koristiti u različitim aplikacijama. Na taj način dolazi se do standardizacije aplikativnog softvera. S druge strane, pored razvijanja objektno orijentisane metodologije u programiranju, razvojem interneta javila se i potreba da napisani projekti rade identično na različitim platformama (operativnim sistemima...). Razvojem programskog jezika Java, koji je primer objektno orijentisanog pristupa, na neki način se prevazilaze različite platforme na kojima bi se softver izvršavao. Java tehnologija izvorno je bila zamišljena za prenos multimedije mrežom raznovrsnih uređaja.

Koraci u programiranju

Pri izradi svakog programa potrebno je proći kroz 4 osnovne faze ili koraka:

1. Analiza problema 2. Kreiranje algoritma (crtanje dijagrama toka) 3. Pisanje programskog koda 4. Unos programskog koda u računar i pokretanje programa

Analiza problema

Prvi korak u izradi računarskog programa je analiza potreba, razmatranje situacije i problem koji treba rešiti definisati preko jednačina, uslova i kroz tzv. pseudo algoritam. Programeru mora biti jasno kako će se dešavati promene, zavisnosti, uzroci i posledice, da bi sve to preneo i precizirao kroz programski kod. Sve mora biti matematički precizirano. Kod jednostavnijih programa ovaj de o je u domenu usmene analize, dok se kod složenijih programa ovaj deo radi u pisanoj i simboličkoj formi uz uredno dokumentovanje svih promena ( ovaj deo spada u domen softverskog inženjeringa).

Kreiranje algoritma

Reč algoritam potiče od imena arapskog matematičara Al Harizmija koji se smatra tvorcem algoritma kao skupom precizno definisanih pravila za izvršavanje aritmetičkih operacija. Algoritam je procedura (postupak) sa skupom jasno definisanih koraka koji nedvosmisleno vode ka rešenju problema. Svaki algoritam mora ispoštovati 5 osnovnih zakonitosti algoritma:

• Definisanost (svi koraci moraju biti jasni i nedvosmisleni) • Konačnost (izvršenje algoritma se mora obaviti u određenom broju koraka) • Posedovanje ulaza i izlaza ( moraju se definisati ulazi kojih može biti: ni jedan, jedan ili više i izlazi kojih mora biti bar

jedan ili više) • Efikasnost (algoritam se izvršava u razumnom vremenskom intervalu) • Rezultativnost (algoritam mora dati rešenje problema a ako nema rešenja onda poruku da rešenje ne postoji)

Pisanje programskog koda

Nakon završetka algoritma, pristupa se pisanju programskog koda na papiru. U ovom koraku se svaki korak algoritma prevodi u odgovarajuću komandu u programskom jeziku u kojem se piše.

Unos koda u računar i testiranje programa

Kada su izvršene sve (analitičke) pripreme i ručno ispisan kod potrebno ga je uneti u računar prilagođavajući programskom alatu u kojem će se program testirati i izvršavati. Svaki programski jezik ima svoj editor koji omogućuje unos programskog koda tzv. Izvorni kod uz kontrolu ispravnosti ispisa ključnih reči i sintakse uopšte. Uz editor u svakom programskom alatu nalazi se i interpreter koji omogućava testiranje svake linije koda ili koda u celini kako bi se blagovremeno otklonile eventualne greške u sintaksi ili definisanim promenljivama, dimenzionisanju promenljivih i sl. Nakon unosa kompletnog programa u računar program

Page 7: Projektni Zadatak Iz OOP-A

7

se treba pokrenuti da bi se videlo da li radi. Program se treba više puta pokrenuti da bi se videlo da li program radi za različite ulazne vrednosti,a ovo podrazumeva i sve granične vrednosti.

Popularni programski jezici

Za svaki od navedenih programskih jezika dat je kratak opis, kao i razlozi zbog kojih bi neki konkretan jezik mogao biti odabran za korišćenje. Na listu su stavljeni i novi programski jezici, koji su tek od nedavno ugledali svetlost dana.

C# (C Sharp) Pojavio se istovremeno sa jezikom Java. Izvršava se na .Net ili kompatibilnim platformama (Portable net, Mono). Lakši je od C++. U stanju je da deli resurse sa drugim jezicima, tokom njihovog zajedničkog vremena izvršavanja (runtime).

C C nudi programerima veliku slobodu, kao i mnogo izazova u debug-ovanju (pronalaenju grešaka), zahvaljujući pokazivačima (pointerima) i efikasnim metodama za upravljanje memorijom. Najveći nedostatak se ogleda u tome što je za kreiranje brzih programa potrebno utrošiti mnogo vremena na programiranje. Slu`i uglavnom za sistemsko programiranje.

C++ C++ je, u suštini, programski jezik C, uz dodatak objekata, proširene biblioteke i uzoraka (templates). Kao i C, koristi se prvenstveno za sistemsko programiranje, ali omogućava kreiranje većih projekata, ili aplikacija.

D jezik Sličan je sa C++, ali znatno dinamičniji. Kompatibilan je sa C. Koristi se za obuku ili pravljenje skriptova.

Pascal Veoma star jezik (1970), poboljšan uvođenjem objekata, zahteva strogo strukturalno programiranje. Koristi se za obuku, kao i za kreiranje klijent/server aplikacija unutar programa Delphi i Kylix.

Basic Asp Ovaj veoma star jezik (1964) je usavršen od strane Microsoft-a, uz izgradnju kompletnog programskog okruženja. Postoje brojne verzije Basic-a. Standardni jezik za skriptovanje Microsoft-ovih aplikacija (Word i sl.), kao i za kreiranje dinamičkih web stranica (Asp) na Windows serverima.

PHP Dizajniran je tako da se može umetati u html kôd, radi izrade dinamičkih web stranica ili njihovo ažuriranje pomoću baza podataka. Koristi se za kreiranje html stranica na osnovu unetih podataka. Verzija 5 namenjena je prvenstveno za kreiranje web servisa.

Java Ovaj programski jezik je dizajniran tako da bude prenosiv (portabilan) i da zameni C++. Koristi se za kreiranje inter-platformskih aplikacija (koje se, međutim, izvršavaju znatno sporije od matičnih aplikacija). Služi za programiranje web servisa.

JavaScript ECMAScript JavaScript je razvijen u cilju kreiranja dinamičkih html stranica na klijentskoj strani; ECMAScript je standardizovana verzija. Za ostvarenje interaktivnosti na web stranicama. Koristi se, takođe, i unutar Xul-a, za kreiranje grafičkih korisničkih interfejsa.

Scriptol Jednostavan, objektno-orijentisan, univerzalan jezik, sa maštovitom i moćnom sintaksom. Pomoću njega možete kreirati izvršne programe, ili umetati kôd unutar html stranica. Za kreiranje strukture podataka može se upotrebiti Xml. Jednostavan i univerzalan jezik za skriptovanje, kreiranje prototipa, izradu binarnih aplikacija, dinamičkih web stranica i XML obradu podataka. Može se upotrebiti i za web servise, uz korišćenje Php 5 kao “zadnjeg kraja” (back-end).

Python Savremen interpreterski jezik, sa ugra|enim moćnim karakteristikama i jedinstvenom mogućnošću uvlačenja teksta (indentation) radi skraćenog kodiranja. Verzija Jython se kompajlira u Java bytecode-u.

Page 8: Projektni Zadatak Iz OOP-A

8

Programiranje brzinom svetlosti. Moćan i lak za učenje. Može se upotrebiti kao proširenje Zope-a, za kreiranje web servisa. Java skriptovanje uz pomoć Jython-a. Samo za aplikacije sa otvorenim kodom (nekompajlirane).

Boo Ovo je nova verzija Python-a, sa nekoliko novih karakteristika. Izvršava se na .Net i Mono platformama, tako da nema nikakvih problema u vezi kompatibilnosti. Sličan programskom jeziku Python.

ASP Jezik za skriptovanje, na serverskoj strani, radi kreiranja dinamičkih web stranica; razvijen od strane Microsoft-a, ima istu sintaksu kao Basic. Kreiranje html stranica na osnovu unetih podataka, ali samo na Windows serverima.

Assembler Ovaj programski jezik je najbli`i mašinskom jeziku, te je zbog toga i daleko najbrži. Nikada ga nemojte koristiti, kao što su to činili programeri u davnim vremenima. Služi za izradu drajvera ili industrijsku obradu podataka.

Eiffel, Sather Objektno-orijentisan jezik, sa mogućnošću “programiranja po ugovoru” i drugim bezbednosnim opcijama. Sather je verzija Eiffel-a, ali sa otvorenim kodom.

Programiranje bezbednih aplikacija. Koristi se uglavnom u bolnicama.

Perl Interpreterski jezik za skriptovanje. Čitljivost i jednostavnost upotrebe ne spadaju u njegove vrline. Koristi se uglavnom od strane mrežnih administratora, kao i za kreiranje manjih CGI skriptova.

Rebol Interpreterski jezik za mrežno skriptovanje. Sam jezik se može proširivati. Obrada informacija na tzv. distribuiranim računarskim sistemima, uz pomoć manjih programa.

Ruby Dizajniran je imajući u vidu prvenstveno jednostavnost. Radi se o interpreterskom jeziku, sa vlasničkom (proprietary) ali proširivom (extensible) bibliotekom. Omogućava znatno jednostavnije pisanje skriptova. Samo za aplikacije sa otvorenim kodom (nekompajlirane).

Tcl Jezik za skriptovanje, lak za učenje i dostupan na svim postojećim platformama. Skriptovanje prenosivih programa sa grafičkim korisničkim interfejsom (GUI), kao i za web programiranje uz pomoć CGI.

NetRexx Razvijen od strane IBM-a; odlikuje se pojednostavljenom sintaksom. Služi kao proširenje programskog jezika Java.

Lua Pomoćni (add-on) ili samostalan (standalone) programski jezik, sa proširivom semantikom. Služi kao proširenje programskog jezika C.

Cobol Poslovni programski jezik, koji se još uvek koristi na velikim kompjuterima. Uglavnom se koristi za održavanje starijih programa na mainframe računarima.

Fortran Jedan od prvih programskih jezika, koji je oduvek korišćen za obavljanje matematičkih zadataka. Poseduje ogromnu biblioteku naučnih proračuna.

Lisp Lisp je veoma star programski jezik, dizajniran za kreiranje veštačke inteligencije; njime se isključivo mogu obra|ivati liste. Veštačka inteligencija i skriptovanje.

Page 9: Projektni Zadatak Iz OOP-A

9

Scheme Scheme je osavremenjena verzija programskog jezika Lisp. Veštačka inteligencija i skriptovanje.

Prolog Služi za logičko programiranje, zasnovano na Horn-ovim klauzulama. Obimnija obrada podataka u oblasti veštačke inteligencije.

Haskell Služi za funkcionalno programiranje. Veoma je spor i zahtevan po pitanju memorije. Služi prvenstveno za isprobavanje novih načina programiranja.

SQL Jezik za upravljanje podacima. Služi za kreiranje upita (queries) u bazama podataka.

Forth Još jedan old-tajmer. Izmislio ga je jedan astronom. Zasniva se na slogovima (stack-based). Za instrumentalne komande i ponovnu upotrebu nasleđenih biblioteka.

Smalltalk Jedan od prvih objektno orijentisanih jezika. Programi se ne mogu izvršavati izvan IDE okruženja. Apsolutno objektno orijentisana obrada podataka.

Modula, Oberon Naslednici Pascal-a. Koriste ga uglavnom programeri koji su nostalgično vezani za vreme vladavine Algol-a i Pascal-a.

Caml, Ocaml Funkcionalni programski jezici. Ocaml je objektno-orijentisana verzija. Koristi se uglavnom na univerzitetima. Može se upotrebiti za kreiranje kompajlera.

Scala Proceduralan, funkcionalan i objektno orijentisan programski jezik. Koristi se u obrazovne svrhe.

XML Ovo nije pravi programski jezik, ali se može upotrebiti za obavljanje sličnih poslova. XML služi za precizno opisivanje podataka, uz mogućnost da se podacima pridručuju određene akcije. XSL omogućava transformaciju dokumenata.

2. .NET razvojno okruzenje Projektno okruženje .NET je nova i revolucionarna platforma za razvoj aplikacija napravljena od strane Microsofta. Najinteresantnije u vezi ove izjave je njena neodređenost - ali postoje dobri razlozi za to.Primetićete da nisam rekao "Razvoj aplikacija u operativnom sistemu Windows". Iako prva verzija projektnog okruženja :NET radi na operativnom sistemu Windows, budući planovi podrazumevaju i rad na drugim sistemima, kao što su FreeBSD, Linux, Macintosh, pa čak i na uređajima klase ličnog digitalnog asistenta (PDA). Jedan od ključnih razloga za razvoj ove tehnologije je namera da ona postane sredstvo kojim se vrši integracija različitih operativnih sistema. Pored toga, ova definicija projektnog okruženja .NET ne ograničava mogućnosti bilo kog tipa aplikacije. Ograničenja zapravo ne postoje - projektno okruženje :NET daje vam mogućnost izrade Windows aplikacija, web aplikacija, web servisa i skoro svega ostalog što bi ste mogli zamisliti. Projektno okruženje .NET dizajnirano je tako da se može koristiti od strane bilo kog jezika. Ovo uključuje C#, kao i C++, Visual Basic, Jscript, pa čak i starije jezike kao što je COBOL. Da bi sve ovo funkcionisalo, pojavile su se i posebne verzije ovih jezika za .NET: Managed C++, Visual Basic.NET, Jscript.NET, kao i razne druge koje se svakodnevno pojavljuju. Ne samo da sve one imaju pristup projektnom okruženju .NET, već mogu i međusobno da komuniciraju. Sasvim je moguće kod programiranja u C# koristiti kôd napisan u Visual Basic.NET, kao i obrnuto. Sve ovo omogućuje dosad nezamisliv nivo višestruke namene, što pored ostalog čini projektnu platformu .NET toliko atraktivnom.

Page 10: Projektni Zadatak Iz OOP-A

10

Sadržaj .NET projektnog okruženja Projektno okruženje .NET najvećim delom se sastoji od ogromne biblioteke kodova koju upotrebljavamo preko klijentskih jezika (kao što je C#) koristeći tehnike objektno orijentisanog programiranja (OOP). Ova biblioteka podeljena je na različite module koje koristimo u zavisnosti od našeg zadatka. Na primer, jedan modul sadrži delove potrebne za pravljenje Windows aplikacija, drugi je vezan za mreže, a neki za razvoj weba. Neki moduli su podeljeni u različite podmodule, kao što su moduli za pravljenje web servisa unutar modula za razvoj weba. Namera je da različiti operativni sistemi podržavaju neke ili sve module zavisno od njihovih karakteristika. Na primer PDA će imati podršku za sve osnovne funkcionalnosti .NET modula, što se svakako ne odnosi i na one namenske ili ređe korišćene. Jedan deo biblioteke projektnog okruženja .NET definiše samo osnovne tipove. Tip je u stvari način na koji se predstavlja podatak (kao što je recimo 32-bitna dodeljena celobrojna vrednost) kao i njegovo skladištenje na osnovu međusobne povezanosti jezika u .NET projektnom okruženju. Ovo se naziva zajednički sistem tipova (Common Type System - CTS). Projektno okruženje, osim biblioteke poseduje i .NET zajednički izvšni jezik (Common Language Runtime - CLR), koji je odgovoran za izvršenje svih aplikacija razvijenih uz pomoć .NET biblioteke.

Pisanje aplikacija korišćenjem .NET projektnog okruženja Pisanje aplikacija unutar :NET projektnog okruženja u stvari znači pisanje koda (koristeći bilo koji jezik koji podržava ovo okruženje) uz pomoć :NET biblioteke koda. Preporučuje se korišćenje Visual Studija za programiranje, koji je moćno i integrisano razvojno okruženje koje podržava C# (kao i upravljajući i neupravljajući C++, Visual Basic.NET, kao i neke druge). Prednost ovog okruženja je lakoća kojom se mogućnosti .NET tehnologije mogu integrisati u naš kôd. Kôd koji se piše može u potpunosti biti C#, ali se koristi .NET okruženje, a takođe i dodatni alati VS-a kada zatreba. Da bi se C# kôd izvršio neophodno ga je prevesti u jezik koji operativni sistem na kome se aplikacija izvršava razume. Taj jezik poznat je kao izvorni ili originalni kôd. Ovo prevođenje se još naziva i kompajliranje koda, funkcija koju obavlja kompajler. Unutar .NET okruženja ta operacija ima dve faze. MSIL i JIT Kada kompajliramo kôd koristeći biblioteku :NET okruženja, ne pravimo odmah izvorni kôd određen sistemom. Umesto toga mi kompajliramo u kôd Majkrosoftovog posrednog jezika (Microsoft Intermediate Language - MSIL). Ovaj kôd nije određen ni jednim operativnim sistemom i nije namenjen samo za C#. Ostali .NET jezici – na primer, Visual Basic.NET – takođe se kompajliraju u njega u svojoj prvoj fazi.VS će izvesti ovaj korak ukoliko ga koristimo pri razvoju C# aplikacija. Da bi se program izvršio, očigledno je potrebno još rada. Za taj posao zadužen je kompajler pravo-na-vreme (engl. Just-In-Time - JIT), koji prevodi MSIL u izvorni kôd specificiran od strane operativnog sistema i arhitekture same mašine na kojoj se program izvodi. Tek tada OS može izvršiti program. Deo imena „pravo-na-vreme” odnosi se na to da se MSIL kôd kompajlira samo kada je to potrebno. U prošlosti bilo je neophodno kompajlirati kôd u više različitih aplikacija zavisno od samog operativnog sistema i arhitekture samog procesora. Često je to bio oblik optimizacije (da bi se, recimo kôd naterao da radi brže na AMD čipsetu). Sve je to sada nepotrebno, jer JIT kompajleri koriste MSIL kôd, koji je nezavisan od mašine, operativnog sistema ili procesora. Postoji nekoliko JIT kompajlera- svaki za različitu arhitekturu, a koristiće se odgovarajući da bi se napravio traženi izvorni kôd. Lepota je u tome što je mnogo manje rada potrebno sa naše strane. U stvari, možemo zaboraviti na detalje koji se odnose na sistemsku zavisnost i koncentrisati se na mnogo zanimljiviju funkcionalnost našeg koda.

Programski skupovi Kada kompajliramo aplikaciju, MSIL kôd se smešta u posebne programske skupove (engl. assembly). Takvi skupovi sadrže i izvršne programske datoteke koje mogu biti startovane direktno iz Windowsa bez potrebe za nekim drugim programima (takve datoteke imaju .exe oznaku tipa) i biblioteke koje koriste i druge aplikacije (one imaju .dll oznaku tipa). Programski skupovi pored MSIL-a sadrže i takozvane meta informacije (odnosno podatke o podacima sadržanim u skupu, nazvane još i metapodaci), kao i opcione resurse(dodatne podatke koje koristi MSIL, kao što su zvukovi i slike). Metapodaci dozvoljavaju programskim skupovima da budu potpuno samoopisujući. Ne trebaju nam nikakve dodatne informacije da bi smo koristili programske skupove. Podrazumeva se, naravno da izbegnemo situacije kao što su nedostavljanje traženih informacija sistemskom registru i sl., što je inače često bio problem pri korišćenju drugih platformi. Ovo u stvari zanči da je razvoj aplikacija često jednostavan koliko i kopiranje podataka u direktorijum na nekom udaljenom računaru. Kako nam nisu potrebne nikakve dodatne informacije o određenim sistemima, možemo odmah pokrenuti izvršnu datoteku iz ovog direktorijuma i (pod uslovom da je .NET CLR instaliran) polećemo. Naravno da nećemo uvek želeti da uključimo sve što je potrebno za izvršenje jedne aplikacije na jedno mesto. Možda poželimo da napišemo kôd koji će moći da koriste i druge aplikacije. U tom slučaju korisno je takav višenamenski kôd smestiti na mesto koje

Page 11: Projektni Zadatak Iz OOP-A

11

mogu koristiti sve aplikacije. U .NET okruženju to mesto se naziva Global Assembly Cache (GAC). Smeštanje koda u ovaj keš je jednostavno- samo postavimo programski skup koji sadrži ovaj kôd u direktorijum koji sadrži keš.

Upravljivi kôd Uloga CLR-a se ne zaustavlja onog trenutka kada smo kompajlirali kôd u MSIL, niti kada JIT kompajler sve to prevede u izvorni kôd. Kôd napisan u .NET okruženju je upravljiv tokom svog izvršenja (ova faza se obično naziva izvršna ili „runtime”). Ovo znači da CLR vodi računa o našoj aplikaciji kroz upravljanje memorijom, obezbeđivanjem sigurnosti, dozvoljava među-jezičko otklanjanje grešaka i tako dalje. Suprotno ovome aplikacije koje ne rade pod kontrolom CLR-a nazivaju se neupravljive i određeni jezici kao što je C++ mogu se koristiti za pisanje takvih aplikacija( na primer, da bi se pristupilo funkcijama niskog stepena operativnog sistema). Sve u svemu u C# možemo napisati samo onaj kôd koji radi pod upravljivim okruženjem. Mogu se iskoristiti razne mogućnosti upravljivosti CLR-a i dozvoliti .NET-u da se sam pozabavi interakcijom sa operativnim sistemom.

Kolekcija otpada Jedna od najvažnijih mogućnosti upravljivog koda je koncept kolekcije otpada. Ovo je metod .NET-a koji se stara o tome da memorija koju je aplikacija koristila tokom svog izvršenja bude obavezno ispražnjena kada aplikacija više nije u upotrebi. Pre pojave .NET-a ovo je najčešće bila briga samih programera, te je usled nekoliko malih grešaka memorija misteriozno gubila čitave blokove kao rezultat toga što je bila pogrešno pozivana. Ovo je najčešće bilo praćeno jezivim usporavanjem vašeg računara i obaveznim padom sistema. Kolekcija otpada :NET radi tako što često ispituje memoriju vašeg računara i odbacuje sve što vam više nije potrebno. Ona nema neki vremenski okvir izvršavanja, može se dogoditi hiljadu puta u sekundi ili jednom u nekoliko sekundi, ali možete biti sigurni da će se dogoditi. Ovde treba povesti računa o nekim stvarima. Kako kolekcija radi nepredvidivo, to morate imati na umu dok radite aplikacije. Kôd koji za svoje izvršenje zahteva puno memorije morao bi iza sebe da počisti pre nego dopusti kolekciji otpada da to uradi za njega, ali to nije tako teško kako zvuči.

Uklapanje u celinu Pre nego što nastavimo, sumirajmo sve korake koji su nam potrebni da bi smo napravili .NET aplikaciju. 1. Kôd za aplikaciju se piše koristeći .NET kompatibilni jezik kao što je C# 2. Ovaj kôd se kompajlira u MSIL, koji je smešten u programski skup (assembly): 3. Kôd koji se izvršava (bez obzira da li je sam po sebi izvršni ili ga koristi neki drugi kôd) mora se prethodno kompajlirati kroz JIT kompajler u izvorni kôd. 4. Izvorni kôd se izvršava preko upravljive metode CLR-a, zajedno sa bilo kojom drugom aplikacijom ili procesom. Povezivanje Postoji jedan dodatak gore pomenutom procesu. C# kôd koji se kompajlira u MSIL u koraku 2 ne mora da bude smešten u jednu datoteku. Moguće je podeliti kôd aplikacije u različite datoteke koje će se tokom kompajliranja objediniti u programski skup odnosno assembly. Ovaj proces je poznat i kao povezivanje i neverovatno je koristan. Razlog ove podele je taj, što je mnogo lakše raditi sa više manjih datoteka nego sa jednom ogromnom. Možete izdeliti kôd na logičke celine i smestiti ih u nezavisne datoteke na kojima se može nezavisno raditi i praktično zaboraviti na njih kada završite. Ovo nam olakšava pronalaženje određenih delova koda kada nam zatrebaju. Takođe omogućuje programerskim timovima da podele teret na manje delove kojima je lakše rukovati, kao i to da ukoliko dođe do provere nekog od tih delova ne postoji rizik da se ugrozi celina programa ili njegovi delovi na kojima se radi.

Šta je C# Kako je gore pomenuto, C# je jedan od jezika koji služi za izradu aplikacija koje mogu raditi pod .NET CLR-om. To je evolucija C i C++ jezika koju je kreirao Microsoft da bi se radilo sa .NET okruženjem. U njegovom razvoju korišćene su mnoge prednosti drugih jezika, naravno uz otklanjanje njihovih mana. Programiranje aplikacije u C# je jednostavnije nego u C++, jer je sintaksa prostija. Pa ipak, C# je moćan jezik i postoji veoma mali broj stvari koje bi smo uradili u C++ pre nego u C#. Paralelne mogućnosti C# onima naprednijim u C++, kao što je direktno pristupanje i manipulisanje sistemskom memorijom, može biti izvedeno jedino kroz kôd koji je obeležen kao nesiguran. Ove napredne tehnike programiranja su potencijalna opasnost (odakle im i ime) zato što je moguće pristupiti memorijskim blokovima koji su kritični za sistem, a sve to potencijalno vodi ka katastrofi. S vremena na vreme kôd u C# je malo razumljiviji od C++ koda. Ovo je posledica toga što je C# sigurniji po pitanju dodele tipa promenljivim (za razliku od C++-a). Prema Lajmanovoj terminologiji ovo znači da ukoliko nekoj promenljivoj ili podatku dodelimo određeni tip, on ne može biti zamenjen nekim drugim nevezanim tipom. Prema tome, postoje stroga pravila kojih se moramo pridržavati prilikom konverzija tipova, što u suštini znači da ćemo često morati da napišemo više koda da bi izvršili iste

Page 12: Projektni Zadatak Iz OOP-A

12

zadatke u C# nego u C++-u. Ali iz toga možemo izvući neku korist. Kôd je robustniji i jednostavnije je otkloniti greške, odnosno, .NET u svakom trenutku može odrediti kojem tipu pripada traženi podatak. Usled toga C# nam ne omogućuje stvari kao što su „Uzmi deo memorije 4 bajta unutar podatka i 10 bajta veliku i interpretiraj ih kao X.”, ali ovo nije uvek loše. C# je samo jedan od jezika koji omogućuju rad sa .NET razvojnim okruženjem, ali po mom mišljenju on je svakako najbolji. Njegova prednost je u tome što je on jedini napravljen baš za .NET okruženje, pa samim tim može biti i vodeći jezik korišćen za verzije .NET-a namenjene drugim operativnim sistemima. VB.NET je recimo, napravljen tako da bude što sličniji svojim prethodnicima i stoga on ne može da iskoristi .NET biblioteku koda u potpunosti. Suprotno njemu C# je napravljen tako da može iskoristiti svaki deo biblioteke koda .NET okruženja koju ova može da ponudi.

Vrste aplikacija u C# Kako je gore navedeno, C# nema ograničenja u vezi toga kakve sve aplikacije možemo napraviti. C# koristi okruženje i samim tim nema ograničenja u vezi sa mogućim aplikacijama. Pa ipak bacimo pogled na to koji su tipovi najčešće pravljenih aplikacija: Windows aplikacije – To su recimo, aplikacije tipa Microsoft Office koje imaju izgled Windowsa i odlično se slažu sa njim. Ovo je uprošćeno korišćenjem modula Windows obrazaca unutar .NET okruženja, koji u stvari čini biblioteka kontrola (kao što su dugmići, palete alatki, meniji i tako dalje) koje nam koriste pri izradi Windows korisničkog interfejsa (UI). Web aplikacije – To su web strane koje možemo videti kroz bilo koji web pretraživač. .NET okruženje omogućuje veoma moćan sistem generisanja web sadržaja i to dinamički, dozvoljavajući personalizaciju, sigurnost i još mnogo toga. Ovaj sistem se naziva Active Server Pages.NET (ASP.NET), a C# možemo koristiti za izradu ASP.NET aplikacija uz pomoć web obrazaca. Web servisi – Oni su nov i uzbudljiv način izrade aplikacija koje su razmenljive prirode. Koristeći web servise preko Interneta možemo razmenjivati bilo koju vrstu podataka, koristeći prostu sintaksu, ne vodeći računa o tome u kom jeziku je napisana aplikacija niti na kom sistemu je postavljena. Bilo kom od ovih tipova može zatrebati pristup bazama podataka, što se postiže korišćenjem Active Data Objects.NET ADO.NET odeljka :NET okruženja. Mnogi od ovih resursa mogu biti iskorišćeni, kao što su alati za izradu komponenata na mreži, iscrtavanje, izvođenje komplikovanih matematičkih zadataka, i tako dalje.

Visual Studio.NET Visual Studio.NET(VS) koristi se za izradu mnogo čega, počev od aplikacija sastavljenih od prostih linijskih komandi, pa sve do kompleksnih tipova projekata. VS nije neophodan za programiranje u C#, ali nam znatno olakšava stvari. Možemo (ako to poželimo) napisati naš kôd u najobičnijem tekst editoru, kao što je Notepad, i kompajlirati kôd u programske skupove koristeći kompajler za linijske komande koji je u sastavu :NET okruženja. Međutim, što bi to radili, kada možemo iskoristiti kompletnu moć VS-a da nam pomogne? Sledi kratka lista razloga zbog kojih je VS pravi izbor za :NET razvojno okruženje: *VS automatizuje korake neophodne pri kompajliranju izvornog koda, ali u isto vreme dozvoljava i kompletnu kontrolu nad opcijama ukoliko želimo da ih promenimo. *VS tekst editor je povezan sa jezicima VS-a (uključujući C#) i to tako da omogućuje pametnu detekciju grešaka i sugeriše odgovarajući kôd na pravom mestu dok mi kucamo. *VS sadrži i dizajnerske alate za aplikacije koje uključuju Windows obrasce kao i web obrasce, koji vam omogućuju prost prevuci–i–spusti (drag-and-drop) dizajn UI elemenata. *Mnogi tipovi projekata koji su mogući u C# mogu se napraviti sa „opštenamenskim” kodom koji se već nalazi na pravom mestu. Umesto da počinjemo od nule često ćemo naći različite datoteke koje sadrže gotov kôd, usled čega se skraćuje vreme provedeno u spremanju projekta. *VS sadrži nekoliko čarobnjaka ili vodiča koji vam automatizuju zadatke opšte namene, koji mogu dodati odgovarajući kôd postojećim datotekama, a da mi o tome ne vodimo brigu (ili u nekim slučajevima čak i ne pamtimo tačnu sintaksu) *VS sadrži moćne alatke za prikazivanje i navigaciju elemenata našeg koda, bez obzira da li se radi o prirodnom kodu C# ili nekoj bitmap slici, ili možda zvučnoj datoteci. *Pored toga što olakšava pisanje aplikacija, VS omogućuje i jednostavniju distibuciju i prilagođavanje projekata klijentima, kako bi ih oni lakše koristili ili instalirali. *VS omogućuje i napredne tehnike otklananja grešaka pri razvoju projekata, i to tako da možemo u isto vreme ući u kôd jedne instrukcije dok pazimo u kakvom je stanju aplikacija. Ima još mnogo toga, ali nadam se da ste shvatili o čemu se radi!

Rešenja u VS-u Kada koristimo VS za razvoj aplikacija, mi to radimo preko rešenja. Rešenje, po VS terminologiji, predstavlja nešto više od aplikacije. Rešenja sadrže projekte, koji mogu biti „zasnovani na Windows obrascima”, „web obrascima”, i tako dalje. Mada rešenja mogu sadržati i višenamenske projekte, tako da možemo grupisati srodne kodove na jedno mesto, iako će se oni kompajlirati u različite programske skupove (assemblies) na različitim mestima na hard disku.

Page 13: Projektni Zadatak Iz OOP-A

13

Ovo može biti od velike koristi, kada se radi na „zajednički korišćenom” kodu (koji može biti smešten u Global Assembly Cache) u isto vreme dok aplikacije koriste taj kôd. Otklanjanje grešaka u kodu je mnogo lakše ako se koristi jedinstveno razvojno okruženje, jer instrukcije možemo pretraživati kroz višenamenske kodne module.

Zaključak U ovom tekstu upoznali smo se sa osnovnim pojmovima .NET razvojnog okruženja i sa mogućnostima pravljenja moćnih i razmenljivih aplikacija. Saznali smo šta je neophodno da bi se kôd napisan recimo u C# pretvorio u funkcionalnu aplikaciju, i koje su prednosti upravljivog koda koji radi pod opštim izvršnim jezikom .NET-a (Common Language Runtime). Videli smo šta je u stvari C#, kako je povezan sa .NET razvojnim okruženjem i upoznali se sa alatom koji ćemo koristiti za programiranje u C# - Visual Studio.NET.

3. VISUAL STUDIO.NET IDE(Integrated Development Environment) Programsko okruženje Visual Studio .NET uvodi nove tipove prozora, nov način upravljanja tim prozorima i novu integraciju sa sadržajima Interneta. Ova lekcija približiće vam te nove funkcije, a takođe dati opšti pregled nekih starijih mogućnosti za otklanjanje programskih grešaka i pružanje pomoći korisnicima Visual Studio .NET-a sa gledišta programiranja veb aplikacija. Ukoliko ste se već bavili programiranjem služeći se starijim verzijama Visual Studija i radije biste preskočili ovu lekciju, ne zaboravite da nikakve izmene u aplikaciji ne možete više da obavite za vreme otklanjanja programskih grešaka bez ponovnog pokretanja aplikacije. Ta karakteristična funkcija Visual Studio .NET-a, poznata pod nazivom „uređivanje i nastavljanje” (edit-and-continue), nije više dostupna u jezicima Visual Basic .NET i Visual C#. Početna stranica Prilikom pokretanja Visual Studio .NET-a, prvo što ćete uočiti jeste početna stranica, kao što je prikazano na slici. Početna stranica sadrži razne okvire zahvaljujući kojima ćete informacije lakše pronaći i pomoću kojih su pojednostavljeni neki uobičajeni poslovi, kao što je otvaranje neke nedavno korišćene datoteke. Okvir Projects, ilustrovan na slici, prikazuje četiri poslednja sačuvana projekta u obliku hiperveza. Da biste otvorili neki od njih, izaberite naziv projekta. Da biste napravili nov projekat, ili otvorili neki postojeći koji nije naveden na spisku nedavnih projekata, izaberite odgovarajuće dugme na kartici Projects. Na početnoj stranici levo nalazi se lista ostalih tema koje sadrže najnovija obaveštenja o Visual Studio .NET-u, drugim Microsoftovim proizvodima, programiranju, pružanju usluga smeštanja veb lokacije i drugim pitanjima. Ukoliko odaberete bilo koju od ovih tema, početna stranica će je prikazati, kao što se vidi na slici.

Page 14: Projektni Zadatak Iz OOP-A

14

Početna stranica Visual Studio .NET-a

Informacije koje se prikazuju na početnoj stranici su dinamičke i većina njih potiče sa Interneta. Upravo zahvaljujući tome, informacije su aktuelne. Ne bi bilo loše da povremeno proveravate okvire Headlines i Downloads kako biste dobili najnovije vesti. Arhitektura Visual Studio-a Visual Studio ne podržava ni jedan programski jezik, solucije ili alate iontrizicno. Umesto toga, dozvoljava različite funkcionalnosti da budu plugged in –ovane. Specijalna funkcionalnost je kodirana kao VSPackage. Kada se instalira, funkcionalnost je u vidu Servisa. IDE podržavaju tri servis usluga: SvsSolution, koja omogućuje sposobnost za enumeraciju projkekta i solucija; SVsUIShell, koja omogućava prozorne i UI funkcionalnosti ( ukljucujuci TAB, Toolbar i Tool prozore); i SvsShell, koji sarađuje sa VSPackage-om. Kao dodatak IDE je takođe odgovoran za koordinaciju i dostupnost komunikacija između servisa. Svi editori, dizajneri, projekti i ostali alati su implementirani kao VSPackage. Visual Studio koristi COM za pristup VSPackage. Visual Studio SDK takođe uključuje Managge Package Framework ( MPF) koji je podešen oko COM interfejsa što podržava da paketi budu napisani u .NET jezicima. Kako god MPF ne omogućuje sve funkcionalnosti izložene pomoću Visual Studio COM interfejsa. Servisi onda mogu biti korišćeni za kreiranmje drugih paketa sto dodaje dodatnu funkcionalnost za Visual Studio IDE.

Funkcionalosti: Code Editor Visual Studio kod editor takođe podržava podešavanja Bookmarks-a u kodu za brzu navigaciju.Druga navigaciona pomagala uključuju collapsing code blocks i incremental search, kao dodatak pri normalnom pretraživanju teksta i regex pretraživanja . Kod editor takođe uklučuje višestavnu clipboard i task listu. Kod editor podržava delove koda,koji su snimljeni kao sabloni koji se mogu povratiti i biti ubačeni u kod i podešeni za projekat tokom rada.Kada je kod ispisan,Visual Studio ga kompajlira u pozadini sa ciljem da omogući programeru izveštaj o nastalim sintaksnim i kompilacionim greškama,nastalim tokom pisanja koda,koje su podvučene crvenom linijom.Upozorenja su podvučena

Page 15: Projektni Zadatak Iz OOP-A

15

zelenom linijom. Kompilacija u pozadini ne generiše izvršeni kod,sve dok se ne zahteva drugačiji kompajler od onog koji se koristi za generisanje izvršenog koda.

Visual Studio kao i svaki drugi Ide uključuje kod editor koji poidržava Syntax Highlighting i Code Completion koristeći IntelliSense, ne samo za funkcije,metode i promenljive nego i za jezičke konstruktore kao što su Loops i Queries.InteliSense je podržan za uključene jezike kao i XML,i za Cascading Style Sheets i JavaScript u izdavalaštvu Web sajtova i Web aplikacija.

( pimer korišćenja InteliSense -a u Microsoft Visual C# programu)

Debuger Visual Studio takođe uključuje Debuger,koji radi na dva načina,kao source-level debugger i kao machine-level debugger. On radi sa upravljačkim kodom kao i sa native kodom, može se koristiti za debagovanje raznih aplikacija napisanih u bilo kom programskom jeziku podržanom od strane Visual Studia.Osim toga takođe se mogu pratiti i analizirati problemi nastali u nekom od procesa.Ako je izvorišni kod za pokretanje pricesa dostupan,kod se prikazuje pri pokretanju.A ako kod nije dostupan,onda se prikazuje odvojeno.Visual Studio Debuger takođe može napraviti posebne memorijske lokacije u kojima se čuvaju kodovi za debagovanje.Debuger se može konfigurisati da bude pokrenut kada se program izvodi izvan okruženja Visual Studia.

Designer Visual Studio uključuje mnoštvo vizuelnih dizajnera za pomoć u razvoju aplikacije,u ove alate spadaju:

WinForms Designer Win Forms dizajner se koristi za kreiranje GUI aplikacija pomoću Windows formi.To uključuje i palete sa kontrolama (Button,Labels,Layout Containers...) koje se mogu prevući i postaviti na površinu obrazca.Layout može biti pod kontrolom, smestanjem unutar drugih container kontola,ili zaključavanjem kontrola u jednom delu forme.Kontrole koje prikazuju podatke(textbox,listbox,gridview...) mogu biti povezane za izvorište tih podataka kao sto su baze podataka.

Page 16: Projektni Zadatak Iz OOP-A

16

WPF Designer Ovi dizajneri,nazvani Cider,su predstavljeni u Visual Studio2008.Isto kao WinForms dizajner i ovi dizajneri podržavaju upotrebu ”prevuci i otpusti” metaforu.Koristi se za ciljanje autora korisnickog interfejsa Windows Presentation Foundation.Ovaj dizajner podržava sve WPF funkcionalnosti uključujući i databinging i izgled automatskog upravljanja.On generise XAML kod za UI. Generisan XAML kod je kompatibilan sa Microsoft Expression Design, dizajnerski orjentisanih proizvoda.XAML kod je povezan sa korišćenjem kodova code-behind modela.

Web Designer Visual Studio takodje uključuje Web urednika i Web dizajnera što omogućava da Web stranice budu autorizovane.Upotrebljava se za razvijanje ASP.NET aplikacije i podržava HTML,CSS i JavaScript. Koristi code-behind model za povezivanje sa ASP.NET kodom.Od Visual Studia 2008 pa na dalje izgled engine-a koji koristi Web dizajner podeljen je sa Microsoft Expression Web-om.

Class Designer Ovaj dizajner se koristi za autorizaciju u uređivanje klase(uključujući i njihove clanove i pristipe) koristeći UML modeliranje. Ovaj dizajner može generisati C# i VB.Net kodove za rad sa klasama i metodama.Ona takođe može generisati dijagrame sa ručno napisanih klasa.

Data Designer Dizajner podataka se može koristiti za grafičko uređivanje sema baza podataka,uključujući kucanje tabela,primarnih i foreign key-ova i ograničenja.Takođe se može upotrebljavati za oblikovanje upita iz grafickog prikaza.

Mapping Designer Od Visual Studia 2008 pa nadalje ovaj dizajner se koristi za dizajniranje šeme između baze podataka i klase koja enkapsulira podatke.

Open Tabs Browser Open Tabs Browser se koristi izlistavanje svih otvorenih tab-ova i prelaza između njih.To se izvršava pritiskom tastera CTRL+TAB.

Properties Editor Editor svojstva se koristi za promenu ili zadavanje novih svojstva objektima grafičkog interfejsa u Visual Studiu.On navodi sva raspoloživa svojstva(ona koje su read only i ona koja se mogu postaviti) za sve objekte uključujući klase,forme,web stranice.

(Open Tab Browser i Properties Editor)

Page 17: Projektni Zadatak Iz OOP-A

17

Solution Explorer Solition explorer nam daje uvid o svim fajlovima korišćenim u našoj aplikaciji.Fajlovi u Solution Exploreru su poređani hijerarhijski,što bi trebalo a možda i neće održavati organizaciju sistema podataka.Ovaj explorer se koristi za upravljanje fajlova koji se u njemu nalaze.

Team Explorer Team Explorer se koristi da integrise mogućnosti Team Foundation Server-a, Revision Control System u IDE(koji je osnov za Microsoft Code Plex hostovanje okruženja kod Open Source projekata).Pored kontrole izvora takođe pruža mogućnost da pregledate i upravljate pojedinačnim predmetima rada(uključujući greške,zadatke i ostalu dokumentaciju) kao i pregled TFS statistike.Team Explorer je takodje dostupan kao samostalan isključivo za pristup TFS uslugama.

Data Explorer Data Explorer se koristi za upravljanje bazama podataka na Microsoft SQL serverima.To omogućava dodavanje i promene u tabelama baza podataka(izdavanjem T-SQL naredbi ili korišćenjem dizajnera podataka).Takođe se može koristiti za pravljenje upitnika i sačuvanih procedura.

Server Expolorer Server Explorer alat se koristi za upravljanje bazama podataka i dostupnim vezama na računaru.Takođe se koristi za pregledanje Windows servisa,brojača performansi...

Visual Studio dodaci Visual Studio dozvoljava programerima pisanje proširenja za Visual Studio za povećanje njegovih mogućnosti.Ova prosirenja su ubačena u Visual Studio i povećavaju odnosno nadograđuju njegovu funkcionalnost.Proširenja dolaze u vidu makro naredbi, dodatnih instalacija i paketa. -Makro naredbe predstavljaju ponovljive zadatke i aktivnosti koje programeri mogu snimiti,prvenstveno za čuvanje a i za ponovljeno pokretanje i distibuciju.Makro naredbe međutim nemogu se koristiti za sprovođenje naredbi ili izradu novih Windows alata.Pisane su u Visual Basic-u i nisu kompajlirane. -Add-Ins(dodatne instalacije) omogućavaju pristup Visual Studio objektnom modeliranju i u interakciji su sa IDE alatima.Dodatne instalacije se mogu koristiti za implementaciju novih funkcionalnosti i alata.Add-Ins su priključene na IDE preko COM i mogu se napraviti u bilo kom COM-compliant jeziku. -Paketi su napravljeni korišćenjem Visual Studio SDK i pruzaju najveću promenu u pogledu funkcionalnosti Visual Studia.Upotrebljava se za izradu dizajnera i drugih alata,kao i za integraciju drugih programskih jezika. Visual Studio 2008 je predstavio Visual Studio Shell koji omogućava razvoj personalizaovane verzije IDE-a.Visula Studio Shell definise skup Visual Studio paketa koji obezbeđuju funkcionalnost zahtevanu u bilo kom IDE-u.Povrh svega drugi paketi mogu biti dodati kako bi dodatno prilagoili(nadogradili) instalaciju.

Visual Studio izdanja: Microsoft Visual Studio je dostupan u sledećim izdanjima:

Visual Studio Express Visual Studio Express izdanje je set besplatnih individualnih IDE softvera koji slžue kao stripped-down verzije Visual Studio IDE—a na jezičkoj osnovi.On instalira jezičke servise za podržane jezike na pojedinačne Visual Studio Shell aplikacije.On uključuje samo mali skup alata u odnosu na druge sisteme-bez udaljenih baza podataka za podrsku dizajnera,klasa dizajnera kao i nekoliko drugih alata i funkcija,kao i podršku za plug-ins.X64 prevodioci nisu dostupni u ovom izdanju Visual Studi-a.Ovo izdanje Microsoft je namenio prvenstveno studentima.Express izdanja takođe ne koriste MSDN biblioteke ali koriste MSDN Express biblioteke.Jezici dostupni kao deo Express IDE izdanja su:

1.Visual Basic Express 2. Visual C++ Express 3. Visual C# Express 4. Visual Web Developer Express

Page 18: Projektni Zadatak Iz OOP-A

18

Visual Studio Standard Visual Studio Standard izdanje pruža IDE za sve podržane proizvode i može podrzati ceo MSDN library.Ovo izdanje podržava XML i XSLT uređivanje,i može obezbediti raspoređivanje paketa koji koriste samo CickOnce.Međutim ovo izdanje ne uključuje alate kao Server Explorer i integraciju sa Microsoft SQL serverom.Visual Studio Standard samo može upotrebljavati Add-Ins za povećanje funkcionalnosti izdanja.Mobilna razvojna podrška je bila uključena u Visual Studio 2005 Standard,međutim sa Visual Studio 2008 ona je dostupna samo u profesionalnim i višim izdanjima.

Visual Studio Professional Visual Studio Professional sadrži iste alate kao i Standard izdanje s tim sto ovaj ima dodatne funkcionalnosti kao što je Microsoft SQL Server integracija(koja omogućava da se baze podataka kreiraju unuta Visual Studia) i zasebnog debuggera(kod izdanja za 2005 godinu).Visual Studio Professional podrzava sva 3 naćina nadogradnje(makro naredbe,Add-Ins i Packages)

Visual Studio Team System Visual Studio Team System omogućava niz softverskih razvoja,saradnji,alata...sve osim onih koje podržava Professional izdaje.Ovo izdanje nudi različite pakete alata zasnovane na razvoju softvera za ciju su konstrukciju i sami namenjeni.Posebnu ulogu imaju sledeći dizajneri: Team Explorer, Architecture Edition, Database Edition, Development Edition, Test Edition.Kombinovana funkcionalnost svih četiri Team System izdanja je pružena u Team Suite izdanju.Data Base izdanje (“DataDude”) je u početku bilo izdato kao zasebno izdanje nakon početnog izdanja Visual Studia 2005.Sve ovo je posebno sadržano u izdanju za 2005 godinu,ali će funkcionalnosti biti dodatno poboljšane za sledeće izdanje Visual Studio 2010.

4. Uvod u objektno orjentisano programiranje

Objektno orijentirano programiranje ili kraće OOP je jedan od mogućih pristupa programiranja racunara. Za razliku od ostalih pristupa, u kojima je težište na akcijama koje se vrše na podatkovnim strukturama, ovde je težište na projektovanju aplikacije kao skupa objekata koji izmjenjuju poruke.

1. Objektno-orijentisano programiranje je paradigma programiranja koja koristi objekte kao osnovu za projektovanje računarskih programa i različitih aplikacija softvera. Rešavanje problema paradigmom objektno-orijentisanog programiranja, je vrlo slično ljudskom načinu razmišljanja i rešavanju problema. Sastoji se od identifikovanja objekata i postavljanje objekata koji će se koristiti u odgovarajuću sekvencu za rešenje određenog problema. Radi se o dizajnu objekata čija će ponašanja kao jedinica i u njihovoj međusobnoj interakciji, rešiti određeni problem. Interakcija između objekata se sastoji u razmeni poruka, gde određena poruka usmerena prema određenom objektu, pokreće enkapsulirane operacije u tom objektu, čime se rešava deo obično šireg i složenijeg problema.

2. U paradigmi objektno-orijentisanog programiranja, objekti su strukture podataka koje predstavljaju određeno i jasno definisano znanje o spoljašnjem svetu ili stvarnosti. Tipična organizacija je u hijerarhijske klase, gde svaka klasa objekta poseduje informacije o osobinama objekta koje se čuvaju u instancama promenljivih koje su povezane (konceptom asocijacije) sa svakom instancom u određenoj klasi. Svaki objekat prepoznaje drugi objekat preko njegovog interfejsa. Podaci i logika svakog objekta su skriveni od drugih objekata. Time se omogućava razdvajanje implementacije od ponašanja objekta u interakciji sa drugim objektima

OOP predstavlja pristup realizaciji softvera kao modela realnog sveta. To je poseban nacin razmisljanja pri projektovanju programa koji sadrzi nekoliko kljucnih elemenata, a posebno: - Objekte (O) sa njihovim svojstvima (sa njihovim atributima) i stanjima kao konkretnim vrednostima svojstava - Relacija (R) izmedju objekta tzv. Koristicke interfejse - Procedure (P) dogadjaje pomocu kojih se, na osnovu naredbi nekog objektnogorjentisanog programskog jezika, vrsi promena stanja objekta, sto jeste cilj ovakvog objekta programiranja - Podatke ili structure podataka (S) Prema tome, OOP moze se shvatiti kao uredjena cetvorka: Objekata, relacija, procedura i struktura podataka, tj. OOP = (O, R, P, S). Suština i principi OOP-a - OOP uvodi u programiranje drugaciji nacin razmisljanja, - Trosi se manje vremena za implementaciju (programiranje, kodiranje), a mnogo vise za samo programiranje, - Vise se razmislja o problem koji se resava, a manje direktno o proramskom resenju, - Paznja se posvecuje delovima sistema (objektima) koji nesto rade, a ne algoritmima, tj. nacinu rada,

Page 19: Projektni Zadatak Iz OOP-A

19

- Prebacuje se paznja sa realizacije delova programa na medjusobne veze izmedju tih delova. Teznja je da se broj i intenzitet tih veza sto vise smanji i da se one strogo kontrolisu. Cilj OOP – a je da smanji interakcije izmedju softverskih delova. Prednosti korišćenja i osnovna svojstva OO Programiranja: • Realistično modeliranje realnosti: Korišćenje OO metodologije daje mogućnost boljeg i verodostojnijeg modeliranja procesa iz naše realnosti. • Višestruko korišćenje klasa: Jedanput dizajnirana klasa može biti iskorišćena u raznim aplikacijama. • Olakšano održavanje softvera: Korišćenjem OO metodologije značajno se olakšava održavanje softvera, jer je jednostvnija identifikacija modulča koje treba menjati. Osnovna svojstva, ili principi OO Programiranja su: o Apstrakcija o Enkapsulacija o Nasleđivanje o Polimorfizam Apstrakcija Apstrakcija je proces kojim se objekti iz realnog sveta modeliraju uprošćenom “slikom” napravljenom u klasi pomoću atributa i metoda. Recimo klasa automobil koju smo napred pomenuli ne opisuje sve moguće karakteristike automobola, već neke osobine zanemaruje (apstrahuje) i ne prikazuje ih kroz atribute i metode. Koji atributi i metodi će biti odabrani za prikaz u klasi zavisi od namera koje imamo u pogledu budućeg korišćenja klase u raznim aplikacijama. Pravilno odabran model realnog sveta može da pomogne da se razumeju rešenja problema koje treba rešiti kroz softversku aplikaciju. Enkapsulacija Enkapsulacija je jedan važan koncept u OO programiranju. Spoljni svet, kao je već rečeno, pristupa samo onim atributima i metodama koje su označene kao public. Programer koji koristi neku klasu ne mora da zna kako su atributi i metode u samoj klasi kodirane. Sve što je njemu potrebno je da poznaje intefejs preko kojeg pristupa metodama i atributima klase. Naravno, potrebno je da razume i značenje atributa i metoda kojima pristupa, ali ne mora da zna kako su same metode programirane. Na taj način je obezbeđeno da se greške koje se pojave u klasi otklanjaju u samoj klasi, bez potrebe za promenom onog dela programa koji tu klasu koristi. Nasleđivanje Nasleđivanje Inheritance is an interesting object-oriented programming conceptomogućava da neka klasa (sub klasa) bude bazirana na drugoj klasi (super klasa) i da od nje nasledi svu funkcionalnost. Kroz dodatni kod (atribute metode) sub klasa može biti specijalizovana za posebne potrebe. Na primer, kod klase vozila (kao super klase) možemo kreirati sub klase automobili i motorcikli. Obe ove klase nasledile bi sve metode klase vozila, ali bi takođe mogle da imaju i svoje specijalizovane metode i atribute, kao što su metoda Nagnise() i atribut Ugaonaginjanja za motorcikle. Polimorfizam Polimorfizam je sposobnost objekta da menja ponašanje u zavisnosti od načina na koji se koristi. Polimorfizam u najjednostavnijem obliku se pojavljuje kao niz metoda sa istim imenom ali sa različitim parametrima. Ovaj oblik polimorfizma naziva se “overloding” (overloading), a sreće se i kod operatora . U zavisnosti od parametara koje koristimo biće pozvan onaj metod koji odgovara korišćenim parametrima. Polimorfizam ima i druge oblike o kojima ovde neće biti reči.

5. (Poglavlje 15.1 iz knjige “ Microsoft FRAMEWORK 2.0 ”)

1. Uvod Kada je razvoj naše aplikacije završen,ona mora da dopre do korisnika kojima je namenjena. Microsoft Visual Studio pruža nekoliko mogućnosti za instaliranje i ažuriranje aplikacije.ClickOnce tehnologija nam omogućava da brzo i lako unapredimo našu aplikaciju i omogućimo joj opciju automatskog ažuriranja(automatic updates).Za detaljniji razvoj, Windows Installer tehnologija obezbeđuje okruženje sa mnogo opcija za podešavanje aplikacije. Tema našeg projektnog zadatka je prikazivanje mogućnosti instaliranje aplikacije pomoću Windows Installer i ClickOnce tehnologija. Cilj nam je da kroz projektni zadatak objasnimo: - Konfigurisanje instalacije Windows Form aplikacije korišćenjem ClickOnce tehnologije. - Instaliranje Windows Form aplikacije na klijent-računaru pomoću ClickOnce tehnologije razvoja - Instaliranje Windows Form aplikacije sa servera korišćenjem ClickOnce tehnologije razvoja - Konfigurisanje potrebnih dozvola za aplikaciju korišćenjem ClickOnce tehnologije razvoja

2. Instaliranje i ažuriranje Aplikacija korišćenjem ClickOnce tehnologije

ClickOnce je nova tehnologija instaliranja i ažuriranja kompaije Microsoft koja je napravljena da reši nekolicinu problema vezanih za razvoj aplikacije,i to:

Page 20: Projektni Zadatak Iz OOP-A

20

- poteškoće u omogućavanju redovnih update-ova

- nesposobnost korisnika da instaliraju aplikacije

- potreba većeg broja programa za deljenjem zajedničkih komponenti

ClickOnce adresira sve ove probleme i omogućava nam da napravimo razvojnu stategiju koja se može jednostavno update-ovati, izolovati od ostalih aplikacija ,i koju obični korisnici mogu instalirati bez poteškoća.

2.1 Pregled mogućnosti ClickOnce tehnologije ClickOnce je nova razvojna tehnologija koja nam omogućava da napravimo samo-ažurirajuće aplikacije koje mogu biti instalirane sa mnogo razlicitih izvora i koje zahtevaju minimalnu interakciju korisnika.Svaka Windows Forms aplikacija može biti objavljena kao ClickOnce aplikacija.ClickOnce se može koristiti za pravjenje aplikacija koje se update-uju sa interneta, pomoću share-ovanih fajlova ili sa diska.ClickOnce aplikacija se može konfigurisati tako da radi samo kada je korisnik na internetu,ili obrnuto! ClickOnce aplikacija može biti konfigurisana da se sama update-uje i ona će u tom slučaju automatski traziti update-ove na lokaciji sa koje je instalirana i automatski će skidati update-ove ukoliko postoje. ClickOnce aplikacije su izolovane od ostalitka sistema.S obzirom da je potpuno samostalna,ona ne deli komponente sa drugim aplikacijama koje su instalirane na računaru,pa nema rizika od ugrožavanja instalacija ostalih programa. ClickOnce aplikacije po default-u mogu biti pokrenute putem interneta ako su pokrenute sa udaljenog računara, ili sa intranet security zona ako su instalirane na korisnikovom računaru.Aplikacija može zatražiti dodatne dozvole ukoliko su potrebne, što korisniku daje mogućnost odbijanja gore pomenutih.

2.2 Objavljivanje ClickOnce aplikacije Opcije ClickOnce aplikacije se mogu konfigurisati tako što desnim klikom miša označimo određenu stavku u Solution Exporer-u, izaberemo opciju properties iz padajućeg menija i onda odaberemo opciju Pubilsh. Ovo prikazuje publish properties stranu, kao što je prikazano na slici 1.

Slika 1. Publish properties prozor

Možemo konfigurisati svojstva naše razvojne strategije u ovom prozoru. Nakon podešavanja svojstava aplikacija se može objaviti tako što se klikne na dugme Publish Now.

Page 21: Projektni Zadatak Iz OOP-A

21

2.3 Određivanje publishing lokacije Publishing lokaciju možemo odrediti u Publishing Location combo box -u. Ovo treba da bude putanja fajla(file path), share-ovanje putem mreže, HTTP adresa ili FTP adresa. Generalno ovo je adresa na kojoj će korisnici naći instalaciju aplikacije. Opciono se može precizirati URL adresa instalacije sa koje će korisnici moći da instaliraju aplikaciju. Ovo je potrebno uraditi samo ako je ClickOnce aplikacija kreirana na različitom serveru od instalacione lokacije.

2.4 Konfigurisanje Install mode-a ClickOnce aplikacija se može konfigurisati tako da bude dostupna samo kada je korisnik ONLINE ili ONLINE\OFFLINE. Odabiranjem opcije The Application Is Available Online Only pilikom instalacije mi zahtevamo da se aplikacija startuje direktno sa lokacije određene u Publishing Location combo box-u. Možemo odabrati i opciju Application Is Available Offline da bi aplikaciju učinili dostupnom i kada smo OFFLINE. U ovom slučaju, aplikacija će se iskopirati na lokalni računar i dodati u start meni i Add/Remove Programs box u control panel-u.

2.5 Konfigurisanje automatskog ažuriranja (automatic updates) ClickOnce aplikacija se može konfigurisati tako da automatski traga za update-ovima. Odabiranjem opcije Updates u Publish properties prozoru, možemo otvoriti Application Updates dialog box kao što je prikazano na slici 2.

Slika 2. The Application Updates dialog box

Da bi omogućili da aplikacija traga za update-ovima, trebamo čekirati check box u kom se nalazi opcija Application Should Check For Updates, ovo omogućava korišćenje drugih opcija u dialog box-u.Možemo odrediti kada će aplikacija tragati za update-ovima tako što odaberemo opciju After The Application Starts ili Before The Application Starts (posle starta ili pre starta aplikacije). Ako odaberemo opciju Before The Application Starts aplikacija će tragati za update-ovima prilikom svakog starta što će dodatno usporiti aplikaciju. Ako odaberemo opciju After The Application Starts možemo odrediti da li će aplikacija tražiti update-ovanje prilikom svakog starta ili na određenom vremenskom intervalu odabiranjem odgovarajuće opcije Specify How Frequently The Application Should Check For Updates. Možemo odabrati najmanju potrebnu verziju i mozemo odabrati drugu lokaciju za traženje update-ova ukoliko se update-ovi nalaze na različitim lokacijama od lokacije instalacije.

2.6 Konfigurisanje potrebnih dozvola za ClickOnce aplikaciju Po default-u ClickOnce aplikacija koja je pokrenuta sa interneta radi u Internet security zoni, a ClickOnce aplikacija pokrenuta sa share-ovanog fajla radi u intranet security zoni. Za neke aplikacije možda će biti potrebno konfigurisanje dodatnih dozvola za rad aplikacije. Možemo konfigurisati dozvole za ClickOnce aplikaciju u Security tab-u u project properties prozoru.Security prozor je pokazan na slici 3.

Page 22: Projektni Zadatak Iz OOP-A

22

Slika 3. The Security properties prozor

Možemo manualno da odaberemo koje će dozvole biti dodeljene aplikaciji, ili možemo odrediti koje su dozvole aplikaciji neophodne i tako iskonfigurišemo nasu aplikaciju. Da bi odabrali dozvole za ClickOnce aplikaciju potrebno je da uradimo sledeće:

1. U The Security properties prozoru treba odabrati check box označen u prozoru Enable ClickOnce Security Settings, 2. Kliknuti na radio button u opciji This Is A Partial Trust Application 3. Kliknuti na dugme Calculate Permissions 4. Dozvole koje zahteva aplikacija su dodate dozvolama koje će biti zatražene od strane aplikacije prilikom instalacije.

Manualno konfigurisanje dozvola za ClickOnce aplikaciju se izvršava na sledeći način:

1. U Security properties prozoru izabrati check box koji je označen u opciji Enable ClickOnce Security Settings. 2. Kliknuti na radio button u opciji This Is A Partial Trust Application 3. U tabeli koja se nalazi u okviru opcije This Is A Partial Trust Application treba naći opciju permission of interest 4. U koloni Setting izabrati opciju Include da bi se dozvola obuhvatila ili isključila kao nepotrebna

Opcije za dozvole koje nisu obuhvaćene u permission set zoni u okviru koje se aplikacija instalira moraju biti odobrene od strane korisnika pre završetka procesa instalacije.

2.7 Instaliranje ClickOnce aplikacije na klijent-računaru Instaliranje i ažuriranje uz pomoć ClickOnce aplikacije je skoro jednako prosto kao što nam naziv aplikacije govori. Da bi instalirali ClickOnce aplikaciju sa interneta trebamo uraditi sledeće:

1. Pristupiti Publish.htm web stranici na kojoj se nalazi instalacija ClickOnce aplikacija. 2. Kliknuti na opciju install

Da bi instalirali ClickOnce aplikaciju sa share-ovanog file-a trebamo uraditi sledeće:

1. Pristupiti file share-u za ClickOnce aplikaciju, 2. Pokrenuti instalaciju

Page 23: Projektni Zadatak Iz OOP-A

23

3. Praktičan primer: Objavljivanje aplikacije na Network Share-u

1. U root direktorijumu ćemo napraviti share-ovan direktorijum pod nazivom: C:\ClickOnce

2. Otvorićemo formu u C# koju smo kreirali za objašnjenje projekta.

Page 24: Projektni Zadatak Iz OOP-A

24

3. U Solution Explorer-u ćemo kliknuti na opciju properties i odabrati Publish tab. Setovaćemo Publish Location na

C:\ClickOnce,.U Publish Location grupi takođe treba postaviti lokaciju instalacije na \\[computername]\ ClickOnce, gde je [computername] naziv računara(u našem slučaju computername je mup).

4. Kliknućemo na opciju Publish Now da bi objavili našu aplikaciju na network share-u. ClickOnce verifikuje potrebe aplikacije i objavljuje je. Potom se Publish.htm fajl otvara.

5. Otvorićemo folder C:\ClickOnce i kliknuti na setup.Ukoliko se pojavi bezbednosno upozorenje kliknućemo na install.

Page 25: Projektni Zadatak Iz OOP-A

25

6. Aplikacija se nakon instaliranja otvara na našem računaru. Možemo primetiti da je nova grupa dodata u start meniju.

7. Iz start menija otvorićemo control panel i izabrati Add/Remove Programs. Kliknućemo na ikonicu naše aplikacije i izabrati opciju Change/Remove. Potom ćemo pratiti instrukcije i ukloniti aplikaciju sa računara.

Page 26: Projektni Zadatak Iz OOP-A

26

4. Zaključak ClickOnce je nova moćna razvojna tehnologija koja omogućava programerima da na brz i pouzdan način objavljuju aplikacije na Web stranicama, file share-ovima ili FTP site-ovima. ClickOnce aplikacije se mogu podesiti da automatski pronalaze i instaliraju update-ove. Možemo konfigurisati aplikaciju tako da traga za update-ovima prilikom svakog njenog pokretanja,ili na unapred određenom intervalu. ClickOnce aplikacije po default-u rade u Internet security zoni ukoliko su skinute sa interneta,odnosno u intranet security zoni ako su skinute sa file share-a.Ako su potrebne dodatne dozvole,one mogu biti podešene od strane programera i naknadno odobrene ili odbijene prilikom instalacije aplikacije. Instaliranje ClickOnce aplikacije je veoma jednostavno-samo kliknemo na ikonicu Setup ili na dugme za instalaciju na Web stranici i pratimo uputstva.

Page 27: Projektni Zadatak Iz OOP-A

27

LITERATURA:

http://hr.www.wikipedia.org

http://www.serbiandownload.com

http://www.devexpress.com

http://www.elitesecurity.org

http://www.cet.co.rs/cetknjige

http://bs.wikipedia.org/wiki/Programiranje

dr Lazar Milićević, Uvod u programiranje

NET FRAMWORK 2.0 Windows - Based Client development Training Kit