Doba uvedení nové verze v∞vojového nástroje Delphi firmy Inprise na trh se neodvratn╪ blíºí, proto se podívejme na nové vlastnosti a vylepτení, které Delphi 5 p²ináτí. Tento ƒlánek vychází z beta verze Delphi 5, a lze tudíº p²edpokládat, ºe v "ostré" verzi bude n╪co jeτt╪ pon╪kud jinak.
Poodhrσme rouτku
Mezi nejv∞razn╪jτí vylepτení Delphi pat²í alternativní p²ístup k datov∞m zdrojàm bez pot²eby BDE prost²ednictvím nové ADO komponenty a nové komponenty pro nativní p²ístup na databázov∞ server InterBase. Nov∞, hierarchick∞ pohled na databázové komponenty a zejména moºnost vytvá²ení p²ehledn∞ch datov∞ch diagramà usnadní vτem uºivatelàm orientaci v datov∞ch modulech. Pro v∞voj víceúrovσov∞ch aplikací p²ináτí novou kvalitu p²epracovaná technologie MIDAS, nyní i s p²ipraven∞m rozhraním pro internetové aplikace vyuºívajícím p²enosov∞ protokol HTTP. Dalτí novou podporou internetov∞ch technologií v Delphi 5 je moºnost vytvá²ení zvláτtního typu objektà ActiveX, které lze pouºívat v rámci ASP stránek. Z hlediska samotného v∞vojového prost²edí doτlo k vylepτení prost²edkà pro lad╪ní vyvíjen∞ch aplikací, p²ibyly nové podpàrné nástroje pro lokalizaci, skupinovou práci na projektu a správu seznamu zam∞τlen∞ch ƒinností na projektu. A pochopiteln╪ jako s kaºdou novou verzí Delphi doτlo k vylepτení a rozτí²ení knihovny vizuálních komponent VCL a s ní i k moºnosti vizuálního návrhu aplikací.
Komponenty pro p²ístup k datàm technologií ADO
Delphi 5 obsahuje nové komponenty, umoºσující p²ístup k datàm s vyuºitím technologie ActiveX Data Objects (ADO) firmy Microsoft. ADO p²edstavuje vysokoúrovσové rozhraní pro p²ístup ke vτem druhàm dat. Data mohou pocházet z libovoln∞ch datov∞ch zdrojà, které zahrnují relaƒní i nerelaƒní databáze, elektronickou poτtu, systém souborà, text, grafiku ƒi uºivatelské objekty. Obzvláτt╪ v∞hodn∞ je tento typ p²ístupu pro databáze, jimº je technologie ADO vlastní, tedy nap². pro Microsoft SQL Server 7.0. Nové komponenty, poskytující p²ístup k datàm prost²ednictvím ADO, lze pouºívat se stávajícími komponentami pro vizuální prezentaci dat (nap². TDBEdit, TDBGrid), aniº by byl zapot²ebí databázov∞ stroj BDE. P²i pouºití t╪chto komponent je pochopiteln╪ nezbytná instalace ADO/OLE DB prost²edí na cílovém poƒítaƒi.
V palet╪ komponent najdeme pro práci s technologií ADO následující komponenty - TADOConnection, která poskytuje p²ipojení k libovolnému datovému ADO zdroji, TADOTable, TADOQuery a TADOStoredProc, které plní obdobnou funkci jako komponenty TTable, TQuery a TStoredProc p²i pouºití BDE, dále komponentu TADODataSet, která reprezentuje datovou mnoºinu vrácenou z datového ADO zdroje a kterou lze alternativn╪ pouºít k p²edchozím t²em komponentám, a koneƒn╪ komponentu TADOCommand pro realizaci p²íkazà, které nevracejí datové mnoºiny (typicky pro vykonání p²íkazà souvisejících s definicí datov∞ch struktur). V návaznosti na moºnosti t╪chto komponent byly p²idány nové typy polí pro p²ístup k datov∞m typàm podporovan∞m v technologii ADO - jedná se o typy TWideStringField, TGUIDField, TVariantField, TInterfaceObject a TIDispatchField.
Komponenty pro p²ím∞ p²ístup do InterBase
Do palety komponent byla p²idána nová záloºka InterBase, která obsahuje komponenty pro p²ím∞ p²ístup do databáze InterBase. I tyto komponenty umoºσují práci s databázov∞m serverem bez pot²eby BDE. Distribuce vyvíjen∞ch aplikací se tak v∞razn╪ usnadní.
K dispozici jsou analogické komponenty jako pro p²ístup k databázím p²es BDE, tedy TIBDatabase, TIBTable, TIBQuery, TIBStoredProcedure, TIBUpdateSQL a TIBDataSource. Dále zde najdeme komponenty TIBTransaction pro transakƒní ²ízení databázov∞ch p²ipojení, TIBDataset, optimalizovanou pro databázové dotazy s pouºitím SQL p²íkazu SELECT, TIBSQL, zam∞τlenou pro vykonávání SQL p²íkazà, které nevracejí datovou mnoºinu, TIBDatabaseInfo pro získání informací o p²ipojeném databázovém serveru, dále komponentu TIBSQLMonitor pro monitorování SQL p²íkazà zasílan∞ch na server a koneƒn╪ komponentu TIBEvents pro zpracování událostí vznikajících na databázovém serveru.
Návrhá² datov∞ch modulà
Je to nov∞ vizuální nástroj usnadσující vytvá²ení a údrºbu datov∞ch modulà. Zahrnuje následující t²i pohledy na datové struktury: komponentní pohled, hierarchick∞ pohled a datov∞ diagram. Komponentní pohled zobrazuje komponenty pro p²ístup k datàm v tradiƒní form╪, jak ji známe ze stávajících verzí Delphi. Hierarchick∞ pohled zase p²ehledn╪ zobrazuje jednotlivé komponenty podle vztahu rodiƒ - potomek ƒi podle logické návaznosti prvkà datového modulu. Pro základní datové komponenty je hierarchická návaznost následující: TSession - TDatabase - TTable, TQuery - TDataset, TField. Panel hierarchického pohledu je samoz²ejm╪ aktivní a umoºσuje p²esouvání jednotliv∞ch poloºek p²etaºením myτí. Lze tak nap²íklad z palety komponent vybrat komponentu TDataSource a umístit ji p²ímo do hierarchie komponent na prvek TTable. Tato komponenta tak získá vlastnost dataset a za²adí se automaticky na poºadované místo do hierarchie. Pro kaºd∞ prvek je rovn╪º k dispozici kontextové menu, umoºσující v∞b╪r akcí specifick∞ch pro dan∞ prvek.
Datov∞ diagram p²edstavuje velmi uºiteƒn∞ dokumentaƒní nástroj, zvyτující p²ehlednost a orientaci v datovém modulu. Umoºσuje v grafické podob╪ znázornit a vytvá²et vztahy mezi datov∞mi mnoºinami. Primárním modelovan∞m vztahem je vztah 1 : N (master-detail), p²i jehoº definici dochází k vytvo²ení nezbytné komponenty TDataSource a nastavení p²ísluτn∞ch vlastností pod²ízené datové mnoºiny. Dále lze modelovat vztah dohledávání (look-up), kdy jedna datová mnoºina obsahuje virtuální pole, jehoº hodnoty jsou dynamicky dohledávány v jiné datové mnoºin╪ (tzv. lookup fields). Souƒástí datového diagramu mohou b∞t i libovolné textové popisy zvyτující vypovídací schopnost schématu. Obrázek znázorσuje jednoduch∞ datov∞ diagram se t²emi vztahy 1 : N a jedním "dohledávacím" vztahem.
Seznamy plánovan∞ch ƒinností na projektu
K nov∞m vlastnostem Delphi pat²í i vedení seznamu ƒinností souvisejících s projektem (tzv. To-Do List). V∞vojá² màºe do tohoto seznamu vkládat popis úkolà a u kaºdé ƒinnosti specifikovat prioritu (od 1 do 5), p²ípadn╪ modul, ke kterému se vztahuje, kategorii a osobu zodpov╪dnou za realizaci úkolu. Spln╪ní ƒinnosti pak v∞vojá² indikuje zaτkrtnutím políƒka u p²ísluτné poloºky v seznamu. K dispozici jsou samoz²ejm╪ ràzné druhy t²íd╪ní záznamà v seznamu a filtry podle modulu, zodpov╪dné osoby a podle kategorie.
Rozτí²ení technologie MIDAS
Technologie MIDAS (Multi-tier Distributed Application Services) p²edstavuje soubor mechanismà pro p²enos databázov∞ch informací mezi klientem a aplikaƒním serverem ve t²í- a vícevrstvé architektu²e. MIDAS je souƒástí Delphi jiº od verze 3 a po v∞znamn∞ch rozτí²eních v p²edchozí verzi dochází k jeho dalτímu rozvoji i v Delphi 5. Tato progresivní technologie si u v∞vojá²à získává stále v╪tτí oblibu také díky zm╪n╪né obchodní politice pro licencování firmy Inprise. Díky zm╪n╪ architektury dnes MIDAS umoºσuje vytvá²ení bezstavov∞ch vzdálen∞ch datov∞ch modulà a webov∞ch klientà. Nyní lze psát MTS servery a sdílené vzdálené datové moduly bez vytvá²ení vlastních uºivatelsk∞ch rozhraní. Nová architektura rovn╪º zvyτuje v∞konnost vytvá²ené aplikace redukcí p²enosu zpráv. Kaºdé klientské volání obsahuje oproti p²edchozím verzím MIDAS více informací, a je proto t²eba menτí poƒet volání. Nová rozhraní zjednoduτují p²enos pro aplikaci specifick∞ch informací p²i kaºdém klientském poºadavku na aplikaƒní server.
Ke stávajícím ƒty²em nosn∞m protokolàm, které MIDAS màºe pouºívat (tj. Sockets, DCOM, CORBA a OLE Enterprise), nyní p²ibyl jeτt╪ protokol HTTP. Díky n╪mu lze vytvo²it MIDAS spojení i p²es firewall a vyuºívat bezpeƒnosti protokolu SSL. Pro vytvá²ení lehk∞ch MIDAS klientà provozovan∞ch v internetovém prohlíºeƒi slouºí nové komponenty v palet╪ komponent v záloºce Web Midas. Pro vytvá²ení t╪chto klientà pro vícevrstvé databázové aplikace je t²eba nahradit klasick∞ klient MIDAS speciální komponentou, která pracuje jako klient aplikaƒního MIDAS serveru a souƒasn╪ jako webov∞ modul, kter∞ je volán z WWW serveru a podle poºadavku uºivatelà dynamicky generuje p²ísluτné HTML stránky pro komunikaci s klientem.
Rozτí²ení v oblasti technologie ActiveX
COM servery lze v Delphi 5 nainstalovat jako komponenty do palety komponent a pouºívat je p²i vizuálním návrhu. V palet╪ komponent se objevila nová záloºka Servers, která obsahuje komponenty reprezentující ²adu pouºívan∞ch COM serverà z kancelá²ského balíku Microsoft Office. Tyto komponenty p²ispívají k snadné integraci vyvíjen∞ch programà s textov∞m editorem MS Word, tabulkov∞m procesorem MS Excel a dalτími kancelá²sk∞mi aplikacemi. Dalτí v∞znamnou novinkou na poli ActiveX je moºnost vytvá²ení nového typu objektà, které je moºné vyvolávat z ASP stránek na IIS serveru a které mají p²ístup k rozhraním reprezentujícím poºadavek uºivatele, v∞slednou odezvu apod.
Rozτí²ení knihovny vizuálních komponent VCL
Rozτí²ení objektové hierarchie Delphi zahrnuje dílƒí vylepτení existujících komponent, nové ADO komponenty, rozτí²ení pro internetové aplikace a ²adu dalτích nov∞ch vlastností. Modifikací doznala komponenta TListView, THeaderControl a TCheckListBox. P²i vytvá²ení internetov∞ch modulà lze p²i²adit na úrovni akce modulu (tj. na instanci t²ídy TWebActionItem) objekt, kter∞ formátuje v∞sledn∞ HTML kód, a Delphi automaticky zajistí p²i²azení tohoto kódu obsahu návratové zprávy, která se posílá prohlíºeƒi klientu. Objekt TDatabase nyní umoºσuje spuτt╪ní SQL p²íkazu pomocí nové metody Execute, ƒímº odpadá nutnost k tomuto úƒelu pouºívat samostatné komponenty t²ídy TQuery. Databázové komponenty TTable a TQuery mají vlastnost AutoRefresh. Pokud je nastavena na hodnotu true, potom p²i potvrzení zm╪n záznamu metodou post dochází k automatickému naƒtení implicitních (default) a autoinkrementálních hodnot polí z p²ísluτné databáze, a není tudíº t²eba volat metodu Refresh. Z dàvodu rozτi²ování moºností technologie MIDAS byla p²idána komponenta TWebConnection pro p²enos databázov∞ch informací protokolem HTTP. Nová komponenta TWebBrowser umoºσuje vloºit stranu prohlíºeƒe Microsoft Internet Explorer do vytvá²ené aplikace. T²ída TApplication byla rozτí²ena o vlastnosti BiDIKeyboard a NonBiDiKeyboard, které umoºσují uºivateli urƒit rozvrºení klávesnice. Delphi 5 rovn╪º zahrnuje zdrojov∞ kód ke komponentám souvisejícím s rozhodovací krychlí (decision cube), kter∞ souƒástí p²edchozích verzí nebyl. Poté, co Delphi 4 umoºnilo podporu vytvá²ení NT sluºeb, p²ichází Delphi 5 s dalτí podporou vytvá²ení systémov∞ch programà, tentokrát se jedná o aplikace zobrazované jako applety v ovládacím panelu systému Windows. K tomuto úƒelu byly vytvo²eny dv╪ t²ídy - TAppletApplication a TAppletModule.
Rámce
Rámec (frame) je speciální typ formulá²e, kter∞ màºe b∞t vloºen do jiného formulá²e ƒi rámce. Rámce se vytvá²ejí vizuáln╪ obdobn∞m zpàsobem jako formulá²e v samostatn∞ch knihovnách. Pokud chceme rámec vloºit do jiného formulá²e, vybereme z palety komponent komponentu oznaƒenou jako frames a umístíme ji na plochu formulá²e. Delphi nám následn╪ umoºní vybrat si ze seznamu dostupn∞ch rámcà, resp. potomkà t²ídy TFrame a na formulá² se vykreslí námi vybran∞ rámec. Do tohoto rámce pak màºeme p²idávat dalτí komponenty a v inspektoru objektà m╪nit vlastnosti vτech komponent v rámci obsaºen∞ch. Jedinou nepovolenou operací je ruτení komponent deklarovan∞ch v pàvodním rámci. Hlavním rozdílem mezi pàvodními a nov╪ p²idan∞mi komponentami do rámce je jejich vlastník (tj. vlastnost Owner). Zatímco pàvodní komponenty deklarované v rámci mají jako vlastníka objekt rámce, je u dodateƒn╪ p²idan∞ch komponent jejich vlastníkem objekt formulá²e.
Uºivatelské nastavení pracovní plochy
Delphi 5 umoºσuje po vytvo²ení vlastního uspo²ádání pracovní plochy jeho pojmenování a uloºení pod symbolick∞m jménem. Obnovení uloºeného nastavení se provádí prost∞m v∞b╪rem jména nastavení z kombinovaného seznamu v palet╪ nástrojà. Jedno z uloºen∞ch nastavení plochy lze také urƒit pouze pro úƒely lad╪ní vyvíjen∞ch aplikací. Toto nastavení se automaticky aktivuje p²i spuτt╪ní aplikace a po jejím ukonƒení se nastavení plochy op╪t zm╪ní na pàvodní.
Vylepτení inspektoru objektà
Vτechny poloºky nabízené v inspektoru objektà mohou b∞t nyní voliteln╪ zobrazovány nejen v abecedním po²adí, ale i podle logick∞ch kategorií, do kter∞ch jsou vlastnosti objektu sdruºeny. Jedna poloºka p²itom màºe b∞t zobrazena i ve více kategoriích, nap². sou²adnice umíst╪ní komponenty na ploτe najdeme v kategoriích Layout, Localizable a Visual. Podle jednotliv∞ch kategorií lze také poloºky v inspektoru objektà filtrovat a z naràstajícího poƒtu vlastností objektu zobrazovat pouze ty, se kter∞mi rutinn╪ pracujeme (nap². màºeme zakázat zobrazování kategorie Locale, v níº za²azené vlastnosti nemají v naτich zem╪pisn∞ch τí²kách velké pouºití). Dalτím vylepτením inspektoru objektà je zobrazování obrázkà v rozbalovacích seznamech u jednotliv∞ch vlastností. Tak p²i v∞b╪ru typu kurzoru nyní v rozbaleném seznamu uvidíme nejen symbolická jména tvaru kurzoru, ale i p²ísluτn∞ obrázek. Obdobn╪ p²i p²i²azení ikony z komponenty TImageList konkrétní vizuální komponent╪ nemusíme jiº zadávat ƒíselnou hodnotu ImageIndex, ale màºeme si poºadovan∞ obrázek vybrat p²ímo z rozbaleného seznamu.
Nové moºnosti lad╪ní aplikací
Delphi 5 nabízí nové pomocné okno pro lad╪ní, zvané FPU, které umoºσuje prohlíºení obsahu jednotky procesoru pro práci s plovoucí desetinnou ƒárkou. Okno FPU zobrazuje hodnoty registrà, stavy a informace o operacích MMX a o operacích s plovoucí desetinnou ƒárkou. Dalτí vylepτení zaznamenala koncepce bodà p²eruτení (breakpoints). Lze je nov╪ sdruºovat do skupin a následn╪ provád╪t aktivaci a deaktivaci vτech t╪chto bodà ve skupin╪ jedním p²íkazem. Informace o zvolen∞ch vlastnostech bodu p²eruτení (tj. podmínka p²eruτení, poºadovan∞ poƒet pràchodà a skupina, ke které bod pat²í) jsou dostupné nejen z okna seznamu bodà p²eruτení, ale i p²ímo z v∞vojového prost²edí, po nastavení kurzoru myτi na kruhov∞ symbol bodu p²eruτení v editoru zdrojového kódu.
V záloºce menu Run najdeme dv╪ nové akce - p²íkaz Attach to Process, kter∞ umoºσuje ladit proces spuτt╪n∞ mimo v∞vojové prost²edí Delphi, a p²íkaz Run Until Return, kter∞ p²i lad╪ní funkce spustí provád╪ní programu aº do místa návratu na nad²azenou funkci, která lad╪nou funkci zavolala.
Nov∞ prohlíºeƒ projektu
Nov∞ prohlíºeƒ projektu (project browser) umoºσuje procházet vτechny deklarace pouºívané v aplikaci. K dispozici jsou t²i základní náhledy - Globals, zobrazující vτechny globáln╪ dostupné deklarace seskupené podle typà, Classes, hierarchick∞ diagram deklarovan∞ch t²íd zaloºen∞ na vztahu d╪diƒnosti od základní t²ídy Tobject, a Units, zobrazující jednotlivé symboly podle jejich p²ísluτnosti k modulàm. K symbolàm se dále na pravé stran╪ prohlíºeƒe zobrazují doplσující informace. U prohlíºeƒe màºeme nastavit, zda se mají zobrazovat pouze symboly deklarované v rámci projektu (to je implicitní nastavení), ƒi zda má prohlíºeƒ zahrnout i vτechny dostupné symboly z Visual Component Library.
Zm╪na formy ukládání dat formulá²à
Soubory s popisem formulá²à (s p²íponou dfm) jsou nyní standardn╪ ukládány jako prost∞ text. Toto nastavení lze m╪nit a pouºívat jako dosud binární tvar uloºení dfm souborà.
Nástroje pro lokalizaci
Souƒástí Delphi 5 je i sada nástrojà zvaná Integrated Translation Environment (ITE), jejímº cílem je zjednoduτení lokalizace vyvíjen∞ch aplikací a soub╪ºného v∞voje pro ràzné cílové lokality. ITE je integrováno s v∞vojov∞m prost²edím Delphi a umoºσuje správu více lokalizovan∞ch verzí aplikace jako ƒásti jednoho projektu. Zahrnuje následující t²i nástroje - Translation Manager pro editaci p²ekládan∞ch textà, Translation Repository, kter∞ p²edstavuje centrální databázi pro p²eklady, které mohou b∞t sdíleny více projekty a ràzn∞mi v∞vojá²i, a koneƒn╪ nástroj Resource DLL Wizard, kter∞ pomáhá generovat a spravovat dynamické knihovny se zdroji.
TeamSource
TeamSource je nov∞m nástrojem pro ²ízení paralelních prací na projektu a ²ízení ob╪hu dokumentà mezi ƒleny v∞vojového t∞mu. TeamSource pouºívá pro archivaci a aktualizaci sdílen∞ch souborà systém pro ²ízení verzí (typicky integrovan∞ PVCS firmy Intersolv), ale ve funkƒnosti jde dále a pln╪ ²ídí a koordinuje proces pouºívání paralelního modelu ²ízení zdrojà.
Jak je vid╪t, inovacemi Borland u páté verze svého v∞vojá²ského hitu Delphi skuteƒn╪ neτet²il. P²ejme si jen, aby se vτe poda²ilo vƒas dotáhnout i do "vít╪zného konce" a v∞vojá²i m╪li op╪t na co τet²it...