<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" version="2.0">
  <channel>
    <title>René Stein - LINQ</title>
    <link>http://blog.renestein.net/</link>
    <description>Názory vzešlé z mesaliance humanitní skepse a technologického optimismu</description>
    <image>
      <url>http://blog.renestein.net/themes/discreetBlogBlue/SpotImages/sfinga_rss.jpg</url>
      <title>René Stein - LINQ</title>
      <link>http://blog.renestein.net/</link>
    </image>
    <language>cs-CZ</language>
    <copyright>René Stein</copyright>
    <lastBuildDate>Fri, 24 Feb 2012 21:06:21 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 1.9.7174.0</generator>
    <managingEditor>rene@renestein.net</managingEditor>
    <webMaster>rene@renestein.net</webMaster>
    <item>
      <trackback:ping>http://blog.renestein.net/Trackback.aspx?guid=14e232fb-6780-4183-b273-d877381d1305</trackback:ping>
      <pingback:server>http://blog.renestein.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.renestein.net/PermaLink,guid,14e232fb-6780-4183-b273-d877381d1305.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://blog.renestein.net/CommentView,guid,14e232fb-6780-4183-b273-d877381d1305.aspx</wfw:comment>
      <wfw:commentRss>http://blog.renestein.net/SyndicationService.asmx/GetEntryCommentsRss?guid=14e232fb-6780-4183-b273-d877381d1305</wfw:commentRss>
      <slash:comments>4</slash:comments>
      <title>Entity Framework 4.3. Code First - (nechutn&amp;yacute;) probl&amp;eacute;m s TPC mapov&amp;aacute;n&amp;iacute;m?</title>
      <guid isPermaLink="false">http://blog.renestein.net/PermaLink,guid,14e232fb-6780-4183-b273-d877381d1305.aspx</guid>
      <link>http://blog.renestein.net/Entity+Framework+43+Code+First+Nechutnyacute+Probleacutem+S+TPC+Mapovaacuteniacutem.aspx</link>
      <pubDate>Fri, 24 Feb 2012 21:06:21 GMT</pubDate>
      <description>&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Update 25. 2.2011: Tak chyba potvrzena EF týmem. Jedná se skutečně o chybu, která
