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

Silverlight minesweeper

Get Microsoft Silverlight

Navrhi COOL design a vyhraj zkušební let po Evropě!

Poslední příspěvky

builder.cz

13
III

Konference builder podruhé

Existují lidé mezi klávesnicí a židlí, kteří mě stále ještě dokáží udivovat. O lidech, o kterých chci psát nemůžu říct, že by patřili do skupiny BFU, ale tito lidé patří do skupiny široce známé a zvané jako programátoři.

K napsání tohoto příspěvku mě vede situace, která se začala odehrávat před nějakým tím měsícem zpět v konferenci o .net umístěné na serveru Builder.cz. Ti z vás, kteří tuto konferenci pravidelně odebíráte jistě tušíte, kam moje další psaní bude mířit. A jelikož tato konference nemá žádného moderátora, je toto asi jediné místo, kde se z toho můžu aspoň vypsat.

Zelená pro nadané

Raději hned v úvodu musím říct, že jsem byl také začátečník a potýkal jsem se s podobnými problémy, se kterými se potýkají současní programátoři, kteří začínají s .netem. Dokonce si nemyslím, že bych patřil mezi machry a občas mě také dokáží některé věci překvapit. Sám jsem si tak mohl vyzkoušet, jak je těžké na něco přijít, zvláště ve chvílích, kdy neexistovalo dostatek materiálu, procházel jsem MSDN, hledal obecnosti, které dokáží nakopnout nějakým vhodným směrem. Najít alespoň malý náznak toho, jak se kdo ubíral. A v závěru jsem se mohl zaradovat jak jsem dokázal daný problém vyřešit, pravda, občas je ten úspěch okořeněný hlubokým povzdechem se slovy "vždyť je to tak triviální, že já na to nepřišel hned". Nebo nastala druhá varianta, sklonit hlavu a jít s prosíkem na konferenci. Vždyť vývojářská komunita je tak specifická, že přestože jsme si konkurenty, dokážeme si nezištně poradit.

Tato komunita se v poslední době začíná docela rychle rozrůstat a tak jsem se na chvíli zaradoval, vždť dobrých a nadaných vývojářů není nikdy dost a stále do firmy někoho přijímáme. Alespoň bude možnost vybrat ty nejlepší.

Když existuje historie a její prohledávání

a přesto zůstávají tyto funkce zapomenuty. Vede to k jedné jediné věci, konference se plní jednoduchými dotazy a chuť prohledávat ještě více klesá.

Asi takhle by se dal jednoduše a výstižně definovat současný stav ve zmíněné konferenci. Byly doby, kdy jsem velice rád přispíval do této konference a těšilo mě to, objevovaly se zde zajímavé otázky a i z odpovědí se dalo hodně co přiučit. Jenže ignorance, v nadpisku uvedených funkcí, některých přispěvatelů jde do krajních mezí. Ještě jsem dokázal pochopit dotaz podaný dva roky po uvedení .netu na to, proč mi zůstávají původní hodnoty ve stránce a nic se mi neaktualizuje, když jsem stránku odeslal. Odpověď byla jasná, chybí ti test na Page.IsPostBack. Člověk si říkal, dobrá, je to mladá technologie, lidé nejsou tak zkušení.

Jenže to byla ještě sladká doba nicnetušení co vlastně má teprve přijít. Když si vezmu jakým způsobem probíhá dotazování se nyní, více jak pět let po uvedení dané technologie, kdy materiálů je nepřeberné množství, jde mi mráz po zádech, jakým směrem se dnešní .net programátoři vydávají. Položit triviální (subjektivně hodnoceno) dotaz, na který dostanu odpověď po zadání stejných slov do vyhledávacího políčka a kliku na první dotaz a čekat na jeho zodpovězení. Ano pravda, většinou ne kratší dobu než půl hodinu, ale i tak. Člověk si leccos pomyslí o charakteru oné bytosti, jež se takto snaží. Dokázat to samé udělat v jednom týdnu několikrát, nebo dokonce se zeptat na stejnou otázku, která již byla v daném týdnu řešena, to už mi připadá jako ignorance snažení těch, kteří odpovídají a zahlcování poštovních schránek všech.

Navíc se tito lidé schovávají za "směšné" nicky, zřejmě z důvodu případného dalšího útoku na mysl ostatních. Avšak vůbec si zřejmě neuvědomují, že tím ubírají sílu těm několika málo lidem, kteří jsou stále ještě aktivní a mají chuť jim odpovídat, případně je směřovat na Google - v některých případech je odkazovat ještě o pár pater níže a slušně je nechat přičichnout si kočce pod ocas.

Já nemám čas

Nejčastějším dúvodem takových dotazů pak je, že daný konzument kódu (tak jsem si je označil já), nemá čas na to řešit takové triviality. Dokonce je rozhodnut být z toho popuzen a patřičným způsobem pak reagovat, že mu někdo jiný nenabídne hotové řešení. Nebo se snaží svoji otázku zahrnout do slov svého začátečnictví, kterým jsme si prošli ovšem všichni. Myslím, že velice vystižná ukázka by mohla sloužit tato konvezrace, kde vše velice elegantně a trefně vyjádřil a zakončil Tomáš Petříček.

