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

8
Sep

Testování aplikací - panelová diskuze – závěrečný záznam

Toto je poslední část záznamu z diskuze o testování. Úvodní části jste měli možnost si poslechnout již minulý týden, nyní si můžete vychutnat i závěrečnou diskuzi.

Testovani-diskuze by testovani

Pokud byste rádi slyšeli podobnou diskuzi na zajímavé téma, zkuste se podělit v komentářích a já se budu snažit takovou akci uskutečnit.

Díky

Publikováno pod: konference
3
Sep

Testování aplikací - panelová diskuze – záznamy

A mám tady pro vás jednu, skoro rok, žhavou novinku. Konečně jsem se dostal k tomu, převést jednolitý zvukový záznam přednášek a diskuze do samostatných tracků a tak vám je mohu nabídnout.

Přednášky a diskuze se točili kolem testování a myslím, že mohli najít ten správný směr mnoha lidem, kteří ve svých začátcích s testováním tápali. Pokud jste se tak této diskuze nemohli zúčastnit, tady jsou popořadě jednotlivé přednášky:

Pokud by někomu vadilo lehké bzučení, omlouvám se, ale lépe se mi běžící klimatizaci odfiltrovat nepodařilo. Pokud víte jak a v čem na to, klidně se podělte o radu.

Příjemný a ničím nerušený poslech, přeji.

Publikováno pod: konference
29
Aug

Moje první (i) Poslední sobota

V sobotu jsem měl tu příležitost se zúčastnit akce nazvané Poslední sobota, kde se scházejí příznivci PHP a pak především Nette frameworku. Nedá mi to, abych se tak nepodělil s postřehy, které vycházejí z mého očekávání o této akci.

A určitě tedy musím hned na začátek upozornit, že se jedná skutečně o subjektivní pocit a částečně to také vychází z mých očekávání, které jsem měl o takovéto akci.

Začínáme, nebo vlastně ještě ne

Plánovaný začátek byl na 16:00 a já nestíhal o 5 minut, byl jsem dost nervozní, protože jsem si říkal, že mi uteče začátek a jakožto jen málo poznamenaný PHP se už nechytnu a budu jen tak přihlížet. Moje obavy však vzaly brzy za své v okamžiku, kdy jsem vešel do skoro plné místnosti PHPčkařů, kde se teprve volně diskutovalo a hlavní část tábora byla dle prosakujících informací teprve na cestě z oběda.

Řešilo se hlavně, zda se vlastně všichni vejdeme a velice důležitá otázka, jak dostat do místnosti Wi-Fi. Nakonec jsme se přesunuli do kuřácké části restaurace (a hned to bylo na účastnících znát a nenechali se dlouho pobízet) a k řešení problémům s Wi-Fi se přidal ještě problém s prodlužkou k projektoru a notebookum.

Jakub Vrána – Výjimky vs. potlačování chyb

Plánovaný začátek se posunul, ale to by se dalo omluvit a Jakub Vrána nakonec mohl začít. Z mého pohledu si vybral velice zajímavé téma, které muselo přilákat tolik PHPčkařů, neboť se jedná o téma, se kterým se setká každý vývojář jakékoliv aplikace a v jakékoliv technologií.

O to víc mě překvapilo, že chvilky pozornosti vydrželi první tři věty, potom postupně s každou větou a napsaným řádkem v Nette frameworku, se začali tvořit skupinky, které si začali povídat a postupně zcela výklad přehlušili.

Myslím, že se to dá brát nejen jako neúcta k tomu, co si Jakub Vrána připravil, ale i k ostatním, kteří postupně rezignovali a také leccos vypovídá o přístupu k řešení těchto výjimečných situací v aplikacích, které výrazně ovlivňují její chod a funkčnost. Výsledné číslo lidí, kteří se dokázali věnovat tématu bylo asi 5 a tak jsem se přesunul alespoň blíže, abych vůbec něco slyšel. Tímto se dodatečně omlouvám Jakubovi, že jsem mu část jeho výkladu "dýchal na zátylek".

Ale abych nepsal jenom o posluchačích, dáli se jim tak říkat, ale také o obsahu samotného výkladu. Jen pár vět o tom, co mě zaujalo. Předem je asi dobré připomenout, čeho se chtěl Jakub dobrat, neboť se mu nelíbila rozvláčnost kódu při ošetřování výjimek a také chtěl ukázat, kde by se vlastně výjimka měla zachytávat a jaké informace při takové chybě vracet.