je částečně popsána v known issues.&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;Diego B Vega : @Rene Stein: Thanks for reporting this and for the repro. What
you describe seems to be a bug in TPC mapping that we are already aware of and that
we are planning to fix in the upcoming EF 4.3.1. Please take a look at the list of
known issues above for more information. &lt;/em&gt; 
&lt;p&gt;
&lt;em&gt;Jedná se tedy o chybu, kterou někdo zmínil i&amp;nbsp; v komentářích. Zarážející ale
je, že k chybě “chybí sloupec v databázi” se dostanete teprve tehdy, kdy vygenerujete
databázi s jiným než požadovaným schématem, odchytnete výjimku při dotazování a podíváte
se na popisek vnořené výjimky. V “known issues” EF by spíš podle mě mělo být&amp;nbsp;
- ve verzi 4.3 se vám ani nepodaří vygenerovat databázi s TPC mapováním dědičnosti
a volání metody MapInheritedProperties&amp;nbsp; při konfiguraci entit je jen zbytečná
dekorace v kódu a cvičení v marnosti.&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
Mohl by prosím někdo ověřit, že jsem buď udělal nějakou triviální chybu při mapování,
anebo potvrdit mé podezření, že je EF Code First v poslední verzi 4.3 natolik prolezlý
chybami,&amp;nbsp; že v něm nefunguje ani tento triviální scénář.&lt;br&gt;
&lt;br&gt;
Problém se snažím reprodukovat na tomto kódu.
&lt;/p&gt;
&lt;p&gt;
Mám třídy Base a Derived. Jejich role asi vysvětlovat nikomu nemusím.&lt;img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://blog.renestein.net/content/binary/Windows-Live-Writer/Entity-Framework-4.3.-Code-First---_12BC6/wlEmoticon-smile_2.png"&gt;
&lt;/p&gt;
&lt;script src="https://gist.github.com/1903468.js?file=Base.cs"&gt;&lt;/script&gt;&lt;script src="https://gist.github.com/1903468.js?file=Derived.cs"&gt;&lt;/script&gt;
&lt;p&gt;
Snažím se pro mapování třídy Derived do databáze použít v db kontextu strategii TPC
– table per (concrete) class (metoda MapInheritedProperties).&amp;nbsp; 
&lt;/p&gt;
&lt;script src="https://gist.github.com/1903468.js?file=MyContextDel.cs"&gt;&lt;/script&gt;
&lt;p&gt;
Po spuštění se aplikace vytvoří databáze se dvěma tabulkami. Struktura databáze ale
odpovídá TPT strategii pro mapování dědičnosti: 
&lt;p&gt;
Tabulka Base má sloupce Id a BaseProperty, tabulka Derived Id 
&lt;pk   , fk&gt;
a Note. Volání MapInheritedProperties je tedy zcela ignorováno.
&lt;/p&gt;
&lt;p&gt;
&amp;nbsp;
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://blog.renestein.net/content/binary/Windows-Live-Writer/Entity-Framework-4.3.-Code-First---_12BC6/EFTables.png"&gt;&lt;img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="EFTables" border="0" alt="EFTables" src="http://blog.renestein.net/content/binary/Windows-Live-Writer/Entity-Framework-4.3.-Code-First---_12BC6/EFTables_thumb.png" width="358" height="331"&gt;&lt;/a&gt;
&lt;/p&gt;
Jak popisuju i v kódu, matoucí je to, že Entity Framework sice mapuje třídy do databáze
podle TPT strategie, ale dotazy klade, jako kdyby v databázi byly třída Derived namapována
TPC strategií. 
&lt;br&gt;
Vygenerovaný SQL dotaz do tabulky Derived vypadá takto:&lt;br&gt;
&lt;br&gt;
&lt;em&gt;SELECT '0X0X' AS [C1], [Extent1].[id] AS [id], &lt;strong&gt;[Extent1].[BaseProperty]
AS [BaseProperty],&lt;/strong&gt; [Extent1].[Note] AS [Note] FROM &lt;strong&gt;[dbo].[Derived] &lt;/strong&gt;AS
[Extent1] &lt;/em&gt;&lt;script src="https://gist.github.com/1903468.js?file=Program.cs"&gt;&lt;/script&gt;
&lt;p&gt;
Schizofrenní Entity Framework se beze všech skrupulí snaží dohledat v tabulce Derived
sloupec BaseProperty (TPC mapování), což pochopitelně skončí výjimkou při vykonávání
dotazu, protože se jiná část jeho vícečetné osobnosti složené z nespolupracujících
spoluautorů EF rozhodla při generování databáze, že TPT je pro každého aplikačního
vývojáře vždycky jasná volba. 
&lt;/p&gt;
&lt;p&gt;
A protože perverzních projevů EF se při pátečním večeru nelze nabažit, tak tady je
skript pro založení databáze, který jsem vytáhl z podkladového ObjectContextu a&lt;strong&gt; který
by měl mapovat podle TPC, což se ale nestane, protože je proti databázi spuštěn skript
zcela jiný&lt;/strong&gt;.
&lt;/p&gt;
Výsledek Trace.WriteLine(((IObjectContextAdapter) context).ObjectContext.CreateDatabaseScript()); &lt;script src="https://gist.github.com/1903468.js?file=create.sql"&gt;&lt;/script&gt;
&lt;p&gt;
&lt;a href="http://blog.renestein.net/__DOWNLOAD/EF_TPC_TPH.rar"&gt;Projekt s reprodukcí
problému ke stažení.&lt;/a&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://blog.renestein.net/aggbug.ashx?id=14e232fb-6780-4183-b273-d877381d1305" /&gt;</description>
      <comments>http://blog.renestein.net/CommentView,guid,14e232fb-6780-4183-b273-d877381d1305.aspx</comments>
      <category>.NET Framework</category>
      <category>C#</category>
      <category>Entity Framework</category>
      <category>LINQ</category>
    </item>
    <item>
      <trackback:ping>http://blog.renestein.net/Trackback.aspx?guid=7aff293a-4afa-4efa-8bfa-78500f267cfa</trackback:ping>
      <pingback:server>http://blog.renestein.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.renestein.net/PermaLink,guid,7aff293a-4afa-4efa-8bfa-78500f267cfa.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://blog.renestein.net/CommentView,guid,7aff293a-4afa-4efa-8bfa-78500f267cfa.aspx</wfw:comment>
      <wfw:commentRss>http://blog.renestein.net/SyndicationService.asmx/GetEntryCommentsRss?guid=7aff293a-4afa-4efa-8bfa-78500f267cfa</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Přibližně před rokem jsem u dvou firem začínal sérii technologických kurzů subjektivním
shrnutím změn (nejen) v aplikacích psaných v .Net Frameworku. Nedávno jsme ji s kolegou
náhodou otevřeli a pobavili jsme se nad tím, jak je rok v IT stále dlouhá doba a že
zde dvojnásobně platí “tempus fugit”. Napadlo mě, že se nad prezentací možná se pobaví
i někdo další, hlavně v pasážích, kde jemně naznačuju zálibu Microsoftu v zařezávání
technologií.<img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://blog.renestein.net/content/binary/Windows-Live-Writer/de5bdc4acd85_ADFB/wlEmoticon-smile_2.png" /></p>
        <p>
U prezentace je třeba mít na paměti:
</p>
        <ol>
          <li>
Jedná se jen o osnovu “přehledové“ a cca dvouhodinové přednášky.<br /><br /></li>
          <li>
Témata, typy projektů a technologie jsou v přednášce voleny podle zájmu zákazníka.<br /><br /></li>
          <li>
Snažil jsem se nebýt hned  v této úvodní přednášce příliš ostrý a konfliktní.<img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://blog.renestein.net/content/binary/Windows-Live-Writer/de5bdc4acd85_ADFB/wlEmoticon-smile_2.png" /><br /><br /></li>
          <li>
Zvolená témata se týkala oblastí, které jsme v dalších dnech probíraly detailněji
na konkrétních projektech vytvořených na návazných kurzech. Po pár zkušenostech si
myslím, že jediný smyslupný kurz zabývající se technologií či programovacím jazykem
je ten, na kterém píšete před účastníky kód. Tato přednáška byla koncipována jako
motivační úvod k dalším tématům.</li>
        </ol>
        <div style="width: 425px" id="__ss_7332936">
          <strong style="margin: 12px 0px 4px; display: block">
            <a title="Moderni trendy ve_vyvoji_aplikaci" href="http://www.slideshare.net/RENESTEIN/moderni-trendy-vevyvojiaplikaci">Moderni
