EVOLUCE VÝVOJE SOFTWARE V PROSTŘEDÍ MICROSTATION



Podobné dokumenty
Seznámení s prostředím dot.net Framework

Úvod Seznámení s předmětem Co je.net Vlastnosti.NET Konec. Programování v C# Úvodní slovo 1 / 25

Matematika v programovacích

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

Nové jazykové brány do Caché. Daniel Kutáč

Předměty. Algoritmizace a programování Seminář z programování. Verze pro akademický rok 2012/2013. Verze pro akademický rok 2012/2013

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

TÉMATICKÝ OKRUH Softwarové inženýrství

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

MATURITNÍ OTÁZKY ELEKTROTECHNIKA - POČÍTAČOVÉ SYSTÉMY 2003/2004 PROGRAMOVÉ VYBAVENÍ POČÍTAČŮ

Úvod. Programovací paradigmata

ČÁST 1. Základy 32bitového programování ve Windows

11. Přehled prog. jazyků

Na tomto místě bude oficiální zadání vaší práce

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Základy programování (C#) Autor: Ing. Jan Nožička SOŠ a SOU Česká Lípa VY_32_INOVACE_1134_Základy programování (C#) _PWP

Technický profil. Základní technologií, na které je produkt MicroStation GeoGraphics vytvořen, je technologie mapových

ZÁKLADY PROGRAMOVÁNÍ. Mgr. Vladislav BEDNÁŘ /14

Masarykova střední škola zemědělská a Vyšší odborná škola, Opava, příspěvková organizace

TÉMATICKÝ OKRUH Softwarové inženýrství

Profilová část maturitní zkoušky 2017/2018

Základní informace. Operační systém (OS)

Programovací jazyky Přehled a vývoj

Projekt do předmětu PAS. Textový editor

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

monolitická vrstvená virtuální počítač / stroj modulární struktura Klient server struktura

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Obsah. 1) Rozšířené zadání 2) Teorie zásuvných modulů a) Druhy aplikací používajících zásuvné moduly b) Knihovny c) Architektura aplikace d) Výhody

Registrační číslo projektu: CZ.1.07/1.5.00/ Název projektu: Moderní škola 21. století. Zařazení materiálu: Ověření materiálu ve výuce:

Wonderware InTouch 2012 R2 Co je nového

Vývoj moderních technologií při vyhledávání. Patrik Plachý SEFIRA spol. s.r.o.

Kapitola 1: Úvod. Systém pro správu databáze (Database Management Systém DBMS) Účel databázových systémů

Architektura rodiny operačních systémů Windows NT Mgr. Josef Horálek

Profilová část maturitní zkoušky 2013/2014

IB111 Programování a algoritmizace. Programovací jazyky

1. Úvod do Systémů CAD

Současný svět Projekt č. CZ.2.17/3.1.00/32038, podpořený Evropským sociálním fondem v rámci Operačního programu Praha adaptabilita

Proces vývoje HRIS Vema (Human Resources Information System) Jaroslav Šmarda

Novinky ve Visual Studio Tomáš Kroupa

Instalace a konfigurace web serveru. WA1 Martin Klíma

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Softwarové komponenty a Internet

CASE nástroje. Jaroslav Žáček

POSTUP NAHRÁNÍ SOFTWAROVÝCH ROZŠÍŘENÍ DO OBCHODNÍ PLATFORMY METATRADER 4 PRO UŽIVATELE MS WINDOWS

Práce s knihovnami. Karel Richta a kol. katedra počítačů FEL ČVUT v Praze. Karel Richta, Martin Hořeňovský, Aleš Hrabalík, 2016

Integrovaná střední škola, Sokolnice 496

Vývoj programů. ÚVOD DO OPERAČNÍCH SYSTÉMŮ

Wonderware Information Server 4.0 Co je nového

VIRTUALIZACE POČÍTAČE HISTORIE A VÝVOJ

Obsah. Úvod 11 Zpětná vazba od čtenářů 13 Errata 14 Poznámka ke kódům 14

VYUŽITÍ KNIHOVNY SWING PROGRAMOVACÍHO JAZYKU JAVA PŘI TVORBĚ UŽIVATELSKÉHO ROZHRANÍ SYSTÉMU "HOST PC - TARGET PC" PRO ŘÍZENÍ POLOVODIČOVÝCH MĚNIČŮ

úvod Historie operačních systémů

Rozklad na prvočinitele. 3. prosince 2010

