PC Press
O nama
O nama
Pretplata
O nama
Postanite saradnik PC-ja
Kontakt sa redakcijom
PC Press
Novi broj
Novi broj   
Pretrazivanje
Arhiva
Arhiva   
PC Online
PC Plus   
Specijalna izdanja
Softver Softver
PC #107 : Januar 2005 Knjiga 50 godina racunarstva u Srbiji

 Naslovna  Sadržaj 
Aleksandar Petrović  

Studio za 2005 godinu

Možda neki Microsoft-ovi projekti kasne, ali razvoj novog paketa Visual Studo teče po planu - od početka godine objavljeno je nekoliko internih probnih verzija paketa, a onda je testerima i MSDN pretplatnicima poslata prva zvanična beta verzija novog razvojnog okruženja...

(kliknite za veću sliku)

Šta čini uspešnim jedan operativni sistem? Prvo na šta pomislimo jesu stabilnosti i udobnosti, ali pravi odgovor glasi: broj aplikacija koje su napisane za njega. Pošto aplikacije pišu programeri, računica je jasna: ko privuče više programera, ima veće šanse na tržištu. Tu računicu Microsoft je u proteklim godinama doveo skoro do savršenstva - MSDN, ogroman po obimu, predstavlja bazu znanja dostupnu svakome ko piše Windows aplikacije; Microsoft-ovi razvojni alati prodaju se po razumnim cenama i lako se dobijaju popusti za njihovo korišćenje; SDK paketi su besplatni, i tako možemo u nedogled - ako ste Windows programer, dobra je prilika da imate povlašćeni status kod Microsoft-a.

Donedavno je ovakav pristup obezbeđivao Microsoft-u veliku prednost nad ostalim platformama, zbog čega je nemali broj programera bio spreman da zažmuri na povremene probleme u Windows-u, ali vremena se menjaju, Java razvojni alati ubrzano stižu i prestižu Microsoft-ovu ponudu, pa je firma iz Redmonda rešila da malo ubrza korak - posle velike pauze između Visual Studio-a 6 i .NET/2003, sledeći Visual Studio trebao bi da bude pušten u prodaju već 2005. godine; novine koje donosi su, ako je suditi po beta-verzijama, barem onolike kolike su bile u VS.NET-u naspram Visual Studio-a 6.

(kliknite za veću sliku)

Promena ima i u pristupu tržištu. Porodica Visual Studio.NET 2005 biće mnogo razuđenija od trenutne ponude: sa jedne strane se agresivno reklamiraju Express paketi, jeftine verzije ograničene uglavnom na jedan jezik i sa ciljanom veličinom instalacionog fajla ispod 50 MB, sredina ponude je i dalje Visual Studio, dok je vrh nedavno najavljeni Visual Studio.NET Team System, koji bi trebalo da objedini sve što je potrebno za vođenje softverskog tima, od alata za projektovanje proizvoda, preko poslastica tipa integrisanog okruženja za pisanje unit testova, do novog version control sistema, koji bi (napokon) zamenio Source Safe.

Posle nekoliko internih verzija namenjenih samo očima beta-testera (prve verzije, sa početka godine, dolazile su sa restriktivnim EULA papirom koji je praktično zabranjivao da se o novom Visual Studio-u bilo šta priča), krajem leta je predstavljena zvanična beta 1 verzija koja je stavljena na pretplatničke stranice MSDN-a. Dakle, kako će izgledati novi Visual Studio.NET 2005?

Prvi susret

(kliknite za veću sliku)

Još od prvog Visual Studio-a koji je imao sufiks .NET postoji podešavanje prema profilu programera: kažete da li ste VB, C# ili C++ programer, i okruženje se rekonfiguriše prema Microsoft-ovom viđenju potreba tog tipa programera. Visual Studio.NET 2005 je u ovom prilagođavanju otišao najdalje, pa se, u zavisnosti od izabranog jezika, ne menjaju samo položaji prozora i prečice, već je tu i drugačiji raspored toolbar-ova, a čak i opcija New Project daje sve od sebe da vas ubedi kako je Visual Studio pravljen "baš za vas" - podrazumevani projekti su vezani za izabrani jezik, dok su svi ostali šabloni projekata smešteni pod stavku other languages. Podrazumevani jezik bira se pri prvom startovanju, a kasnije ćete se pomučiti dok pronađete kako da ga promenite: opcija je skrivena u dijalogu Import/Export Settings, u kome se krije još jedna novina - pošto valjda nema programera koji ne podešava okruženje prema svojim potrebama i hirovima, napokon je sva podešavanja moguće regularno snimiti i učitati, bez posezanja za regedit-om i sličnim vratolomijama.

