Letem .NETem 2.

Logování a posílání chyb e-mailem administrátorovi. Automatické generování dokumentace k projektu. Knihovny pro menu (web i GUI), 2D a 3D grafiku, přístup k ID3 tagům v souborech MP3.
Logování – log4net

Nová platforma Microsoftu v sobě zahrnuje poměrně slušnou podporu logovacích a trasovacích technologií, na které jsou zvyklí vývojáři z C++, ale zatím nebyly dostupné ve Visual Basicu nebo v ASPéčkách. Mám na mysli jmenný prostor System.Diagnostics a hlavně jeho třídy Debug a Trace, určené pro výpis běhových logů a ladicích hlášek. Ty jsou jistě kvalitní a poskytují spoustu možností. Pro rutinní použití by se ale hodilo pár vylepšení – například podpora pro posílání e-mailů s chybou administrátorovi, automatické přemazávání souborů s logem, možnost snadno konfigurovat (bez úpravy aplikace) "ukecanost" logu a podobně. Nic z toho není v .NETu nemožné, jen to chce trochu programování navíc.

Tu "trochu programování navíc" provedli programátoři projektu log4net, který právě něco takového umí. K vaší aplikaci stačí připojit jednu DLL, inicializovat logování (dva řádky kódu umístěné například v konstruktoru objektu) a případně přidat pár řádků do konfiguračního souboru aplikace. V tomto konfiguračním souboru je možné nastavit formát řádků v logu (například jméno metody, ze které byl zápis do logu zavolán, datum a čas volání), definovat, kam půjdou výstupy (event log, textový soubor), určit "ukecanost" logu, rozdělování zápisů do logu (chyby se například mohou zapisovat do separátního souboru nebo posílat emailem administrátorovi).

Přese všechnu flexibilitu je použití velice jednoduché, protože většinu nastavení není třeba vůbec měnit - jsou nastaveny rozumné implicitní hodnoty. Log4Net je port open source Javovské knihovny log4j pokryté Apache licencí, která nikterak nebrání použití i v komerčních aplikacích. A věřte, že když budete lovit chybu, která se projevuje u klienta jen jednou za tři dny, nebo když budete o chybě aplikace díky emailové notifikaci vědět ve stejné chvíli, kdy se uživateli objeví na obrazovce hlášení, budete za ozkoušený a spolehlivý logovací framework děkovat nebesům ;-)

Generování dokumentace tříd – NDOC

Zkušenost říká, že téměř žádný programátor není schopen nebo ochoten udržovat kromě komentářů v kódu ještě další vývojářskou dokumentaci v separátních souborech. Nápad generovat vývojářskou dokumentaci přímo z komentářů ve zdrojovém kódu se nabízí sám od sebe a má dlouhou tradici. Na Amigách blahé paměti to byl program AutoDoc, Javisté mají JavaDoc, pro dokumentování céčka, aspéček a Visual Basicu jde použít Autoduck. C# má podporu pro generování takovéto dokumentace zabudovanou přímo v kompilátoru, stačí psát speciální komentáře před začátek těla funkce.

Takovéto speciální komentáře jsou uvedeny třemi lomítky (na rozdíl od normálních komentářů se dvěma lomítky) a kompilátor z nich vytvoří XML soubor s kompletním popisem vašeho kódu. Pokud navíc píšete ve Visual Studiu.NET, tak se právě tyto komentáře použijí pro bublinovou nápovědu. Funguje to velice příjemně – jakmile napíšete název nějaké funkce (ať už ze standardní knihovny nebo některé vaší), pod kurzorem se objeví bublinová nápověda se seznamem parametrů a jejich popisem, který jste uvedli do výše uvedených speciálních komentářů. I kdyby byla ve VS.NET jen tato věc (jako že není), stačila by k tomu, abych si ho pořídil. Ve větších projektech šetří neskutečné množství času dohledávání formátu volání.