Takže první co mě zaujalo je, že se diskutovalo, proč vlastně vůbec vyhazovat výjimku, když z funkce místo očekávané návratové hodnoty pole hodnot můžu vrátit hodnotu false. Přiznám se, že pro mě to byl celkem šok, zvyklí ze silně typového jazyka, kde toto není možné. Ještě jsem byl ochoten přistoupit na jeden návrh a to vrátit hodnotu null, který však byl celkem striktně odmítnut.

Postupně se pak diskutující dostali k tomu, že byla navrácena aplikační výjimka, která zakryje implementační detail. Dále se ještě řešil způsob, jak vlastně provádět dotaz, tak abych nemusel psát tolik kódu k odchycení výjimky, což nakonec implementovali do bázového modelu aneb tryGetAll.

Důležitou částí pak byl způsob zobrazení informací tak, aby když dojde k chybě, tato situace neovlivnila zbytek stránky. To se nakonec podařilo díky zavedení samostatné komponenty, což umožňuje Nette framework.

Výsledné řešení z pohledu .NET vývojáře a vývojáře nejen asp.net aplikací, které se asi nejvíce blíží způsobu vývoje pomocí Nette, bylo ucházející, ale postupy a některé návrhy mě celkem překvapily.

David Grudl – první várka novinek v Nette 1.0

David si přichystal pro účastníky sérii slajdů a bylo vidět jeho charizma. Najednou se všichni ztišili a jistě by byl slyšet i spadlý špendlík. Bylo znát, že David je dobrým prezentátorem a v komunitě má obrovskou popularitu a respekt.

Představení bylo prezentačně velice dobře zvládnuto a pokud po některém slajdu nenásledoval potlesk, pak určitě následoval smích všech přítomných na pronesenou větu nebo představený slajd.

Novinky se budou hodně točit kolem možností HTML5, ale i další věci, které mi, přiznám se, unikaly, neboť neznám Nette framework tak důkladně.

Dál jsem se akce již neúčastnil a po této přednášce jsem skupinu PHPčkařů opustil, podle všeho pokračovala dále. To zda bude ještě nějaké příště bude záležet nejen na ohlasu na tento příspěvek, ale i na programu, který Poslední sobota bude mít. Témata určitě jsou zajímavá, ale přeci jen mi tam něco scházelo, něco, co se mi líbí na .NET a jeho vývojářích. Ale možná to je právě onen styl vývojářů v PHP, že když je něco nezajímá tak tomu nevěnují pozornost, byť to může být nejen pro ně, ale i pro koncového zákazníka důležité, nebo je to jen takový dojem a jsou PHPčkaři jiní?

Publikováno pod: krátké postřehy
13
Aug

WinForms – tipy pro binding mezi prvky

WinForms jsou stále hojně používané při vytváření desktopových aplikací, i když mě by se celkem líbilo, pokud by byly postupně vytlačeny WPF jakožto tlustým klientem nebo v některých případech spíše Silverlightem v jeho variatně OutOfBrowser.

A právě z WPF a Silverlightu jsem si hodně zvyknul na propracovaný Binding a to jak na object binding, tak také Element binding. Což mě přivádí na myšlenku, proč se obdobného bindingu nevyužívá také ve WinForms aplikacích. Ještě větší radost jsem tak měl z dotazu, který adresoval jeden z tazatelů na builder.cz fóru o .NETu do diskuze, kdy se snažil vyřešit a refaktorovat svůj duplicitní kód.

Čekal jsem, že někdo uvede nějaké elegantní řešení, ale ani po několika dnech se tak nestalo a tak jsem si říkal, že by nebylo špatné nastínit způsob, jakým bych toto řešil sám.

Binding na prvky

Už od dob .net frameworku 1.0 existuje ve WinForms aplikacích možnost bindování prvků na zdroj dat, tímto zdrojem je pak nejčastěji BindingSource (ten tedy až od verze 2.0), ale samozřejmě můžeme bindovat na jakýkoliv jiný zdroj, který poskytuje data.

