<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:a10="http://www.w3.org/2005/Atom" version="2.0">
  <channel>
    <title>Jarda Jirava .net - blog</title>
    <link>http://jirava.net/</link>
    <description>Jarda Jirava .net - blog</description>
    <copyright>&amp;copy; Jarda Jirava 2010</copyright>
    <managingEditor>jarda jirava net</managingEditor>
    <lastBuildDate>Sat, 31 Jul 2010 05:48:04 -0500</lastBuildDate>
    <generator>jirava.net syndication generator</generator>
    <item>
      <guid isPermaLink="false">viii-neformalni-setkani-net-builder-cz</guid>
      <link>http://jirava.net/blog/Archive/viii-neformalni-setkani-net-builder-cz.aspx</link>
      <category>builder.cz</category>
      <title>VIII. neformální setkání .NET builder.cz</title>
      <description>&lt;p&gt;tak to vypadá, že je čas na další neformální setkání příspěvatelů konference builder.cz a příznivců .NETu.&lt;/p&gt;</description>
      <pubDate>Mon, 15 Mar 2010 07:47:46 -0500</pubDate>
      <a10:updated>2010-03-15T07:47:46-05:00</a10:updated>
      <a10:rights type="html">&amp;copy; Jarda Jirava 2010</a10:rights>
      <a10:content type="html">&lt;p&gt;tak to vypadá, že je čas na další neformální setkání příspěvatelů konference builder.cz a příznivců .NETu.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;Setkání se určitě uskuteční v Praze, v některé restauraci poblíž centra (tip již mám) a to od 18:30.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;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:    &lt;br /&gt;&lt;strong&gt;24.3.2010     &lt;br /&gt;25.3.2010&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;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.&lt;/p&gt;  &lt;p&gt;   &lt;br /&gt;Budu se těšit na viděnou, a nováčci jsou určitě vítáni.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;em&gt;Pokud jste svoji účast již přislíbili v &lt;a href="http://forum.builder.cz/read.php?31,3262738,3262738"&gt;tomto vlákně&lt;/a&gt;, není třeba se registrovat znovu :-)&lt;/em&gt;&lt;/p&gt;&lt;/blockquote&gt;</a10:content>
    </item>
    <item>
      <guid isPermaLink="false">pf2010</guid>
      <link>http://jirava.net/blog/Archive/pf2010.aspx</link>
      <category>personal</category>
      <title>PF 2010</title>
      <description>Všem čtenářům tohoto blogu přeji vše nejlepší do nového roku, hodně štěstí, zdraví a lásky.</description>
      <pubDate>Thu, 31 Dec 2009 07:49:01 -0600</pubDate>
      <a10:updated>2009-12-31T07:49:01-06:00</a10:updated>
      <a10:rights type="html">&amp;copy; Jarda Jirava 2010</a10:rights>
      <a10:content type="html">&lt;p&gt;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.&lt;/p&gt;  &lt;p&gt;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í.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://photobucket.com/images/2010" target="_blank"&gt;&lt;img border="0" alt="HNY 2010 Pictures, Images and Photos" src="http://8uplsq.blu.livefilestore.com/y1pQYHVWq1YkLin2tYVrfVYHGbb3ES96nMZq43Yhc-IoqHEyDFskLSEWMgX9OX6ugdAFvZi1Dj5qZSgOdtjJP615LNPGl0V5iqb/2010_NDS_640_480.jpg" width="640" height="480" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Pěkný nový rok. Jarda&lt;/p&gt;</a10:content>
    </item>
    <item>
      <guid isPermaLink="false">testovani-aplikaci-panelova-diskuze-materialy</guid>
      <link>http://jirava.net/blog/Archive/testovani-aplikaci-panelova-diskuze-materialy.aspx</link>
      <category>analysis/sw architecture</category>
      <title>Testování aplikací - panelová diskuze – materiály</title>
      <description>&lt;p&gt;Minulý týden ve čtvrtek proběhla panelová diskuze na téma &lt;strong&gt;testování aplikací&lt;/strong&gt;. 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.&lt;/p&gt;</description>
      <pubDate>Wed, 21 Oct 2009 15:14:40 -0500</pubDate>
      <a10:updated>2009-10-21T15:14:40-05:00</a10:updated>
      <a10:rights type="html">&amp;copy; Jarda Jirava 2010</a10:rights>
      <a10:content type="html">&lt;p&gt;Minulý týden ve čtvrtek proběhla panelová diskuze na téma &lt;strong&gt;testování aplikací&lt;/strong&gt;. 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.&lt;/p&gt;  &lt;p&gt;Před celkem asi 80 lidmi v sále tak po mém krátkém představení tématu předstoupil &lt;a href="http://www.karmi.cz/"&gt;Karel Minařík&lt;/a&gt;, 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 &lt;a href="http://blog.vyvojar.cz/mjurek"&gt;Michael Juřek&lt;/a&gt; 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.&lt;/p&gt;  &lt;p&gt;Poté již následovala přednáška &lt;a href="http://www.borber.com/"&gt;Borka Bernarda&lt;/a&gt;, 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í.&lt;/p&gt;  &lt;p&gt;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 &lt;a href="http://pichlik.sweb.cz/"&gt;Roman “Dagi” Pichlík&lt;/a&gt;. Pohovořil na téma virtualizace služeb pro integrační testování.&lt;/p&gt;  &lt;p&gt;Poslední slovo přednáškové části si vzal na starost &lt;a href="http://twitter.com/HonzaKral"&gt;Honza Král&lt;/a&gt; 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á.&lt;/p&gt;  &lt;p&gt;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.&lt;/p&gt;  &lt;p&gt;A jelikož se někteří jistě ptáte i po materiálech, které byly prezentovány, zde jsou:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href="http://jirava.net/slides/Slides.TDD.Microsoft.html" target="_blank"&gt;Karel Minařík&lt;/a&gt; – html (531kB) (otevírejte nejlépe ve Firefoxu) &lt;/li&gt;    &lt;li&gt;&lt;a href="http://jirava.net/slides/virtualizace-sluzeb-pro-integracni-testovani.pptx" target="_blank"&gt;Roman “Dagi” Pichlík&lt;/a&gt; – pptx (413kB) &lt;/li&gt;    &lt;li&gt;zvukový záznam přednášek (bude doplněn co nejdříve) &lt;/li&gt;    &lt;li&gt;zvukový záznam diskuze (bude doplněn co nejdříve) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Doufám, že se tato panelová diskuze líbila, a budu se těšit na setkání u některé další přednášky.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Update 21.10. 22:14&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Zapoměl jsem zmínit shrnutí, které sepsal Dagi na svém blogu, takže tady to je: &lt;a href="http://pichlik.sweb.cz/archive/2009_10_18_archive.html" target="_blank"&gt;testování aplikací – panelová diskuze&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;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.&lt;/p&gt;</a10:content>
    </item>
    <item>
      <guid isPermaLink="false">vii-neformalni-setkani-builder-cz</guid>
      <link>http://jirava.net/blog/Archive/vii-neformalni-setkani-builder-cz.aspx</link>
      <category>builder.cz</category>
      <category>.net technology</category>
      <title>VII. neformální setkání .net builder.cz</title>
      <description>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.</description>
      <pubDate>Wed, 21 Oct 2009 15:06:17 -0500</pubDate>
      <a10:updated>2009-10-21T15:06:17-05:00</a10:updated>
      <a10:rights type="html">&amp;copy; Jarda Jirava 2010</a10:rights>
      <a10:content type="html">&lt;p&gt;Již po &lt;strong&gt;sedmé&lt;/strong&gt; píši obdobný text výzvy k &lt;strong&gt;neformálnímu setkání .net vývojářů&lt;/strong&gt;. 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 &lt;strong&gt;online konference&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;Předpokládám, že opět uvidím známé tváře, ale určitě se těším i na tváře nové.&lt;/p&gt;  &lt;p&gt;Jestliže tedy máte chuť, náladu a čas nejen posedět, ale také popovídat, v některé z příjemných &lt;strong&gt;pražských restaurací&lt;/strong&gt;, rád vás uvidím:&lt;/p&gt;  &lt;p&gt;Kdy: &lt;strong&gt;5. nebo 12. listopadu &lt;/strong&gt;(čtvrtek – výběr dne je na vás)&lt;/p&gt;  &lt;p&gt;V kolik: začátek je plánován na &lt;strong&gt;18:30&lt;/strong&gt; (v té době dochází totiž k nejčastějším výpadkům serverů ;-))&lt;/p&gt;  &lt;p&gt;Registrace: provedete odesláním komentáře pod tímto příspěvkem i s &lt;strong&gt;výběr&lt;/strong&gt;em pro vás &lt;strong&gt;vyhovujícího datumu&lt;/strong&gt; a &lt;strong&gt;nezapomeňte připojit&lt;/strong&gt; i váš &lt;strong&gt;email&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;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.&lt;/p&gt;  &lt;p&gt;Samozřejmě jsou &lt;strong&gt;vítání všichni&lt;/strong&gt;, 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.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Registrace je otevřena do 30.10.2009.&lt;/em&gt;&lt;/p&gt;</a10:content>
    </item>
    <item>
      <guid isPermaLink="false">devdays-2009</guid>
      <link>http://jirava.net/blog/Archive/devdays-2009.aspx</link>
      <category>.net technology</category>
      <title>DevDays 2009 s VS2010 Beta 2</title>
      <description>Developer Days 2009 se blíží! A vy můžete začít stahovat VS2010 Beta 2.</description>
      <pubDate>Mon, 19 Oct 2009 16:43:09 -0500</pubDate>
      <a10:updated>2009-10-19T16:43:09-05:00</a10:updated>
      <a10:rights type="html">&amp;copy; Jarda Jirava 2010</a10:rights>
      <a10:content type="html">&lt;p&gt;Developer Days 2009 se blíží! &lt;/p&gt;  &lt;p&gt;Jako již tradičně, i letos v listopadu proběhne vývojářská konference&lt;strong&gt; Developer Days&lt;/strong&gt;. 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 &lt;strong&gt;MVP&lt;/strong&gt;-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 “&lt;strong&gt;Ask the Experts&lt;/strong&gt;” 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 &lt;strong&gt;vstupné&lt;/strong&gt;ho. Ta zůstává na stejné úrovni jako vloni, tedy &lt;strong&gt;0 Kč&lt;/strong&gt;. &lt;/p&gt;  &lt;p&gt;Letošní&lt;strong&gt; Developer Days pořádáme v Praze a Ostravě&lt;/strong&gt;, registraci a další informace najdete na &lt;a href="http://www.devdays.cz"&gt;www.devdays.cz&lt;/a&gt;. Pražské Developer Days jsou již naplněné, ale &lt;strong&gt;v Ostravě&lt;/strong&gt; je stále &lt;strong&gt;dostatek volných míst&lt;/strong&gt;. 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.     &lt;br /&gt;Komu vyhovuje zůstat u svého počítače, může se podívat na obsah konference online, po 28. 11. na &lt;a href="http://www.devdays.cz"&gt;www.devdays.cz&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;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.&lt;/p&gt;  &lt;p&gt;Určitě jedna důležitá informace, Beta 2 má tzv. go-live licenci.&lt;/p&gt;</a10:content>
    </item>
    <item>
      <guid isPermaLink="false">sketchflow-azure-desktop-02</guid>
      <link>http://jirava.net/blog/Archive/sketchflow-azure-desktop-02.aspx</link>
      <category>.net technology</category>
      <category>wpf</category>
      <title>Sketchflow – Azure desktop v0.2</title>
      <description>Pokračuji dle definovaného scénáře a publikoval jsem druhou verzi návrhu UI pro Azure desktop. Tato verze již obsahuje veškeré komponenty, které by měla obsahovat finální verze aplikace a zároveň jsou napojena vzorová data.</description>
      <pubDate>Tue, 22 Sep 2009 03:00:00 -0500</pubDate>
      <a10:updated>2009-09-22T03:00:00-05:00</a10:updated>
      <a10:rights type="html">&amp;copy; Jarda Jirava 2010</a10:rights>
      <a10:content type="html">&lt;p&gt;Pokračuji dle definovaného scénáře a &lt;a href="http://azuredesktop.codeplex.com/"&gt;publikoval&lt;/a&gt; jsem druhou verzi návrhu UI pro &lt;a href="http://azuredesktop.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=33336#DownloadId=84582"&gt;Azure desktop&lt;/a&gt;. 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í :-).&lt;/p&gt;  &lt;h3&gt;Vzorová data&lt;/h3&gt;  &lt;p&gt;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.&lt;/p&gt;  &lt;p&gt;Neboť je mi jasné, že ne všichni máte již svá data &lt;a href="http://sqlazuremw.codeplex.com/"&gt;migrována na Azure&lt;/a&gt; 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í.&lt;/p&gt;  &lt;h3&gt;Připomínky vítány&lt;/h3&gt;  &lt;p&gt;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 &lt;a href="http://jirava.net/blog/Archive/sketchflow-azure-desktop.aspx"&gt;srozumitelně popsat v minulém příspěvku&lt;/a&gt;, obdobně jako zamýšlený princip fungování &lt;a href="http://azuredesktop.codeplex.com/"&gt;Azure desktop aplikace&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Samozřejmě budu rád za inspirativní nápady.&lt;/p&gt;</a10:content>
    </item>
    <item>
      <guid isPermaLink="false">sketchflow-azure-desktop</guid>
      <link>http://jirava.net/blog/Archive/sketchflow-azure-desktop.aspx</link>
      <category>.net technology</category>
      <category>wpf</category>
      <title>Sketchflow – Azure desktop</title>
      <description>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. Na stránce projektu Azure desktop je k dispozici sketchflow, které si můžete stáhnout a přispět k lepší použitelnosti výsledné aplikace.</description>
      <pubDate>Wed, 16 Sep 2009 18:55:16 -0500</pubDate>
      <a10:updated>2009-09-16T18:55:16-05:00</a10:updated>
      <a10:rights type="html">&amp;copy; Jarda Jirava 2010</a10:rights>
      <a10:content type="html">&lt;p&gt;Jelikož se poměrně kvapem blíží uvedení &lt;strong&gt;Azure&lt;/strong&gt; 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. &lt;strong&gt;cloudu&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;Vím o tom, že nejsem příliš zdatným grafikem a také &lt;strong&gt;designerem UI&lt;/strong&gt;, přesto bych byl rád, kdyby tento &lt;strong&gt;desktopový program&lt;/strong&gt; byl &lt;strong&gt;dobře použitelný&lt;/strong&gt; a stal se &lt;strong&gt;praktickým pomocníkem&lt;/strong&gt; každého, kdo si nechá svá data spravovat pomocí &lt;strong&gt;Azure datových služeb&lt;/strong&gt;.&lt;/p&gt;  &lt;h3&gt;Expression Blend 3 a Sketchflow&lt;/h3&gt;  &lt;p&gt;Součástí produktu &lt;em&gt;Expression Blend&lt;/em&gt; se od verze 3 stal nedílnou součástí také návrhář tzv. &lt;strong&gt;Sketchflow&lt;/strong&gt;, 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ě &lt;em&gt;rozvržení jednotlivých ovládacích prvků v okně&lt;/em&gt;, případně zajištění &lt;em&gt;základní interaktivity&lt;/em&gt; těchto &lt;em&gt;prvků&lt;/em&gt;.&lt;/p&gt;  &lt;p&gt;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.&lt;/p&gt;  &lt;h3&gt;Poprosím o váš feedback&lt;/h3&gt;  &lt;p&gt;Na stránce projektu &lt;a href="http://azuredesktop.codeplex.com/"&gt;&lt;strong&gt;Azure desktop&lt;/strong&gt;&lt;/a&gt; je k dispozici právě zmíněné sketchflow, které si můžete &lt;a href="http://azuredesktop.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=33085#DownloadId=83802"&gt;stáhnout&lt;/a&gt; k sobě na vaše PC/Notebook s nainstalovaným .net frameworkem 3.5 a spustit aplikaci &lt;strong&gt;AzureDeskPrototype.exe&lt;/strong&gt;. 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.&lt;/p&gt;  &lt;h4&gt;Něco málo k aplikaci&lt;/h4&gt;  &lt;p&gt;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 &lt;em&gt;Options&lt;/em&gt;.&lt;/p&gt;  &lt;p&gt;Dále je zde obrazovka &lt;em&gt;Storage&lt;/em&gt;, 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.&lt;/p&gt;  &lt;p&gt;Jakým způsobem bude docházet k prohlážení a manipulaci s daty si nechám však na příště :-)&lt;/p&gt;  &lt;h4&gt;Sketchflow feedback&lt;/h4&gt;  &lt;p&gt;Pokud umíte s prostředím &lt;strong&gt;Sketchflow&lt;/strong&gt; pro &lt;strong&gt;feedback&lt;/strong&gt;, pak vás &lt;strong&gt;poprosím o spolupráci&lt;/strong&gt;, zanesení vašich připomínek k mému návrhu a odeslání na moji adresu &lt;em&gt;jarda [zavináč] jirava [tečka] net&lt;/em&gt;. Pro ty z vás, kteří vidí toto rozhraní prvně následuje krátký úvod.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Vaše připomínky zaslané do 20.9.2009 zapracuji do současného návrhu&lt;/strong&gt; a na základě nich přidám i další scházející obrazovky.&lt;/p&gt;  &lt;h3&gt;Sketchflow aplikace – ovládání&lt;/h3&gt;  &lt;p&gt;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.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="SF-Main" border="0" alt="SF-Main" src="http://cpdhtw.blu.livefilestore.com/y1pEr_sCLoL_-71beF7kRUvZN4UQGtGzLhs-Er52GZV8RticX3WrCiOkLdevsGUk7O3cel-oYGUWDO6h2fdMxTCPdi9fKf_dV-t/SF-Main.Png" width="644" height="386" /&gt; &lt;/p&gt;  &lt;p&gt;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.&lt;/p&gt;  &lt;p&gt;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.&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="SF-About" border="0" alt="SF-About" src="http://cpdhtw.blu.livefilestore.com/y1pqC4tGRq1IWoz_u-faz5qnLvuOTI8mHLtYGtOQk_PvmCkGN4cYgdDUS9rHnYSmjGTYau1jdbgGez24m3xSqzRS_2Peq-mAfdQ/SF-About.Png" width="644" height="386" /&gt; &lt;/p&gt;  &lt;p&gt;About dialog&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="SF-Feedback" border="0" alt="SF-Feedback" src="http://cpdhtw.blu.livefilestore.com/y1pbieMhfwF1W0QH_mMyXZNL-dLJOGlE9KGjLnsLeHc5mLX-lgXVr_gnWlB93QQ8MrOXFQdZRKO7WQ7y1PCCuyY9WY1-ipMJf2n/SF-Feedback.Png" width="644" height="386" /&gt; &lt;/p&gt;  &lt;p&gt;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.&lt;/p&gt;  &lt;p&gt;Po uložení souboru na disk prosím soubor odešlete na uvedenou adresu, děkuji za vaši spolupráci. :-)&lt;/p&gt;</a10:content>
    </item>
    <item>
      <guid isPermaLink="false">entity-framework-asociace-definingquery</guid>
      <link>http://jirava.net/blog/Archive/entity-framework-asociace-definingquery.aspx</link>
      <category>Linq</category>
      <category>.net technology</category>
      <title>Entity framework a asociace na DefiningQuery</title>
      <description>Zadání je celkem jednoduché a jde o to, že existují dvě entity, které jsou na sebe navázány asociací ve vztahu 1-m. Cílem je vytvoření property, která tento vztah zachová, ale bude v ní pouze posledních n záznamů.</description>
      <pubDate>Tue, 15 Sep 2009 14:38:23 -0500</pubDate>
      <a10:updated>2009-09-15T14:38:23-05:00</a10:updated>
      <a10:rights type="html">&amp;copy; Jarda Jirava 2010</a10:rights>
      <a10:content type="html">&lt;p&gt;Skončili prázdniny a jak to momentálně vypadá i pěkné počasí. A tak začíná být více času se věnovat také vývojařině a odpovědím na dotazy.&lt;/p&gt;  &lt;p&gt;Sešlo se mi, jak přes kontaktní formulář tak i z konference, hned několik zajímavých otázek, na které přeci jen není takový prostor pro odpověď přímo do diskuze a nebo je škoda je nepublikovat veřejně.&lt;/p&gt;  &lt;p&gt;Když to vezmu pěkně popořadě, tedy pozpátku, tak zajímavý dotaz se věnoval &lt;strong&gt;Entity frameworku&lt;/strong&gt;. Zadání bylo celkem jednoduché a šlo o to, že existují dvě entity, které jsou na sebe navázány asociací ve vztahu &lt;em&gt;1-m&lt;/em&gt;. Cílem je vytvoření property, která tento vztah zachová, ale vybere pouze posledních &lt;em&gt;n&lt;/em&gt; záznamů. Pavel dokonce poslal i řešení, jak toho docílit přímo v programu, ale toto řešení se mu nepozdávalo&lt;/p&gt;  &lt;pre class="csharpcode"&gt;postSet.select(a=&amp;gt; &lt;span class="kwrd"&gt;new&lt;/span&gt; (a, a.Comment.OrderBy(...).Take(5))&lt;/pre&gt;

&lt;p&gt;a já se mu příliš nedivím, neboť staví na anonymních třídách a přeci jen je třeba udělat něco navíc než by bylo nutné.&lt;/p&gt;

&lt;h3&gt;Vytvoření entity a asociace&lt;/h3&gt;

&lt;p&gt;Mnou navržené řešení spočívá ve vytvoření “nové” entity a definování asociace, nazvěme ji například &lt;em&gt;LastComments&lt;/em&gt;, která bude obsahovat pouze posledních &lt;em&gt;n&lt;/em&gt; záznamů.&lt;/p&gt;

&lt;p&gt;Jak tedy budeme postupovat, abychom se dobrali k finálnímu výsledku. Předpokládejme, že máme databázi, která obsahuje dvě tabulky, jenž jsou na sebe navázány ve správném vztahu.&lt;/p&gt;

&lt;p&gt;Založíme si tedy nový projekt a vložíme do něj &lt;strong&gt;ADO.NET Entity Data Model&lt;/strong&gt;. Necháme se provést průvodcem, napojíme se na zdrojovou databázi a přidáme do modelu nám známé dvě entity.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://cpdhtw.blu.livefilestore.com/y1pvUo6t9JfSkqyIca7wC7KMiD4Si1SGorL-Rc0mWZ7aYy-0Mp1DCezxRnfuXjZaNjhrJUnsTXcSceZ90DhYollf2A_ORGH_KWd/EF-PostCommentEntity.Png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="EF-PostCommentEntity" border="0" alt="EF-PostCommentEntity" src="http://cpdhtw.blu.livefilestore.com/y1pvUo6t9JfSkqyIca7wC7KMiD4Si1SGorL-Rc0mWZ7aYy-0Mp1DCezxRnfuXjZaNjhrJUnsTXcSceZ90DhYollf2A_ORGH_KWd/EF-PostCommentEntity.Png" width="435" height="323" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;h4&gt;Nový EntitySet s DefiningQuery&lt;/h4&gt;

&lt;p&gt;Nyní opustíme vizuálního návrháře a vrhneme se do tajů &lt;strong&gt;Storage modelu&lt;/strong&gt;. Ano, je třeba přidat nový entity set, který bude představovat pouze poslední záznamy, které získává EF z databáze. Najdeme si tedy v &lt;strong&gt;SSDL&lt;/strong&gt; schématu [1] &lt;strong&gt;EntitySet&lt;/strong&gt; pro naši entitu komentářů (reprezentující stranu n vztahu) a tuto zkopírujeme, &lt;/p&gt;

&lt;p&gt;&lt;a href="http://cpdhtw.blu.livefilestore.com/y1pr6otHzyWe7FcYHnL7-cisC79-mPIRjFBvWHGr9bC_vdhLFilFuw4G4y215y7yO4eTVVunQPzAXhXBBAr2W51yg/EF-SSDLBeforeEdit.Png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="EF-SSDLBeforeEdit" border="0" alt="EF-SSDLBeforeEdit" src="http://cpdhtw.blu.livefilestore.com/y1pr6otHzyWe7FcYHnL7-cisC79-mPIRjFBvWHGr9bC_vdhLFilFuw4G4y215y7yO4eTVVunQPzAXhXBBAr2W51yg/EF-SSDLBeforeEdit.Png" width="759" height="219" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;z takto vytvořeného EntitySetu smažeme atributy &lt;em&gt;store:Type&lt;/em&gt; a &lt;em&gt;Schema&lt;/em&gt;. Dále EntitySet přejmenujeme na &lt;em&gt;LastComment&lt;/em&gt; a do elementu umístíme element &lt;em&gt;DefiningQuery&lt;/em&gt; a zde zapíšeme náš dotaz do databáze. Ano, dotaz vypadá obdobně jako ten, který jsem zasílal jako řešení na hádanku &lt;a href="http://vbnet.cz/blog-clanek--281-jednoducha_sql_hadanka.aspx"&gt;Tomáše Herzega&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;a href="http://cpdhtw.blu.livefilestore.com/y1pq5RGwacKh9nJJOz0IfA1K6VRbwg8FGd0WAOe_Zxdr-asoJ3L1CEV_-Wqo63r0_fO9EYmh7e8kgk4xKhKaufNLw/EF-EntitySets.Png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="EF-EntitySets" border="0" alt="EF-EntitySets" src="http://cpdhtw.blu.livefilestore.com/y1pq5RGwacKh9nJJOz0IfA1K6VRbwg8FGd0WAOe_Zxdr-asoJ3L1CEV_-Wqo63r0_fO9EYmh7e8kgk4xKhKaufNLw/EF-EntitySets.Png" width="759" height="166" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Soubor ještě nezavírejte, neboť je ještě třeba přidat Entitní typ, který vznikl dotazem do databáze. Najděte si tedy entitu komentářů, zkopírujte ji a změňte ji pouze název.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://cpdhtw.blu.livefilestore.com/y1p1TOHJtTU6Smg9XleiT14WWH7mcyTc3FpHy6VoDWPZ3-ncKuX7PCGFnz4XO-WmV9FJAMzUhBSvquH12CmReIHng/EF-LastComment.Png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="EF-LastComment" border="0" alt="EF-LastComment" src="http://cpdhtw.blu.livefilestore.com/y1p1TOHJtTU6Smg9XleiT14WWH7mcyTc3FpHy6VoDWPZ3-ncKuX7PCGFnz4XO-WmV9FJAMzUhBSvquH12CmReIHng/EF-LastComment.Png" width="759" height="166" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;To by mělo být pro tuto chvíli vše co se týká ruční editace &lt;em&gt;edmx&lt;/em&gt; souboru a je možné se vrátit do vizuálního návrháře.&lt;/p&gt;

&lt;h4&gt;Nová entita a asociace&lt;/h4&gt;

&lt;p&gt;Nyní už nám schází jen poslední krok a můžeme používat vlastnost &lt;em&gt;LastComments&lt;/em&gt; a to je přidání nové entity a asociace. V modelu tedy vytvoříme novou entitu a přidáme do ní potřebné vlastnosti. Na entitě &lt;em&gt;Post&lt;/em&gt; si dále zvolíme vytvoření nové asociace, zvolte jméno a obě strany vazby, nezapomeňte vhodně pojmenovat i tzv. &lt;em&gt;Navigation Property.&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="http://cpdhtw.blu.livefilestore.com/y1psa6IBcrpRmrFX04Y9kbS00dx9qquC_WHf6xKAJbGrFFC2j-8v4ykVMsRcegp8RcRgZC9PNh3AUzLJXRrG8as7Q/EF-AllEntities.Png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="EF-AllEntities" border="0" alt="EF-AllEntities" src="http://cpdhtw.blu.livefilestore.com/y1psa6IBcrpRmrFX04Y9kbS00dx9qquC_WHf6xKAJbGrFFC2j-8v4ykVMsRcegp8RcRgZC9PNh3AUzLJXRrG8as7Q/EF-AllEntities.Png" width="428" height="377" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Nyní si vyberte tuto nově vytvořenou asociaci a v &lt;em&gt;Mapping details&lt;/em&gt; okně provedeme mapování jak je naznačeno na obrázku.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://cpdhtw.blu.livefilestore.com/y1pPBWANw3Q93IBnYKhENq-0zLA_6GH_BT8oNicGBim7w7t1v1J6oynZaMsg5oX6JEGPG-YMVBN3O4xkpF8CrGlBA/EF-Mapping.Png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="EF-Mapping" border="0" alt="EF-Mapping" src="http://cpdhtw.blu.livefilestore.com/y1pPBWANw3Q93IBnYKhENq-0zLA_6GH_BT8oNicGBim7w7t1v1J6oynZaMsg5oX6JEGPG-YMVBN3O4xkpF8CrGlBA/EF-Mapping.Png" width="428" height="559" /&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Tím je naše mise u konce a nyní můžeme používat tuto vlastnost v projektu.&lt;/p&gt;

&lt;h3&gt;Nebezpečí číhá všude&lt;/h3&gt;

&lt;p&gt;Kdybych nyní skončil, asi byste mě po nějaké době používání přestali mít rádi. Proto raději hned upozorním na nebezpečí, které na váš číhá.&lt;/p&gt;

&lt;p&gt;První upozornění se týká toho, že dané řešení tak jak je zapsáno je z pohledu vývojáře neměnné. Pokud vývojář začne používat vlastnost LastComments je to správně. Nebezpečí číhá v tom, že jsme náš Storage model upravili a svázali jsme jej tak s konkrétní implementací databázového stroje, v tomto případě &lt;em&gt;MS SQL Serveru 2005&lt;/em&gt; a vyšší. Pokud bychom chtěli migrovat na jiný databázový stroj, je třeba změnit, zdůrazním slovo &lt;strong&gt;pouze&lt;/strong&gt;, SELECT dotaz ve Storage model schématu.&lt;/p&gt;

&lt;p&gt;Druhým nebezpečenstvím pak je, že si nejsem jist správností navrženého řešení. Mohu se pouze domnívat, že je to takto správně a doufám, že mě někdo podpoří a navržený postup potvrdí.&lt;/p&gt;

&lt;p&gt;Samozřejmě, pokud najdete lepší řešení, které se nebude spoléhat na definici nové entity a asociace, budu rád za jeho zveřejnění.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;[1]&lt;/em&gt; abychom se přepnuli do možnosti editovat edmx soubor, je třeba kliknout pravým tlačítkem na modelu a zvolit volbu &lt;em&gt;Open with …&lt;/em&gt; v dialogu poté zvolit xml editor.&lt;/p&gt;</a10:content>
    </item>
    <item>
      <guid isPermaLink="false">entity-framework-in-klauzule</guid>
      <link>http://jirava.net/blog/Archive/entity-framework-in-klauzule.aspx</link>
      <category>builder.cz</category>
      <category>code snippet</category>
      <title>Entity framework a IN klauzule</title>
      <description>&lt;p&gt;V konferenci o .net na builder.cz se objevil dotaz, jak sestavit SQL dotaz pomocí Entity frameworku, který by vygeneroval na výstupu omezující podmínku IN.&lt;/p&gt;</description>
      <pubDate>Wed, 22 Jul 2009 02:43:49 -0500</pubDate>
      <a10:updated>2009-07-22T02:43:49-05:00</a10:updated>
      <a10:rights type="html">&amp;copy; Jarda Jirava 2010</a10:rights>
      <a10:content type="html">&lt;p&gt;V konferenci o .net na builder.cz se objevil dotaz, jak sestavit SQL dotaz pomocí Entity frameworku, který by vygeneroval na výstupu omezující podmínku IN.&lt;/p&gt;  &lt;p&gt;Jelikož v Linq to SQL je toto poměrně triviální řešení a je možné použít extenzní metodu Contains, neváhal jsem a autorovi potvrdil, že obdobně to bude i v případě Entity frameworku. Jenže pak ve mě začal hlodat červík nedůvěřivosti, vždyť to autor dotazu měl správně, tak proč to nejde. Až jsem přišel na to, že v EFv1 nelze použít Contains metodu tak, aby se vygenerovala IN klauzule.&lt;/p&gt;  &lt;p&gt;Samozřejmě existuje řešení, kdy je možné provést celý SQL dotaz a až následně v paměti aplikovat spojení, které zajistí omezující podmínku. Je to však řešení nepříliš praktické.&lt;/p&gt;  &lt;p&gt;Zkusil jsem tedy chvilku bádat a tady je řešení. Jedná se o to, že klauzule IN je možné reprezentovat také jako spojení jednotlivých hodnot operátorem OR. Pro lepší možnost použití je pak vytvořena extenzní metoda s názvem In a přebírající dva parametry.&lt;/p&gt;  &lt;pre class="csharpcode"&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; &lt;span class="kwrd"&gt;class&lt;/span&gt; EFExtensions {

    &lt;span class="kwrd"&gt;private&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; Expression&amp;lt;Func&amp;lt;TEntity, &lt;span class="kwrd"&gt;bool&lt;/span&gt;&amp;gt;&amp;gt; GetIn&amp;lt;TEntity, TValue&amp;gt;(
 Expression&amp;lt;Func&amp;lt;TEntity, TValue&amp;gt;&amp;gt; propertySelector,
 IEnumerable&amp;lt;TValue&amp;gt; values) {
        var property = propertySelector.Parameters.Single();
        &lt;span class="kwrd"&gt;if&lt;/span&gt; ((values == &lt;span class="kwrd"&gt;null&lt;/span&gt;) || (!values.Any()))
            &lt;span class="kwrd"&gt;return&lt;/span&gt; e =&amp;gt; &lt;span class="kwrd"&gt;false&lt;/span&gt;;

        var parts = values.Select(&lt;span class="kwrd"&gt;value&lt;/span&gt; =&amp;gt; Expression.Equal(
 propertySelector.Body, 
 Expression.Constant(&lt;span class="kwrd"&gt;value&lt;/span&gt;, &lt;span class="kwrd"&gt;typeof&lt;/span&gt;(TValue))));
        var body = parts.Aggregate(Expression.Or);

        &lt;span class="kwrd"&gt;return&lt;/span&gt; Expression.Lambda&amp;lt;Func&amp;lt;TEntity, &lt;span class="kwrd"&gt;bool&lt;/span&gt;&amp;gt;&amp;gt;(body, property);
    } 

    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; IQueryable&amp;lt;TE&amp;gt; In&amp;lt;TE, TV&amp;gt;(&lt;span class="kwrd"&gt;this&lt;/span&gt; IQueryable&amp;lt;TE&amp;gt; source, Expression&amp;lt;Func&amp;lt;TE, TV&amp;gt;&amp;gt; propertySelector, 
&lt;span class="kwrd"&gt;params&lt;/span&gt; TV[] values) {
        &lt;span class="kwrd"&gt;return&lt;/span&gt; source.Where(GetIn(propertySelector, values));
    }

    &lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;static&lt;/span&gt; IQueryable&amp;lt;TE&amp;gt; In&amp;lt;TE, TV&amp;gt;(&lt;span class="kwrd"&gt;this&lt;/span&gt; IQueryable&amp;lt;TE&amp;gt; source, Expression&amp;lt;Func&amp;lt;TE, TV&amp;gt;&amp;gt; propertySelector, 
IEnumerable&amp;lt;TV&amp;gt; values) {
        &lt;span class="kwrd"&gt;return&lt;/span&gt; source.Where(GetIn(propertySelector, values));
    } 
}&lt;/pre&gt;

&lt;p&gt;Použití této extenzní metody je pak velice jednoduché a demonstruje ji následující případ:&lt;/p&gt;

&lt;pre class="csharpcode"&gt;var ids = &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;int&lt;/span&gt;[] {1, 2, 3};
var data = db.TestTable.In(e =&amp;gt; e.IntValues, ids).OrderBy(e =&amp;gt; e.StringValues);&lt;/pre&gt;</a10:content>
    </item>
    <item>
      <guid isPermaLink="false">vi-neformalni-setkani-builder-cz</guid>
      <link>http://jirava.net/blog/Archive/vi-neformalni-setkani-builder-cz.aspx</link>
      <category>builder.cz</category>
      <category>.net technology</category>
      <title>VI. neformální setkání .net builder.cz</title>
      <description>Pojďme se přesunout od klávesnice ke stolům a popovídat si o vývojářských, ale také těch méně vývojářských tématech v příjemném prostředí některé z pražských restaurací.</description>
      <pubDate>Sun, 07 Jun 2009 06:46:29 -0500</pubDate>
      <a10:updated>2009-06-07T06:46:29-05:00</a10:updated>
      <a10:rights type="html">&amp;copy; Jarda Jirava 2010</a10:rights>
      <a10:content type="html">&lt;p&gt;Pojďme se přesunout od klávesnice ke stolům a popovídat si o vývojářských, ale také těch méně vývojářských tématech v příjemném prostředí některé z pražských restaurací.&lt;/p&gt;  &lt;p&gt;Jestliže se chcete &lt;strong&gt;neformálně&lt;/strong&gt; a přitom &lt;strong&gt;osobně potkat&lt;/strong&gt; s některými z přispěvatelů konference o&lt;strong&gt; &lt;/strong&gt;.net na serveru builder.cz, budete vítání v jednom z níže uvedených termínů. Jedná se o neformální společenské setkání vývojářů, se širokým &lt;strong&gt;záběrem témat&lt;/strong&gt;, od těch ryze o &lt;strong&gt;vývoji software&lt;/strong&gt;, ale stihneme probrat i témata jiná.&lt;/p&gt;  &lt;p&gt;Pokud tedy máte chuť, náladu a hlavně čas, rád vás uvidím:&lt;/p&gt;  &lt;p&gt;Kdy: &lt;strong&gt;15.&lt;/strong&gt; nebo &lt;strong&gt;17.6.2009&lt;/strong&gt; &lt;em&gt;(pondělí nebo středa&lt;/em&gt;)&lt;/p&gt;  &lt;p&gt;V kolik: začátek je v &lt;strong&gt;18:30&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Kde: v některé z příjemných &lt;strong&gt;pražských restaurací&lt;/strong&gt;, upřesním v potvrzovacím emailu&lt;/p&gt;  &lt;p&gt;Registrace: poprosím o &lt;strong&gt;komentář&lt;/strong&gt; s uvedením emailu a preferovaným termínem&lt;/p&gt;  &lt;p&gt;Samozřejmě jsou &lt;strong&gt;vítání všichni&lt;/strong&gt;, 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.&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Jelikož je akce již velice brzy, poprosím o registraci do &lt;strong&gt;čtvrteční půlnoci&lt;/strong&gt;.&lt;/em&gt;&lt;/p&gt;</a10:content>
    </item>
    <item>
      <guid isPermaLink="false">asp-net-mvc-kdyz-model-neni-model</guid>
      <link>http://jirava.net/blog/Archive/asp-net-mvc-kdyz-model-neni-model.aspx</link>
      <category>analysis/sw architecture</category>
      <category>.net technology</category>
      <title>asp.net MVC – když Model není Model</title>
      <description>Tak jsem si ve svém shrnutí diskuze o asp.net MVC pěkně naběhl, když jsem vyřkl následující větu: “Model představuje data k zobrazení”. Omluva.</description>
      <pubDate>Fri, 05 Jun 2009 15:35:59 -0500</pubDate>
      <a10:updated>2009-06-05T15:35:59-05:00</a10:updated>
      <a10:rights type="html">&amp;copy; Jarda Jirava 2010</a10:rights>
      <a10:content type="html">&lt;p&gt;Tak jsem si ve svém &lt;a href="http://jirava.net/blog/Archive/asp-net-mvc-best-practices-shrnuti.aspx"&gt;shrnutí diskuze o asp.net MVC&lt;/a&gt; pěkně naběhl, když jsem vyřkl následující větu: “Model představuje data k zobrazení”.&lt;/p&gt;  &lt;p&gt;Při tomto výroku jsem myslel především na skutečnost, že je častou chybou představit si Model jako databázi a jako takový je potom znám ve View. V takovém případě pak má View přímý přístup k databázi, což se mi nelíbí a určitě bych toto nedělal a ani nemohu doporučit (na čemž jsme se v diskuzi shodli). Už jsem však nemyslel na pokročilé vývojáře, kteří dle definic znají pod pojmem Model aplikaci/služby a přitom dokáží svůj model připravit k využití v Controlleru tak i k zobrazení bez následků ve View.&lt;/p&gt;  &lt;p&gt;Poté, co jsem si vše nechal uležet mi vše docvaklo a zjistil jsem, že pojmenování nebylo z mé strany úplně vhodné. Tudíž je na čase se omluvit.&lt;/p&gt;  &lt;p&gt;Takže &lt;strong&gt;Model&lt;/strong&gt;, tak jak je pojímán v definici &lt;strong&gt;MVC&lt;/strong&gt; není skutečně tím Modelem, který jsem vyřkl v oné větě. Pro toto mé označení by se více hodilo označení &lt;strong&gt;ViewModel&lt;/strong&gt;, tak jak je pojímáno v jedné z implementací MVC a to &lt;strong&gt;MVVM&lt;/strong&gt;. &lt;/p&gt;  &lt;p&gt;Pro příště se tedy budu držet terminologie, že &lt;strong&gt;View zná svůj ViewModel&lt;/strong&gt;, to samé pak platí pro komunikaci směrem od &lt;strong&gt;Controlleru k ViewModelu&lt;/strong&gt;. Pouze &lt;strong&gt;ViewModel pak ví o Modelu&lt;/strong&gt;. A nesmím ještě zapomenout na propojení z &lt;strong&gt;Controlleru na View&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;To jak se právě uvedeného propojení dá využít v psaní asp.net MVC aplikace se pokusím naznačit v příštím článku. A možná se mi tak podaří ukázat, že ono pověstné &lt;a href="http://www.vbnet.cz/blog-clanek--264-diskuse_o_mvc_a_muj_nazor_na_nej.aspx"&gt;přidání komentářů&lt;/a&gt; může znamenat změnu jen jednoho místa v … a poté změnu samotných View, tak jako by to bylo nutné udělat ve WebForms.&lt;/p&gt;</a10:content>
    </item>
    <item>
      <guid isPermaLink="false">asp-net-mvc-best-practices-shrnuti</guid>
      <link>http://jirava.net/blog/Archive/asp-net-mvc-best-practices-shrnuti.aspx</link>
      <category>analysis/sw architecture</category>
      <category>.net technology</category>
      <title>asp.net MVC Best practices – shrnutí</title>
      <description>Ve středu večer proběhla diskuze v půlkulatém kruhu na téma asp.net MVC Best practices, kterou se mi povedlo uspořádat v prostorách Microsoftu a pozvat na ni zástupce různých technologií.</description>
      <pubDate>Thu, 04 Jun 2009 15:17:22 -0500</pubDate>
      <a10:updated>2009-06-04T15:17:22-05:00</a10:updated>
      <a10:rights type="html">&amp;copy; Jarda Jirava 2010</a10:rights>
      <a10:content type="html">&lt;p&gt;Ve středu večer proběhla diskuze v půlkulatém kruhu na téma &lt;a href="http://www.asp.net/mvc"&gt;asp.net MVC&lt;/a&gt; Best practices, kterou se mi povedlo uspořádat v prostorách Microsoftu a pozvat na ni zástupce různých technologií.&lt;/p&gt;  &lt;h3&gt;Něco málo k organizaci&lt;/h3&gt;  &lt;p&gt;Dřív než se dostanu k samotnému shrnutí získaných informací, dovolím si uvést několik málo informací k organizaci a průběhu samotné diskuze. Tato totiž dopadla nad očekávání dobře a dle reakcí účastníků to není jen můj osobní pocit, za což jsem velice rád a &lt;strong&gt;musím&lt;/strong&gt; především &lt;strong&gt;zúčastněným poděkovat&lt;/strong&gt;. Maličko jsem se totiž obával, když jsem sezval zástupce různých technologií, aby diskuze nesklouzla k &lt;em&gt;flame&lt;/em&gt;-ování, ve výsledku z toho byla však konstruktivní debata trvající téměř 3 hodiny, a po ní ještě &lt;em&gt;flám&lt;/em&gt;-ování. Je vidět, že pokud se sejdou lidé, kteří mají spoustu znalostí a zkušeností, dokáží být nad věcí a přistoupit k diskuzi konstutivně. Zároveň se pak velice snadno dokáží přizpůsobit a orientovat se i v jiné technologii, jelikož se zde řeší stejné úlohy, pomocí stejných vzorů, jen s odlišnou implementací.&lt;/p&gt;  &lt;p&gt;Pro příště mám však jedno ponaučení, zúčastnění by se měli na takovéto diskuzi osobně představit. Přestože jsem připravil vizitky velikosti A4 se jménem a zastoupenou technologií, nebylo to dostačující. A tak &lt;a href="http://davidgrudl.com/"&gt;David Grudl&lt;/a&gt; (Nette PHP) zjistil až někdy kolem půlnoci, že se zúčastnil také &lt;a href="http://www.vyvojar.cz/"&gt;Michal Bláha&lt;/a&gt; (.NET WebForms). Zajímavá chvilka taktéž nastala při diskuzi, kdy &lt;a href="http://vavru.cz/"&gt;Vlasta Vávrů&lt;/a&gt; (Java, PHP) se podivil nad komplexností deploymentu popisovaného &lt;a href="http://www.linkedin.com/in/honzakral"&gt;Honzou Králem&lt;/a&gt; (Django). Zajímavé postřehy pak měli také &lt;a href="http://blog.karmi.cz"&gt;Karel Minařík&lt;/a&gt; (Rails), &lt;a href="http://www.borber.com/"&gt;Borek Bernard&lt;/a&gt; (Flex) a Daniel Kolman (.NET MVC). Musím též poděkovat &lt;a href="http://rarous.net/"&gt;Aleši Roubíčkovi&lt;/a&gt; a &lt;a href="http://www.augi.cz"&gt;Michalu Augustýnovi&lt;/a&gt; za pomoc a podporu při organizaci. Samozřejmě patří dík i ostatním, kteří se zúčastnili a zapojili se do diskuze.&lt;/p&gt;  &lt;p&gt;Ostatním, kteří měli zájem se diskuze zúčastnit, nebo mají zájem dozvědět se závěry z diskuze mám potěšující zprávu, v dohledné době proběhne přednáška na téma asp.net MVC, kde budou prezentovány závěry z uskutečněné diskuze vzešlé.&lt;/p&gt;  &lt;h3&gt;Pro nedočkavce – shrnutí MVC Best practices &lt;/h3&gt;  &lt;p&gt;Myslím, že velice detailní shrnutí již sepsal Borek Bernard v ohlédnutí &lt;a href="http://www.borber.com/blog/z-diskuse-o-mvc"&gt;z diskuze o MVC&lt;/a&gt; a svůj pohled na, asi jedinou flame diskuze, pak Tomáš Herzeg o &lt;a href="http://vbnet.cz/blog-clanek--264-diskuse_o_mvc_a_muj_nazor_na_nej.aspx"&gt;rozdílech mezi WebForms a asp.net MVC&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Přidám tedy jen svůj pohled, který doufejme doplní výše uvedené články. Co jsem si odnesl z diskuze já a co mě velice potěšilo, že jsem se vesměs se svými předchozími články popisujícími použití &lt;a href="http://jirava.net/blog/Archive/mvvm-aspnet-mvc.aspx"&gt;MVVM v asp.net MVC&lt;/a&gt; celkem trefil do toho, jak uvažují i ostatní o přístupu k implementaci MVC principu pro webové aplikace. Právě David Grudl popisoval velice podobný scénář, který použil v &lt;a href="http://nettephp.com/cs/"&gt;Nette&lt;/a&gt; pomocí “plniče” Presenteru, jako jsem uvedl v článku &lt;a href="http://jirava.net/blog/Archive/jak-vypada-viewmodel-aspnet-mvc.aspx"&gt;jak vypadá ViewModel v asp.net MVC&lt;/a&gt;.&lt;/p&gt;  &lt;h4&gt;V hlavní roli Model&lt;/h4&gt;  &lt;p&gt;Co je třeba si uvědomit při využití jakékoliv implementace &lt;strong&gt;MVC&lt;/strong&gt; je role &lt;strong&gt;Modelu&lt;/strong&gt;. Jak zmínili téměř všichni přítomní, především u začínajících vývojářů je Model považován za databázi, což určitě není.&lt;strong&gt; Model představuje data&lt;/strong&gt;, která jsou připravena &lt;strong&gt;k zobrazení&lt;/strong&gt;. Na co určitě zapomeňte je předávání DataContextu do View, pokud chcete využít třeba &lt;strong&gt;LINQ2SQL&lt;/strong&gt; nebo &lt;strong&gt;Entity Framework&lt;/strong&gt;. Maličko lepší službu už uděláte v případě, že předáte jen vygenerované datové objekty, na mnoha malých webech to &lt;strong&gt;bude dostačující&lt;/strong&gt;. Jestliže však uvažujete o něčem větším, vytvořte si vhodný &lt;strong&gt;view model&lt;/strong&gt;, který bude respektovat potřeby pro zobrazování v aplikaci, nikoliv potřeby relační databáze. Do modelu se pak nebojte zahrnout i &lt;strong&gt;podpůrné vlastnoti&lt;/strong&gt; vhodné při &lt;strong&gt;zobrazování dat&lt;/strong&gt;.&lt;/p&gt;  &lt;h4&gt;Jednoduchý Controller&lt;/h4&gt;  &lt;p&gt;Citovat Davida si dovolil již Borek, já mohu jen souhlasit. &lt;strong&gt;Controller&lt;/strong&gt; by měl být co &lt;strong&gt;nejjednodušší&lt;/strong&gt;. Měl by se postarat jen o &lt;strong&gt;výběr&lt;/strong&gt; vhodného &lt;strong&gt;ViewModelu&lt;/strong&gt; (Presenteru), zvalidovat &lt;strong&gt;vstupní data&lt;/strong&gt; a vybrat &lt;strong&gt;šablonu&lt;/strong&gt; (View), která provede &lt;strong&gt;zobrazení dat&lt;/strong&gt;. Případně se samozřejmě postará o přesměrování na jinou akci, což je jen o tom, že vybere jiný ViewModel a jinou šablonu, která se zobrazí.&lt;/p&gt;  &lt;h4&gt;Pasivní View&lt;/h4&gt;  &lt;p&gt;Přesně tak, nesnažte se do &lt;strong&gt;View&lt;/strong&gt; vkládat složitější logiku než je jen &lt;strong&gt;vypsání dat na potřebná místa&lt;/strong&gt;. Šablony v asp.net MVC mohou svádět k tomu je vytvořit aktivní a manipulovat zde s Modelem, obzvláště pak v případě, že si do View předáme potřebné objekty typu DataContext. Dobrým řešením by mohlo být použití takového &lt;strong&gt;ViewEngine&lt;/strong&gt;, který dovoluje pouze &lt;strong&gt;deklarativní zápis&lt;/strong&gt;, případně &lt;strong&gt;komponentové&lt;/strong&gt; poskládání &lt;strong&gt;stránky&lt;/strong&gt; – obdobně jako bylo představováno frameworkem &lt;strong&gt;Django&lt;/strong&gt;.&lt;/p&gt;  &lt;h3&gt;Nenecháme si to pro sebe?!&lt;/h3&gt;  &lt;p&gt;Samozřejmě je toho víc a výše zmíněné je jen to hlavní co mi utkvělo v paměti. O další informace se budu chtít s vámi podělit. Kdy to konkrétně bude ještě nevím, ale určitě sledujte vypisované &lt;a href="http://akce.altairis.cz/"&gt;akce&lt;/a&gt;. A není to vše, jak jsem se již zmiňoval v úvodu, snad všichni pozvaní vývojáři byli uspořádáním takovéto akce nadšeni a rádi se zúčastní obdobných diskuzí. A jelikož se více jak půl hodinu taktéž diskutovalo o &lt;strong&gt;testování aplikací&lt;/strong&gt;, předběžně jsme se domluvili na tomto tématu. Představa je formou&lt;strong&gt; panelové diskuze&lt;/strong&gt;, tudíž pokud bude mít někdo zájem, určitě se bude moci zúčastnit.&lt;/p&gt;  &lt;p&gt;Budu se tedy těšit na brzkou viděnou se všemi zájemci o vývoj pomocí &lt;strong&gt;asp.net MVC&lt;/strong&gt;.&lt;/p&gt;</a10:content>
    </item>
  </channel>
</rss>