trendy ve_vyvoji_aplikaci</a>
          </strong>
          <object id="__sse7332936" width="425" height="355">
            <param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=modernitrendyvevyvojiaplikaci-110321070156-phpapp01&amp;stripped_title=moderni-trendy-vevyvojiaplikaci&amp;userName=RENESTEIN" />
            <param name="allowFullScreen" value="true" />
            <param name="allowScriptAccess" value="always" />
            <embed name="__sse7332936" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=modernitrendyvevyvojiaplikaci-110321070156-phpapp01&amp;stripped_title=moderni-trendy-vevyvojiaplikaci&amp;userName=RENESTEIN" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355">
            </embed>
          </object>
          <div style="padding-bottom: 12px; padding-left: 0px; padding-right: 0px; padding-top: 5px">View
more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/RENESTEIN">RENESTEIN</a>.
</div>
        </div>
        <img width="0" height="0" src="http://blog.renestein.net/aggbug.ashx?id=7aff293a-4afa-4efa-8bfa-78500f267cfa" />
      </body>
      <title>Prezentace Modern&amp;iacute; trendy ve v&amp;yacute;voji aplikac&amp;iacute;</title>
      <guid isPermaLink="false">http://blog.renestein.net/PermaLink,guid,7aff293a-4afa-4efa-8bfa-78500f267cfa.aspx</guid>
      <link>http://blog.renestein.net/Prezentace+Moderniacute+Trendy+Ve+Vyacutevoji+Aplikaciacute.aspx</link>
      <pubDate>Mon, 21 Mar 2011 12:11:41 GMT</pubDate>
      <description>&lt;p&gt;
Přibližně před rokem jsem u dvou firem začínal sérii technologických kurzů subjektivním
shrnutím změn (nejen) v aplikacích psaných v .Net Frameworku. Nedávno jsme ji s kolegou
náhodou otevřeli a pobavili jsme se nad tím, jak je rok v IT stále dlouhá doba a že
zde dvojnásobně platí “tempus fugit”. Napadlo mě, že se nad prezentací možná se pobaví
i někdo další, hlavně v pasážích, kde jemně naznačuju zálibu Microsoftu v zařezávání
technologií.&lt;img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://blog.renestein.net/content/binary/Windows-Live-Writer/de5bdc4acd85_ADFB/wlEmoticon-smile_2.png"&gt;
&lt;/p&gt;
&lt;p&gt;
U prezentace je třeba mít na paměti:
&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
Jedná se jen o osnovu “přehledové“ a cca dvouhodinové přednášky.&lt;br&gt;
&lt;br&gt;
&lt;li&gt;
Témata, typy projektů a technologie jsou v přednášce voleny podle zájmu zákazníka.&lt;br&gt;
&lt;br&gt;
&lt;li&gt;
Snažil jsem se nebýt hned&amp;nbsp; v této úvodní přednášce příliš ostrý a konfliktní.&lt;img style="border-bottom-style: none; border-right-style: none; border-top-style: none; border-left-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://blog.renestein.net/content/binary/Windows-Live-Writer/de5bdc4acd85_ADFB/wlEmoticon-smile_2.png"&gt;
&lt;br&gt;
&lt;br&gt;
&lt;li&gt;
Zvolená témata se týkala oblastí, které jsme v dalších dnech probíraly detailněji
na konkrétních projektech vytvořených na návazných kurzech. Po pár zkušenostech si
myslím, že jediný smyslupný kurz zabývající se technologií či programovacím jazykem
je ten, na kterém píšete před účastníky kód. Tato přednáška byla koncipována jako
motivační úvod k dalším tématům.&lt;/li&gt;
&lt;/ol&gt;
&lt;div style="width: 425px" id="__ss_7332936"&gt;&lt;strong style="margin: 12px 0px 4px; display: block"&gt;&lt;a title="Moderni trendy ve_vyvoji_aplikaci" href="http://www.slideshare.net/RENESTEIN/moderni-trendy-vevyvojiaplikaci"&gt;Moderni
trendy ve_vyvoji_aplikaci&lt;/a&gt;&lt;/strong&gt;
&lt;object id="__sse7332936" width="425" height="355"&gt;
&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=modernitrendyvevyvojiaplikaci-110321070156-phpapp01&amp;amp;stripped_title=moderni-trendy-vevyvojiaplikaci&amp;amp;userName=RENESTEIN" /&gt;
&lt;param name="allowFullScreen" value="true" /&gt;
&lt;param name="allowScriptAccess" value="always" /&gt;&lt;embed name="__sse7332936" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=modernitrendyvevyvojiaplikaci-110321070156-phpapp01&amp;amp;stripped_title=moderni-trendy-vevyvojiaplikaci&amp;amp;userName=RENESTEIN" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;
&lt;/object&gt;
&lt;div style="padding-bottom: 12px; padding-left: 0px; padding-right: 0px; padding-top: 5px"&gt;View
more &lt;a href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/RENESTEIN"&gt;RENESTEIN&lt;/a&gt;.
&lt;/div&gt;
&lt;/div&gt;
&lt;img width="0" height="0" src="http://blog.renestein.net/aggbug.ashx?id=7aff293a-4afa-4efa-8bfa-78500f267cfa" /&gt;</description>
      <comments>http://blog.renestein.net/CommentView,guid,7aff293a-4afa-4efa-8bfa-78500f267cfa.aspx</comments>
      <category>.NET Framework</category>
      <category>ASP.NET</category>
      <category>C#</category>
      <category>Compact .Net Framework</category>
      <category>LINQ</category>
      <category>RX Extensions</category>
      <category>Silverlight</category>
      <category>Web Services</category>
      <category>Windows Forms</category>
      <category>WP7</category>
    </item>
    <item>
      <trackback:ping>http://blog.renestein.net/Trackback.aspx?guid=9dc8102d-ebe5-4958-bbf1-247c1ce0b47c</trackback:ping>
      <pingback:server>http://blog.renestein.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.renestein.net/PermaLink,guid,9dc8102d-ebe5-4958-bbf1-247c1ce0b47c.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://blog.renestein.net/CommentView,guid,9dc8102d-ebe5-4958-bbf1-247c1ce0b47c.aspx</wfw:comment>
      <wfw:commentRss>http://blog.renestein.net/SyndicationService.asmx/GetEntryCommentsRss?guid=9dc8102d-ebe5-4958-bbf1-247c1ce0b47c</wfw:commentRss>
      <title>C# - kontrola existence vlastnosti u typu dynamic bez vyvol&amp;aacute;n&amp;iacute; v&amp;yacute;jimky RuntimeBinderException.</title>
      <guid isPermaLink="false">http://blog.renestein.net/PermaLink,guid,9dc8102d-ebe5-4958-bbf1-247c1ce0b47c.aspx</guid>
      <link>http://blog.renestein.net/C+Kontrola+Existence+Vlastnosti+U+Typu+Dynamic+Bez+Vyvolaacuteniacute+Vyacutejimky+RuntimeBinderException.aspx</link>
      <pubDate>Mon, 23 Aug 2010 13:33:03 GMT</pubDate>
      <description>Dan Steigerwald mě na Facebooku upozornil na článek “Challenge: Dynamically dynamic” na blogu Ayende Rahiena. Jak se můžete sami podívat, celá výzva se týká toho, jak zjistit, jestli u dané instance typu dynamic existuje vlastnost se zadaným jménem, aniž byste museli odchytávat  výjimku RuntimeBinderException, která vás na chybějící vlastnost sice drsně upozorní, ale zároveň vás nutí používat kód řízený výjimkami..Jak vypadá kód detekující existenci vlastnosti s vy/zneužitím RuntimeBinderException?