5a. Makra Visual Basic pro Microsoft Escel. Vytvořil Institut biostatistiky a analýz, Masarykova univerzita J. Kalina

C# - Databáze úvod, ADO.NET. Centrum pro virtuální a moderní metody a formy vzdělávání na Obchodní akademii T.G. Masaryka, Kostelec nad Orlicí

Real Time programování v LabView. Ing. Martin Bušek, Ph.D.

Programovací jazyk Úvod do programování v C#

2015 GEOVAP, spol. s r. o. Všechna práva vyhrazena.

Středoškolská technika SCI-Lab

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

4a. Makra Visual Basic pro Microsoft Excel Cyklické odkazy a iterace Makra funkce a metody

CASE. Jaroslav Žáček

S2. Vytvoření Windows balíku pro vývoj na STM32 architektuře

Programovací jazyk C# Úvod do programování v C#

Microsoft Office 2003 Souhrnný technický dokument white paper

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

Java [džava] nebo [džáva] v americkém slangu "kafe" Sun Microsystems nyní Oracle

Úvod do jazyka C. Ing. Jan Fikejz (KST, FEI) Fakulta elektrotechniky a informatiky Katedra softwarových technologií

C2184 Úvod do programování v Pythonu podzim Mgr. Stanislav Geidl Národní centrum pro výzkum biomolekul Masarykova univerzita.

Česká zemědělská univerzita v Praze

MPASM a IDE pro vývoj aplikací MCU (Microchip)

Čtvrtek 3. listopadu. Makra v Excelu. Obecná definice makra: Spouštění makra: Druhy maker, způsoby tvorby a jejich ukládání

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

ProjectWise V8 XM Edition

Efektivní vývoj mobilních aplikací na více platforem současně. Mgr. David Gešvindr MCT MSP MCPD MCITP

INOVACE PŘEDMĚTŮ ICT. MODUL 11: PROGRAMOVÁNÍ WEBOVÝCH APLIKLACÍ Metodika

rychlý vývoj webových aplikací nezávislých na platformě Jiří Kosek

ADMINISTRACE POČÍTAČOVÝCH SÍTÍ. OPC Server

10 Balíčky, grafické znázornění tříd, základy zapozdření

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Trask solutions Jan Koudela Životopis

MBI - technologická realizace modelu

Programovací jazyk C# Úvod do programování v C#

Motivace - inovace - zkušenost a vzdělávání

Inovace výuky prostřednictvím ICT v SPŠ Zlín, CZ.1.07/1.5.00/ Vzdělávání v informačních a komunikačních technologií

1/1 ČESKÁ ZEMĚDĚLSKÁ UNIVERZITA V PRAZE PROVOZNĚ EKONOMICKÁ FAKULTA PŘIJÍMACÍ ŘÍZENÍ 2017/2018

Programovací jazyky. imperativní (procedurální) neimperativní (neprocedurální) assembler (jazyk symbolických instrukcí)

Autodesk AutoCAD 2018

Využití programu AutoCAD při vytváření geometrie konstrukce v prostředí programu ANSYS

Vizuální programování

Specifikace softwarového díla & Časový plán implementace. pro. MEF Editor

IB111 Úvod do programování skrze Python Přednáška 13

Úvod do Linuxu. SŠSI Tábor 1

EMBARCADERO TECHNOLOGIES. Jak na BYOD chytře? Možnosti zapojování různých mobilních zařízení do podnikových informačních systémů.

Připravil: Ing. Vít Ondroušek, Ph.D. Technologie.Net Framework

Windows a real-time. Windows Embedded

Analýza a Návrh. Analýza

Excel - databáze. Opakování. Soubor, který jsme upravovali. Upravený soubor. Hrubá mzda = počet kusů * Kč za kus B6=B4*B5

Transkript:

EVOLUCE VÝVOJE SOFTWARE V PROSTŘEDÍ MICROSTATION Stanislav Sumbera stanislav@sumbera.com Abstrakt Příspěvek se zabývá jednotlivými programovacími jazyky a vývojovými platformami, které byly do prostředí CAD systému MicroStation postupně zaváděny (MicroCSL, UCM, MDL, MicroStation Basic, Java/JMDL, VBA, VC++,.NET ). U každého vývojového prostředí jsou rozebrány výhody i nedostatky a vliv na vývojářskou komunitu MicroStation. Příspěvek se zaobírá mimo jiné i fenoménem programovacího jazyka JMDL (hybridní jazyk Javy a C++) a vystihuje budoucí směr vývoje software v prostředí MicroStation. 1. Úvod Vývojem aplikací pro MicroStation se zabývá celá řada subjektů v ČR, především v oblastí Geoinformačních systémů. CAD systém MicroStation tedy není třeba blíže představovat. MicroStation prošel a stále prochází řadou inovací v oblasti vývoje aplikací. Ne vždy ovšem byly inovace pro vývojáře přínosné a často vkládaly do vývoje v prostředí MicroStation pochyby o tom, kterým směrem MicroStation bude směřovat a zda-li investice do přeškolení programátorů na nový jazyk, resp. platformu bude přínosem v dlouhodobém výhledu. Pokusíme se v jednotlivých kapitolách zhodnotit jednotlivé stádia ve vývoji softwaru pro systém MicroStation. V MicroStation můžeme vývoj softwaru rozdělit do dvou hlavních řad: 1. Vývojová řada jazyka C 2. Vývojová řada jazyka Basic 2. Vývojová řada jazyka C V této vývojové řadě se drží hlavní vývoj pro prostředí MicroStation. Následující obr 1 schématicky znázorňuje jednotlivé jazyky a platformy, přerušovanou čárou je nastíněn možný budoucí směr. V následujících kapitolách se budeme stručně jednotlivými jazyky a jejich zvláštnostmi zabývat. 189

Obr 1. Vývojová řada jazyka C 2.1 MicroStation Customer Support Library - MicroCSL: MicroCSL byla první vývojovou knihovnou pro MicroStation 3.3. Obsahovala statickou knihovnou pro jazyky C a Fortran s funkcemi pro přímou manipulaci s grafickými elementy v dgn souboru a funkcemi pro práci s databází. Nespornou výhodou MicroCSL byla kompilace kódu do nativních instrukcí procesoru, které byly vhodné především pro časově náročné úlohy. Nevýhodou MicroCSL bylo především sekvenční programování, neúplná integrace s MicroStation a cena. V současné době není MicroCSL podporováno, je plně nahrazeno funkcemi MDL. Následující obr. 2 ilustruje architekturu aplikací pro MicroStation 3.3 na Unixové platformě. Obr 2. Architektura aplikací MicroCSL na Unixové platformě 190

2.2 MicroStation Development Language MDL MDL - vývojový jazyk pro MicroStation byl poprvé představen v roce 1991 v MicroStation v. 4. jako jednotné řešení pro vývoj profesionálních aplikací v MicroStation. Bentley zamýšleli vytvořit hlavní vývojovou platformu, která by pokryla jak vývoj jednoduchých utilit, tak vývoj robustních systémů postavených na fundamentální funkčnosti MicroStation. Dalším důvodem vzniku MDL byla platformová nezávislost kódu, kterou se podařilo udržet až do verze MicroStation SE. MDL není de-facto žádný speciální jazyk, jak by mohl název naznačovat je to ANSI C sdrobnými úpravami, který se tradičně překládá dodávaným kompilátorem a linkerem do pseudo kódu, který je v prostředí MicroStation interpretován. Tato vlastnost byla důležitá z hlediska snadné portability kódu. Mezi hlavní nevýhody takto interpretovaného kódu byla a stále je menší rychlost zpracování oproti nativnímu kódu (přestože API MicroStation je z převážné části v nativním kódu) a izolovanost kódu od API poskytovaného operačním systémem. Na druhé straně výhodou může být odstínění programátora od detailů a specialit operačního systému a větší bezpečnost kódu. I když bylo možné již od verze 5 MicroStation využívat vedle interpretovaného MDL také nativních dynamicky linkovaných knihoven (DLL), situace se radikálně s příchodem poslední verze 8 změnila. Nyní je umožněno program napsaný v MDL s drobnými úpravami přímo překládat do nativního kódu na platformě Windows. To s sebou nese obrovské výhody pro vývojáře především možnost využít integrovaného vývojového prostředí a nativního debuggeru (např. MS Visual Studio) a dále možnost využít knihoven a komponent poskytovaných pro operační systém Windows. Klíčovou částí MDL stále zůstává programové rozhraní (API), které čítá řádově tisícovky funkcí. Celé MDL tedy můžeme brát spíše jako vývojovou platformu pro MicroStation, než jen pouhý jazyk. V MDL je také napsána většina základních utilit pro základní konfiguraci MicroStation. Architektura MDL Podívejme se na architekturu MDL pro pochopení souvislostí mezi programovacím jazykem MDL, infrastrukturou MDL, MDL rozhraním, MDL runtime a MicroStation. 191

