Václav Kadlec 31.5.2005
Dnešní článek se podívá na oblast, na kterou se měly pravděpodobně podívat už dřívější články někdy v lednu: na nejnovější verzi Delphi, 2005, a na to, co přináší nového, v čem se odlišuje, co rozšiřuje a jaké technologie podporuje.
Před týdnem jsme se potkali u bilančního, jubilejního, stopadesátého dílu tohoto seriálu. Uvedli jsme si stručný obsah a hypertextové odkazy na předchozích padesát dílů.
Využijeme tedy drobné odmlky, které vznikla v „programátorských“ článcích a v článcích popisujících jednotlivé aspekty Delphi. Předtím, než otevřeme další rozsáhlé téma, se podíváme na jednu věc, kterou bychom neměli ponechat opomenutu.
Jak asi všichni příznivci a uživatelé Delphi vědí, aktuálně nejnovější verze Delphi nese označení Delphi 2005. Tato verze přinesla některá vylepšení a změny oproti verzím předchozím. Některé ze změn jsou kosmetické a neznamenají žádné výrazné modifikace funkčnosti, jiné jsou velmi zásadní. V dnešním článku se podrobněji podíváme na to, co je v Delphi 2005 nového.
Nejprve se podívejme na nejdůležitější, řekněme koncepční změny v Delphi 2005. Především, zmíněná verze Delphi nese podtitul „The complete development solution for Windows,“ ve volném překladu tedy cosi jako „kompletní řešení vývoje pod Windows.“ Borland k tomuto odvážnému podtitulu sáhl především proto, že Delphi 2005 v sobě integruje několik programovacích jazyků a podporuje několik vývojových alternativ:
Delphi 2005 samozřejmě nejsou použitelné pouze pro programování aplikací, ale pomohou i s dalšími kroky ve vývojovém aplikačním cyklu – podporují návrh, modelování, komunikaci a aplikační management.
Pojďme se podívat na některé z nástrojů a integrovaných pomocníků, které Delphi 2005 nabízí pro jednotlivé fáze vývojového cyklu:
Borland Delphi 2005 standardně nabízí možnost vyvíjet jak tradičně pro Win32 platformu, tak i pro další alternativy, třeba pro .NET Framework.
Pokud tedy patříte k většině lidí, která v uplynulých deseti letech používala výhradně platformu Win32 a zvykla si vyvíjet aplikace právě pro tuto platformu, můžete bez obav používat i Delphi 2005. Stále je k dispozici stará dobrá knihovna Visual Component Library (VCL) obsahující staré známé Win32 komponenty. Knihovna VCL byla samozřejmě (jako je tomu u každé nové verze Delphi) rozšířena o další, nové komponenty, takže ani příznivci novinek nebudou zklamáni.
Jazyk Delphi pro Win32 nově obsahuje některé vlastnosti, funkce a rysy, které dosud byly k dispozici pouze v .NET verzi Delphi, a které mohou v některých případech být velmi užitečné. Změnami v jazyce Delphi se budeme pravděpodobně zabývat v příštím dílu seriálu, pro příklad uveďme podporu vložených (inline) funkcí, rozšířenou podporu for-in-do příkazu apod.
Pokud jste však zastánci tradic a nejste zvědaví na změny v jazyce, je k dispozici i původní (originální) verze jazyka.
Delphi 2005 kromě toho podporuje jazyk C# nebo jazyk Delphi pro prostředí .NET Framework. Delphi obsahuje plnou grafickou podporu návrhu v ASP.NET, Windows Forms, Web Services a dalších technologiích, vždy s možností použít buď jazyk C# nebo Delphi.
Podpora .NET Frameworku v Delphi 2005 zahrnuje jak .NET SDK (zmíněné Windows Forms nebo Web Forms), tak i Borland Visual Component Library, VCL.NET. Portování (přenos) Win32 aplikací do prostředí VCL.NET knihovny není příliš obtížné.
Kromě VCL komponent obsahuje Delphi 2005 také .NET verze populárních komponent pro přístup k datům. Jinak řečeno, i portování databázových aplikací z Win32 do .NET je relativně nepříliš složité. Používáte-li například Delphi Win32 aplikaci přistupující k databázi prostřednictvím dbGo komponent pro ADO, můžete ji jednoduše portovat do .NET a použít komponenty dbGo.NET.
Ukažme si jen krátký příklad toho, jaká jazyková konstrukce je v novém Delphi možná. Ukázka souvisí s rozšířením příkazu for pro podporu indexování položek seznamů nebo kolekcí elementů:
procedure TForm3.Button2Click(Sender: TObject);
var
S: String;
begin
Memo1.Clear;
for S in ListBox1.Items do
Memo1.Lines.Add(S);end;
Jinak řečeno, příkaz for..in umožňuje použít třeba řetězec jako řídicí proměnnou. Podrobnosti si ukážeme za týden, kdy společně prozkoumáme změny v jazyce a změny v kompilátoru.
Změny v integrovaném prostředí jsou (jak tomu u nových Delphi pravidelně bývá) založeny především na přidání řady nových, více či méně užitečných nástrojů a integrovaných prostředků. Zkoumání všech by vydalo na několik článků, budeme proto velmi struční.
Na úvod zmiňme například poměrně zajímavý nástroj – Tool Palette. Přesněji řečeno, paleta nástrojů není určitě novým konceptem, v Delphi 2005 však zažila určitou renesanci, je kategorizovaná podle používaného vývojového prostředí (Delphi VCL nebo .NET) a integruje v sobě průvodce a čaroděje (wizards) pro automatické či usnadněné provádění základních operací.
Zajímavý nástroj je třeba vylepšený dynamický ErrorInsight, který umožňuje hledat a zobrazovat chyby ve zdrojovém kódu přímo v reálném čase prostřednictvím plovoucích oken. Můžeme se tedy vyhnout nejčastějším syntaktickým a sémantickým chybám už v době psaním kódu, ještě před kompilací.
Změnami prošel také systém nápovědy. Integrovaná „in-line“ nápověda umožňuje zobrazovat stručné, krátké nápovědy k funkcím přímo při psaní zdrojového kódu, prostřednictvím malých plovoucích a vyskakovacích oken. Při psaní názvu funkce se tedy můžeme dozvědět nejen její parametry a návratovou hodnotu jako doposud, ale také popis významu funkce, popis návratové hodnoty a případný popis mechanismu vracení chyb.
Vzhledem k tomu, že Delphi je multiplatformní a podporuje jako .NET, tak i Win32 prostředí, prošel inovacemi i integrovaný debugger, tedy nástroj pro hledání, lokalizaci a odstraňování chyb. Integrovaný debugger nyní dokonce umožňuje ladění a „odvšivování“ skupiny projektů zároveň, přičemž každý z projektů může být napsán v jiném jazyce/pro jiné prostředí. Jinak řečeno, můžeme debuggovat jak .NET verzi projektu, tak i Win32 verzi projektu současně.
Ti z vás, kteří se zajímají o programovací metodiky, jistě vědí, jaké jsou nejnovější trendy v tomto oboru. Nové metodiky podporující rychlý, inkrementální vývoj softwaru s důrazem na rychlé dodávání funkčních součástí, se souhrnně nazývají Agilní metodiky (Agile Methodologies); názory na tento přístup k programování se různí – mají jak bouřlivé zastánce, tak i opovržlivé odpůrce – nicméně skutečnost je taková, že existence a rozšiřování agilního programování neunikla ani Borlandu a zařadil podporu některých agilních konceptů i do nového Delphi.
V této souvislosti nemohu jinak než zařadit drobnou reklamu – ti z vás, kteří by se chtěli o agilním programování, o jeho principech, konceptech, myšlenkách, záměrech a jednotlivých metodikách (například o Extrémním programování) dozvědět víc, mají k dispozici knihu vydanou loni nakladatelstvím Computer Press. Kniha se jmenuje Agilní programování, najít ji můžete třeba na Vltavě a jejím zakoupením podpoříte autora tohoto seriálu :)
Vraťme se však do světa Delphi. Jedním z konceptů agilního programování (a především Extrémního programování) je tzv. refaktorizace, což je stručně řečeno změna zdrojového kódu beze změny jeho funkčnosti. Pod refaktorizaci tedy spadá jak oblast optimalizace, tak i oblast rozšiřování, aktualizace, přidávání nových funkcí a dalších změn v softwaru: vždy se potřebujeme přesvědčit, že i po změnách budou některé části programu fungovat stejně jako před změnou, třeba aby nevznikly nové chyby nebo aby byla zajištěna kompatibilita mezi funkcemi.
Delphi 2005 přináší integrovanou podporu refaktorizace. Můžeme tedy najít třeba pomocníka pro globální změnu jmen identifikátorů – nástroj SyncEdit, díky němuž můžeme ušetřit hodiny práce hledáním identifikátoru určeného k přejmenování všude v kódu.
Pomocníci existují i pro globálnější refaktorizační operace – např. pro extrakci řetězců a jejich konverzi do zdrojů (resources), pro extrakci určitých částí kódu a jejich konverzi do metod či funkcí apod.
Vzhledem k tomu, že dnešní článek už je delší než délka, na kterou má řada čtenářů náladu, přerušíme v tomto okamžiku jeho tok a na týden se rozloučíme. Příští týden dokončíme popis změn a vylepšení, které se objevují v nové verzi Delphi a podíváme se podrobněji na změny v jazyku, které se bezprostředně týkají psaní zdrojového kódu.