Nová verze jazyka Visual Basic 9, kterou nám přináší nové Visual Studio 2008 či Visual Basic 2008 Express Edition (neplést verzi jazyka, tj. 9, a verzi vývojového prostředí, tj. 2008), má několik nových vlastností, jako třeba Extension Methods, Partial Methods, LINQ, automatické konstruktory a možnost neuvádět datový typ v deklaracích, protože kompilátor z toho, co do proměnné přiřadíme, pozná, jakého typu proměnná bude. Toto přiřazení musí být mimo jiné už v deklaraci proměnné, jinak by to kompilátor vědět nemohl a nebylo by to tedy silně typové. Do Visual Basicu se rozhodně nevrací to, čeho jsme se před pár lety zbavili.
XDocument
Často využívám výše jmenované novinky, které nám Visual Basic 9 poskytuje. Šteří to čas i psaní a mnohdy i zvyšuje přehlednost. VB9 ovšem přináší ještě jednu věc, kterou nemá ani C# - možnost zápisu XML dokumentu přímo v kódu. Až dosud jsem si myslel, že to je k ničemu, ale dnes jsem potřeboval vygenerovat kousek XML a zjistil jsem, že je to mimořádně užitečné a pohodlné.
Generovat totiž celý dokument pomocí XmlTextWriteru je zbytečně otravné, zvláště když se v dokumentu mění dvě nebo tři hodnoty a zbytek je pořád stejný. Jiná možnost je uložit si XMLko do souboru, pak ten soubor načíst, provést pár nahrazení, k tomu ale musíte mít externí soubor, což se mi dělat nechtělo (ne že by to nešlo). Podle mě je velice elegantní tento zápis:
Case "RSD" 'vygenerovat RSD manifest
text = <?xml version="1.0" encoding="utf-8"?>
<rsd version="1.0" xmlns="http://archipelago.phrasewise.com/rsd">
<service>
<engineName>Uraeus Publishing System</engineName>
<engineLink>http://www.herceg.cz/</engineLink>
<homePageLink><%= String.Format(Uraeus.Config.Publishing.BlogDisplayUrl, id).Replace("~", Uraeus.GetAbsoluteApplicationPath()) %></homePageLink>
<apis>
<api name="MetaWeblog" preferred="true" apiLink=<%= Uraeus.GetAbsoluteApplicationPath() & "MetaWeblog.axd" %> blogId=<%= id %>/>
</apis>
</service>
</rsd>
Je to rychlé a jednoduché, prostě nakopírujete pár řádků XML do kódu, nemusíte nic dávat do úvozovek a na patříčná místa dosadíte požadované hodnoty. Už chápu, k čemu tahle funkce je a začínám ji mít rád. Dodnes jsem si myslel, že to je úplně k ničemu.