Obr.3 Architektura vývojové platformy MDL Na úplně nejnižší úrovni se nachází základní infrastruktura pro chod MicroStation a MDL aplikaci. Do této části spadají manažery paměti, dialog boxu a základní systémové funkce MicroStation. Tyto funkce jsou interně využívány funkcemi MDL API a běžný programátor k nim nemá přístup. Nad touto úrovní se nachází MDL API tvořící řádově stovky funkcí, které jsou dokumentované a přístupné programátorům v MDL. Mezi MDL API patří také sada proměnných. Nad MDL API se nachází vrstva příkazů (commands), které lze volat prostřednictvím tzv. key-in (vstupní příkazy operátora) přímo z MicroStation. Každý příkaz je navázán na určitou funkci v kódu MDL. Poslední vrstva je samotný programovací jazyk : interpretovaný MDL tj. ANSI C, který pro své spuštění vyžaduje MDL runtime. Pro překlad kódu do pseudo-kódu používá MDL vlastní 192

kompilátor a linker. Pro debuggování je nutné využít vestavěný symbolický řádkový MDL debugger nativní kód (šrafovaně). Teoreticky je možné psát kód využívající MDL API v libovolném jazyce a vývojovém prostředí, podporujícím vytvoření nativní dynamické knihovny (DLL). Výhodou je především možnost použít libovolného jazyka (např. psát kód objektově v C++), integrované vývojové prostředí a v neposlední řadě vizuální debbuger splňující současné nároky programátorů. 2.3 Java/JMDL: MicroStation /J s sebou přinesla integrovanou Javu a JMDL - derivát Javy a C++. Ačkoli začlenění Javy bylo logickým krokem na tehdejší moderní Javovou vlnu, JMDL se setkal s de-facto neúspěchem. Namísto aby Bentley vytvořili čistě Javovské třídy pracující s výkresy a MicroStation, vytvořily tyto třídy ve vlastním jazyku JMDL. JMDL byl původně určen pro tzv. ECM Engineering Component Model, od kterého Bentley prozatím ustoupili. Využití JMDL lze pozorovat v MicroStation Geographics ispatial, kde je využito Javy pro komunikaci s Oraclem a JDML pro zobrazování výkresů, resp. v produktu Project Bank. JMDL je nadmnožinou jazyka Java a obsahuje mimo jiné podporu struktur, ukazatelů, šablon, preprocesoru jazyka C, přímé volání MDL nebo DLL kódu (obdobné J/Direct). S příchodem MicroStation v.8 nedošlo k žádným vylepšením ani publikací tříd zahrnutých do JMDL, došlo k povýšení Java virtuálního stroje z verze 1.1.8. na Javu 1.2. Namísto toho se v Microstation v8 objevilo nové objektové prostředí pro programování v MicroStation - Visual Basic for Application v.6. a nová COM komponenta s názvem MicroStationDGN. JMDL je bezesporu zajímavý pokus o překonání problému Javy a C++ a sloučení jejich dobrých vlastností do jednoho jazyka, nicméně díky slabé podpoře ze strany Bentley, nedokumentovaným funkcím (dokumentovány byly pouze třídy pro práci s výkresem DGN), nedokonalou vzájemnou komunikací mezi MDL kódem a JDML kódem zůstává tento inovační krok v pozadí celkového vývoje v systému MicroStation. 2.4 VC++/MFC Teprve s verzí 8 přichází pro vývojáře plná podpora nativního vývoje aplikací v prostředí MicroStation. Bentley na podzim roku 2002 také uvolnili knihovny pro podporu psaní uživatelského rozhraní v MFC. Tento krok je bezpochyby správným a nezbytným rozhodnutím, protože MicroStation už ztratil svou platformovou nezávislost a upnul se na operační systém Windows tím by tedy měl plně využívat všech jeho možností. Vývojářům se tak přímo otevírá cesta pro využívání MDL API pouze pro práci s výkresy DGN a ovládání MicroStation, zatímco pro práci s databází, uživatelské rozhraní nebo interoperabilitu mohou využít jakékoli jiné (vhodnější) API. Další informace viz. [2],[5]. 2.5 VC++.NET Lze předpokládat, že vývoj pro MicroStation na platformě Windows půjde v nejbližších letech směrem.net aplikací..net v současné době poskytuje velmi solidní podporu interoperability jak s COM objekty tak s DLL kódem což je důležité pro MDL API funkce, které jsou z dynamicky linkovaných knihoven přístupné. Je tedy možné už dnes psát inprocess aplikace pro MicroStation v.net. Jendou s klíčových rolí sehrává technologie IJW (It Just Work), která umožňuje transparentně provolávat nativní kód z kódu.net, viz. [1],[4]. Příklad smíšeného kódu: 193