K tomuto bindingu slouží třída Binding, která nám umožňuje nastavit cílovou vlastnost uživatelského prvku, samotný zdroj a jeho vlastnost a dalších 5 vlastností, které se týkají formátování a okamžiku získávání/vykreslování dat do uživatelského prvku.

A právě tohoto bindingu je možné využít i pro interakci mezi prvky.

Jen abych přiblížil daný dotaz, jednalo se o to, že se několik uživatelských prvků (TextBoxů) mělo zpřístupnit nebo znepřístupnit v závislosti na zaškrtnutí nebo odškrtnutí CheckBoxu. Samozřejmě toto mělo být správně nastaveno již při prvním zobrazení formuláře. Většina odpovědí tak tedy byla volat vytvořenou metodu jak z obsluhy události Load daného formuláře, tak také z obsluhy události CheckedChanged pro daný checkbox. Právě tento stav, kdy bylo třeba volat danou metodu ze dvou různých míst se však tazatel snažil eliminovat.

Dlužno dodat, že to byl celkem legitimní požadavek a takovýchto nastavovacích metod může být několik, obzvláště v případech, kdy je třeba skrývat nebo různě nastavovat jednotlivé prvky uživatelské rozhraní v závislosti na dalších hodnotách.

Řešení první

Prvním, maličko jiným řešením může být to následující, které využívá skutečně jen bindingu na prvek uživatelského rozhraní. Tento přístup asi oceníte v okamžiku, kdy se bude jednat o jednoduchý formulář, kde skutečně chcete skrýt nebo jen zneaktivnit některé prvky v závislosti na prvku jiném.

textbox1.DataBindings.Add("Enabled", checkbox1, "Checked");
textbox2.DataBindings.Add("Enabled", checkbox1, "Checked");

tento kód můžeme umístit do obsluhy události formuláře Load a to je vše, co musíme udělat. Jakmile programově nebo uživatelskou interakcí změníme zaškrtnutí checkboxu, dojde zároveň k zneaktivnění nebo naopka zpřístupnění daných textboxů. Tím nám tak odpadne nutnost volat jakoukoliv metodu ze dvou míst a máme vše na jednom místě. (Samozřejmě můžeme tento kód vyvést ven z obsluhy Load a v této pouze volat nastavovací metodu pro binding.)

Řešení druhé

Druhým možným řešením je pak mít vytvořený model chování pro daný formulář na který jsou jednotlivé prvky bindovány. To s sebou nese i pozitiva ve formě možnosti takovýto model otestovat. Toto řešení bude určitě vhodné v případech, kdy budeme mít složitější formulář a budou existovat různé závislosti mezi prvky. Samozřejmě zde bude hodně záležet na přístupu, který jsme zvolili pro celý projekt a především s ohledem k tomu, zda používáme některý z prezentačních návrhových vzorů jako třeba - Model-View-Controller (MVC) nebo Model-View-Presenter (MVP).

Vezměme si příklad, kdy v závislosti na takto zaškrtnutém checkboxu chceme dva textboxy povolit, ale třeti textbox má být v takovou chvíli zakázan a naopak. Buď bychom mohli tuto situaci zapsat do logiky daného formuláře a nebo si vytvoříme samostatnou třídu, která nám tento model chování bude simulovat.

Jak by takový kód potom mohl vypadat je demonstrováno na následujícím příkladu:

public class Form1ModelBehavior
{
        public bool Checked { get; set; }

        public bool GroupAvailable
        {
                get
                {
                        return Checked;
                }
        }

        public bool SingleAvailable
        {
                get
                {
                        return !Checked;
                }
        }
}

Jak vidíte, jedná se o jednoduchou třídu, která vrací dva různé stavy na základě hodnoty nastavené do vlastnosti Checked. Samozřejmě tato třída by mohla být složitější v závislosti na daném UI.

Ještě nám zbývá nastavit binding pro jednotlivé prvky a navázat tento binding právě na tento náš model chování. V tuto chvíli však nebudeme využívat jen textboxů, ale musíme nabindovat také checkbox, který vše bude řídit a na jehož interakci s uživatelem musíme reagovat. Aby vše fungovalo správně, právě binding na checkbox bude tím nejdůležitějším a musíme zajistit to, že v okamžiku, kdy dojde ke změně jeho vlastnosti Checked, aby se nám aktualizoval i daný model a provedly se příslušné změny taktéž na textboxech. Zde vidíte příklad takového bindingu:

