Ačkoliv kancelářský balík společnosti Microsoft toho nabízí opravdu hodně, existuje mnoho oblastí, kde by se dal použít, kdyby se tu něco přitesalo a tam něco více přihnulo. Namísto stavění na zelené louce je možné použít odpovídající tesařské nástroje, o kterých bude v tomto článku řeč.
Již v ranních dobách stařičkého MS-DOSu bylo možné používat ve
Wordu či Excelu makra, která se v novějších, okenních verzích píší ve
Visual Basicu určeném pro aplikace. Vynecháme-li ne příliš robustní
programovou komunikaci s Office pomocí DDE, pak je tu rozhraní COM, pomocí
kterého se domlouvají jednak jednotlivé kancelářské aplikace mezi sebou a
jednak s ostatními programy třetích stran. Díky tomu si lze např.
s Wordem o dokumentu „pokecat“ dejme tomu z Windows Script Host nebo
Delphi.
Pokud se vrátíme o pár verzí zpět, měli vývojáři k dispozici
kromě uvedených možnosti speciální edici nazvanou Microsoft Office
Developer Edition, která vyjma vlastního Office obsahovala další nástroje
použitelné pro programování či ukládání dat (např. MS SQL Server nebo
Exchange Server — licencované pro vývoj; pro podrobnější informaci
o vývojářské edici pro Office XP viz její recenze v SWN 10/2002).
S verzí Office 2003 však došlo k výrazné a pro leckterého
vývojáře nepotěšitelné změně, alespoň co se nároku na peněženku
týče. Nejprve musíte mít licenci na vlastní Office System 2003 a dále
(pravda volitelně) licenci na Visual Studio .NET. Další nutností je licence
na Microsoft Visual Studio Tools for the Microsoft Office System 2003 (dále
v textu jen VS Tools). Tuto trojici pak můžeme považovat za nástupce
vývojářské edice Office. Bohužel však neexistuje nějaký rozumný
upgradovací licenční program. Na druhou stranu lze pochopit snahu Microsoftu
sjednotit své vývojové produkty pod jednu hlavičku, a tou je již zmíněné
Visual Studio .NET. Vývojáři tak nemusí znát několik prostředí a
systémů, ale mohou zůstat v jednom a vyvíjet pro více
(„)platforem(“).
Protože Microsoft Office System (dále v textu jen MOS) samo o sobě
přináší novinky pro vývojáře, pojmu tuto recenzi jako pohled
programátora na MOS i VS Tools víceméně dohromady.
Dotaz na význam zkratky XML se dnes již pokládá v každém pohovoru
s uchazečem o zaměstnání, byť jde o sestru na skotské střiky nebo
prodavače bublinek do vodováh. V MOS slouží XML (z pohledu vývojáře)
pro komunikaci s okolním světem a to hlavně s webovými službami.
Jestliže dříve XML znal jen Excel a Access, dnes je to již i Word.
Můžete tedy relativně jednoduše získávat data z jiných systémů nebo
jim naopak informace poskytovat, aniž by o sobě věděly víc než názvy XML
značek a jejich význam. Jediné, co programátor musí udělat je namapovat
dané značky na obsah dokumentu ve Wordu či Excelu. K dispozici je vizuální
nástroj ukazující XML schémata připojená k dokumentu.
Data v XML lze získat i z datového zdroje, resp. ze zdroje
poskytujícího XML rozhraní (např. BizTalk Server nebo SQL Server 2000).
Právě díky uvedeným nástrojům lze spolupracovat s ostatními podnikovými
systémy vybudovaných nad SharePoint Serverem.
Uložení dokumentů může být také v XML a neměl by být problém
(schválně používám podmiňovací způsob) je převést do něčeho
jiného.
Word dokáže pracovat nejen s XML dokumentem, ale pokud si to uživatel
přeje, ukládat dokument včetně formátování a dalších informací v XML.
To ale není vše. Programátor může kromě vlastního formátování textu
získat i výsledky kontroly pravopisu, automatických změn či záznamy
změnového řízení (Change tracking). Rozhodně jako XML editor bych ho ale
nepoužíval. Myslím si, že použití Notepadu nebo XML Spy bude mnohem
lepší postup. Přidávání nových značek není nijak intuitivní
záležitost a stejně tak práce např. s DTD není na potřebné úrovni. Pro
editaci XML lze použít i Excel, ale opět bych to viděl jako speciální
úlohu než jako prostředek pro pravidelnou editaci XML souborů.
Pokud vaše exporty jsou v XML, můžete je programově vložit do Excelu a
nechat jej provádět různé analýzy a uživateli pak zobrazit jen výsledky.
Taktéž je umožněno využít vizuální nástroj pro snadné mapování mezi
tabulkou XML a uživatelsky definovaným schématem XML.
Součástí Office System je i nová aplikace Microsoft Office InfoPath
2003, která vytváří formuláře k záznamu dat podle uživatelsky
definovaného schématu XML. K formuláři lze pak přidat XSLT šablonu a
informace tak zobrazit podle přání uživatele. V InfoPath lze nadefinovat
i poměrně složité formuláře s hierarchickou strukturou či
tabulkami.
Další členové MOS si s XML také poradí. Access umí provádět z/do
XML import/export. Visio ukládá své modely ve formátu XML, takže např.
vaše aplikace může vytvořit diagram dle libosti bez nutnosti znalosti
prostředí Visia nebo jej mít nainstalované — zákazník si pak diagram
načte do odpovídajícího okna.
Pro vývojáře jsou všechny XML schopnosti Office dostupné pomocí
objektového modelu, takže je lze běžně využívat z libovolného jazyka,
který dokáže pracovat s COM objekty.
Zaklínadlo webové služby je použito i v Office System. K tomu je
zapotřebí mít k dispozici Microsoft Office 2003 Web Services Toolkit,
který pomáhá při jejich vývoji. Výhodou je, že webové služby lze
používat i rámci Office Visual Basic Editor (VBE). Jakmile se nastaví
základní informace o službě (název, umístění, —), programátor
může používat jejich metody jako u každé jiné třídy.
Velkou marketinkovou modlou již předchozí verze Office byly chytré
značky (smart tags). S novou verzí přichází jejich drobné
rozšíření — u každého typu značky lze říct, zda je dočasná
(s datem vypršení platnosti), neuložitelná (vhodné pro posílání
citlivých dokumentů do jiné společnost — např. personální agentury
mohou nakrásně posílat životopisy bez kontaktních údajů na uchazeče) a
nestálá (používané pro případ špatného rozeznání značky). Je
samozřejmé, že se značkami lze opět pracovat jako s XML.
Pojďme se nyní podívat na to hlavní, a tím je doplněk Visual Studia
.NET VS Tools. Co to vlastně je? Jde o kolekci nástrojů umožňující
jednoduchou tvorbu aplikací, které mají využívat prostředí MOC. Z názvu
vyplývá, že je určen pro platformu .NET a tedy, že k vývoji není nutné
znát Visual Basic, ale je možné použít libovolný .NET jazyk.
VS Tools se skládají z několika částí, ve stručnosti se podívejme na
jednotlivé z nich.
Základní složkou je vlastní Microsoft Visual Studio Tools Office System,
který se naintegruje do Visual Studia .NET 2003 a slouží pro vývoj
projektů převážně nad Wordem a Excelem v jazycích Visual Basic .NET a
Visual C# .NET (ostatně pro tyto dvě aplikace a dva jazyky se vytvoří
projektové šablony, ze kterých lze v případě nového projektu
vycházet).
Pokud nemáte Visual Studio .NET, pak lze využít druhou část dodávky a
tou je Microsoft Visual Basic .NET Standard Edition. Díky ní můžete
vytvářet a šířit své aplikace (ne nutně postavené nad MOS). Pro vývoj
větších projektů ale kvůli většímu pohodlí a vyšší míře volby
doporučuji celé VS.NET.
Dalším dílkem stavebnice je Microsoft Office Access 2003 Developer
Extensions určený pro vytvoření, testování a nasazování aplikací nad
Accessem. Součástí je i možnost bezplatného šíření Access Runtime
s vaší aplikací. Rozhodně bych však sáhl po posledním produktu, který
je ze světa opravdových databází a tím je Microsoft SQL Server
2000 Developer Edition s možností zdarma předat zákazníkovi MSDE.
Protože poslední tři jmenované produkty nejsou z pohledu této recenze
důležité (např. MS SQL Server 2000 byl recenzován v SWN 6/2001, VS Basic
.NET byl popsán v rámci recenze celého VS.NET 2003 v SWN 8/2003), budu se
věnovat opravdu jen a pouze první části, tedy VS Tools.
Před instalací VS Tools je nutné přesvědčit se, zda jsou správně
nainstalované Word i Excel s volbou podpory .NET a pak samozřejmě VS.NET
2003. Poté lze přistoupit k vlastní instalaci VS Tools, po které se
v dialogu s výběrem nového projektu zobrazí nová větev s nabídkou
projektů pro Word a Excel v jazycích C# a Visual Basic. K dispozici jsou
tři šablony: Excel Workbook, Word Document a Word Template. Po vybrání se
vytvoří nový projekt se dvěma soubory: AssemblyInfo.vb nebo AssemblyInfo.cs
(v závislosti na zvoleném jazyku) a soubor obsahující třídu
odpovídající dokumentu Office.
Jakmile máte vytvořen projekt, můžete se zcela libovolně realizovat dle
přání zákazníka. Lze se ponořit do tabulek v Excelu či textu ve Wordu,
můžete vytvořit své dialogy případně reagovat na události aplikace nebo
přidat další příkazy na lištu. Jen pro představu zde uvádím tři
řádky kódu, které v první buňce excelovského sešitu zobrazí pověstný
pozdrav světa:
Excel.Worksheet thisWorkSheet =
(Excel.Worksheet)thisWorkbook.Worksheets[1];
Excel.Range WriteRange =
thisWorkSheet.get_Range("A1","A1");
WriteRange.Value2 = "Ahoj světe!";
Pro upřesnění je nutné dodat, že vývojáři mají k dispozici jmenný
prostor Microsoft.Office (konkrétně Excel použitý v ukázce je
z Microsoft.Office.Interop.Excel), ze kterého se těží téměř
pokaždé, je-li nutné pracovat s MOS (případně jsou další jmenné
prostory jako například Microsoft.Vbe).
Základní myšlenka spouštění projektu je celkem jednoduchá. Excel resp.
Word ihned po načtení dokumentu zjišťuje přítomnost jeho dvou vlastností
_AssemblyLocation0 a _AssemblyName0. Pokud existují, načte se Visual Studio
Tools for the Microsoft Office System Assembly Loader, což je knihovna
s neřízeným kódem zodpovědná za načtení a spuštění vámi
vytvořeného projektu (assembly).
Po vytvoření vašeho řešení přichází na řadu nasazení
k zákazníkovi. Distribuční balík může obsahovat pouze dva soubory —
soubor s dokumentem a assembly. Oba soubory lze umístit jak na lokální disk,
tak na síť (jak intranet, tak i Internet) nebo každý zvlášť (resp.
dokument na lokální disk a assembly na síť). Ve všech třech případech se
však očekává, že klient má nainstalovaný jak .NET Framework 1.1 tak
i Office 2003. Podle umístění je pak ještě potřeba upravit
bezpečnostní politiku.
Další popis VS Tools by se věnoval víceméně možnostem tříd
v uvedených jmenných prostorech, ale to si myslím, že je mimo rámec
recenze. Proto případné zájemce odkazuji na stránky MSDN, kde se o nich
dozvíte vše potřebné.
Závěr
Díky podpoře XML v systému Office System se tento balík dostal opět
o několik mílových kroků dál. Podpora webových služeb může
z dokumentu udělat poměrně mocný nástroj.
Dále kromě již standardní možnosti používat Visual Basic for
Application tu je nadstavba pro Visual Studio .NET, která dokáže rozšířit
současné schopnosti Office o další, často mnohem sofistikovanější,
které budou šité přímo na míru zákazníkovi.
Pro vývojáře pro starší verze Office však může jít ze začátku
o složitější krok, protože neznají-li platformu .NET, budou se ji muset
nejprve naučit.
Obrázky
| Volba nového projektu ve VS.NET. |
|
| Editace XML dokumentu ve Wordu se zobrazenou strukturou XML nepatří mezi
nejpřívětivější. |
|
| InfoPath umožňuje vytvářet poměrně složité formuláře pro editaci
XML dokumentů. |
|
| Průvodce nového projektu pro Office System se stará i o lokální
politiku bezpečnosti. |
|
Plusy, mínusy, závěr
Plusy
- Podpora XML (byť je stále co vylepšovat).
- Podpora webových služeb.
- Jednoduchá integrace do světa .NET.
Mínusy
- De facto neexistující vývojářská edice Office System.
- Komplet dražší než dříve existující vývojářská edice.
- Ne zcela přívětivá editace XML ve Wordu.
- Dokument uložený v XML je zbytečně složitý.
Závěr
- Vývoj pro Office System se posouvá do Visual Studia .NET.
Kontakt
- Microsoft CZ
- Cena Microsoft Visual Studio Tools for Microsoft Office System:
Kč 17 800
- Cena Microsoft Office System: Kč 15 000
Tento článek byl napsán pro časopis Softwarové noviny 1/2005.
Upozornění: tento text neprošel redakční úpravou, takže je
tak, jak byl napsán včetně případných chyb. Žádná část tohoto
článku nesmí být použita bez předchozího souhlasu autora.
Seznam mých dalších článků je v tomto přehledu.