&lt;img width="0" height="0" src="http://blog.renestein.net/aggbug.ashx?id=9dc8102d-ebe5-4958-bbf1-247c1ce0b47c"/&gt;</description>
      <comments>http://blog.renestein.net/CommentView,guid,9dc8102d-ebe5-4958-bbf1-247c1ce0b47c.aspx</comments>
      <category>.NET Framework</category>
      <category>C#</category>
      <category>LINQ</category>
      <category>Programátorské hádanky</category>
    </item>
    <item>
      <trackback:ping>http://blog.renestein.net/Trackback.aspx?guid=2228b31b-1e49-4927-ba1e-1a33c1418142</trackback:ping>
      <pingback:server>http://blog.renestein.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.renestein.net/PermaLink,guid,2228b31b-1e49-4927-ba1e-1a33c1418142.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://blog.renestein.net/CommentView,guid,2228b31b-1e49-4927-ba1e-1a33c1418142.aspx</wfw:comment>
      <wfw:commentRss>http://blog.renestein.net/SyndicationService.asmx/GetEntryCommentsRss?guid=2228b31b-1e49-4927-ba1e-1a33c1418142</wfw:commentRss>
      <title>Doplněn&amp;iacute; metod FillPie a DrawPie do objektu Graphics v Compact .Net Frameworku</title>
      <guid isPermaLink="false">http://blog.renestein.net/PermaLink,guid,2228b31b-1e49-4927-ba1e-1a33c1418142.aspx</guid>
      <link>http://blog.renestein.net/Dopln%c4%9bniacute+Metod+FillPie+A+DrawPie+Do+Objektu+Graphics+V+Compact+Net+Frameworku.aspx</link>
      <pubDate>Fri, 12 Feb 2010 12:17:54 GMT</pubDate>
      <description>Compact .Net Framework sice nemá metodu FillPie ani DrawPie, ale má obecné metody DrawPolygon a FillPolygon, se kterými nakreslíte, co se vám zlíbí.  Zhýrale jsem kód opět trochu zlinqovatěl, asi začínám být na LINQu a extenzních metodách závislý. Inu, jak říkáme my C# vývojáři, původně odříkané extenzní metody plný zásobník volání. :-)&lt;img width="0" height="0" src="http://blog.renestein.net/aggbug.ashx?id=2228b31b-1e49-4927-ba1e-1a33c1418142"/&gt;</description>
      <comments>http://blog.renestein.net/CommentView,guid,2228b31b-1e49-4927-ba1e-1a33c1418142.aspx</comments>
      <category>Compact .Net Framework</category>
      <category>LINQ</category>
    </item>
    <item>
      <trackback:ping>http://blog.renestein.net/Trackback.aspx?guid=24bbfc33-2595-43c9-a9a2-1df1de6a9b30</trackback:ping>
      <pingback:server>http://blog.renestein.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.renestein.net/PermaLink,guid,24bbfc33-2595-43c9-a9a2-1df1de6a9b30.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://blog.renestein.net/CommentView,guid,24bbfc33-2595-43c9-a9a2-1df1de6a9b30.aspx</wfw:comment>
      <wfw:commentRss>http://blog.renestein.net/SyndicationService.asmx/GetEntryCommentsRss?guid=24bbfc33-2595-43c9-a9a2-1df1de6a9b30</wfw:commentRss>
      <slash:comments>3</slash:comments>
      <title>Hr&amp;aacute;tky s Reaktivn&amp;iacute;m frameworkem (RX extenze)</title>
      <guid isPermaLink="false">http://blog.renestein.net/PermaLink,guid,24bbfc33-2595-43c9-a9a2-1df1de6a9b30.aspx</guid>
      <link>http://blog.renestein.net/Hraacutetky+S+Reaktivniacutem+Frameworkem+RX+Extenze.aspx</link>
      <pubDate>Tue, 02 Feb 2010 06:43:00 GMT</pubDate>
      <description>Zkusme se nyní podívat, jak by nám s “převrácením starších asynchronních metod z hlavy zpět na synchronní nohy” mohl pomoci RX Framework. Úplné základy v tomto článku nezazní a začátečníky odkazuji na sérii přednášek na Channel 9, kde dozvíte i zajímavé podrobnosti o genezi celého RX Frameworku  a matematické dualitě rozhraní IEnumerable a IObservable (jinými slovy o společných rysech dobře známých GoF návrhových vzorů Iterátor a Observer). &lt;img width="0" height="0" src="http://blog.renestein.net/aggbug.ashx?id=24bbfc33-2595-43c9-a9a2-1df1de6a9b30"/&gt;</description>
      <comments>http://blog.renestein.net/CommentView,guid,24bbfc33-2595-43c9-a9a2-1df1de6a9b30.aspx</comments>
      <category>.NET Framework</category>
      <category>C# Posterous API</category>
      <category>LINQ</category>
      <category>Návrhové vzory</category>
      <category>RX Extensions</category>
      <category>Windows Forms</category>
    </item>
    <item>
      <trackback:ping>http://blog.renestein.net/Trackback.aspx?guid=c00e3a67-5b1e-47a4-be6a-bfcedf7b462c</trackback:ping>
      <pingback:server>http://blog.renestein.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.renestein.net/PermaLink,guid,c00e3a67-5b1e-47a4-be6a-bfcedf7b462c.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://blog.renestein.net/CommentView,guid,c00e3a67-5b1e-47a4-be6a-bfcedf7b462c.aspx</wfw:comment>
      <wfw:commentRss>http://blog.renestein.net/SyndicationService.asmx/GetEntryCommentsRss?guid=c00e3a67-5b1e-47a4-be6a-bfcedf7b462c</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <title>Uk&amp;aacute;zka pr&amp;aacute;ce s Posterous API &amp;ndash; z&amp;aacute;lohov&amp;aacute;n&amp;iacute; blogu</title>
      <guid isPermaLink="false">http://blog.renestein.net/PermaLink,guid,c00e3a67-5b1e-47a4-be6a-bfcedf7b462c.aspx</guid>
      <link>http://blog.renestein.net/Ukaacutezka+Praacutece+S+Posterous+API+Ndash+Zaacutelohovaacuteniacute+Blogu.aspx</link>
      <pubDate>Wed, 20 Jan 2010 16:54:21 GMT</pubDate>
      <description>Po jednoduchém přehledu možností mého C# Posterous API wrapperu se nyní podíváme, jak se dá API použít k zálohování vašeho blogu. Pro účely tohoto článku předpokládám, že jste úvodní článek o API wrapperu četli.