private: System::Void button1_click(system::object * sender, System::EventArgs * e){ mdlsystem_newdesignfile("design.dgn"); //... otevření výkresu } 3. Vývojová řada jazyka Basic 3.1 MicroStation User Command Language UCM UCM byl navržen jako makro jazyk simulující postup uživatele. Jazyk využíval především bohaté základny příkazů MicroStation, prostřednictvím kterých umožňoval manipulaci s grafickými elementy ve výkresu. Jeho výhodou byla jednoduchost a snadná čitelnost kódu. Nevýhodou naopak primitivní syntaxe, pouze sekvenční programování, rychlost a nedokonalé uživatelské rozhraní. 3.2 MicroStation Basic MicroStation Basic byl dalším virtuálním strojem nasazeným od verze MicroStation 95, který měl nahradit stávající UCM. Byl z části napsán v jazyku MDL, obsahoval jednoduchý editor a vizuální debugger. Byl výbornou pomůckou pro jednoduché skriptování, práci s výkresem, kustomizaci prostředí a jiné jednodušší operace. Jednou z nevýhod byly modální dialogová okna a omezená délka kódu. Přestože využíval syntaxe známé z Visual Basicu, nebyl s tímto jazykem plně kompatibilní, neumožňoval zavádění komponent, přímé volání MDL kódu apod. Naopak jednou z výhod byla možnost nahrání uživatelských postupů. MicroStation Basic si našel ve vývojářské komunitě MicroStation své místo a stal se velmi oblíbeným pro svou jednoduchost. 3.3 Visual Basic for Application 6 MicroStation v8 s sebou přináší plně integrovaný Visual Basic for Application (VBA)licencovaný společností Microsoft v takové podobě jaký jej známe např. z produktu Office. Pro tento vývojový nástroj bylo také vytvořeno nové API v podobě COM objektu MicroStationDGN. VBA samozřejmě umožňuje integraci ActiveX komponent, provolávání nativního kódu apod. VBA je bezesporu moderním řešením vývoje pro systém MicroStation, nicméně přichází v době, kdy je nasazována technologie nové generace -.NET a s tím také nové řešení pro vývoj aplikací - Visual Studio for Application (VSA). 4. Závěr Jednou s klíčových rolí každé nové vývojové platformy je interoperabilita se stávajícím řešením. Poslední obr. 4 tohoto článku zobrazuje interoperabilitu mezi vybranými jazyky v prostředí MicroStation. Ústředím této interoperability je nativní DLL knihovna, která může být napsaná tradičně ve Win32, ale také ve Visual C++ a nebo nejlépe ve Visual C++.NET. 194

Obr. 4. Interoperabilita programových prostředí v MicroStation Literatura: 1. Sumbera, S. 2003. Using VC++.NET for MicroStation v8 programming. Nebublikováno. http://www.sumbera.com/ustation/research/vcnetbox.htm 2. Sumbera, S. 2003. Setting up Visual Studio IDE for MDL programming. ControlAltDelete, Pen & Brush publishers Australia, No. 1, 2003, pp. 22-25. 3. Sumbera, S. 2002. Developing raster management with Oracle 9i and MicroStation v8. ControlAltDelete, Pen & Brush publishers Australia, No. 3, 2002, pp. 20-23. 4. Sumbera, S. 2002..NET & VBA interoperability in MicroStation v8. ControlAltDelete, Pen & Brush publishers Australia, No. 2, 2002, pp. 36-40. 5. Sumbera, S. 2002. Writing MFC based dialogs for MicroStation v8. MicroStation Manager. Bentley System Inc. USA. No. 01, 2002, pp. 36-37. 6. Sumbera, S. 2001. Java/JMDL communication with MDL applications. MicroStation Manager. Bentley System Inc. USA. No.12, 2001, pp.30-34. 195