Zanedlouho tomu budou u₧ dva roky, kdy firma Borland dodala na trh v²vojovΘ prost°edφ Delphi ve verzi 5. Letos v b°eznu Borland dßle rozÜφ°il spektrum sv²ch v²vojov²ch nßstroj∙ projektem s pracovnφm nßzvem Kylix, kter² p°enesl Delphi z platformy Windows do prost°edφ operaΦnφho systΘmu Linux (k≤dovΘ oznaΦenφ Kylix nakonec poslou₧ilo i jako oficißlnφ nßzev v²slednΘho produktu).
Velkß odliÜnost operaΦnφch systΘm∙ Windows a Linux si pochopiteln∞ v produktu Kylix vynutila odliÜnΘ °eÜenφ n∞kter²ch funkΦnφch oblastφ, zejmΘna p°φstupu do databßze a knihoven grafickΘho u₧ivatelskΘho rozhranφ. I kdy₧ p°evedenφ aplikace vyvinutΘ v Delphi 5 na platformu Linux nenφ nijak slo₧itΘ, musφ dnes v²vojß° usilujφcφ o v²voj pro ob∞ platformy udr₧ovat n∞kterΘ zdrojovΘ knihovny ve dvou verzφch.
Podφvejme se proto na n∞kterΘ novinky a vylepÜenφ, kterΘ p°inßÜφ testovacφ verze tohoto v²vojovΘho prost°edφ a kterΘ nepochybn∞ najdeme i v "ostrΘ" verzi produktu.
Souhrnn∞
Pokud bychom m∞li shrnout vÜechny v²znamnΘ novinky v Delphi 6 do jednoho seznamu, obsahoval by nßsledujφcφ oblasti: zdokonalenΘ v²vojovΘ prost°edφ, novΘ mo₧nosti kompilßtoru, rozÜφ°enφ VCL, novß sada grafick²ch komponent CLX, nov² p°φstup k databßzφm dbExpress, vylepÜenß podpora tvorby t°φvrstv²ch aplikacφ, podpora protokolu SOAP, snadnß tvorba webov²ch aplikacφ komponentami SiteExpress a dalÜφch internetov²ch aplikacφ komponentami Indy, podpora prßce s XML dokumenty a vylepÜenß podpora technologiφ COM+ a CORBA.
VylepÜenΘ IDE
ZaΦneme u novinek v integrovanΘm v²vojovΘm prost°edφ (IDE). P°i nßvrhu formulß°e m∙₧eme v Delphi 6 vyu₧φt novΘho hierarchickΘho pohledu na pou₧itΘ komponenty, kter² ve form∞ stromu p°ehledn∞ znßzor≥uje logickΘ vazby mezi komponentami - nap°. fakt, ₧e tlaΦφtko le₧φ na panelu, nebo kterΘ sloupce jsou definovßny v komponent∞ ListView. Tento pohled lze vyu₧φt obdobn∞ jako nßvrhov² formulß°, zvolenΘ komponenty je mo₧nΘ editovat v inspektoru objekt∙ a dφky mechanismu drag & drop lze m∞nit i umφst∞nφ urΦitΘ komponenty ve zmi≥ovanΘ hierarchii.
Komponenty nabφzenΘ v palet∞ komponent ji₧ netvo°φ statickou mno₧inu, ale v dan² okam₧ik jsou v²vojß°i nabφzeny jen ty komponenty, kterΘ lze umφstit do prßv∞ navrhovanΘho kontejneru. Nap°. p°i editaci datovΘho modulu v palet∞ komponent nenajdeme ₧ßdnou vizußlnφ komponentu. DalÜφho rozÜφ°enφ doznal i inspektor objekt∙, kter² nynφ umo₧≥uje i editaci atribut∙ a udßlostφ objekt∙, na n∞₧ obsahuje urΦitß komponenta referenci. Nap°. p°i editaci vizußlnφ databßzovΘ komponenty lze editovat i pod°φzenΘ komponenty Table a Database bez nutnosti otev°enφ datovΘho modulu, ve kterΘm se tyto komponenty pro p°φstup k databßzi nachßzejφ. Inspektor objekt∙ m∙₧e b²t do znaΦnΘ mφry p°izp∙soben p°edstavßm u₧ivatele, a to jak po obsahovΘ, tak po vizußlnφ strßnce. Nov∞ lze kup°φkladu nastavit libovolnΘ barevnΘ schΘma inspektora.
Efektivitu prßce v²vojß°e p°i psanφ k≤du ji₧ tradiΦn∞ zvyÜuje sada nßstroj∙ souhrnn∞ oznaΦovanß jako Code Insight. AutomatickΘ dopl≥ovßnφ k≤du v Delphi 6 funguje ji₧ i v ·vodnφ "interface" Φßsti zdrojovΘ knihovny. Okno pro v²b∞r z p°φpustn²ch dokonΦenφ v²razu dostalo novou tvß° a jeho velikost lze kdykoliv zm∞nit myÜφ. Seznam v²raz∙ nabφzen²ch v okn∞ je filtrovßn °et∞zcem zadan²m u₧ivatelem.
Editor k≤du zdrojov²ch knihoven byl rozÜφ°en o podporu r∙zn²ch typ∙ pohled∙ na obsah editovan²ch knihoven. TΘto novΘ vlastnosti je vyu₧φvßno nap°. p°i budovßnφ webov²ch aplikacφ pomocφ technologie SiteExpress (viz dßle), kdy ka₧dß knihovna reprezentuje jednu v²slednou dynamickou HTML strßnku. V²vojß° mß mo₧nost nahlφ₧et na knihovnu jako na zdrojov² k≤d v Pascalu, v²sledn² zdrojov² k≤d v jazyce HTML, nßhled v integrovanΘm prohlφ₧eΦi, a pokud je strßnka generovßna nap°. pomocφ standardu XSLT, pak je k dispozici i nßhled na zdrojov² XML a XSL k≤d.
NovΘ mo₧nosti kompilßtoru
Kompilßtor v Delphi 6 zavßdφ novou direktivu $IF, kterß na rozdφl od direktivy $IFDEF umo₧≥uje ve v²razech vyhodnocovat i konstanty definovanΘ v jazyce Pascal. Pro testovßnφ existence p°edchozφ definice urΦitΘho symbolu slou₧φ funkce Defined(), existenci deklarace pascalovskΘ konstanty detekuje funkce Declared(), nap°. {$IF Defined(WIN32) and Declared(MyConst)} ... {$IFEND}. Integrovan² p°ekladaΦ assembleru byl kompletn∞ p°epracovßn a poskytuje podporu nov²ch instrukcφ pro MMX, SIMD, Pentium Pro, Pentium III, AMD K7, Enhanced MMX, Intel SSE a AMD Enhanced 3D.
RozÜφ°enφ VCL
Jako v ka₧dΘ p°edchozφ verzi i v Delphi 6 najdeme °adu vylepÜenφ ve knihovn∞ vizußlnφch komponent VCL. Mnoho komponent p°ibylo a mnoho komponent bylo dßle vylepÜeno. Celkov∞ Delphi 6 v edici Enterprise nabφzφ v²vojß°i p°es 430 komponent zat°φd∞n²ch v palet∞ komponent do 30 zßlo₧ek.
Nejd°φve se struΦn∞ podφvejme na n∞kterΘ novΘ vizußlnφ komponenty. Komponenta LabeledEdit p°edstavuje jedno°ßdkovΘ vstupnφ pole s popiskem vzniklΘ spojenφm komponent Edit a Label do jedinΘ. Jejφ v²hodou je jednoduÜÜφ manipulace, instance komponenty Label je dostupnß p°es atribut EditLabel komponenty LabeledEdit. Komponenta ComboBoxEx rozÜi°uje mo₧nosti klasickΘho kombinovanΘho seznamu o jednoduchΘ pou₧itφ obrßzk∙ a odsazenφ ve vizußlnφch prvcφch seznamu. Pro v²b∞r libovolnΘ barvy z kombinovanΘho seznamu slou₧φ nov∞ p°ipraven² kombinovan² seznam zapouzd°en² v komponent∞ ColorBox. Pokud od u₧ivatele po₧adujeme editaci kolekce typu TStrings, ve kterΘ uchovßvßme dvojice klφΦ/hodnota, m∙₧eme pou₧φt novΘ komponenty ValueListEditor, kterß pracuje podobn∞ jako inspektor objekt∙.
V zßlo₧ce Dialogs p°ibyla komponenta PageSetupDialog reprezentujφcφ dialogovΘ okno pro nastavenφ vzhledu strßnky p°ed tiskem, p°φp. pro nastavenφ vlastnostφ tiskßrny.
Pro komfortn∞jÜφ sprßvu akcφ Delphi 6 p°inßÜφ komponentu ActionManager rozÜi°ujφcφ starÜφ komponentu ActionList a dßle novΘ komponenty MainMenuActionBar a ToolActionBar, kterΘ nabφzφ alternativu ke stßvajφcφm komponentßm p°edstavujφcφm menu aplikace a liÜtu nßstroj∙. Jejich p°ednostφ je, ₧e jejich obsah (tj. polo₧ky menu a tlaΦφtka na liÜt∞ nßstroj∙) lze nastavit pomocφ mechanismu drag & drop tak, ₧e z editoru akcφ p°etahujeme jednotlivΘ akce na pozici, kam chceme odkaz na p°φsluÜnou akci umφstit. Tento zp∙sob nastavenφ menu a panel∙ je dostupn² nejen v nßvrhu, ale i za b∞hu aplikace, tedy i ka₧dΘmu u₧ivateli aplikace. Nastavenφ t∞chto komponent se m∙₧e voliteln∞ automaticky uklßdat do urΦenΘho souboru a automaticky obnovovat p°i p°φÜtφm spuÜt∞nφ aplikace.
Sada komponent CLX
Portace Delphi do prost°edφ operaΦnφho systΘmu Linux a nßslednß snaha o kompatibilitu zdrojov²ch k≤d∙ aplikace pro ob∞ platformy si vynutila vznik novΘ kompletnφ sady vizußlnφch komponent oznaΦovan²ch jako CLX (Φteno klix). Stßvajφcφ implementace VCL je p°φliÜ svßzßna s WinAPI a ovlßdajφcφmi prvky Windows, ne₧ aby bylo mo₧nΘ ji p°enΘst na Linux. Za spoleΦn², na platform∞ nezßvisl² zßklad poslou₧ila grafickß knihovna Qt firmy Trolltech, kterou komponenty CLX vyu₧φvajφ a kterß musφ b²t pochopiteln∞ Üφ°ena s vyvinutou aplikacφ. Komponenty CLX nesou stejnß jmΘna jako jejich prot∞jÜky ze sady VCL, jsou vÜak implementovßny zcela odliÜn²m zp∙sobem v knihovnßch zaΦφnajφcφch pφsmenem Q (nap°. QGraphics, QControls, QForms, QDialogs, QStdCtrls, atd.). V²voj aplikacφ zalo₧en²ch na CLX komponentßch se nijak neliÜφ od v²voje stßvajφcφch vizußlnφch aplikacφ, v²vojß° pouze p°i zalo₧enφ projektu specifikuje odliÜn² typ aplikace. P°i nßslednΘm vytvß°enφ formulß°∙ ji₧ Delphi generujφ formulß°e z knihovny CLX a v palet∞ komponent nabφzφ pouze CLX vizußlnφ komponenty.
NovΘ knihovny
Krom∞ mno₧stvφ nov²ch komponent najdeme v Delphi 6 i n∞kolik nov²ch knihoven. Knihovna ConvUtils obsahuje mno₧stvφ obecn²ch funkcφ pro konverze a porovnßvßnφ hodnot v libovoln²ch m∞rn²ch soustavßch. Standardnφ m∞rnΘ soustavy pro kvantifikaci vzdßlenosti, ploÜnΘ mφry, objemu, vßhy, teploty a Φasu jsou definovßny v knihovn∞ StdConvs. Pro ·plnΘ pokrytφ pot°eb poΦφtßnφ s prom∞nn²mi typu Φas a datum (TDateTime) slou₧φ skoro 150 nov²ch funkcφ a procedur v knihovn∞ DateUtils. Prßci s °et∞zci nßm v Delphi 6 krom∞ funkcφ definovan²ch v knihovn∞ SysUtils usnadnφ i mnoho dalÜφch funkcφ v novΘ knihovn∞ StrUtils. Pro prßci s binßrn∞ k≤dovan²mi desetinn²mi Φφsly byla zavedena knihovna FMTBCD. Matematickß knihovna Math definuje novΘ konstanty pro kladnΘ a zßpornΘ nekoneΦno a sadu nov²ch funkcφ pro trigonometrickΘ v²poΦty, p°evody stup≥ov²ch jednotek a dalÜφ. Za zmφnku stojφ zejmΘna funkce IfThen, usnad≥ujφcφ podmφn∞nΘ zpracovßnφ. Funkce mß t°i parametry. Prvnφ parametr p°edstavuje logick² v²raz - pokud je pravdiv², vracφ funkce hodnotu druhΘho parametru, pokud je nepravdiv², vracφ hodnotu t°etφho parametru. Funkce je p°etφ₧ena pro typy integer, double, int64 a string.
Implementace typu Variant byla p°esunuta ze zßkladnφ knihovny System do dvou nov²ch knihoven Variants and VarUtils, kde byly definovßny i n∞kterΘ novΘ funkce pro prßci s tφmto typem. Novß implementace Variantu umo₧≥uje velmi jednoduch²m zp∙sobem - odvozenφm potomka od obecnΘ t°φdy TCustomVariantType definovat pro Variant vlastnφ datovΘ typy a p°et∞₧ovat aritmetickΘ operace nad nimi provßd∞nΘ. P°φkladem m∙₧e b²t implementace komplexnφch Φφsel jako zvlßÜtnφho podtypu typu Variant v knihovn∞ VarCmplx, kde se nachßzφ i mnoho funkcφ podporujφcφch poΦφtßnφ s komplexnφmi Φφsly.
dbExpress - novß cesta k dat∙m
Mnoha v²vojß°∙m je u₧ °adu let trnem v oku technologie BDE (Borland Database Engine) vyu₧φvanß pro p°φstup k libovoln²m databßzov²m systΘm∙m. Delphi 5 p°ineslo alternativnφ zp∙sob p°φstupu k databßzφm pomocφ ADO komponent Microsoftu a pomocφ nativnφch komponent oznaΦovan²ch jako InterBaseExpress pro prßci s databßzov²m systΘmem InterBase. P°i portaci Delphi na operaΦnφ systΘm Linux vÜak nebylo mo₧nΘ vyu₧φt ani ADO komponent zalo₧en²ch na COM a prost°edφ Windows, ani nem∞lo smysl portovat dnes u₧ zastaralou technologii BDE. Hledal se proto nov² obecn² zp∙sob prßce s libovolnou databßzφ, kter² bude integrovßn jak v produktu Kylix, tak v Delphi 6 a umo₧nφ p°enositelnost zdrojovΘho k≤du databßzov²ch aplikacφ mezi ob∞ma platformami. Tφmto nov²m mechanismem p°φstupu k dat∙m se stala technologie dbExpress, sklßdajφcφ se z mno₧iny velmi lehk²ch databßzov²ch ovladaΦ∙. Pro ka₧d² podporovan² databßzov² systΘm existuje ovladaΦ, kter² transformuje specifickΘ rozhranφ knihoven pro p°φstup k databßzi dodßvan² producentem databßze (tzv. databßzovΘho klienta) na jednotnΘ rozhranφ dbExpress. Na rozdφl od technologie BDE, kterß pln∞ °φdila komunikaci s databßzφ a v²vojß°i umo₧nila jen p°φstup k zßznam∙m ve svΘ mnohdy obrovskΘ vyrovnßvacφ pam∞ti, je dbExpress koncipovßn jako velmi tenkß vrstva minimalizujφcφ komunikaci s databßzφ. Pro zpracovßnφ datov²ch mno₧in vracen²ch z databßze po provedenφ SQL p°φkazu poskytuje dbExpress pouze jednozßznamovou vyrovnßvacφ pam∞¥ a umo₧≥uje prochßzet zßznamy pouze jednosm∞rn∞. Dφky tomu lze vytvß°et extrΘmn∞ rychlΘ databßzovΘ aplikace s minimßlnφmi nßroky na operaΦnφ pam∞¥. Pokud chce v²vojß° pracovat nad datovou mno₧inou obousm∞rn∞ jako d°φve a udr₧ovat vÜechny zßznamy v n∞jakΘ vyrovnßvacφ pam∞ti, m∙₧e vyu₧φt komponentu SQLClientDataSet, kterß naΦφtß data p°es dbExpress a spravuje je v pam∞¥ovΘ tabulce.
V oblasti t°φvrstv²ch aplikacφ doÜlo k p°ejmenovßnφ technologie MIDAS nabφzejφcφ slu₧by pro p°enos databßzov²ch informacφ mezi aplikaΦnφm serverem a tenk²m klientem na DataSnap. K podporovan²m protokol∙m Sockets, COM/DCOM, CORBA a HTTP urΦen²m pro komunikaci mezi distribuovan²mi komponentami v Delphi 6 p°ibyl protokol SOAP. V zßlo₧ce DataSnap dßle najdeme n∞kolik nov²ch komponent usnad≥ujφcφ vytvß°enφ t°φvrstv²ch databßzov²ch aplikacφ, nap°. komponentu SharedConnection umo₧≥ujφcφ p°istupovat k vφce datov²m modul∙m na aplikaΦnφm serveru p°es jedinΘ p°ipojenφ Φi komponentu ConnectionBroker centralizujφcφ skupinu komponent ClientDataSet pou₧φvajφcφch stejnΘ p°ipojenφ k aplikaΦnφmu serveru. Ke komponent∞ ClientDataSet p°ibyly jejφ varianty BDEClientDataSet, SQLClientDataSet a ADOClientDataSet pro v²voj dvouvrstv²ch aplikacφ obsahujφcφ i prost°edky pro prßci nad p°φsluÜnou databßzovou technologiφ a zajiÜ¥ujφcφ ulo₧enφ dat v operaΦnφ pam∞ti.
WebovΘ aplikace snadno a rychle
Jednou z oblastφ, kterΘ byla p°i p°φprav∞ Delphi 6 v∞novßna mimo°ßdnß pozornost, je oblast v²voje aplikacφ pro internet. Technologie WebBroker, kterß je primßrnφm prost°edkem pro budovßnφ webov²ch aplikacφ v Delphi, doznala od t°etφ do pßtΘ verze tohoto nßstroje jen mal²ch zm∞n a v²voj aplikacφ tohoto typu byl pom∞rn∞ pomal². Novß verze Delphi p°inßÜφ p°epracovanou podobu technologie WebBroker umo₧≥ujφcφ v²voj CGI, WinCGI, ISAPI/NSAPI a Apache webov²ch modul∙, kterΘ lze efektivn∞ provozovat na dnes nejrozÜφ°en∞jÜφch webov²ch serverech. Testovßnφ a lad∞nφ vyvφjen²ch aplikacφ si m∙₧e programßtor znaΦn∞ ulehΦit pou₧itφm testovacφho webovΘho serveru oznaΦenΘho jako "TestSvr", kter² je souΦßstφ instalace v²vojovΘho prost°edφ. Pokud chce v²vojß° tohoto serveru vyu₧φt, vyvφjφ svou aplikaci jako specißlnφ webov² modul, kter² pro komunikaci s webov²m serverem pou₧φvß COM rozhranφ. Po ·plnΘm odlad∞nφ takovΘ aplikace se drobnou zm∞nou k≤du urΦφ cφlov² webov² server, na kterΘm bude aplikace nasazena.
Technologie WebBroker se opφrß o centrßlnφ objekt dispeΦera, kter² p°ijφmß p°φchozφ po₧adavky a sm∞ruje je na konkrΘtnφ objekty, od kter²ch se oΦekßvß transformace po₧adavk∙ na konkrΘtnφ odpov∞∩, typicky vygenerovßnφ p°φsluÜnΘ HTML strßnky. V p°edchozφch verzφch Delphi bylo generovßnφ v²slednΘho HTML k≤du v²vojß°i ulehΦovßno pouze n∞kolika komponentami, z nich₧ neju₧iteΦn∞jÜφ byla komponenta TPageProducer umo₧≥ujφcφ vytvo°enφ Üablon s HTML k≤dem a u₧ivatelsk²mi znaΦkami, kterΘ byly v okam₧iku zpracovßnφ po₧adavku nahrazeny v²vojß°em definovan²mi v²razy. Vytvß°enφ rozsßhlejÜφch webov²ch aplikacφ a jejich ·dr₧ba byly celkov∞ velmi pracnΘ. Delphi 6 obsahuje nadstavbu nad vrstvou WebBroker nazvanou SiteExpress. V²vojß° p°i budovßnφ svΘ aplikace pou₧φvß pro vytvo°enφ ka₧dΘ dynamickΘ HTML strßnky zvlßÜtnφho typu webovΘho modulu (potomka t°φdy TWebPageModule). Ka₧d² takov² modul p°edstavuje kontejner definovan² v samostatnΘ zdrojovΘ knihovn∞, do n∞ho₧ lze vklßdat nevizußlnφ komponenty ovliv≥ujφcφ zpracovßnφ p°φchozφho po₧adavku. P°i inicializaci aplikace dochßzφ k registraci vÜech webov²ch modul∙ definovan²ch v jednotliv²ch knihovnßch projektu u centrßlnφho dispeΦera. DispeΦer p°i p°φchodu po₧adavku z jeho URL adresy poznß, kter² modul je za zpracovßnφ po₧adavku odpov∞dn², aktivuje ho a p°edß mu po₧adavek ke zpracovßnφ. P°i v∞tÜφ zßt∞₧i systΘmu, kdy p°ichßzφ vφce po₧adavk∙ na jeden modul souΦasn∞, umo₧≥uje dispeΦer vytvß°enφ vφce instancφ t°φdy urΦitΘho modulu a prßci ve vφce vlßknech souΦasn∞. Vlastnφ vytvo°enφ HTML strßnky ve webovΘm modulu zajiÜ¥uje ve v∞tÜin∞ p°φpad∙ komponenta PageProducer Φi jejφ nadstavba, kterß zpracovßvß HTML Üablonu vytvo°enou u₧ivatelem. Tato Üablona m∙₧e b²t p°i°azena modulu p°φmo direktivou $R a lze ji snadno editovat v editoru zdrojovΘho k≤du. Dynamickou slo₧ku v Üablon∞ reprezentuje vlo₧en² k≤d ve zvolenΘm skriptovacφm jazyce interpretovan² na stran∞ serveru a u₧ivatelskΘ znaΦky. Skriptovacφ jazyk mß p°φstup k n∞kolika obecn²m p°eddefinovan²m objekt∙m (nap°. objekty Application, Page, Session, EndUser...) a dßle k objekt∙m naz²van²m adaptΘry, kterΘ programßtor k tomuto ·Φelu definuje ve webovΘm modulu. N∞kterΘ obecnΘ typy adaptΘr∙ SiteExpress nabφzφ ji₧ p°ipravenΘ, nap°. komponentu DataSetAdapter, kterß zp°φstupnφ jakoukoliv datovou mno₧inu (potomka t°φdy TDataSet) skriptovacφmu jazyku jak pro Φtenφ, tak pro editaci. Sada komponent SiteExpress podporuje sledovßnφ komunikaci s jednφm konkrΘtnφm u₧ivatelem (session tracking), umo₧≥uje vytvo°enφ seznamu p°φstupov²ch ·Φt∙ s urΦit²mi prßvy, kontroluje p°φstupovß prßva ke strßnkßm a p°φpadn∞ automaticky po₧aduje p°ihlßÜenφ, podporuje transformaci obrßzk∙ z databßze do po internetu p°enositelnΘ formy, umo₧≥uje vyu₧itφ XSL transformace XML dokument∙ atd.
Komponenty firmy NetMasters, kterΘ v minul²ch verzφch Delphi zajiÜ¥ovaly prßci s protokoly rodiny TCP/IP byly v Delphi 6 nahrazeny sadou znßm²ch komponent oznaΦen²ch jako Indy (d°φve tΘ₧ Winshoes) vyvφjen²ch ji₧ n∞kolik let jako Open Source.
Podpora XML
Na stßle rostoucφ uplatn∞nφ standardizovanΘho jazyka XML v praxi reagujφ Delphi 6 rozsßhlou podporou XML hned v n∞kolika sm∞rech. Novß komponenta XMLDocument p°edstavuje zapouzd°enφ externφho XML parseru do komponenty v Delphi, typicky parseru firmy Microsoft, kter² je umφst∞n na v∞tÜin∞ poΦφtaΦ∙ (voliteln∞ lze vÜak pou₧φt i jin² parser). P°φstup k prvk∙m XML dokumentu a jejich editaci zajiÜ¥uje komponenta XMLDocument pomocφ mno₧iny rozhranφ definovan²ch standardem DOM. Pokud ji₧ p°i nßvrhu znßme strukturu XML dokumentu, se kter²m budeme pracovat, m∙₧eme pomocφ specißlnφho nßstroje "XML Data Binding Wizard" vygenerovat soustavu rozhranφ a t°φd uÜit²ch na mφru urΦitΘmu XML dokumentu, kterΘ budou pou₧ity pro prochßzenφ i editaci dokumentu. Zmi≥ovan² nßstroj umo₧≥uje libovoln∞ pojmenovat definovanΘ t°φdy a rozhranφ, jejich metody a atributy a urΦit typ vÜech dat obsa₧en²ch v XML dokumentu. Takto vytvo°enΘ mapovßnφ XML dokumentu do hierarchickΘ struktury pascalovsk²ch t°φd lze ulo₧it ve specißlnφch souborech s p°φponou .xdb a pozd∞ji znovu pou₧φt. V²vojß° se dφky automaticky generovan²m t°φdßm reprezentujφcφm uzly XML dokumentu nemusφ zab²vat standardem DOM a pφÜe jednoduÜÜφ a podstatn∞ p°ehledn∞jÜφ k≤d.
V praxi se Φasto setkßvßme s po₧adavkem zp°φstupnit jinΘ aplikaci data ulo₧enß v relaΦnφ databßzi v po₧adovanΘ XML form∞ nebo naopak pracovat s urΦit²m XML souborem obdobn²m zp∙sobem jako s datovou mno₧inou z databßze. Tyto pot°eby lze v Delphi 6 efektivn∞ °eÜit pomocφ dvou zßkladnφch komponent, kterΘ jsou schopny provΘst transformaci z XML formßtu vyu₧φvanΘho komponentou ClientDataSet do libovolnΘho jinΘho XML formßtu a obrßcen∞. P°edpis pro takovou transformaci je pom∞rn∞ slo₧it², a proto Borland dodßvß samostatn² externφ nßstroj pro generovßnφ libovolnΘho popisu transformace (ty se pak uklßdajφ v souborech s p°φponu .xtr). Pokud chce v²vojß° implementovat nap°. aplikaci umo₧≥ujφcφ editaci obsahu XML souboru ve standardnφch vizußlnφch databßzov²ch komponentßch, m∙₧e pou₧φt komponentu XMLTransformProvider. Vytvß°enφ libovolnΘho XML k≤du z ·daj∙ v databßzi a zp∞tn² zßpis zm∞n v tomto k≤du do databßze umo₧≥uje komponenta XMLTransformClient.
VylepÜenß podpora technologie COM+
DalÜφ oblastφ, kterß doznala n∞kter²ch vylepÜenφ, je v²voj aplikacφ zalo₧en²ch na technologii COM/DCOM, resp. COM+. Pro podporu vytvß°enφ objekt∙ podporujφcφch propagaci udßlostφ podle technologie COM+ (tzv. Event Objects) nabφzφ Delphi 6 specißlnφho pr∙vodce pro definici rozhranφ pou₧φvanΘho pro Üφ°enφ a p°φjem udßlostφ. Pr∙vodce pro vytvß°enφ MTS objekt∙ byl nahrazen pr∙vodcem pro vytvß°enφ transakΦnφch objekt∙, kter² je nynφ dostupn² u₧ v edici Professional a umo₧≥uje v²voj jak COM+ transakΦnφch objekt∙, tak i objekt∙ pracujφcφch ve starÜφm prost°edφ MTS.
Editor knihoven typ∙ (Type Library) byl rozÜφ°en o editaci mno₧iny atribut∙, kterΘ umo₧≥uje ka₧dΘmu COM objektu nastavit prost°edφ COM+.
P°i vytvß°enφ nov²ch COM objekt∙ v prost°edφ Delphi 5 bylo v₧dy s t°φdou implementujφcφ COM objekt vygenerovßno i novΘ rozhranφ (interface). Pr∙vodce vytvß°enφm nov²ch COM objekt∙ v Delphi 6 umo₧≥uje ji₧ v okam₧iku zadßvßnφ jmΘna novΘho objektu urΦit, zda bude objekt implementovat novΘ nebo ji₧ jinde definovanΘ rozhranφ. Ji₧ definovanΘ rozhranφ lze vybrat ze seznamu rozhranφ zaregistrovan²ch v systΘmovΘm registru nebo v²b∞rem p°φsluÜnΘ knihovny typ∙.
KoneΦn∞ CORBA jak mß b²t
Novß verze v²vojovΘho prost°edφ Delphi p°inßÜφ i znaΦn∞ vylepÜenou podporu v²voje aplikacφ zalo₧en²ch na technologii CORBA. Integrovan² kompilßtor jazyka OMG IDL umo₧≥uje na rozdφl od p°edchozφch verzφ Delphi vyvφjet aplikace CORBA zp∙sobem obvykl²m ve sv∞t∞ architektury CORBA, tj. deklarovat rozhranφ distribuovan²ch komponent v popisnΘm jazyce IDL (editor k≤du nynφ podporuje zv²raz≥ovßnφ klφΦov²ch slov jazyka OMG IDL), dßle vygenerovat pro ka₧dΘ rozhranφ v odd∞len²ch souborech vazebnφ objekty (stub a skeleton) a vygenerovat kostru t°φdy implementujφcφ distribuovanou komponentu. I nadßle je CORBA v Delphi implementovßna na dynamick²ch knihovnßch produktu VisiBroker for C++, kterΘ jsou tenkou vrstvou zp°φstupn∞ny prost°edφ Delphi a jazyku Object Pascal. Mo₧nosti, kterΘ mß v²vojß° k dispozici, jsou vÜak daleko v∞tÜφ ne₧ v p°edchozφch verzφch - s Delphi 6 m∙₧eme vytvß°et plnohodnotnΘ CORBA servery, generovat u₧ivatelskΘ v²jimky na stran∞ serveru, pou₧φvat vφcenßsobnou d∞diΦnost rozhranφ, pou₧φvat CORBA typy array a sequence atd. V²voj CORBA server∙ i klient∙ usnad≥ujφ tΘ₧ k tomuto ·Φelu navr₧enφ novφ pr∙vodci.
A na samotn² zßv∞r u₧ jen poslednφ a pro n∞kterΘ u₧ivatele nep°φjemnß novinka - oproti p°edchozφm verzφm bude instalaΦnφ CD s Delphi chrßn∞no proti kopφrovßnφ ochranou SafeDisc firmy Macrovision Corporation a instalaΦnφ disk bude v periodick²ch intervalech v okam₧iku spuÜt∞nφ Delphi po₧adovßn ke kontrole.