private Form1ModelBehavior _model;

private void Form1_Load(object sender, EventArgs e)
{
        _model = new Form1ModelBehavior();
        checkBox1.DataBindings.Add("Checked", _model, "Checked", false, DataSourceUpdateMode.OnPropertyChanged);
        textBox1.DataBindings.Add("Enabled", _model, "GroupAvailable");
        textBox2.DataBindings.Add("Enabled", _model, "GroupAvailable");
        textBox3.DataBindings.Add("Enabled", _model, "SingleAvailable");
}

Závěrem

Doufám, že se mi povedlo demonstrovat na jednoduchém příkladu snadnost a efektivnost využití bindingu ve WinForm aplikacích. Je třeba si v těchto chvílich uvědomit, že formulář není tím hlavním místem, kde bychom měli dělat veškerou práci a slouží skutečně jenom k uživatelskému vstupu a výstupu. A právě v takových chvílích nám může být hodně nápomocný binding.

V mnoha případech se však setkávám s tím, že do formuláře je přesunuta veškerá logika aplikace, čímž se takový projekt stává hůře spravovatelným a rozšiřitelným. Pokud si myslíte, že víte o nějakém dalším obdobném problému, určitě se o něj podělte, pokud k němu bude existovat stejně elegantní řešení, rád se pokusím o nalezení efektivnějšího řešení.

Publikováno pod: builder.cz , knowledge base , .net technology
31
Jul

Malé zamyšlení nad asp.net MVC

Je akorát polovina prázdnin a jsem ve stavu, kdy se snažím načerpat nové síly a inspiraci nejen pro další psaní pro xaml.cz. To mi však nikterak nebrání, abych se věnoval i dalším záležitostem, třeba vývojem aplikací v asp.net MVC.

Jsem technologicky zaměřen a to především na .NET framework, snažím se si stále udržovat přehled, a to i přes to nádherné počasí, které svádí k tomu být co nejvíce venku a užít si nejen dětí a manželky, ale také zrelaxovat u beachvolejbalu.

Nemohl jsem však nepochytit oznámení od Scotta Guthrieho, který právě o těchto prázdninách prezentuje dosažené milníky jednotlivých produktových skupin na cestě k novým releasům. Občas jsem si říkal, škoda nastavených termínů, které jsem si sjednal, protože bych tak o pár dní dříve mohl využít a otestoval Code first development s Entity frameworkem 4 a to na menším projektu pro Pavlík production, který jsem realizoval a který je v současné chvíli v prerelease stádiu.

A právě tento zmíněný projekt využívá asp.net MVC v jeho verzi 2.0 a tak jsem byl velice zvědav na novinky, které přineslo první Preview verze 3.0. Musím se přiznat, že jsem byl celkem zklamán, možná ani ne tak tím, jaké novinky jsem pochytil, ale samotným směrováním. A právě o tom by mělo být toto zamyšlení.

asp.net MVC 3.0 Preview 1

Razor View Engine

Asi první co každého muselo trknout je nový View Engine Razor, který tak doplnil původní engine a jenž by měl mít přehlednější syntaxi. V některých ohledech se tomu tak určitě stalo, na druhou stranu bych si dokázal představit něco jiného, co by bylo stále přehledné, ale zároveň lépe zpracovatelné – tedy založené na xml - alespoň co se týká procesních příkazů. V tomto směru se k tomu velice blíží právě Spark View Engine, ale určitě bych se nebál jít více cestou XAMLu. Ostatně obdobná cesta by se líbila nejen mě, ale třeba i Borkovi.

Globální filtry

Další na řadě jsou globální filtry. Ty určitě budou vítaným příspěvkem pro vývojáře a při snadnosti aplikovatelnosti budou též často využívány. Ono již obdobné globální filtry šli nastavit i nyní a dokonce u nich bylo možné využít Dependency Injection, ale chtělo to napsat si vlastní ControllerFactory a využít taktéž přepsaný ActionInvoker. V této oblasti je to tak jen vyjití vstříc vývojářům, kteří chtějí jít přímo k řešení úkolu a chtějí využít jen dostupné infrasturktury.

dynamic ViewModel