Opciju lakog snimanja podešavanja okruženja posebno ćete ceniti ako vam je primarni jezik C#. Editor u Visual Studio-u je i u trenutno aktuelnim verzijama udoban, u smislu da programera štedi dela posla oko uređivanja teksta programa, automatskim uvlačenjem redova i sličnim sitnicama. Visual Studio.NET 2005 je napravio veliki korak napred - novi editor aktivno preuređuje kod posle svakog otkucanog reda prema zadatim parametrima, tako da se uniformnost izgleda koda lako postiže. Prebrojati broj opcija kojima se detaljno podešava izgled listinga nije lak posao, ali se editor može prilagoditi praktično svakom stilu pisanja koda. Iskustvo pisanja u novom editoru može biti malo čudno i izazvaće mrštenje kod "starih programerskih kuka", ali novom konceptu vredi dati šansu.

(kliknite za veću sliku)

Neke kozmetičke promene vide se već na prvi pogled. IntelliSense je malo ubrzan, a leva margina žutom i zelenom bojom označava redove koji su promenjeni od početka rada sa fajlom i redove koji su promenjeni od poslednjeg snimanja fajla. Editor je od Office rođaka nasledio opciju Smart Tags, koja bi mogla da bude nazvana i "programerov najbolji prijatelj" - u zavisnosti od konteksta, ispod dela koda u trenutnoj liniji će se pojaviti mali plavi pravougaonik; klik mišem ili tastaturna prečica će prikazati meni sa trenutnom VS.NET ponudom za pomoć. Pomoć je zavisna od konteksta - ako stanete na definiciju metoda (funkcije), biće ponuđena promena redosleda parametara ili brisanje nekog od njih; otkucate li ime klase iz .NET framework-a koja nije "vidljiva" zato što ne postoji odgovarajuća import klauzula, Smart Tag će to učiniti za vas; pišete kod i navodite još nenapisanu funkciju - Smart Tag će generisati telo funkcije i prema trenutnom kontekstu pokušati da pogodi koji su argumenti, a koja povratna vrednost te funkcije itd. Smart Tag tehnologija je dobila pravu promociju u Visual Studio-u 2005, nije ograničena samo na tekst-editor i, barem na prvi pogled, izgleda kao veoma upotrebljiva alatka.

Teža artiljerija

Drugo veliko pojačanje editora su Code Snippets. Inicijalno namenjen samo Visual Basic programerima, ovaj alat skoro da omogućuje pisanje celog programa samo uz pomoć miša: pošto su kontrole raspoređene po formularu, preći ćemo u editor, ali umesto da kucamo kod, tu je desni taster miša, izbor opcije Insert Snippet iz kontektsnog menija i... razgledanje gomile standardnih rešenja za standardne poslove - od rada sa fajl-sistemom, preko rešenja za pozive API funkcija, do matematičkih i statističkih funkcija. Neki snippet-i su jednolinijski i samo štede programera posla oko nalaženja prave funkcije u ogromnoj .NET biblioteci (funkcije za otvaranje fajla, ili brisanje konzole, recimo), dok su drugi pravi mali potprogrami koji bivaju ubačeni u kod, sa jasno označenim delovima koje treba promeniti.

(kliknite za veću sliku)

Ponuđeni spisak snippet-a nije nepromenljiv - format u kojem su snippet-i napisani je XML, pa deo koda koji se stalno provlači kroz programe možete promovisati u snippet. Microsoft se nada da će snippet-i postati široko popularni i da sledi razmena snippet kolekcija među programerima, ali treba reći da je sličnih ideja sa razmenom standardnih delova koda bilo i ranije, ali bez naročitog uspeha. Snippet-i mogu da posluže i onima koji nisu VB-programeri - u .NET svetu mešanje jezika nije retkost, i dobro je imati pod rukom biblioteku standardnih rutina za jezik u kome se možda ne snalazite najbolje.