Jistě by ale také bylo dobré, kdyby se z těchto komentářů dala generovat nějaká přehledná, souhrnná dokumentace, protože xml soubor vytvořený kompilátorem není určen k přímému čtení, ale hlavně k dalšímu zpracování. Je pravdou, že VS.NET umí vytvořit sadu HTML souborů, které tuto dokumentaci obsahují. Výstup z VS.NET je ale vhodný spíše pro ruční proklikávání se dokumentací, neobsahuje totiž žádné fulltextové hledání (mimo v rámci jedné stánky dokumentace). Lepší by byl výstup třeba ve formátu HTML Helpu – stejný, jakým jsou zdokumentovány funkce NET SKD. Právě pro takovéto účely je NDOC, který umí z XML dokumentace vytvořit dokumentaci, jež je k nerozeznání podobná dokumentaci z MSDN. Umí generovat formáty WinHelp, JavaDoc a spojený XML dokument. Vytváření je extrémně jednoduché – stačí zadat soubor s definicí solution z VS.NET nebo cestu ke xml dokumentaci a kliknout na tlačítko pro generování. NDoc je dostupný včetně kompletních zdrojových kódů.

Uživatelské rozhraní

Dnes začneme knihovnami pro různé prvky uživatelského rozhraní. Menu v Office XP nebo Visual Studiu.NET vypadá napohled velice sexy, proč něco podobného nemít i ve svých programech? Něco takového se asi honilo hlavou programátorům v Crownwood Consulting, když vymýšleli knihovnu Magic 1.1. Knihovna obsahuje menu s podporou textu i grafiky, tab control stejně tak jako podporu dokovacích oken. Celá knihovna je volně k použití včetně veškerých zdrojových kódů.

Psali jste někdy webovou aplikaci, v níž je potřeba často žádat uživatele o opětovné potvrzení akce, kterou chce provést ("opravdu chcete smazat všechny své emaily?")? Pokud má mít takovéto dotazovaní nějakou štábní kulturu, mělo by se tvářit v celé aplikaci stejně. Pokud vám vyhovuje vyskakovací dialogové okno, které se objeví po stisku tlačítka a nepustí uživatele dále, dokud neklikne na "ano", můžete vyzkoušet user control ConfirmedButton, který obsahuje podporu pro button, image button a link button.

Když už jsou uživatelé zvyklí na určitý styl menu v klasických okenních aplikacích, bylo by dobré jim jej dopřát i v prohlížeči. Různých menu založených na JavaScriptu a DHTML je možné na Internetu najít spousty. U většiny z nich ale bývá problém s konfigurací vlastního obsahu menu, často se definuje přímo v JavaScriptovém zdrojovém kódu a do toho těžko může zasahovat někdo jiný než vývojář. Menu, které je zapouzdřeno do ASP.NET UserControlu a které se konfiguruje úpravou XML souboru (nad nímž se dá snadno napsat webový formulář), najdete pod názvem Hierarchical Menu WebControl. User control je ke stažení včetně kompletních zdrojáků.

Další nádherné menu najdete na stránkách AspNetMenu.com. Tato knihovna se opět konfiguruje pomocí XML souboru a má mnoho tváří – od klasického windowsového menu přes vzhled WindowsXP až k plně grafickým nabídkám. Doporučuji vyzkoušet dema, jsou skutečně impozantní. AspNetMenu je dostupné sice včetně zdrojáku, ale pouze za peníze.

Multimedia

Většina vývojářů grafických aplikací, které by měly běžet na více platformách, jistě dobře zná OpenGL, někteří jistě znají i knihovnu SDL. (Simple DirectMedia Layer), která je použita například v open source verzi Civilizace. Knihovna CsGL (CSharpGraphicLibrary) je nadstavbou nad těmito dvěma knihovnami, takže když budete chtít psát multiplatformní hry ve c# nebo ve vb.net, jistě stojí za vyzkoušení.

Pokud chcete ve svých .NETových programech číst nebo upravovat ID3 tagy ve své kolekci empétrojek, zkuste ID3 Library. Knihovna je dostupná včetně jednoduchého editoru tagů.

Diskuze (2) Další článek: Serial ATA koncem roku?

Témata článku: , , , , , , , , , , , , , ,