Co však považuji za ne úplně rozumný krok je vlastnost ViewModel a její zdynamičtění. Ano, tato vlastnost plně využívá možností .NET Frameworku 4.0 a je typu dynamic. Což určitě někdo může přivítat, mě to v této chvíli připadá jako velice nerozumné neboť tak vývojář přichází o možnost kontroly šablony ještě před samotným během aplikace a vede to zbytečně k zavlečení chyb v podobě překlepů. To bude vést k ještě většímu důrazu na možnost a nutnost testovatelnosti šablon.

Podpora Dependency Injection

Tady jsem hodně očekával spíše bližší provázanost na MEF (Managed Extensibility Framework) než na implementaci pomocí Common Service Locatoru. V tomto ohledu jsem hodně zvědav na reálné použití, neboť část vývojářů se kloní ke zvolenému použití DI, a ta druhá společný jmenovatel v použití IoC/DI kontejneru zavrhuje. Už asi z pohledu na to, že jsem se u tohoto "vylepšení" zastavil je jasné, že mi to není úplně po srsti a z tohoto pohledu by mi bylo více sympatické, kdyby tato implementace byla založena jen na definici jednotlivých interface pro jednotlivé objekty, které by byly tvořeny pomocí konkrétního DI. To by pak znamenalo mít možnost se vhodně napojit na místo tvorby těchto objektů a připravit je na využití některého ze způsobů DI (pomocí konstruktoru nebo setter vlastnosti), ale z mého pohledu by to bylo dostačující, zbytek by již zajistil daný DI kontejner.

Co mi schází

Dostávám se tak k poslednímu bodu a to k implementaci, která mi schází a kterou bych si dokázal nějakým způsobem představit zahrnutou do asp.net MVC. Touto implementací myslím něco na způsob Screen manageru – zkusím nastínit v dalších řádcích, co si pod tímto pojmem představuji. Je to možná jen tím, že se mi ne úplně líbí způsob, kdy v současné chvíli samotné View má možnost a v některých případech musí volat metody jiných Controllerů, aby byla zajištěna nějaká kompozičnost renderované stránky. A právě to, že až v okamžiku kdy se renderuje View se znovu vytváří kontext a dochází k vyvolání metod a musí dojít k aplikaci filtrů atd. je z mého pohledu velice neefektivní a neúčelné. Navíc si myslím, že kompozici aplikace by nemělo řídit View, ale měl by za tuto činnost být zodpovědný Controller nebo spíše právě zmíněný Screen manager ve spolupráci s Controllerem.

A právě Controller by měl být v kontaktu se Screen managerem a předat mu data Modelu. Manager by pak měl data napojit na dílčí šablony a zajistit rozvržení jednotlivých částí na renderovanou stránku.

Nejspíše by takováto implementace znamenala jiný přístup využití šablon a jejich zpracování, ale samozřejmě by to záviselo na konkrétní implementaci.

Co by však taková implementace měla zaručit je snadnější rozšiřitelnost a modulárnost výsledné aplikace. Plnou kontrolu nad zpracováním jen v Controlleru a tím pádem pasivní View. A umím si představit i další možnosti využití Screen manageru.

Závěrem

Vše zmíněné je jen můj pohled na uveřejněnou první Preview verzi z nového asp.net MVC. V případě posledního bodu pak jen moje přání, které bych rád viděl implementované a podporované. Ono by samozřejmě šlo něco takového implementovat i v dosavadním frameworku, ale přeci jen mít podporu přímo by bylo lepší a zároveň připomínkované větší komunitou vývojářů. Třeba se této myšlenky někdo chytne, rozvine a nakonec ji navrhne, alespoň k zamyšlení ;-)

Publikováno pod: krátké postřehy , .net technology
15
Mar

VIII. neformální setkání .NET builder.cz

tak to vypadá, že je čas na další neformální setkání příspěvatelů konference builder.cz a příznivců .NETu.


Setkání se určitě uskuteční v Praze, v některé restauraci poblíž centra (tip již mám) a to od 18:30.


Vás, případné účastníky, bych pak požádal o výběr nejvhodnějšího termínu z těchto nabízených:
24.3.2010
25.3.2010


Můžete klidně vybrat více vhodných termínů pro vás, a já vás pak budu informovat, který termín byl vybrán a kde se uvidíme. Opět vás poprosím o kontakt včetně emailu, ať vám mohu zaslat potřebné informace.


