|
Autorski članci |
|
|
Visual Studio Tools for Office: Programirani dokumentiNivo:
Piše: Dragan Grbić Visual Studio Tools for Office uvodi mnoge nove elemente u projektovanje i implementaciju integrisanih rešenja. Upoznajte se sa tim novim načelima: otkrijte prednosti i zamke ove razvojne platforme Govoreći o novom razvojnom paketu za sistem Microsoft Office u prošlom broju Da ne bi bilo zabune, odmah razjasnimo: i dalje opstaje lokalni, "mali" razvoj rešenja u sistemu Visual Basic for Applications (VBA), koji se implementira na nivou dokumenta. VBA i VSTO se međusobno ne isključuju; na izvestan način, čak ih je neumesno i porediti. Umesto toga, dva oblika gradnje rešenja za Office treba da posmatrate kao komplementarne celine, utvrđujući koji od njih je celishodniji za posao koji želite da automatizujete. Možete čak i planirati rešenja koji podrazumevaju prisustvo oba programska oblika, pod uslovom da poštujete specifičnosti i razlike koje postoje među njima. Pogledajte uporednu tabelu dve razvojne platforme: rasprava o ovim razlikama predstavlja okosnicu teme kojom se bavimo ovog puta.
Šta se pravi i kako radiPodsetićemo vas kratko na preduslove za pripremu razvojne platforme za VSTO. Pre instalacije sistema Microsoft Office 2003 u varijetetu Professional (koji je neophodan), treba da instalirate .NET Framework 1.1. Redosled je bitan, kako biste u toku instalacije Officea dobili opciju izbora .NET Programmability Support; reč je o postavljanju veznih modula klasa po imenu primary interop assemblies (PIA). Sledi instalacija neke od varijanti paketa Visual Studio .NET; pri izboru platforme treba da razmišljate da je VSTO pripremljen za Visual Basic .NET i za Visual C# .NET; neki minimalni izbor (po mogućnostima, ali i po ceni) bio bi u instalaciji samostalnog paketa Visual Basic .NET. Sledi instalacija paketa VSTO, a ne treba zaboraviti ni na referentnu literaturu u obliku MSDN Library, bez koje nećete daleko stići. Postoje još neke preporučene komponente (MSDE, IIS), a prošli put smo govorili još o nekim elementima razvoja koji proširuju radni ambijent za razvijanje Office rešenja; to su opcije koje ćete već izabrati prema sopstvenim potrebama. Najkraće rečeno, VSTO je programski dodatak za Visual Studio .NET koji služi kao potpuno novo okruženje za razvoj programskih rešenja u Wordu i Excelu. Iz ugla .NET programiranja, ti programi su "bogati front-end" koji čini integrisano rešenje prepoznatljivim i jednostavnim za korišćenje. Zato nema potrebe za programiranjem svake sitnice, nego se uspostavlja mogućnost rapidne izrade funkcionalnih rešenja koja proširuju postojeće okruženje korisnika. Kada kreirate rešenje u VSTO, vi zapravo pravite assembly, nezavisnu komponentu koja se povezuje sa određenim dokumentom. U tome je jedna od ključnih razlika u odnosu na VBA module, koji se čuvaju kao deo dokumenta; štaviše, dokument i assembly uopšte ne moraju da funkcionišu sa istog mesta. Ovo je ključna osobina VSTO arhitekture, koja donosi mnoge prednosti na planovima sigurnosti i angažovanja. U razvojnom okruženju za Office, princip COM (component object model) je još uvek najvažniji: kada klijentski modul stupa u interakciju sa Office programom, to se obavlja kroz tzv. COM interop layer. Programski poziv bilo kog COM objekta se izvršava posredstvom modula po imenu interop assembly (drugi naziv je runtime callable wrapper, RCW). Za svaki COM objekat, samo jedan interop assembly je primarni i to je, kao što je pomenuto, predefinisano instalacijom sistema Microsoft Office. U pojavnom obliku, VSTO 2003 sadrži predloške projekata za C# i Visual Basic čiji nosioci su Word dokument, Word predložak i Excel dokument. U aktuelnoj verziji VSTO postoji, zapravo, i način da radite sa Excel predlošcima, ali to nije očigledno. Našli smo na nezvanični podatak da je bila reč o kašnjenju u razvoju tog dela pred izlazak produkcione verzije VSTO, pa "samo" nedostaje predložak projekta. Kako god, predlošci projekta obezbeđuju vrlo brzu pripremu kostura za Office rešenje, dovoljnog za direktan nastavak pisanja namenskog koda. Da bi sve prošlo bez greške, prvi koraci su upakovani u Office Project Wizard u kome ćete lako definisati sve relevantne podatke. Osobine radnog ambijenta su već odavno poznate "pravim" programerima; dobit za vas, ako ste Office programer, jeste u najmanje dve novosti. Prvo, na raspolaganju vam je bogata integrisana dokumentacija, koja osim referentnih priručnika sadrži i biblioteke dobro objašnjenih primera; njih možete analizirati, isprobavati i menjati i tako mnogo naučiti u hodu. Druga ključna novost je interakcija saveta u toku lova na greške; na kakav god problem da naiđete u toku pisanja, kompilovanja ili izvršenja programa, dobićete barem jednu ili dve reference koje se odnose na nastalu situaciju.
Bezbednost pre svegaIntegrisano okruženje obezbeđuje punu funkcionalnost prototipskog razvoja rešenja. Nalik programiranju klasičnih aplikacija, klik na komandu Run će pokrenuti ciljni dokument, pri čemu izvršenje ostaje pod nadzorom razvojnog okruženja. Drugim rečima, na raspolaganju su sve metodologije i alatke za lov na greške (debugging), nadzor promenljivih, tačke prekida i ostale tehnike. Uobičajeni princip pripreme kritičnih operacija jeste da se one ugnezde u klauzule Try...Catch u kodu; u protivnom, greške koje se dešavaju u Wordu i Excelu bi mogle da promaknu bez uvida u njihovo dešavanje u času "pada" programa. Druga metoda se ređe primenjuje, ali je jednako efikasna: lov na izuzetke (exceptions) obezbeđuje just-in-time lov na greške, uz mogućnost postavljanja složenijeg skupa opcija u zavisnosti od uhvaćenog izuzetka. Arhitektura integrisanog rešenja je principijelno prosta. Rešenje čine dve namenske komponente: to su Office dokument, koji služi kao front end rešenja, i assembly komponenta (kompilovana kao DLL datoteka), koja sadrži izvršni deo. Veza između dve komponente rešenja se održava na zanimljiv način: Office Project Wizard postavlja dva posebna svojstva dokumenta: AssemblyName0 sadrži ime IA komponente, a AssemblyLocation0 tačnu lokaciju, u vidu relativne ili apsolutne putanje na disku, kao UNC u lokalnoj mreži ili kao URL adresa do koje se stiže HTTP protokolom. Ova svojstva se mogu ažurirati na više načina; optimalno je, naravno, da to prepustite automatici integrisanog razvojnog okruženja, jer se vrednosti ažuriraju u toku svakog kompilovanja rešenja. Drugi način je manje fleksibilan: otvorićete dijalog File / Properties u Office programu i na kartici Custom zateći svojstva čije vrednosti možete menjati. Vredi pomenuti još i kontrolu Persistence koja je uključena u VSTO, a čijom upotrebom možete menjati svojstva za više rešenja odjednom, izradom namenske batch procedure.
Bezbednost za integrisana rešenja se može implementirati na više načina, s obzirom na to da postoji više opcija za nosioca bezbednosti (folder aplikacije, elektronski potpis komponente, pouzdani izdavač, polisa imenovanja, bezbedni URL ili zona, itd). Polisa bezbednosti mora biti postavljena sa administratorskog naloga na svakom ciljnom računaru ponaosob. Metode mogu biti različite: uobičajeni manuelni koraci se obavljaju konfiguracionom alatkom za .NET Framework ili programom CASPOL.EXE na komandnoj liniji. Pošto je to uglavnom suviše posla u većim mrežama, možda je najefikasniji način da se polise postave kao deo instalacionog skripta, tako da Windows Installer postavi sva potrebna podešavanja kada se na ciljnom računaru pokrene MSI datoteka. Jednom definisane, polise sigurnosti mogu biti očuvane i ukoliko kasnije dođe do izmene verzije assembly komponente; ukoliko dođe do bilo kakve promene u polisi, neophodno je restartovati Office programe koji je koriste. Načini angažovanjaPreduslovi platforme za rad klijenata, naravno, nisu toliko obimni kao kada je reč o razvojnoj platformi. Međutim, i dalje važi nužan preduslov za redosled instalacije, pa se morate pobrinuti oko pravilne postavke softvera na radnim stanicama. Mogući operativni sistemi za rad integrisanih rešenja su Windows 2000, Windows XP i Windows Server 2003 na kojima je instaliran .NET Framework 1.1. Nije neophodno da se instalira kompletan Microsoft Office: moguće je da vašim potrebama odgovara samostalni Word 2003 ili Excel 2003. Koju god varijantu da iskoristite, takođe morate instalirati i Office 2003 PIA, jer se te komponente uvek referenciraju u rešenju kao osnovne. S obzirom na to da rešenje sadrži dve komponente, postoje tri osnovna scenarija njihovog postavljanja u odnosu na mrežno okruženje. Koji scenario ćete primeniti, zavisiće prevashodno od realnih potreba; svaka postavka ima svoje "za i protiv". Osnovni model angažovanja je da i dokument i assembly počivaju na lokalnom računaru. Glavna prednost rešenja je u tome da računari ne moraju biti u jedinstvenoj mreži, pa se ovom modelu pribegava za potrebe heterogenih grupa korisnika na raznim lokacijama. Najveća mana modela "lokal/lokal" je u tome što morate distribuirati primerke rešenja za svakog korisnika, što može da bude naporan proces.
Treći model je, naravno, onaj koji podrazumeva da se i dokument i assembly nalaze na nekom serveru, a da im korisnici uvek pristupaju direktno. To podrazumeva obaveznu vezu sa matičnom lokacijom, što može da bude otežavajuća okolnost. Zauzvrat, tako angažovano rešenje obezbeđuje najviši stepen sigurnosti, i to ne samo iz ugla bezbednosti pristupa i izvršavanja, nego i kada je reč o eksploataciji rešenja. Dokument na mreži se postavlja kao master, dok korisnici čuvaju rezultujuće sadržaje u lokalu ili na mreži kao posebne dokumente; ovo je, recimo, prikladno kao mera zaštite integrisanog rešenja zasnovanog na predlošku dokumenta. Varijante angažovanja u odnosu na mrežnu okolinu mogu da budu opredeljene i željenim nivoima polisa sigurnosti; reč je o tome da se principijelno definišu različite polise za dokument i za assembly. Ako dokument počiva na lokalnom računaru, polisa nije potrebna, nego je dovoljno postavljanje u pouzdanu lokaciju za korisnika (npr. My Documents). Ako je dokument na mreži, neophodna je polisa sigurnosti FullTrust na nivou mašine. Uzgred, ovakve postavke opredeljuju i način distribucije dokumenta: recimo, ako pošaljete nekome dokument rešenja kao prilog e-poštom, on se neće smatrati poverljivim i neće moći da bude angažovan. Uslovi za assembly su rigidniji: lokalno postavljena DLL datoteka zahteva FullTrust na nivou korisnika; ako je na nekom serveru, polisa sigurnosti mora da postoji na nivou mašine, kao za mrežni dokument. Suština napretkaDa VSTO ima ozbiljnu perspektivu, govori nam i podatak da se ubrzano radi na razvoju nove verzije sa oznakom 2005, koja već postoji u Beta verziji. Ima sve više informacija o mogućnostima sledeće platforme, a neka prototipska rešenja privlače interesovanje šireg kruga Office projektanata nego aktuelna verzija. Recimo, razvijen je ceo podsistem za napredniju gradnju Access aplikacija (mnogi su zamerili zbog sadašnjeg odsustva tog dela) i zna se da će biti deo sledećeg izdanja VSTO. Prema najavi, osim uobičajenog royalty-free modula za rad Access baza na "golim" mašinama, Access 2003 Developer Extensions će sadržati unapređeni Package Wizard; Property Scanner Add-In koji će sadržati heurističke elemente za analizu komponenti Access aplikacije; Custom Startup Wizard je namenjen pripremi kolekcije MDE datoteka koje će poslužiti za vrlo olakšano testiranje prototipa aplikacije; veoma je unapređen i način upravljanja izvornim kodom u finalnoj aplikaciji. Šlag na tortu: sve alatke će biti isporučene i u izvornom kodu, što će biti vrhunska literatura za majstore Accessa. Uvođenjem VSTO u paket razvojnih alata, Microsoft je postigao niz dobrih pogodaka, a ukupni napredak je lako vidljiv. Teško je opredeliti se za ključni argument poželjnosti primene ovog principa: za neke, to će biti kvalitet integrisanog okruženja koje daje Visual Studio .NET; za druge, bitno je ozbiljno angažovanje bezbednosti. Većina će se, pak, složiti da najveću dobit predstavlja mogućnost potpune integracije de facto celokupne Windows platforme u integrisano rešenje, i to na vrlo efikasan način. Verujemo da ste stekli utisak da možete postati vrlo produktivan projektant kvalitetnih rešenja u svom poslovnom okruženju ako koristite paket Visual Studio Tools for Office kao alatku. Moglo bi se još mnogo reći o tehnologijama koje su prirodni ambijent za primenu VSTO u praksi, ali to je druga priča kojoj ćemo se vratiti drugom prilikom.
|
|
Vrh stranice Prethodna stranica Naslovna strana Mapa sajta Pretraga |
| AFORIZAM ZA DANAS | OVIH DANA SLUŠAMO... |
| Copyright © Praktikum na Webu, 2000-2010; Valinor Design; sva prava pridržana. |