Studna informací

Již to padlo několikrát a možná i výstižněji, ale ač se to nezdá, Builder je dobrou studnou informací pro začínající i pokročilé vývojáře. Sám se snažím přispívat několika kapičkami, a i když mě netěší chování a směr, kterým se tato konference vydává, nechci se stáhnout do ústraní nebo dokonce úplně odejít. Ještě stále tam přispívá několik málo lidí, jejichž znalosti a přínos jsou neocenitelné a je možné se z jejich rad poučit.

A abych si zde jenom nestěžoval a zkusil udělat i něco pro zlepšení stavu, převedl jsem další část příspěvků tak jako již jednou.

Publikováno pod: builder.cz
22
XII

MulitColumnComboBox

Poměrně dlouhou dobu jsem přispěvatelem do konference na Builder.cz a snažím se odpovídat na zdejší dotazy. I já jsem si prošel obdobím, kdy jsem tápal a nevěděl si rady. Ale o tom jsem již psal a nemá příliš cenu se k tomu vracet.

Dotazy ať již jsou jakékoli, občas jsou inspirativní a jeden z nich, výstižně nadepsaný Datagrid a vice sloupcu v comboboxu upoutal moji pozornost o něco více. A jelikož jeho autor vyjádřil potřebu nějaké té ukázky kódu, zkusil jsem něco málo ukázat.

MultiColumnComboBox

Jedná se o jednoduchou implementaci ComboBoxu, který umožňuje zobrazit v jedné položce text z více sloupců datového zdroje. Myslím, že než popisovat zde technické aspekty bude lepší napsat potřebnou část kódu. Celý MultiColumnComboBox je pak možné si stáhnout.

Hlavní podstatou úpravy ComboBoxu je jeho přepsání metody OnDrawItem, která v mém případě vypadá následovně:

protected override void OnDrawItem(DrawItemEventArgs e)
{
	base.OnDrawItem (e);
	if ((e.Index < 0) || (e.Index >= Items.Count))
		return;
	if ((DisplayMember == null) || (DisplayMember.Length <= 0))
		return;

	string [] columns = this.DisplayMember.Split(',');
	object [] values = new object[columns.Length];
	string displayText = string.Empty;
	Brush brush = null;
	RectangleF layout = new RectangleF(e.Bounds.X, e.Bounds.Y, 
		e.Bounds.Width, e.Bounds.Height);

	for (int i=0; i

Ostatní vlastnosti jsou zde přepsány hlavně z důvodu, abych mohl zajistit vypsání hodnot z více sloupců. Formát výstupu je pak ovlivněn právě vlastností FormatString, která předstvuje známý formát zápisu formátování textu. A dále přepsanou novou vlastnost DisplayMember, která obsahuje seznam sloupců oddělených čárkou, ze kterých budou hodnoty vybrány.

Musím upozornit, že se nejedná o odzkoušený prvek a tento slouží pouze pro demonstrační účely, jak přistoupit k napsání si vlastního prvku. Jeho kód můžete jakkoli modifikovat a používat dále, budu ovšem rád, pokud mi pošlete jeho vylepšenou variantu.

Publikováno pod: builder.cz , code snippet
17
XI

Archiv konference Builder .Net

Nedávno jsem v jednom příspěvku v konferenci o .NET na serveru builder.cz přislíbil, že dám dohromady co možná nejvíce příspěvků uveřejněných v tomto fóru.

Týden se s dalším týdnem sešel a mám hotovo. Přiznávám, dalo mi to trochu víc práce než jsem očekával, převést vše do jednoho formátu. (Tímto nedoporučuji střídat emailové klienty.) Ale povedlo se.

Soubory archivu

Přípěvky nejsou nikterak tříděné, a myslím, že jsem za celou dobu nepoužil mnohokrát tlačítka DELETE (odchylka cca 1000 příspěvků).
Zároveň se zveřejněním jsem uvažoval, že napíši pár slov a jmen o kvalitních přispěvatelích a na které odpovědi se tak více zaměřit, ale neudělám to. Z jednoho prostého důvodu, určitě bych nevypsal všechny, a na někoho bych zapoměl, kdo si zaslouží, nejen můj, obdiv. Což bych nerad. Nebudu se ovšem vůbec zlobit, spíše naopak, pokud tak učiní někdo z Vás, komu tento off-line přehled pomůže, a komu pomohly odpovědi dotyčného.

Co říci závěrem. Ne, nebude to žádné moudro, pouze vlastní zkušenost. Je dobré vědět, že se mám koho zeptat, na koho se obrátit. Když však na něco přijdu sám, těší mě to dvojnásob a naučím se při tom mnohem víc.

Publikováno pod: builder.cz , konference