Jarda Jirava

Vývojář a architekt řešení postavených na technologii .net framework. Zabývám se jak vývojem webových aplikací za pomoci asp.net, tak také desktopových aplikací winform. Při návrhu řešení a samotném vývoji pak využívám dlouholetých zkušeností se zpracováním obchodní logiky a pravidel aplikací získaných z vývoje komerčních aplikací pro finanční a bankovní instituce.

Microsoft MVP

Microsoft MVP - Client App dev

Poslední příspěvky

tools and controls

22
IX

Jednoduchý web sql editor

Vytvořil jsem si jednoduchý sql editor. Záměrně zmiňuji, že se jedná o jednoduchý webový sql editor, který umí pouze to základní, co jsem požadoval. A z jakého důvodu jsem se rozhodl o něm napsat? Myslím si totiž, že podobný editor může být pro někoho stejně užitečný jako je pro mě.

SqlExpress na webhostingu

Tím hlavním důvodem je to, že pokud stejně jako já máte hosting na kterém je provozován SQL EXPRESS 2005 a používáte jej pomocí AttachDBFilename není dostupný žádný nástroj, jak se k databázi připojit. A to mě dovedlo k tomu, že jsem napsal tento velice jednoduchý web sql editor.

V rozbalovacím seznamu je možné vybraz jednu z dostupných databází nakonfigurovaných pomocí connectionStrings. Do připraveného textového pole je pak možné vkládat jakékoli sql dotazy (SELECT, UPDATE atd.) Není problémem vložit i několik SELECT dotazů za sebe a ty spustit společně. Výsledek se pak zobrazí ve formě resultsetů uspořádaných do tabulek.

Jednotlivé příkazy jsou uchovány v historii a je tak možné se k nim jednoduše dostat a provést jejich spuštění znovu.

Architektura

Architektura této aplikace je velice jednoduchá. Jelikož jsem si chtěl vyzkoušet AJAX Pro, použil jsem k přenosu dat z/na server výhod AJAX technologie. Tím se mi také podařilo částečně zmenšit objem přenášených dat, neboť se přenáší skutečně jen data a nikoli i jejich reprezentace.

Jelikož jsem potřeboval zajistit výpis dat až na klientovi (tedy v prohlížeči) jako rozumným řešením mi přišlo zvolit XSL transformaci. Ta na základě definice XSD vytvoří tabulku a vypíše data. Díky tomuto řešení jsem se tak poměrně elegantně vypořádal se zpracováním NULL hodnot, a určitě by bylo možné i lépe formátovat tabulku na základě datových typů - tato funkcionalita však implementována zatím není. Malým mínusem, který mi však nevadí je provázanost na IE a instancování msxml2.domdocument, pokud někdo ví, jak toto vytvořit univerzálně má možnost nechat řešení v komentářích.

Vzhled aplikace prodává, o tom jsem již psal, a tak jsem se rozhodl osladit i tuto aplikaci pověstnou třešničku na dortu a použít nifty corners od Alessandro Fulciniti. (Díky) Nic Vám však nebrání v tom, změnit si vzhled dle vlastních potřeb.

Zabezpečení

Určitě by bylo velice nemilé, pokud by k takovéto aplikaci měl přístup každý návštěvník. Samozřejmě by bylo možné řídit přístup pomocí oprávnění v souboru web.config, avšak to je nedostatečné v případě použití aplikace jakou je např. Community server, na níž je provozován tento blog. Proto je přístup na stránky řízen pomocí konfigurovatelného security managera. V případě, že potřebujete řídit specificky přístup k editoru, postačí implementovat rozhraní IEditorAuthorize z assembly JiravaNet.Data.SqlEditor.Authorize a napsat vlastní implementaci. V sekci authorizeManager souboru web.config poté tuto implementaci uvést a nakonfigurovat. Přístup k editoru má v mém případě pouze CS administrátor a při přístupu z localhost není autorizace prováděna vůbec.

Rozšíření

Jestliže se Vám bude zdát, že by tento jednoduchý web sql editor mohl umět více, nebojte se svoje náměty zamechat v komentářích, pokud budu mít chvilku, pokusím se je implementovat a rozšířit editor o další důležité schopnosti. Zdrojové kódy, byť na nich není nic převratného, mohu poskytnout na vyžádání.

Zdroje

Web SQL editor ke stažení.

Update

Samozřejmě je možné s tímto editorem použít i jakoukoli jinou databázi, nejen SQL EXPRESS 2005, která bude správně konfigurována.

7
XII

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.

Publikováno pod: tools and controls
1
XII

WinForms prvky zdarma

Přestože není programování pro WinForms mojí parketou, klikl jsem na odkaz směřující na stránky divil.co.uk. Na těchto stránkách můžete najít šest pěkných prvků, pro vylepšení vzhledu Vašich formulářů. Jedná se o tyto prvky:

  • SandBar - představuje efektní toolbar a menu ve stylu Office 2003.
    Návrh vzhledu je možný skrz design mode a možnosti pro customizaci jsou široké.
  • DotNetWidgets - jsou dvě komponenty v jednom.
    Jedná se o DotNetMenuProvider, který slouží pro vykreslování menu ve stylu Office XP. Tento provider obalí současné menu a umožní tak rozšíření jeho funkcionality. Druhou komponentou je DotNetToolbar, který nahrazuje standardní toolbar, a umožňuje přidávat textboxy, comboboxy a popisky.
  • Docking Suite - jedna se o prvek, který umožňuje dokování oken ve stylu VS.NET.
    Nástrojová okna mohou být přichycena k některé ze stran hlavního okna.
  • Document manager - prvek pro MDI aplikace.
    Umožňuje zobrazit záložky dokumentů, tak jak je známe z vývojového prostředí VS.NET.
  • Outlook bar - představuje prvek tak jak je znám z aplikace Outlook XP.
  • Wizard control - je prvkem pro vytváření interaktivních průvodců.