Budu se těšit na viděnou, a nováčci jsou určitě vítáni.

Pokud jste svoji účast již přislíbili v tomto vlákně, není třeba se registrovat znovu :-)

Publikováno pod: builder.cz
31
Dec

PF 2010

Všem čtenářům tohoto blogu přeji vše nejlepší do nového roku, hodně štěstí, zdraví a lásky. Samozřejmě také spoustu řádků bez chyb a jen spokojené klienty.

V nadcházejícím novém roce se pak budu těšit v novém, ale budu rád, když si uděláte čas a zavítáte také na tento blog a s některými i osobně na některé z připravovaných přednášek nebo jiných akcí.

HNY 2010 Pictures, Images and Photos

Pěkný nový rok. Jarda

Publikováno pod: personal
21
Oct

Testování aplikací - panelová diskuze – materiály

Minulý týden ve čtvrtek proběhla panelová diskuze na téma testování aplikací. K této diskuzi jsem si přizval známé české vývojáře nejen se světa .NET, ale také Ruby, Python, Javy, Flexu a PHP.

Před celkem asi 80 lidmi v sále tak po mém krátkém představení tématu předstoupil Karel Minařík, který začal sérii krátkých přednášek o způsobech testování a různých možnostech, jak na testy aplikací psané vývojářem pohlížet. Po tomto skvělém výkopu se představil Michael Juřek zastupující .NET komunitu a Microsoft, představil nástroje z prostředí Visual Studia, které je možné pro testy využít, a nastínil také blízkou budoucnost.

Poté již následovala přednáška Borka Bernarda, který se na testování aplikací podíval ze strany Flexu a taktéž nastínil, jak snadné nebo složité může být testovat komponenty a/nebo interakci vizuálního prostředí.

Pohled nejen ze světa Javy, ale hlavně z prostředí enterprise aplikací a možností testování v těchto komplexních aplikacích představil Roman “Dagi” Pichlík. Pohovořil na téma virtualizace služeb pro integrační testování.

Poslední slovo přednáškové části si vzal na starost Honza Král a jeho shrnutí nemělo chybu, alespoń z mého pohledu. Myslím, že spoustě přítomných vyjasnil pojmy, se kterými se vývojář, který se rozhodne pro testování svých aplikací, setká.

Tím vše neskončilo, spíše teprve začalo. Všichni pozvaní hosté se ujali zodpovídání otázek. Určitě nedokážu interpretovat veškeré otázky a odpovědi, ale to snad ani nemusím, nebot téměř vše zachytil přítomný mikrofon a vy si tak můžete průběh diskuze poslechnout.

A jelikož se někteří jistě ptáte i po materiálech, které byly prezentovány, zde jsou:

  • Karel Minařík – html (531kB) (otevírejte nejlépe ve Firefoxu)
  • Roman “Dagi” Pichlík – pptx (413kB)
  • zvukový záznam přednášek (bude doplněn co nejdříve)
  • zvukový záznam diskuze (bude doplněn co nejdříve)

Doufám, že se tato panelová diskuze líbila, a budu se těšit na setkání u některé další přednášky.

Update 21.10. 22:14

Zapoměl jsem zmínit shrnutí, které sepsal Dagi na svém blogu, takže tady to je: testování aplikací – panelová diskuze.

Zároveň mám výjádření od Borka Bernarda, který slajdy ke své části přednášky chce uveřejnit u sebe i s potřebným popisem.

Publikováno pod: analysis/sw architecture
21
Oct

VII. neformální setkání .net builder.cz

Již po sedmé píši obdobný text výzvy k neformálnímu setkání .net vývojářů. Pojďme na chvíli opustit kanceláře a popovídat si s lidmi, kteří řeší obdobné úkoly a které známe jen podle nicku z online konference.

Předpokládám, že opět uvidím známé tváře, ale určitě se těším i na tváře nové.

Jestliže tedy máte chuť, náladu a čas nejen posedět, ale také popovídat, v některé z příjemných pražských restaurací, rád vás uvidím:

Kdy: 5. nebo 12. listopadu (čtvrtek – výběr dne je na vás)

V kolik: začátek je plánován na 18:30 (v té době dochází totiž k nejčastějším výpadkům serverů ;-))

