Autorski članci
uređuju Dragan Grbić i Branislav Mihaljev, MVP

Bookmark and Share
Matična strana sajta
  Novo na sajtu
  Mapa sajta
  Beleške
  Kontakt
  Pretraga MSKB

 Blog Praktikuma
  RSS feed
  P@W @Tw

  Izvezi stranicu u PDF
 
Office Praktikum

Autorski članci
 


Skoro svakodnevno slušamo
  Radio Paradise:
  eklektični muzički online radio bez reklama!
 

 
       

Sponzori sajta

SBB CS 1.6 game server: 82.117.200.1
 
Connectivity by SBB

 


 

Informacije

NOVOSTI

I još dva nova priloga o Excelu
Novi prilozi o Wordu
Novi i prilozi u temi "razno o Officeu"
Novi članci o novostima u Officeu 2010!

SADRŽAJI ZA PREUZIMANJE

Lokalizacija Total Commandera 7.51Obe jezičke školjke za popularni program na srpskom sad funkcionišu u bilo kojoj varijanti Windowsa!
RNDalica.ExcelDodatak za Excel 2007/2010 za generisanje slučajnih podataka!
YuConv.ExcelDodatak za Excel 2007/2010 za konverziju pisama!
YuConvNetDodatak za Word 2007/2010 za konverziju pisama i kodnih rasporeda!

SKREĆEMO PAŽNJU

Kako pretraživati MSKB
a pronaći ćete i još mnogo novih sadržaja...

KONTAKT

Da li znate za pravila koja važe pri kontaktu sa nama? Molimo vas da se obavestite o tome!
 
POZIVAMO VAS

i prenesite svoja iskustva. Najbolji prilozi će biti objavljeni.

  (C) 2000-2010 Praktikum na Webu
 

Razvojna platforma za Office 2003

Nivo:  NIVO 4 - klinite za objašnjenje


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.

Put kojim se kretao razvoj Microsoft Officea danas je, manje-više, poznat mnogima. Razvijen na temeljima Windowsa kao moderne korisničke platforme, bio je to prvi paket programa za poslovnu upotrebu koji je dokazao njenu validnost. Atributi koji su doveli taj paket na vrh popularnosti i obima prodaje nisu samo posledica agresivnog marketinga i privilegije da potiče iz iste kuće kao i sam Windows. Veoma važan razlog realnog uspeha Officea leži u mogućnosti čija strategija je stara gotovo deset godina. Reč je o ideji programiranja tzv. integrisanih rešenja, čemu je Microsoft bio rodonačelnik. Formalno, pojam "integrisano rešenje" se odnosi na namensku aplikaciju razvijenu unutar Officea, a koja koristi mogućnosti jednog ili više programa u jedinstvenom, namenski upravljanom okruženju. Tehnički gledano, takva aplikacija se programira upravljanjem otvorenog objektnog modela, a može da se realizuje u jeziku Visual Basic for Applications (u komponenti Visual Basic Editor, koji je sastavni deo Office programa) ili u namenskom okruženju "pravih" programskih jezika, pošto je objektni model dostupan i njima. Kao posledica, interfejs integrisanog rešenja može da bude sam Office program, ali to može da bude i namenski program koji integriše potrebne delove tih programa kao svoje module.

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 sistema

U 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.

 Upravljanje XML strukturama Sredinom 2001. godine izlazi i Office XP, a varijantu paketa za razvoj čini sedam CD-ova, među kojima su se našle i namenske, razvojne verzije serverskih paketa SQL Server 2000 i Exchange Server 2000. Nije to bilo bez razloga: najveći pomak u ovoj verziji razvojne platforme je učinjen na polju saradnje Officea sa middleware slojem koju karakterišu upravljanje procesima zasnovanim na podacima i na komunikaciji, grupni rad korisnika u zajedničkom virtuelnom prostoru i široka primena resursa na Internetu. Koncept poslovne logike podržan je višestruko, od programiranih elemenata kao što su Smart Tags, preko unapređenih mogućnosti većine programa da isporučuje i prima aktivne sadržaje u Web interfejsu, do aktivne primene tada promovisane SharePoint tehnologije. Kao značajna podrška novoj generaciji aplikativnih servera .NET familije, Microsoft Office XP Developer se pokazao primerenim da izdrži talas novog vida projektovanja aplikacija. Doduše, bilo je potrebno dodati nekoliko (besplatnih) komponenti, kao što je Office XP Web Services Toolkit. Upravo je Office XP bio prvi poligon u praksi na kome su isprobane tehnologije zasnovane na logičkom SOAP protokolu i XML formatu podataka. Mnoge implementacije višeslojnih aplikacija, u kojima je Microsoft Office imao značajno mesto, u praksi su dale dobre rezultate. Postalo je izvesno na šta će ličiti sledeća generacija razvojnih alata za Office: Visual Studio.NET je postao univerzalna platforma u kojoj se prave desktop i Web aplikacije i bilo je samo pitanje dana kada će tom kolu priključiti i razvoj Office 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 platforme

Najavljeno 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. Principijelna šema Office rešenja

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šenje

Kreiranje 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.

 Visual Studio Tools for Office,
 integrisano okruženje za ozbiljno programiranje Potvrdom ovih podešavanja, čarobnjak kreira novo Visual Studio .NET rešenje koje sadrži samo jednu biblioteku klasa. Kao deo procesa kreiranja projekta, ako ste odabrali rad u novom dokumentu, čarobnjak će pokrenuti i jednu instancu matične aplikacije. Projekat sadrži dve izvorne datoteke: AssemblyInfo.vb (ili .cs, zavisi od odabranog jezika) i datoteku koja sadrži klasu koja odgovara matičnom Office dokumentu (npr. ThisWorkbook.vb). Projekat kreira i reference ka odgovarajućim bibliotekama; recimo, ako koristite Windows Forms, pojaviće se referenca na System.Drawing.dll; naravno, možete sami dodati sve potrebne reference, pa vaše rešenje može biti prilagođeno nekoj posebnoj svrsi.

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šenje

Naravno, 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 milja

Opisali 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.

 

  (C) 2000-2010 Praktikum na Webu

Objavljeno u časopisu PC #92, septembra 2003.


 
 

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.