CodeSmith - generátor kódu

Mezi moje oblíbené programy, které mi zpříjemňují práci patří CodeSmith. CodeSmith je generátor kódu založený na šablonách. Šablony používají syntaxi podobnou ASP.NET, takže vytváření šablon je jednoduché a efektivní. Pro běh CodeSmith je potřebné mít minimálně .NET verzi 1.0 doporučována je verze 1.1.

Tímto programem se můžete připojit k databázi SQL Server a získat tak informace o schématu vybrané databáze. Jednotlivé objekty databáze jsou v programu reprezentovány objekty. Všechny objekty jsou popsány v nápovědě a je jich požehnaně. Nejedná se pouze o tabulky, ale také o pohledy a uložené procedury. Je zde možnost si napsat také vlastního poskytovatele dat, tak jak je ukázáno v přiloženém příkladu pro XML data.

Zároveň s instalací programu se instalují od autora předpřipravené šablony. Některé z nich nevyužívají poskytovatele, ale pouze generují kód na základě zadaných a vyplněných property. Pokud tedy potřebujete vytvořit například typové kolekce založené na některém interface, potom můžete zvolit z dodaných šablon např: HashTable, SortedList, Vector. V případě, že chcete generovat kód pro T-SQL na základě vytvořeného schématu databáze, potom můžete použít šablony, které vygenerují uložené procedury pro přístup k záznamům tabulky a aktualizaci záznamu tabulky. Stejně tak, jako vygenerovat třídu např. v C#, která bude reprezentovat tabulku (pohled) databáze. Nic vám nebrání za pomoci dostupných objektů si vygenerovat metody, které budou volat uložené procedury na databázovém serveru.

Jak je možná zřejmé, nemusí se generovat pouze kód pro .NET Framework, ale v případě, že si napíšete vlastní šablonu, klidně to může být jakýkoli jiný jazyk, který se zapisuje pomocí ASCII znaků.

Pro tento program založil jeho autor i diskuzní fórum, do kterého je možné přispívat a zároveň i sdílet vlastní šablony s ostatními uživateli.

Poslední dobou jsem musel řešit několik úkolů, při kterých mi CodeSmith pomohl. Jedním z těch důležitějších byl i přenos testovací databáze na produkční server. Příkazy DDL (Data Definition Language) jsem si nechal vygenerovat jinými nástroji. Ovšem přenést interní tabulky s číselníky již není tak snadné. Zvláště v okamžiku, kdy je třeba data pouze upravit a nebo se rozhodnout zda data upravit nebo vložit. K tomu mi velice dobře posloužil právě CodeSmith, kdy jsem si napsal šablonu pro vygenerování T-SQL aktualizačních dotazů nad vybranými tabulkami. Pokud potřebujete řešit podobné případy jako já, nabízím vám svojí šablonu k použití. Stačí si o ní napsat.

Add a Comment