Registrace: provedete odesláním komentáře pod tímto příspěvkem i s výběrem pro vás vyhovujícího datumu a nezapomeňte připojit i váš email.

Datum, který bude mít nejvíce vašich hlasů, bude určen za den setkání. V týdnu setkání se pak můžete těšit na emailovou připomínku a adresu vybrané restaurace.

Samozřejmě jsou vítání všichni, jak tváře známé, tak i zatím tváře neznámé – samozřejmě, že budete vítání i v případě, že nepříspíváte do konference, ale o .net se zajímáte.

Registrace je otevřena do 30.10.2009.

Publikováno pod: builder.cz , .net technology
19
Oct

DevDays 2009 s VS2010 Beta 2

Developer Days 2009 se blíží!

Jako již tradičně, i letos v listopadu proběhne vývojářská konference Developer Days. Očekávejte ovšem některé změny. Na základě podnětů z minulých ročníků jsou obsahem letošní konference čistě technická témata. Dále se můžete těšit na soutěž o nejlepší demo a též na MVP-ky (Microsoft Most Valued Professional), kteří vám v průběhu přestávek předvedou své oblíbené vychytávky a v sekci “Ask the Experts” pak rádi odpoví na vaše dotazy. Co naopak zůstává beze změny – bez ohledu na rozpočet zužovaný neradostnou ekonomickou situací – je cena vstupného. Ta zůstává na stejné úrovni jako vloni, tedy 0 Kč.

Letošní Developer Days pořádáme v Praze a Ostravě, registraci a další informace najdete na www.devdays.cz. Pražské Developer Days jsou již naplněné, ale v Ostravě je stále dostatek volných míst. Pokud to máte do Ostravy daleko, můžete během následujících měsíců navštívit některý z plánovaných seminářů, kde se o tom nejlepším z letošních Developer Days dozvíte. Detailní informace o konání seminářů najdete v listopadu na webu WUGu.
Komu vyhovuje zůstat u svého počítače, může se podívat na obsah konference online, po 28. 11. na www.devdays.cz.

Jak mnozí zjistili, tak právě dnes byla uvolněna Beta 2 verze nového Visual Studia 2010 pro MSDN předplatitele a pozítří si ji budou moci stáhnout a vyzkoušet i vývojáři, kteří předplatné ještě stále nemají. A právě VS2010 bude hlavní náplní Developer Days, máte se určitě na co těšit.

Určitě jedna důležitá informace, Beta 2 má tzv. go-live licenci.

Publikováno pod: .net technology
22
Sep

Sketchflow – Azure desktop v0.2

Pokračuji dle definovaného scénáře a publikoval jsem druhou verzi návrhu UI pro Azure desktop. Bohužel jsem nemohl zahrnout žádnou připomínku, neboť jsem žádný sketchflow feedback zatím neobdržel. Což se doufám tímto releasem změní :-).

Vzorová data

Co jsem však obdržel byl feedback jiný a to, že schází nejen zbylé komponenty, ale především vzorová data, která by práci s Azure desktopem objasnila. To jsem se snažil napravit a tak vznikla tato verze, která obsahuje kompletní UI a napojení na vzorová data.

Neboť je mi jasné, že ne všichni máte již svá data migrována na Azure data storage, třeba pomocí této utility, tak jsem si nechal vygenerovat vzorová data přímo aplikací Expression Blend. Sice jsem tím ztratil maličko na reálnosti pořízených dat, na druhou stranu jsem tak plně využil potenciálu, který návrh UI s Sketchflow tento nástroj nabízí.

Připomínky vítány

Jelikož bych rád zapracoval veškeré připomínky do finální verze co nejdříve, budu rád za zaslání připomínek do tohoto pátku, tedy 25.9.2009. Jakým způsobem vytvořit feedback se mi doufám povedlo srozumitelně popsat v minulém příspěvku, obdobně jako zamýšlený princip fungování Azure desktop aplikace.

Samozřejmě budu rád za inspirativní nápady.

Publikováno pod: .net technology , wpf
16
Sep

Sketchflow – Azure desktop

Jelikož se poměrně kvapem blíží uvedení Azure služeb do ostrého provozu, rozhodl jsem se vytvořit obslužný program, který umožní prohlížení a manipulaci s daty uloženými v tomto, nejen datovém úložišti, tzv. cloudu.