Na podrobnější zhodnocení těchto prvků si netroufám, neměl jsem příležitost je zatím vyzkoušet v aplikaci. Každopádně, dle dokumentace, která je přítomna pouze stránkách se jedná o podařené prvky, které jistě ušetří spoustu práce s vytvářením vlastních ovládacích prvků.

[via. Duncan Mackenzie - New *Free* Windows Forms Controls]

Publikováno pod: tools and controls
21
XI

A Sneak preview of Visual C# Whidbey

V tomto příspěvku se opět zaměřím na budoucnost. Je lákavá a nabízí tolik nových možností. Navíc se na nás poslední dobou přímo valí, jak lavina, informace o připravovaných novinkách a rozšířeních z dílny Microsoftu.

Dalším lákadlem je sneak preview document, který nabízí bližší pohled na vývojové prostředí Whidbey.

Vedle již avizovaných rozšíření samotného jazyka C# o kterých jsem informoval na těchto stránkách se můžeme těšit i na rozšíření samotného IDE. Jak je známo, můžeme využívat svůj oblíbený textový editor a poté vše zkompilovat z příkazového řádku. Jestli jste si ale stejně jako já zvykli používat Visual Studio, určitě se Vám nechce toto vývojové prostředí opouštět. Tím že zvyšuje komfort při práci, jde ruku v ruce produktivita a rychlost nasazení projektů. To si uvědomují i v Microsoftu a tak v každé nové verzi najdeme několik šikovných vylepšení, které usnadní práci a "datlování" do klávesnice. A co můžeme očekávat od nového VS Whidbey?

  • Compiler Enhancements
    • Inline warning control
    • Command line options
  • Productivity Enhancements
    • Refactoring
    • Expansions
    • Formatting
    • Profiles
    • Enhanced IntelliSense
    • User type and keyword coloring
    • New Build system
    • Find searches hidden text by default
    • Object Browser improvements
    • Easier window docking
    • Auto Save in the IDE
    • Change tracking
    • New Windows Forms Controls
    • New Web Form Controls
    • Control Alignment
    • Smart Tags for Controls
    • Quicker Web projects
    • “Yukon” project support
  • Debugger Enhancements
    • Enhanced Datatips
    • Visualizers
    • New symbol server options
    • Design time expression evaluation
    • Configurable Security Permissions

Jistě se nejedná o všechna vylepšení, které nás čekají v novém Whidbey (i tak už bych rád měl alespoň polovinu v současném studiu), ale do uvedení zbývá ještě spousta času a tak se máme na co těšit.

via. [Duncan Mackenzie]

Publikováno pod: .net technology , tools and controls
12
XI

Přehled HTML WYSIWYG editorů

Nedávno Michal Bláha informoval o dostupných HTML WYSIWYG editorech. Dnes jsem při svém brouzdání po novinkách objevil odkaz na vyčerpávající přehled snad všech takových editorů.

Editory jsou rozděleny do skupin [open source], [commercial], [remotely hosted] a [other interesting development]. U každého editoru je pak napsáno krátké zhodnocení a výčet důležitých vlastností.

  • cross platform
  • demo available
  • XHTML or XML support
  • Word clean-up or conversion
  • Zope based solution
Tento přehled si neodvážím hodnotit, každý si určitě vybere dle svého gusta a uvážení.
Publikováno pod: odkazy , tools and controls
24
X

Server controls pro WebMatrix

Dnes jsem si přečetl článek pod tímto odkazem. Jelikož se mi zdá, že by to mohlo pomoci převážně začátečníkům, kteří začínají s tvorbou webových aplikací, upozorňuji na něj.

V článku se dovíte, že do nového WebMatrixu byly přidány tři komponenty. Dvě z nich jsou nevizuální a slouží jako datové zdroje pro ovládací prvky, které požadují data. Třetí z nich je vizuální a je to rozšířený DataGrid.

SqlDataSourceControl a AccessDataSourceControl slouží pro přístup k databázím (tak jak je naznačeno v jejich názvu SQL Server a Access). Pro DataSourceControly je pak nutné, po jejich přetažení na plochu designeru nastavit jejich ConnectionString a SelectCommand. Poté už stačí jenom přiřadit vloženému DataGridu (či jinému prvku) do vlastnosti DataSource tento DataSourceControl a provést DataBind(). Jak snadné, a přehledová tabulka nebo výstup do ListBoxu je na třech řádcích hotov.

MxDataGrid slouží pro zobrazování tabulkových dat. Je shodný s klasickým DataGridem, pouze je rozšířen o vestavěné stránkování a třídění dat. To znamená, že programátor, se o tyto záležitosti nemusí starat a veškeré práce přenechá na MxDataGridu. Samozřejmě jako zdroj dat může sloužit právě zmíněný SqlDataSourceControl.

Jak už jsem na začátku naznačil, uvedené kontroly jsou podle mě spíše pro začátečníky, případně pro zhotovení rychlé prezentace. Proto je nezavrhuji a je dobré o nich minimálně vědět.

PS: Pokud chcete tyto kontroly používat i z prostředí VS.NET potom je v článku naznačen i postup jak tohoto cíle dosáhnout.

Publikováno pod: tools and controls