U C# i J# jezicima alternativa Code Snippets biblioteci je Expansions - reč je o istoj tehnologiji (XML fajlovi koji opisuju šta treba dodati u kod), ali je Microsoft u prvoj beti odlučio da C# i Java .NET programerima ponudi bazičniju pomoć - "ekspanzije" se uglavnom svode na skraćivanje kucanja nekih standardnih elemenata (for petlje ili if-then-else konstrukcija). Zgodno je to što većina ponuđenih ekspanzija ima svoju "skraćenicu" koja se regularno pojavljuje u IntelliSense meniju, pa se koriste mnogo brže i jednostavnije - naravno, i opcija izbora iz kontekstnog menija postoji. Kao kuriozitet navedimo da C# programer u inicijalnim podešavanjima ima definisanu tastaturnu prečicu za expansion meni, dok VB programer mora Code Snippet meni pozvati mišem - još jedan primer Microsoft-ovog viđenja navika raznih vrsta programera. Vredi se nadati da će finalna verzija VS 2005 ipak nuditi i C#/J# programerima biblioteku korisnih rutina, mada ne treba sumnjati da će se na Internetu naći dobrovoljci da Code Snippet "prevedu" u Expansions.

Ako su C# programeri uskraćeni zbog Code Snippet-a, dug se može smatrati namirenim postojanjem opcije u meniju koja se pojavljuje samo pri editovanju C# i J# fajlova - Refactor. Kao što zna svako ko je imao tu (ne)sreću da duže vreme održava neki netrivijalni projekat, rad na kodu praktično nikada ne prestaje - čak i rutine i delovi koji su u jednom trenutku izgledali završeno već sutradan dolaze na red za ispravljanje, poliranje, bolje uklapanje sa upravo promenjenim ostatkom koda... Proces obično zovemo Refactoring. Java programeri u svojim izvanrednim IDE-ima već odavno imaju podršku za osnovne refactor metode, a ova opcija napokon dolazi i u Microsoft-ove razvojne alate. Dva najvažnija refactoring metoda su i vizuelno odvojena u Refactor meniju od ostalih sa spiska: Extract Method će označene linije neke funkcije "promovisati" u zasebnu funkciju, vodeći računa da nova funkcija kao ulazne parametre dobije sve promenljive koje su potrebne da bi se kod ispravno prevodio. Rename refactoring je još jednostavniji i korisniji: kada se ispostavi da je neka promenljiva ili funkcija pogrešno nazvana, Rename će pomoći da se to ime promeni u neko koje bolje odslikava namenu, usput menjajući svako mesto u kodu gde se ta promenljiva ili funkcija referiše - slično Search and Replace opciji, samo mnogo jednostavnije i sigurnije.

Ostalih pet Refactor opcija su više pomoć u kucanju - od Encapsulate Field i Extract Interface metoda, koje umesto programera "promovišu" promenjivu objekta u property, odnosno na osnovu potpisa klase generišu interfejs, do Promote local variable to parameter, Remove parameter i Delete parameter opcija za fino podešavanje koda unutar funkcije.

Na kraju priče o editoru pomenimo i da su značajno poboljšane mogućnosti pregleda koda. Class View panel je napokon dobio upotrebljivo pretraživanje, pa je na osnovu dela imena lako moguće locirati funkciju, promenljivu ili klasu u projektu. Find dijalog je postao "pametniji", pa pored prostog pretraživanja teksta sada nudi i traženje određenog simbola, a među rezultatima nudi i sve reference na simbol u projektu - lako vidite gde se neka funkcija poziva. Prisutan je i panel Definitions sumnjive upotrebne vrednosti na manjim monitorima, koji dinamički pronalazi mesto u kodu gde je definisan simbol na kome je kursor (stvar radi i za bibliotečke klase), a prava poslastica je opcija View in diagram - njenim aktiviranjem se otvara novi prozor sa grafičkim prikazom klasa u projektu i njihovim međusobnim vezama. Dijagram je "živ" u smislu da predstavlja drugi pogled na kod i omogućuje neke osnovne promene koda - za sada je moguće deklarisati promenljive i funkcije, ali se pisanje koda još uvek obavlja u editoru.

Za opsežan opis beta verzije paketa Visual Studio.NET 2005 pogledajte januarski broj časopisa "PC".