Vím o tom, že nejsem příliš zdatným grafikem a také designerem UI, přesto bych byl rád, kdyby tento desktopový program byl dobře použitelný a stal se praktickým pomocníkem každého, kdo si nechá svá data spravovat pomocí Azure datových služeb.

Expression Blend 3 a Sketchflow

Součástí produktu Expression Blend se od verze 3 stal nedílnou součástí také návrhář tzv. Sketchflow, který má umožnit navrhnout poměrně jednoduchou formou vizuální podobu jednotlivých obrazovek aplikace a jejich propojení – navigaci. Vizuální podobou v tomto případě myslím hlavně rozvržení jednotlivých ovládacích prvků v okně, případně zajištění základní interaktivity těchto prvků.

Mé rozhodnutí tedy bylo vydat se touto cestou a nabídnout vám tak možnost spolupodílet se na výsledném rozvržení obrazovek.

Poprosím o váš feedback

Na stránce projektu Azure desktop je k dispozici právě zmíněné sketchflow, které si můžete stáhnout k sobě na vaše PC/Notebook s nainstalovaným .net frameworkem 3.5 a spustit aplikaci AzureDeskPrototype.exe. Pro ty z vás, kdo mají možnost a nechtěli by mi třeba věřit, jsou připraveny i zdrojové kódy, které je možné zbuildovat ve VS2008 případně Expression Blend 3.

Něco málo k aplikaci

Dříve než vás požádám o zaslání připomínek něco málo k idei o fungování dané aplikace. Aplikace umí prohlížet a spravovat data uložená na vzdáleném úložišti – Azure cloudu. Pro možnost přístupu k datům je třeba aplikaci nejdříve nakonfigurovat a to přiřazením jména a klíče dané aplikace. Tato možnost se nachází na obrazovce Options.

Dále je zde obrazovka Storage, která má sloužit právě pro prohlížení a správu dat. Data mohou být, jak jsem již zmínil získávána z různých aplikací v cloudu, proto by bylo příjemné mít možnost se přepnout do dané aplikace. V dané aplikaci pak může být několik typů dat. Jsou to data umístěná v tabulkách, dále data, která byla aplikací uložena do fronty a v neposlední řadě jsou to objemná data tzv. bloby. Uživatel by měl tak mít možnost si zvolit, na která data chce momentálně nahlížet, případně je spravovat.

Jakým způsobem bude docházet k prohlážení a manipulaci s daty si nechám však na příště :-)

Sketchflow feedback

Pokud umíte s prostředím Sketchflow pro feedback, pak vás poprosím o spolupráci, zanesení vašich připomínek k mému návrhu a odeslání na moji adresu jarda [zavináč] jirava [tečka] net. Pro ty z vás, kteří vidí toto rozhraní prvně následuje krátký úvod.

Vaše připomínky zaslané do 20.9.2009 zapracuji do současného návrhu a na základě nich přidám i další scházející obrazovky.

Sketchflow aplikace – ovládání

Po spuštění programu AzureDeskPrototype vás přivítá desktopové rozhraní – v tomto případě se bude jednat o WPF aplikaci, k dispozici je i verze pro Silverlight.

SF-Main

Na pravé straně uvidíte “spuštěnou” aplikaci s rozvrřením ovládacích prvků a s navrženou infrastrukturou navigace po aplikaci. Na levé straně jsou poté nástroje pro zanesení připomínek a navigaci po jednotlivých oknech aplikace.

Jak je vidět na následujících obrázcích, máte možnost se postupně pohybovat po jednotlivých obrazovkách kliknutím na tlačítka na obrazovkách nebo v navigačním panelu na levé straně a zároveň zanést své připomínky a graficky je zvýraznit.

SF-About

About dialog

SF-Feedback

Storage dialog se zanesením informací o připomínkách (červeně zvýrazněno a doplněn text pod barevnou sadu). Po stisku tlačítka znázorňujícího složku (žlutě ohraničeno) dojde k exportu připomínek, které je možné zaslat na výše uvedenou emailovou adresu.

Po uložení souboru na disk prosím soubor odešlete na uvedenou adresu, děkuji za vaši spolupráci. :-)

Publikováno pod: .net technology , wpf