Zálohovač blogu (RSPosterousBackup.exe) je jednoduchá konzolová aplikace, které stačí předat uživatelské jméno (parametr –u)  a heslo (parametr –p)  vašeho účtu na Posterous a také adresář vašem počítači (parametr bd), do kterého chcete blog zazálohovat.

Jednoduchá ukázka:
...&lt;img width="0" height="0" src="http://blog.renestein.net/aggbug.ashx?id=c00e3a67-5b1e-47a4-be6a-bfcedf7b462c"/&gt;</description>
      <comments>http://blog.renestein.net/CommentView,guid,c00e3a67-5b1e-47a4-be6a-bfcedf7b462c.aspx</comments>
      <category>.NET Framework</category>
      <category>C# Posterous API</category>
      <category>LINQ</category>
      <category>RX Extensions</category>
    </item>
    <item>
      <trackback:ping>http://blog.renestein.net/Trackback.aspx?guid=dc4df303-bc27-4d9c-b817-0ca84fea8825</trackback:ping>
      <pingback:server>http://blog.renestein.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.renestein.net/PermaLink,guid,dc4df303-bc27-4d9c-b817-0ca84fea8825.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://blog.renestein.net/CommentView,guid,dc4df303-bc27-4d9c-b817-0ca84fea8825.aspx</wfw:comment>
      <wfw:commentRss>http://blog.renestein.net/SyndicationService.asmx/GetEntryCommentsRss?guid=dc4df303-bc27-4d9c-b817-0ca84fea8825</wfw:commentRss>
      <title>LINQ a logov&amp;aacute;n&amp;iacute; na př&amp;iacute;kladu logov&amp;aacute;n&amp;iacute; kroků Dijsktrova algoritmu</title>
      <guid isPermaLink="false">http://blog.renestein.net/PermaLink,guid,dc4df303-bc27-4d9c-b817-0ca84fea8825.aspx</guid>
      <link>http://blog.renestein.net/LINQ+A+Logovaacuteniacute+Na+P%c5%99iacutekladu+Logovaacuteniacute+Krok%c5%af+Dijsktrova+Algoritmu.aspx</link>
      <pubDate>Tue, 03 Mar 2009 15:34:35 GMT</pubDate>
      <description>Na LINQu je pěkné, jak jednoduše můžeme LINQ výraz upravit nebo jej bezbolestně rozšířit o další části. Nedávno jsem publikoval článek Dijsktrův alogritmus pomocí LINQu, extenzních metod a lambda výrazů a nyní si ukážeme drobnou úpravu v kódu, která způsobí, že se před každým rekurzivním voláním vždy vypíšou i prozatímní výsledky hledání nejkratší cesty.



