|
Autorski članci |
|
|
Razvojna platforma za Office 2003Nivo:
Piše: Dragan Grbić Razvoj korisničkih aplikacija u prepoznatljivom okruženju čini krunu mogućnosti paketa Microsoft Office. Iako je zadržala strateški princip na ovom polju, matična kuća je ipak promenila uslove u kojima ćete ubuduće razvijati integrisana rešenja.
Ispitujući razne mogućnosti Microsoft Officea 2003, koji samo što nije izašao, seriju tekstova koji se bave ovim paketom završavamo pogledom na nove momente razvoja Office aplikacija. Kao što ćete videti, sledeća generacija alata namenjenih razvoju tih aplikacija ne nosi u sebi samo duh novih principa savremene informatike, nego dolazi i do jedne konceptualne promene čija ozbiljnost sugeriše pažnju. Od vizije do sistemaU vreme razvoja strategije Office integracije, koja je objavljena početkom 1994. godine, osnovna podrška nije baš bila na nivou ideje. Programi su imali različite sisteme automatizacije, a neki nisu bili kompletni niti dovoljno razvijeni. Prošlo je skoro pet godina i tek je Office 2000 materijalno podržao integraciju na nivou ozbiljnog razvoja. Nakon prethodnog dodatka Office Developer Tools 97, koji je predstavljao prvu "pravu" podršku razvoju Office aplikacija, ta verzija se prvi put pojavljuje i u ediciji Office 2000 Developer. Bila je to ozbiljno podržana platforma: uz kompletnu tadašnju paletu Office programa (osim programa Project i Visio, koji su takođe dostojni programi za razvoj Office aplikacija), u tom paketu se našao CD sa kompletnim sistemom i predlošcima za razvoj aplikacija i prateću podršku, kao i posebno izdanje MSDN Library, elektronsko izdanje ključne literature za projektante aplikacija.
Ako je i bilo dilema o ovoj prognozi, one su raspršene krajem 2002. godine, kada je naporedo sa prvom kompletnom Beta verzijom paketa Office 2003 objavljena i platforma po imenu Visual Studio Tools for Office. Reč je o dodatku za Visual Studio.NET koji možete besplatno preuzeti sa Microsoftovog sajta, zasad u Beta verziji. Iako su mnogi mislili da je prelazak razvoja Office aplikacija u okruženje "velikog" sistema za razvoj samo opcija, nije tako: kako stoje stvari, više se neće pojavljivati varijetet Office Developer. Microsoft nam jasno stavlja do znanja porukom "ako želite da programirate, koristite pravi alat za to, a to je Visual Studio.NET". Ako bacite pogled na cenovnik softvera Microsofta, neće vam biti pravo. Ali, ako je balast podrške "malih" rešenja takav da nije celishodno održavati posebnu verziju, neka bude kako mora biti. Na pragu smo nemile, ali izgleda nužne faze podizanja kriterijuma za razvoj modernog softvera. Slika buduće platformeNajavljeno je da će paralelno sa izlaskom Officea 2003 izaći i puni paket koji dopunjuje razvojnu platformu. Njega će, osim podsistema Visual Studio Tools for Office verovatno činiti još i Microsoft Office System 2003 Solutions Development Resource Kit, Developer izdanja aktuelnih verzija platformi SQL Server i Exchange Server, kao i kompletirana literatura u elektronskom obliku. Ostalo je "samo" još da se pobrinete oko dodatnih elemenata razvojnog sistema. Već je dokumentovano šta se smatra kompletnom novom razvojnom platformom za sledeći Office, pa se čak navodi i nužni redosled instalacije softvera na mašini za razvoj. Prvo treba instalirati Visual Studio.NET 2003 (varijanta Professional ili jača). Nakon toga je potrebno izabrati Custom oblik instalacije Officea 2003, pa za Excel i Word obavezno uključiti opcije .NET Programmability Support, kao i još neke posebne detalje. Na kraju je potrebno dodati Visual Studio Tools for Office i tek time se ostvaruje preduslov razvojne platforme za Office. Nešto je složeniji postupak i na strani klijenta koji će koristiti novi oblik integrisane aplikacije: osim instaliranog Excela 2003 i Worda 2003, potrebno je da bude instaliran i Microsoft .NET Framework 1.1. Ovo je besplatna komponenta, a može biti obezbeđena kroz Windows Update ili kroz instalacionu proceduru integrisane aplikacije. Da ne bude nejasnoće: Visual Basic for Applications koji ste do sada najviše koristili kao sredstvo programiranja u Officeu postoji i dalje, sa mogućnostima koje nisu ništa manje nego pre. Ali, jasno se daje do znanja da ta platforma neće više biti konceptualno razvijana. Objektni model programa u Officeu 2003 je primereno osvežen potrebnim dodacima koji odgovaraju novitetima u paketu (kao što su upravljanje XML metodama, programiranje Smart tagova, itd), ali se napominje da VBA više ne zadovoljava sve potrebne kriterijume za rad u mrežnom okruženju. Naravno, danas se mrežom u praksi smatra samo jedna, ona najveća: Internet. Nove mogućnosti Ako programirate u okruženju Visual Studio.NET, komponenta Visual Studio Tools for Office za vas suštinski predstavlja novi skup predložaka
za projekte koje ćete koristiti za kreiranje "sklopova" (assemblies), tj. programskih modula koje rade kao procesi u Excelu
2003 i u Wordu 2003. Upravljajući ovim predlošcima, formiraćete rešenja zasnovana na dokumentima, koristeći upravljane mogućnosti matičnih
programa (u prvoj verziji samo u dva pomenuta, a kasnije i u više njih), sa ili bez saradnje sa okolinom. Veoma uprošćeni scenario takve
aplikacije bi mogao da izgleda ovako: modul se povezuje sa bazom na SQL Serveru, generiše se strukturni upit, a rezultati se prosleđuju u
obliku tabele na radnom listu Excela; po završenom prenosu podataka, modul poziva Chart Wizard i na osnovu podataka izvučenih iz baze
formira grafikon. Naravno, aplikacije u stvarnom životu su složenije, ali reč je o tome da ćete raditi suštinski slične stvari kao i
ranije. Komponentu integrisane aplikacije ćete napisati u jeziku Visual Basic ili C# (zasad "samo" u njima). Kompilovanje prolazi kroz common language runtime (CLR), pa se kao rezultat dobija tzv. upravljani kod (managed code); suprotno od toga, kod napisan kao VBA ili COM komponenta se smatra neupravljanim (unmanaged code), što znači da ne odgovara svim specifikacijama za današnje potrebe. Reč je o tome da CLR upravlja memorijskim procesima i verifikuje programski kod da bi se uverio da ne pokušava da izvrši neku neregularnu operaciju, poput pristupa memoriji i drugim resursima koji joj ne pripadaju. Takođe, CLR obezbeđuje pristup klasama .NET Framework i Base Class Libraries; poenta ove veze je u mogućnosti kreiranja složenih sistema za upravljanje dokumentima koji koriste zaštićene resurse. Pomenuti primer čitanja sadržaja baze i interpretacija u Excelu je banalan, ali kod koji obezbeđuje sve potrebne validacije može lako da se ugradi i u aplikacije koje regularno ažuriraju baze podataka, što je daleko od naivne situacije u uslovima globalnog pristupa. Objektni model u ovom okruženju daje mnogo šire mogućnosti, a platforma obezbeđuje odgovarajuću robustnost i pouzdanost; za ovakve mogućnosti, razmišljanje o novoj ceni razvojne platforme je, složićete se, drugačije. Kako se pravi rešenjeKreiranje integrisanog rešenja uz pomoć sloja Visual Studio Tools for Office je jednostavno. U integrisanom radnom okruženju Visual Studio .NET 2003 odabraćete novi projekat u grupi Microsoft Office System Projects; izabraćete jedan od dva upravljana jezika (Visual Basic ili C#), a zatim jedan od tri predloška projekata: Excel Workbook, Word Document ili Word Template. Po izboru imena i lokacije za novi projekat, pokreće se Microsoft Office Project Wizard. Ovaj čarobnjak vam omogućuje da odlučite da li ćete kreirati novi dokument ili ćete pridružiti assembly nekom već postojećem. Usput, čarobnjak će pretpostaviti da želite da modifikujete podešavanja polisa za Code Access Security (CAS), gde zadajete korisnička prava za izvršenje i debagovanje novog rešenja; to možete promeniti, ali verovatno neće biti potrebe za tim; uostalom, to možete menjati i kasnije.
Osnovna arhitektura rešenja je takođe prosta. Excel 2003 i Word 2003, prilikom svakog učitavanja dokumenta, proveravaju postojanje dva posebna svojstva u njemu: _AssemblyLocation0 i _AssemblyName0. Ako se ova svojstva pronađu, matična aplikacija pokreće Assembly Loader (otkloadr.dll). Ovaj (neupravljani) DLL je odgovoran za pokretanje assembly modula koji kreirate koristeći Visual Studio Tools for Office. Loader koristi posebna svojstva u dokumentu da bi pronašao njegove module, učitava ih u memoriju, ispituje neke metapodatke, postavlja reference između matičnog dokumenta i assembly modula, a zatim se sklanja sa scene, prepuštajući upravljanom kodu da preuzme posao. U cilju lakšeg referenciranja i sigurnosti, dozvoljeno je povezivanje samo jednog upravljanog assembly modula sa matičnim dokumentom. Ako vaše rešenje iziskuje više povezanih modula, izaberite jedan kao glavni i sve ostale referencirajte isključivo iz njega, a ne iz dokumenta, jer Assembly Loader može da prepozna samo jedan skup svojstava koji ukazuju na module. Ako pregledate dobijeni predložak projekta rešenja, uočićete da programski kod dokumenta (pomenuti ThisWorkbook.vb) sadrži jednu klasu po imenu OfficeCodeBehind, koja je osnovna za pokretanje rešenja; Assembly Loader će kreirati instancu te klase u času učitavanja modula. To je početna tačka vašeg rešenja (tzv. startup class), a sve nakon toga razvijate u uobičajenom maniru strukturne objektne aplikacije. Kako se koristi rešenjeNaravno, Visual Studio Tools for Office omogućuje da isporučite rešenje sa određenim dokumentom. Za razliku od VBA rešenja koja su upakovana u dokument, upravljano rešenje počiva u spoljnom, kompilovanom modulu. Kada generišete projekat, jedno od dodatnih svojstava dokumenta čuva i relativnu putanju do assembly modula sa asocijativnim imenima. Na primer, ako je ime vašeg projekta Faktura, assembly modul će se zvati Faktura.dll i biće lociran u folderu Faktura_bin. Pošto se uobičajeno rešenje sastoji od dve datoteke (dokument i assembly modul), postoje tri moguća scenarija njegovog angažovanja na klijentovom računaru, uz pretpostavku da se na njemu već nalaze .NET Framework 1.1 i Office 2003. Prvi scenario će mnogima verovatno biti najzanimljiviji: dokument se nalazi na lokalnom disku korisnika, a assembly modul se postavlja negde na deljenom resursu u mreži i referenciran je UNC ili HTTP(S) adresom. Druga dva scenarija podrazumevaju da se obe datoteke nalaze na lokalnom disku ili, pak, obe na mrežnoj lokaciji. Sve tri varijante postavljanja rešenja imaju svoje "za i protiv". Lokalni dokument u kombinaciji sa assembly modulom na mreži omogućuje korisniku da ima privatne podatke u svom dokumentu i da koristi sigurno najažurniju verziju komponente rešenja. Pošto CLR podržava korišćenje van mreže (keširanje aplikacije), korisnici koji se često kreću van mreže sa svojim prenosnim računarima (notebook, PC tablet) mogu i dalje da koriste aplikaciju. Nedostatak je u tome što takav korisnik mora prvi put da otvori dokument dok je povezan u mrežu, kako bi Assembly Loader mogao da preuzme assembly modul u keš. Ako se obe datoteke koje čine rešenje postave na računar krajnjeg korisnika, barem je osigurana stalna raspoloživost, bez obzira na trenutno prisustvo računara u mreži. Ali, tako se povećava verovatnoća problema pri isporuci novih verzija, pošto promena modula zahteva obavljanje dodatnih radnji od jednog do drugog računara. Suprotno od toga, obe datoteke na mrežnoj lokaciji su možda optimalni vid angažovanja rešenja, ali isključivo ako su računari stalno umreženi. Dodatna prednost je u tome što se dokumenti mogu koristiti u uslovima združenog rada, pa se dobija kvalitet više. Naravno, sve ove kombinacije u praksi znače da ćete verovatno kombinovati scenarija angažovanja integrisanog rešenja u zavisnosti od prirode posla i kretanja krajnjeg korisnika. To i ne mora da predstavlja osobit problem, jer bez obzira na odabrani scenario, neophodno je da modifikujete lokalne polise sigurnosti za krajnjeg korisnika. Naime, da biste zaštitili korisnika od zlonamernog koda koji se može naći u nekom dokumentu, Visual Studio for Office Tools Loader zahteva da pridruženi assembly modul bude overen kao prihvatljiv u lokalnoj polisi sigurnosti (inicijalno nije). Podrazumeva se da će ta podešavanja zavisiti od modela isporuke aplikacije koju odaberete za tog korisnika. Korak od sedam miljaOpisali smo vam samo veoma prosti pogled na novu metodologiju gradnje integrisanih Office aplikacija. Ona je sada usklađena sa mnogim novim zahtevima u pogledu mogućnosti, bezbednosti i robustnosti, pa je teško osporiti celishodnost novog ambijenta za razvoj (a pogotovo njegove cene). Mnogo toga uopšte nismo pomenuli, jer gradnja korisničkih aplikacija u Officeu 2003 ne znači samo upravljanje sadržajem dokumenata. Postoji čitava paleta novih namenskih platformi za razvoj rešenja u drugim oblastima koje čine Office 2003 System: to su komponente za gradnju Smart Tags rešenja, metode gradnje procesnih aplikacija na SQL Serveru i Exchange Serveru, kao i čitav sistem za pisanje rešenja u SharePoint ambijentu. Biće vremena da govorimo i o tim tehnikama. Do pre par godina, možda ste i mogli da povučete crtu razgraničenja između sistema za gradnju klasičnih Windows aplikacija, rešenja na aplikativnim serverima i onih unutar Office programa. Takav pogled više ne važi: sve se preklapa i predstavlja jednu ogromnu razvojnu platformu na mnogo nivoa. Postajući deo te slike, Microsoft Office je na planu razvoja podignut na novi nivo. Izvesno, mnogim projektantima rešenja ovo možda neće biti po volji, jer i dalje postoje velike ciljne grupe korisnika sa skromnijim zahtevima, oni koji će se zadovoljiti "običnim" upravljanim rešenjima u svojim Office programima. Te mogućnosti, bar na planu dosadašnjih metoda razvoja, preostaju i dalje, mada će projektanti koji nemaju Visual Studio .NET sada ostati uskraćeni za alate koje su imali za mnogo manje pare, kupujući Office Developer. Ko zna, možda se Microsoft u poslednji čas i predomisli, posebno ako nekako primeti podatak iz jednog istraživanja na američkom tržištu iz 2002. godine, a koje kaže da preko dve trećine korisnika integrisanih rešenja u Microsoft Officeu uopšte ne koriste servere, nego proste peer-to-peer mreže. U nastojanju da ostane najveći i najjači, Microsoft i nas navodi da se privolimo najvećim i moćnim, ali ponekad ne baš jeftinim rešenjima. Pitanje je koliko je to celishodno za male korisnike; u velikim informacionim sistemima, nesumnjivo, sada se pružaju neslućene nove mogućnosti.
|
|
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. |