Abychom mohli zalogovat výsledek, vytvoříme si vlastní extenzní metody pro výpis informací z předaného libovolného generického IEnumerable&lt;T&gt; do ...&lt;img width="0" height="0" src="http://blog.renestein.net/aggbug.ashx?id=dc4df303-bc27-4d9c-b817-0ca84fea8825"/&gt;</description>
      <comments>http://blog.renestein.net/CommentView,guid,dc4df303-bc27-4d9c-b817-0ca84fea8825.aspx</comments>
      <category>.NET Framework</category>
      <category>Compact .Net Framework</category>
      <category>LINQ</category>
    </item>
    <item>
      <trackback:ping>http://blog.renestein.net/Trackback.aspx?guid=19e20d35-6660-4911-b640-d666aed87aba</trackback:ping>
      <pingback:server>http://blog.renestein.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.renestein.net/PermaLink,guid,19e20d35-6660-4911-b640-d666aed87aba.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://blog.renestein.net/CommentView,guid,19e20d35-6660-4911-b640-d666aed87aba.aspx</wfw:comment>
      <wfw:commentRss>http://blog.renestein.net/SyndicationService.asmx/GetEntryCommentsRss?guid=19e20d35-6660-4911-b640-d666aed87aba</wfw:commentRss>
      <slash:comments>2</slash:comments>
      <title>Dijsktrův alogritmus pomoc&amp;iacute; LINQu, extenzn&amp;iacute;ch metod a lambda v&amp;yacute;razů</title>
      <guid isPermaLink="false">http://blog.renestein.net/PermaLink,guid,19e20d35-6660-4911-b640-d666aed87aba.aspx</guid>
      <link>http://blog.renestein.net/Dijsktr%c5%afv+Alogritmus+Pomociacute+LINQu+Extenzniacutech+Metod+A+Lambda+Vyacuteraz%c5%af.aspx</link>
      <pubDate>Wed, 11 Feb 2009 18:13:14 GMT</pubDate>
      <description>Pokusil jsem se napsat Dijsktrův algoritmus pomocí LINQ konstrukcí. Pokud někdo z vás tápe, k čemu je Dijsktrův algoritmus dobrý a k čemu slouží, odkážu jej na podrobný článek na Wikipedii. Zde jen připomenu, že Dijsktrův algoritmus slouží k nalezení nejkratších cest v grafu z jednoho zdrojového uzlu ke všem ostatním uzlům. Je tak možné najít například nejkratší cestu z jednoho města do druhého. Na internetu jsem našel jeden graf, který budeme mít stále před očima a na který budeme Dijkstrův algoritmus napsaný v LINQu aplikovat.&lt;img width="0" height="0" src="http://blog.renestein.net/aggbug.ashx?id=19e20d35-6660-4911-b640-d666aed87aba"/&gt;</description>
      <comments>http://blog.renestein.net/CommentView,guid,19e20d35-6660-4911-b640-d666aed87aba.aspx</comments>
      <category>.NET Framework</category>
      <category>Compact .Net Framework</category>
      <category>LINQ</category>
    </item>
    <item>
      <trackback:ping>http://blog.renestein.net/Trackback.aspx?guid=3b700e20-c592-4da6-984b-bc70294eb78b</trackback:ping>
      <pingback:server>http://blog.renestein.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.renestein.net/PermaLink,guid,3b700e20-c592-4da6-984b-bc70294eb78b.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://blog.renestein.net/CommentView,guid,3b700e20-c592-4da6-984b-bc70294eb78b.aspx</wfw:comment>
      <wfw:commentRss>http://blog.renestein.net/SyndicationService.asmx/GetEntryCommentsRss?guid=3b700e20-c592-4da6-984b-bc70294eb78b</wfw:commentRss>
      <slash:comments>4</slash:comments>
      <title>Extenzn&amp;iacute; metoda - bin&amp;aacute;rn&amp;iacute; operace And pro enumerace</title>
      <guid isPermaLink="false">http://blog.renestein.net/PermaLink,guid,3b700e20-c592-4da6-984b-bc70294eb78b.aspx</guid>
      <link>http://blog.renestein.net/Extenzniacute+Metoda+Binaacuterniacute+Operace+And+Pro+Enumerace.aspx</link>
      <pubDate>Sun, 21 Dec 2008 11:22:20 GMT</pubDate>
      <description>V diskuzním fóru se (po dlouhé době :-)) objevil jeden zajímavější dotaz, který se netýká ani toho, jak zobrazit druhý formulář v aplikaci, ba ani autor nebojuje s mizením dat po postbacku v ASP.NET aplikaci.

Ale vážně - autor dotazu by chtěl mít lepší syntaxi pro binární operaci And v enumeracích označených metaatributem Flags. Mně stávající C syntaxe (Rights &amp; Rights.Add == Rights.Add) zcela vyhovuje a žádný další syntaktický cukřík hltat nechci,  ale přesto mě zaujalo, jak by se dal problém, tedy spíš estetická preference náročného tazatele :-),  řešit.
&lt;img width="0" height="0" src="http://blog.renestein.net/aggbug.ashx?id=3b700e20-c592-4da6-984b-bc70294eb78b"/&gt;</description>
      <comments>http://blog.renestein.net/CommentView,guid,3b700e20-c592-4da6-984b-bc70294eb78b.aspx</comments>
      <category>.NET Framework</category>
      <category>Compact .Net Framework</category>
      <category>LINQ</category>
    </item>
    <item>
      <trackback:ping>http://blog.renestein.net/Trackback.aspx?guid=d2b6da25-2a8f-43de-b9c0-3b85731daf24</trackback:ping>
      <pingback:server>http://blog.renestein.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.renestein.net/PermaLink,guid,d2b6da25-2a8f-43de-b9c0-3b85731daf24.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://blog.renestein.net/CommentView,guid,d2b6da25-2a8f-43de-b9c0-3b85731daf24.aspx</wfw:comment>
      <wfw:commentRss>http://blog.renestein.net/SyndicationService.asmx/GetEntryCommentsRss?guid=d2b6da25-2a8f-43de-b9c0-3b85731daf24</wfw:commentRss>
      <slash:comments>4</slash:comments>
      <title>Adapt&amp;eacute;ry pro funktory v C++ =&amp;gt; Adapt&amp;eacute;ry pro funkce v C#</title>
      <guid isPermaLink="false">http://blog.renestein.net/PermaLink,guid,d2b6da25-2a8f-43de-b9c0-3b85731daf24.aspx</guid>
      <link>http://blog.renestein.net/Adapteacutery+Pro+Funktory+V+C+Gt+Adapteacutery+Pro+Funkce+V+C.aspx</link>
      <pubDate>Sun, 05 Oct 2008 16:34:45 GMT</pubDate>
      <description>V C++ je snadné napsat takzvané adaptéry pro funkce, respektive pro funktory - objekty, chovající se jako funkce. K čemu jsou adaptéry dobré? Představme si, že máme napsanou funkci equal_to, která přijímá dva argumenty a vrátí true, jestliže jsou oba argumenty shodné, jinak vrátí false. Jedná se tedy o binární funktor, protože přijímá dva argumenty. Nyní potřebujeme pomocí stl metody find_if vyhledat v naší kolekci ...&lt;img width="0" height="0" src="http://blog.renestein.net/aggbug.ashx?id=d2b6da25-2a8f-43de-b9c0-3b85731daf24"/&gt;</description>
      <comments>http://blog.renestein.net/CommentView,guid,d2b6da25-2a8f-43de-b9c0-3b85731daf24.aspx</comments>
      <category>.NET Framework</category>
      <category>Compact .Net Framework</category>
      <category>LINQ</category>
      <category>Návrhové vzory</category>
    </item>
    <item>
      <trackback:ping>http://blog.renestein.net/Trackback.aspx?guid=336ec170-4a67-4ca9-a246-b92b4b866dda</trackback:ping>
      <pingback:server>http://blog.renestein.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.renestein.net/PermaLink,guid,336ec170-4a67-4ca9-a246-b92b4b866dda.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://blog.renestein.net/CommentView,guid,336ec170-4a67-4ca9-a246-b92b4b866dda.aspx</wfw:comment>
      <wfw:commentRss>http://blog.renestein.net/SyndicationService.asmx/GetEntryCommentsRss?guid=336ec170-4a67-4ca9-a246-b92b4b866dda</wfw:commentRss>
      <slash:comments>4</slash:comments>
      <title>Několik pozn&amp;aacute;mek k přetypov&amp;aacute;v&amp;aacute;n&amp;iacute; generick&amp;yacute;ch kolekc&amp;iacute;</title>
      <guid isPermaLink="false">http://blog.renestein.net/PermaLink,guid,336ec170-4a67-4ca9-a246-b92b4b866dda.aspx</guid>
      <link>http://blog.renestein.net/N%c4%9bkolik+Poznaacutemek+K+P%c5%99etypovaacutevaacuteniacute+Generickyacutech+Kolekciacute.aspx</link>
      <pubDate>Mon, 15 Sep 2008 12:29:48 GMT</pubDate>
      <description>Při práci s generickými kolekcemi asi každy občas zatouží převést generickou kolekci s objekty typu B na generickou kolekci s objekty typu A, přičemž instinktivně očekává, že když je typ A předkem typu B, žádný problém při konverzi nenastane a navíc půjde o konverzi implicitní - automatickou. Instinkty, intuice a další feminní rysy jsou ale při programování spíš zátěží (že by jeden z hlavních důvodů, proč je stále tak málo programátorek? ) :-) ) 
&lt;img width="0" height="0" src="http://blog.renestein.net/aggbug.ashx?id=336ec170-4a67-4ca9-a246-b92b4b866dda"/&gt;</description>
      <comments>http://blog.renestein.net/CommentView,guid,336ec170-4a67-4ca9-a246-b92b4b866dda.aspx</comments>
      <category>.NET Framework</category>
      <category>Compact .Net Framework</category>
      <category>LINQ</category>
    </item>
    <item>
      <trackback:ping>http://blog.renestein.net/Trackback.aspx?guid=2571bdba-d854-44f6-8874-eb90eaeb7182</trackback:ping>
      <pingback:server>http://blog.renestein.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.renestein.net/PermaLink,guid,2571bdba-d854-44f6-8874-eb90eaeb7182.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://blog.renestein.net/CommentView,guid,2571bdba-d854-44f6-8874-eb90eaeb7182.aspx</wfw:comment>
      <wfw:commentRss>http://blog.renestein.net/SyndicationService.asmx/GetEntryCommentsRss?guid=2571bdba-d854-44f6-8874-eb90eaeb7182</wfw:commentRss>
      <title>LINQ II - přetypovávání i vnořených anonymních datových typů z jiné assembly</title>
      <guid isPermaLink="false">http://blog.renestein.net/PermaLink,guid,2571bdba-d854-44f6-8874-eb90eaeb7182.aspx</guid>
      <link>http://blog.renestein.net/LINQ+II+P%c5%99etypov%c3%a1v%c3%a1n%c3%ad+I+Vno%c5%99en%c3%bdch+Anonymn%c3%adch+Datov%c3%bdch+Typ%c5%af+Z+Jin%c3%a9+Assembly.aspx</link>
      <pubDate>Fri, 09 May 2008 08:09:26 GMT</pubDate>
      <description>V předchozím spotu jsem byl schopen pracovat s anonymními datovými typy, i když byly dotazy a výsledné sady dat vytvořeny v jiné assembly. Odstranění vrozené xenofobie v praxi.:)

Náš kód ale vygeneruje výjimku, jestliže anonymní datový typ z jiné assembly obsahuje další vnořené anonymní datové typy jako v následujícím upraveném příkladu. Vlastnost InnerAT vrací další anonymní datový typ, který  pro zajímavost obsahuje odkaz ještě na další anonymní datový typ.&lt;img width="0" height="0" src="http://blog.renestein.net/aggbug.ashx?id=2571bdba-d854-44f6-8874-eb90eaeb7182"/&gt;</description>
      <comments>http://blog.renestein.net/CommentView,guid,2571bdba-d854-44f6-8874-eb90eaeb7182.aspx</comments>
      <category>.NET Framework</category>
      <category>ASP.NET</category>
      <category>Compact .Net Framework</category>
      <category>LINQ</category>
      <category>Windows Forms</category>
    </item>
    <item>
      <trackback:ping>http://blog.renestein.net/Trackback.aspx?guid=6cb35bf4-f660-440a-aaec-d96f85b1d594</trackback:ping>
      <pingback:server>http://blog.renestein.net/pingback.aspx</pingback:server>
      <pingback:target>http://blog.renestein.net/PermaLink,guid,6cb35bf4-f660-440a-aaec-d96f85b1d594.aspx</pingback:target>
      <dc:creator>
      </dc:creator>
      <wfw:comment>http://blog.renestein.net/CommentView,guid,6cb35bf4-f660-440a-aaec-d96f85b1d594.aspx</wfw:comment>
      <wfw:commentRss>http://blog.renestein.net/SyndicationService.asmx/GetEntryCommentsRss?guid=6cb35bf4-f660-440a-aaec-d96f85b1d594</wfw:commentRss>
      <title>LINQ - anonymní typ deklarovaný v jedné assembly dostupný v metodách další assembly?</title>
      <guid isPermaLink="false">http://blog.renestein.net/PermaLink,guid,6cb35bf4-f660-440a-aaec-d96f85b1d594.aspx</guid>
      <link>http://blog.renestein.net/LINQ+Anonymn%c3%ad+Typ+Deklarovan%c3%bd+V+Jedn%c3%a9+Assembly+Dostupn%c3%bd+V+Metod%c3%a1ch+Dal%c5%a1%c3%ad+Assembly.aspx</link>
      <pubDate>Thu, 08 May 2008 14:00:43 GMT</pubDate>
      <description>Anonymní datové typy v LINQu nelze použít jako návratový typ z metody a jediný způsob, jak anonymní typ z metody předat, je použít jako návratovou hodnotu typ object, protože v .Net Frameworku - jak je všeobecně známo - všechny třídy přímo či nepřímo dědí z třídy Object. Navíc platí, že anonymní typ je kompilátorem vždy deklarován jako internal a jeho použití je striktně omezeno na jednu assembly.

Jde o rozumné omezení a anonymní datové typy bychom neměli zneužívat k nesmyslům typu "hezká syntaxe pro generování objektů Dictionary", které si našly cestu i do připravovaného (a už dnes "přehypovaneného") MVC frameworku pro ASP.NET.&lt;img width="0" height="0" src="http://blog.renestein.net/aggbug.ashx?id=6cb35bf4-f660-440a-aaec-d96f85b1d594"/&gt;</description>
      <comments>http://blog.renestein.net/CommentView,guid,6cb35bf4-f660-440a-aaec-d96f85b1d594.aspx</comments>
      <category>.NET Framework</category>
      <category>ASP.NET</category>
      <category>Compact .Net Framework</category>
      <category>LINQ</category>
      <category>Windows Forms</category>
    </item>
  </channel>
</rss>