<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blog.vyvojar.cz/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>2P.Knowledge.Blog.API</title><link>http://blog.vyvojar.cz/puschak/default.aspx</link><description /><dc:language /><generator>CommunityServer 2.1 SP2 (Build: 61129.1)</generator><item><title>Visual Studio 2010 RTM na MSDN</title><link>http://blog.vyvojar.cz/puschak/archive/2010/04/15/visual-studio-2010-rtm-na-msdn.aspx</link><pubDate>Thu, 15 Apr 2010 09:04:00 GMT</pubDate><guid isPermaLink="false">99a92ff2-698a-48c2-8eaf-f3d9b6202627:236205</guid><dc:creator>Puschak</dc:creator><slash:comments>0</slash:comments><comments>http://blog.vyvojar.cz/puschak/comments/236205.aspx</comments><wfw:commentRss>http://blog.vyvojar.cz/puschak/commentrss.aspx?PostID=236205</wfw:commentRss><description>&lt;p&gt;Finální verze dlouho očekávaného vývojové prostředi Visual Studio 2010&amp;nbsp;a s tím související .NET 4.0 je konečně tady! Majitelé MSDN Subscription&amp;nbsp;ji mohou již dnes stahovat. Tak s chutí do toho!&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.microsoft.com/visualstudio/en-us/products/2010/default.mspx"&gt;&lt;img src="http://www.microsoft.com/visualstudio/en-us/content/images/vs2010_logo.png" style="width:183px;height:98px;" title="Visual Studio 2010" alt="Visual Studio 2010" width="183" border="0" height="98"&gt;&lt;/a&gt;&lt;a href="http://msdn.microsoft.com/en-us/subscriptions/default.aspx"&gt;&lt;img src="http://www.microsoft.com/visualstudio/en-my/content/images/msdn/msdn_landing_hero_logo.png" style="width:347px;height:106px;" width="347" border="0" height="106"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;V případě, že nejste MSDN předplatiteli, můžete si stáhnout Trial verzi nebo "odlehčenou" verzi Express, která je zcela zdarma.&lt;/p&gt;&lt;p&gt;&lt;b&gt;Trial verze:      &lt;br&gt;&lt;/b&gt;&lt;a href="http://www.microsoft.com/visualstudio/en-us/download" title="http://www.microsoft.com/visualstudio/en-us/download"&gt;http://www.microsoft.com/visualstudio/en-us/download&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Free Express verze :      &lt;br&gt;&lt;/b&gt;&lt;a href="http://www.microsoft.com/express/Downloads/" title="http://www.microsoft.com/express/Downloads/"&gt;http://www.microsoft.com/express/Downloads/&lt;/a&gt; &lt;br&gt;&lt;/p&gt;&lt;p&gt;Dále přikládám odkazy na stránky, které se novinkám ve VS 2010 a .NET 4.0&amp;nbsp;věnují:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Oficiální přehled novinek : &lt;a href="http://msdn.microsoft.com/en-us/library/bb386063%28VS.100%29.aspx" target="_blank"&gt;What's New in Visual Studio 2010&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Novinky v oblasti webového vývoje: &lt;a href="http://www.asp.net/learn/whitepapers/aspnet4/default.aspx"&gt;ASP.NET 4 and Visual Studio 2010 Web Development Overview&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Videa na Channel 9 týkající se .NET 4.0 a VS 2010 : &lt;a href="http://channel9.msdn.com/learn/courses/VS2010/"&gt;Visual Studio 2010 and .NET Framework 4 Training Course&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Série postů od Scotta Guthrieho od VS 2010 a .NET 4.0 : &lt;a href="http://weblogs.asp.net/scottgu/archive/2009/08/25/vs-2010-and-net-4-series.aspx" target="_blank"&gt;VS 2010 and .NET 4 Series&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Enjoy!&lt;/p&gt;
&lt;p&gt;Petr Puš&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Přidej do&lt;/strong&gt; &lt;a href = "http://linkuj.cz/?id=linkuj&amp;amp;url=http://blog.vyvojar.cz/puschak/archive/2010/04/15/visual-studio-2010-rtm-na-msdn.aspx&amp;amp;;title=Visual+Studio+2010+RTM+na+MSDN" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2010/04/15/visual-studio-2010-rtm-na-msdn.aspx"&gt;linkuj.cz!&lt;/a&gt; |  &lt;a href = "http://www.jagg.cz/bookmarks.php?action=add&amp;amp;address=http://blog.vyvojar.cz/puschak/archive/2010/04/15/visual-studio-2010-rtm-na-msdn.aspx&amp;amp;;title=Visual+Studio+2010+RTM+na+MSDN" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2010/04/15/visual-studio-2010-rtm-na-msdn.aspx"&gt;jagg.cz!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://blog.vyvojar.cz/puschak/archive/2010/04/15/visual-studio-2010-rtm-na-msdn.aspx&amp;amp;;title=Visual+Studio+2010+RTM+na+MSDN" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2010/04/15/visual-studio-2010-rtm-na-msdn.aspx"&gt;del.icio.us!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://blog.vyvojar.cz/puschak/archive/2010/04/15/visual-studio-2010-rtm-na-msdn.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2010/04/15/visual-studio-2010-rtm-na-msdn.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://blog.vyvojar.cz/puschak/archive/2010/04/15/visual-studio-2010-rtm-na-msdn.aspx&amp;amp;title=Visual+Studio+2010+RTM+na+MSDN" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2010/04/15/visual-studio-2010-rtm-na-msdn.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://blog.vyvojar.cz/puschak/archive/2010/04/15/visual-studio-2010-rtm-na-msdn.aspx&amp;amp;;title=Visual+Studio+2010+RTM+na+MSDN" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2010/04/15/visual-studio-2010-rtm-na-msdn.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://blog.vyvojar.cz/puschak/archive/2010/04/15/visual-studio-2010-rtm-na-msdn.aspx&amp;amp;;title=Visual+Studio+2010+RTM+na+MSDN&amp;amp;;top=1" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2010/04/15/visual-studio-2010-rtm-na-msdn.aspx"&gt;live it!&lt;/a&gt; |  &lt;a href = "mailto:?body=Thought you might like this: http://blog.vyvojar.cz/puschak/archive/2010/04/15/visual-studio-2010-rtm-na-msdn.aspx&amp;amp;;subject=Visual+Studio+2010+RTM+na+MSDN" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2010/04/15/visual-studio-2010-rtm-na-msdn.aspx"&gt;email it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blog.vyvojar.cz/aggbug.aspx?PostID=236205" width="1" height="1"&gt;</description><category domain="http://blog.vyvojar.cz/puschak/archive/tags/VS+2010/default.aspx">VS 2010</category></item><item><title>Materiály z DevDays2009</title><link>http://blog.vyvojar.cz/puschak/archive/2009/12/03/materi-ly-z-devdays2009.aspx</link><pubDate>Thu, 03 Dec 2009 06:00:00 GMT</pubDate><guid isPermaLink="false">99a92ff2-698a-48c2-8eaf-f3d9b6202627:235875</guid><dc:creator>Puschak</dc:creator><slash:comments>0</slash:comments><comments>http://blog.vyvojar.cz/puschak/comments/235875.aspx</comments><wfw:commentRss>http://blog.vyvojar.cz/puschak/commentrss.aspx?PostID=235875</wfw:commentRss><description>&lt;p&gt;Pokud jste z nějakého důvodu nebyli na letošních Microsoft Developer Days 2009, anebo jste tam byli a chcete si je ještě připomenout, potěší Vás zpráva o tom, že již jsou on-line k dispozici materiály ve formě webcastů, screencastů a prezentací. Všechny materiály jsou dostupné na &lt;a href="http://www.devdays.cz" title="Developer Days 2009" target="_blank"&gt;www.devdays.cz&lt;/a&gt; .&lt;/p&gt;&lt;p&gt;&lt;img src="http://i.msdn.microsoft.com/ee513833.DeveloperDays2009%28cs-cz%29.png" title="Developer Days 2009" alt="Developer Days 2009" width="571" height="151"&gt;&amp;nbsp;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Přidej do&lt;/strong&gt; &lt;a href = "http://linkuj.cz/?id=linkuj&amp;amp;url=http://blog.vyvojar.cz/puschak/archive/2009/12/03/materi-ly-z-devdays2009.aspx&amp;amp;;title=Materi%26%23225%3bly+z+DevDays2009" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2009/12/03/materi-ly-z-devdays2009.aspx"&gt;linkuj.cz!&lt;/a&gt; |  &lt;a href = "http://www.jagg.cz/bookmarks.php?action=add&amp;amp;address=http://blog.vyvojar.cz/puschak/archive/2009/12/03/materi-ly-z-devdays2009.aspx&amp;amp;;title=Materi%26%23225%3bly+z+DevDays2009" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2009/12/03/materi-ly-z-devdays2009.aspx"&gt;jagg.cz!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://blog.vyvojar.cz/puschak/archive/2009/12/03/materi-ly-z-devdays2009.aspx&amp;amp;;title=Materi%26%23225%3bly+z+DevDays2009" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2009/12/03/materi-ly-z-devdays2009.aspx"&gt;del.icio.us!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://blog.vyvojar.cz/puschak/archive/2009/12/03/materi-ly-z-devdays2009.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2009/12/03/materi-ly-z-devdays2009.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://blog.vyvojar.cz/puschak/archive/2009/12/03/materi-ly-z-devdays2009.aspx&amp;amp;title=Materi%26%23225%3bly+z+DevDays2009" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2009/12/03/materi-ly-z-devdays2009.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://blog.vyvojar.cz/puschak/archive/2009/12/03/materi-ly-z-devdays2009.aspx&amp;amp;;title=Materi%26%23225%3bly+z+DevDays2009" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2009/12/03/materi-ly-z-devdays2009.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://blog.vyvojar.cz/puschak/archive/2009/12/03/materi-ly-z-devdays2009.aspx&amp;amp;;title=Materi%26%23225%3bly+z+DevDays2009&amp;amp;;top=1" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2009/12/03/materi-ly-z-devdays2009.aspx"&gt;live it!&lt;/a&gt; |  &lt;a href = "mailto:?body=Thought you might like this: http://blog.vyvojar.cz/puschak/archive/2009/12/03/materi-ly-z-devdays2009.aspx&amp;amp;;subject=Materi%26%23225%3bly+z+DevDays2009" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2009/12/03/materi-ly-z-devdays2009.aspx"&gt;email it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blog.vyvojar.cz/aggbug.aspx?PostID=235875" width="1" height="1"&gt;</description></item><item><title>Visual Studio 2010 Beta 2</title><link>http://blog.vyvojar.cz/puschak/archive/2009/10/24/visual-studio-2010-beta-2.aspx</link><pubDate>Sat, 24 Oct 2009 20:48:00 GMT</pubDate><guid isPermaLink="false">99a92ff2-698a-48c2-8eaf-f3d9b6202627:235550</guid><dc:creator>Puschak</dc:creator><slash:comments>1</slash:comments><comments>http://blog.vyvojar.cz/puschak/comments/235550.aspx</comments><wfw:commentRss>http://blog.vyvojar.cz/puschak/commentrss.aspx?PostID=235550</wfw:commentRss><description>&lt;P&gt;Tento týden se objevila ke stažení již v pořadí&amp;nbsp;druhá beta verze&amp;nbsp;Visual Studio 2010 a .NET framework 4.0. Kromě předplatitelů MSDN si ji mohou stáhnout všichni ostatní &lt;A href="http://www.microsoft.com/visualstudio/en-us/products/2010/default.mspx" target=_blank&gt;zde&lt;/A&gt;.&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.microsoft.com/visualstudio/en-us/products/2010/default.mspx" target=_blank&gt;&lt;IMG style="WIDTH:183px;HEIGHT:98px;" title="Visual Studio 2010 Logo" border=0 alt="Visual Studio 2010 Logo" src="http://www.microsoft.com/visualstudio/en-us/content/images/vs2010_logo.png" width=183 height=98&gt;&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Kromě&amp;nbsp;drobně&amp;nbsp;inovovaného vzhledu, který napovídá výše zobrazené nové logo VS 2010 se můžete mimo jiné těšit na opravu chyb/nedodělků, podporu ASP .NET MVC 2, Silverlight 3, Dynamic Languge Runtime (DLR). Za zmínku také určitě stojí podpora nového systému plug-inů do Visual Studia, které je nyní možné tvořit v technologii WPF. Narozdíl od minulé beta verze již beta 2 VS 2010 a .NET 4.0&amp;nbsp;umožňuje běh zároveň se staršími verzemi .NET frameworku a Visual studia. Novinek v této verzi je opravdu hodně.&lt;/P&gt;
&lt;P&gt;Pokud se &lt;/P&gt;
&lt;P&gt;vrhnete do zkoušení, dovolím si doporučit pár linků, které se k danému tématu vztahují.&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Přehled novinek pro webový vývoj: &lt;A href="http://www.asp.net/learn/whitepapers/aspnet4/default.aspx" target=_blank&gt;ASP.NET 4 and Visual Studio 2010 Web Development Beta 2 Overview&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Videa na Channel 9 týkající se .NET 4.0 a VS 2010 : &lt;A href="http://channel9.msdn.com/learn/courses/VS2010/" target=_blank&gt;Visual Studio 2010 and .NET Framework 4 Training Course&lt;/A&gt;&lt;/LI&gt;
&lt;LI&gt;Série postů od Scotta Guthrieho od VS 2010 a .NET 4.0 : &lt;A href="http://weblogs.asp.net/scottgu/archive/2009/08/25/vs-2010-and-net-4-series.aspx"&gt;VS 2010 and .NET 4 Series&lt;/A&gt; &lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Přeji příjemnou zábavu při zkoušení.&lt;/P&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Přidej do&lt;/strong&gt; &lt;a href = "http://linkuj.cz/?id=linkuj&amp;amp;url=http://blog.vyvojar.cz/puschak/archive/2009/10/24/visual-studio-2010-beta-2.aspx&amp;amp;;title=Visual+Studio+2010+Beta+2" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2009/10/24/visual-studio-2010-beta-2.aspx"&gt;linkuj.cz!&lt;/a&gt; |  &lt;a href = "http://www.jagg.cz/bookmarks.php?action=add&amp;amp;address=http://blog.vyvojar.cz/puschak/archive/2009/10/24/visual-studio-2010-beta-2.aspx&amp;amp;;title=Visual+Studio+2010+Beta+2" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2009/10/24/visual-studio-2010-beta-2.aspx"&gt;jagg.cz!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://blog.vyvojar.cz/puschak/archive/2009/10/24/visual-studio-2010-beta-2.aspx&amp;amp;;title=Visual+Studio+2010+Beta+2" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2009/10/24/visual-studio-2010-beta-2.aspx"&gt;del.icio.us!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://blog.vyvojar.cz/puschak/archive/2009/10/24/visual-studio-2010-beta-2.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2009/10/24/visual-studio-2010-beta-2.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://blog.vyvojar.cz/puschak/archive/2009/10/24/visual-studio-2010-beta-2.aspx&amp;amp;title=Visual+Studio+2010+Beta+2" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2009/10/24/visual-studio-2010-beta-2.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://blog.vyvojar.cz/puschak/archive/2009/10/24/visual-studio-2010-beta-2.aspx&amp;amp;;title=Visual+Studio+2010+Beta+2" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2009/10/24/visual-studio-2010-beta-2.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://blog.vyvojar.cz/puschak/archive/2009/10/24/visual-studio-2010-beta-2.aspx&amp;amp;;title=Visual+Studio+2010+Beta+2&amp;amp;;top=1" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2009/10/24/visual-studio-2010-beta-2.aspx"&gt;live it!&lt;/a&gt; |  &lt;a href = "mailto:?body=Thought you might like this: http://blog.vyvojar.cz/puschak/archive/2009/10/24/visual-studio-2010-beta-2.aspx&amp;amp;;subject=Visual+Studio+2010+Beta+2" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2009/10/24/visual-studio-2010-beta-2.aspx"&gt;email it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blog.vyvojar.cz/aggbug.aspx?PostID=235550" width="1" height="1"&gt;</description><category domain="http://blog.vyvojar.cz/puschak/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blog.vyvojar.cz/puschak/archive/tags/VS+2010/default.aspx">VS 2010</category></item><item><title>Prezentace z přednášky Design patterns a .NET</title><link>http://blog.vyvojar.cz/puschak/archive/2009/04/21/prezentace-z-p-edn-ky-design-patterns-a-net.aspx</link><pubDate>Tue, 21 Apr 2009 06:51:00 GMT</pubDate><guid isPermaLink="false">99a92ff2-698a-48c2-8eaf-f3d9b6202627:229601</guid><dc:creator>Puschak</dc:creator><slash:comments>0</slash:comments><comments>http://blog.vyvojar.cz/puschak/comments/229601.aspx</comments><wfw:commentRss>http://blog.vyvojar.cz/puschak/commentrss.aspx?PostID=229601</wfw:commentRss><description>Jelikož si celkem dost lidí napsalo mailem o poskytnutí prezentace k přednášce Design patterns a .NET, kterou jsem (mimo jiné) dělal v Microsoftu, jal jsem se konečně umístit tuto prezentaci do veřejného prostoru. Prezentaci je tedy možné stáhnout &lt;a href="http://blog.vyvojar.cz/files/folders/others/entry229600.aspx" target="_blank"&gt;zde&lt;/a&gt;.&lt;br&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Přidej do&lt;/strong&gt; &lt;a href = "http://linkuj.cz/?id=linkuj&amp;amp;url=http://blog.vyvojar.cz/puschak/archive/2009/04/21/prezentace-z-p-edn-ky-design-patterns-a-net.aspx&amp;amp;;title=Prezentace+z+p%c5%99edn%26%23225%3b%c5%a1ky+Design+patterns+a+.NET" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2009/04/21/prezentace-z-p-edn-ky-design-patterns-a-net.aspx"&gt;linkuj.cz!&lt;/a&gt; |  &lt;a href = "http://www.jagg.cz/bookmarks.php?action=add&amp;amp;address=http://blog.vyvojar.cz/puschak/archive/2009/04/21/prezentace-z-p-edn-ky-design-patterns-a-net.aspx&amp;amp;;title=Prezentace+z+p%c5%99edn%26%23225%3b%c5%a1ky+Design+patterns+a+.NET" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2009/04/21/prezentace-z-p-edn-ky-design-patterns-a-net.aspx"&gt;jagg.cz!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://blog.vyvojar.cz/puschak/archive/2009/04/21/prezentace-z-p-edn-ky-design-patterns-a-net.aspx&amp;amp;;title=Prezentace+z+p%c5%99edn%26%23225%3b%c5%a1ky+Design+patterns+a+.NET" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2009/04/21/prezentace-z-p-edn-ky-design-patterns-a-net.aspx"&gt;del.icio.us!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://blog.vyvojar.cz/puschak/archive/2009/04/21/prezentace-z-p-edn-ky-design-patterns-a-net.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2009/04/21/prezentace-z-p-edn-ky-design-patterns-a-net.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://blog.vyvojar.cz/puschak/archive/2009/04/21/prezentace-z-p-edn-ky-design-patterns-a-net.aspx&amp;amp;title=Prezentace+z+p%c5%99edn%26%23225%3b%c5%a1ky+Design+patterns+a+.NET" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2009/04/21/prezentace-z-p-edn-ky-design-patterns-a-net.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://blog.vyvojar.cz/puschak/archive/2009/04/21/prezentace-z-p-edn-ky-design-patterns-a-net.aspx&amp;amp;;title=Prezentace+z+p%c5%99edn%26%23225%3b%c5%a1ky+Design+patterns+a+.NET" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2009/04/21/prezentace-z-p-edn-ky-design-patterns-a-net.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://blog.vyvojar.cz/puschak/archive/2009/04/21/prezentace-z-p-edn-ky-design-patterns-a-net.aspx&amp;amp;;title=Prezentace+z+p%c5%99edn%26%23225%3b%c5%a1ky+Design+patterns+a+.NET&amp;amp;;top=1" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2009/04/21/prezentace-z-p-edn-ky-design-patterns-a-net.aspx"&gt;live it!&lt;/a&gt; |  &lt;a href = "mailto:?body=Thought you might like this: http://blog.vyvojar.cz/puschak/archive/2009/04/21/prezentace-z-p-edn-ky-design-patterns-a-net.aspx&amp;amp;;subject=Prezentace+z+p%c5%99edn%26%23225%3b%c5%a1ky+Design+patterns+a+.NET" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2009/04/21/prezentace-z-p-edn-ky-design-patterns-a-net.aspx"&gt;email it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blog.vyvojar.cz/aggbug.aspx?PostID=229601" width="1" height="1"&gt;</description><category domain="http://blog.vyvojar.cz/puschak/archive/tags/.NET/default.aspx">.NET</category></item><item><title>Prezentace o Entity Frameworku</title><link>http://blog.vyvojar.cz/puschak/archive/2008/11/26/prezentace-o-entity-frameworku.aspx</link><pubDate>Wed, 26 Nov 2008 07:16:00 GMT</pubDate><guid isPermaLink="false">99a92ff2-698a-48c2-8eaf-f3d9b6202627:228677</guid><dc:creator>Puschak</dc:creator><slash:comments>3</slash:comments><comments>http://blog.vyvojar.cz/puschak/comments/228677.aspx</comments><wfw:commentRss>http://blog.vyvojar.cz/puschak/commentrss.aspx?PostID=228677</wfw:commentRss><description>&lt;p&gt;ADO .NET Entity Framework je technologií, na kterou jsem byl velice zvědav. Když jsem se dostal k tomu, si ji vyzkoušet, rovnou jsem udělal pár přednášek, abych se o své znalosti a pocity podělil v rámci WUG a taky v rámci MSP na MFF UK. Pro ty, kteří se chtějí podívat na prezentaci, kterou jsem za tímto účelem vytvořil, mohou si ji stáhnout &lt;a href="http://blog.vyvojar.cz/files/folders/others/entry228675.aspx"&gt;zde&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&amp;nbsp;Když velice rychle shrnu svůj pohled na tuto technologii, tak mohu říci, že se jedná o dobře použitelný O-R mapper, který se narozdíl od mého favorita nHibernate, dá velice jednoduše a rychle použít (integrovaný designer, LINQ, ..), není narozdíl od LINQ to SQL závislý pouze na SQL serveru (používá ADO .NET provider model), ale co tuto technologii z mého pohledu dost degradovalo je naprostá absence lazy-loading (což, dle mých informací z TechEd má být vyřešeno v další verzi).&lt;br&gt;&lt;/p&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Přidej do&lt;/strong&gt; &lt;a href = "http://linkuj.cz/?id=linkuj&amp;amp;url=http://blog.vyvojar.cz/puschak/archive/2008/11/26/prezentace-o-entity-frameworku.aspx&amp;amp;;title=Prezentace+o+Entity+Frameworku" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2008/11/26/prezentace-o-entity-frameworku.aspx"&gt;linkuj.cz!&lt;/a&gt; |  &lt;a href = "http://www.jagg.cz/bookmarks.php?action=add&amp;amp;address=http://blog.vyvojar.cz/puschak/archive/2008/11/26/prezentace-o-entity-frameworku.aspx&amp;amp;;title=Prezentace+o+Entity+Frameworku" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2008/11/26/prezentace-o-entity-frameworku.aspx"&gt;jagg.cz!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://blog.vyvojar.cz/puschak/archive/2008/11/26/prezentace-o-entity-frameworku.aspx&amp;amp;;title=Prezentace+o+Entity+Frameworku" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2008/11/26/prezentace-o-entity-frameworku.aspx"&gt;del.icio.us!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://blog.vyvojar.cz/puschak/archive/2008/11/26/prezentace-o-entity-frameworku.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2008/11/26/prezentace-o-entity-frameworku.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://blog.vyvojar.cz/puschak/archive/2008/11/26/prezentace-o-entity-frameworku.aspx&amp;amp;title=Prezentace+o+Entity+Frameworku" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2008/11/26/prezentace-o-entity-frameworku.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://blog.vyvojar.cz/puschak/archive/2008/11/26/prezentace-o-entity-frameworku.aspx&amp;amp;;title=Prezentace+o+Entity+Frameworku" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2008/11/26/prezentace-o-entity-frameworku.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://blog.vyvojar.cz/puschak/archive/2008/11/26/prezentace-o-entity-frameworku.aspx&amp;amp;;title=Prezentace+o+Entity+Frameworku&amp;amp;;top=1" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2008/11/26/prezentace-o-entity-frameworku.aspx"&gt;live it!&lt;/a&gt; |  &lt;a href = "mailto:?body=Thought you might like this: http://blog.vyvojar.cz/puschak/archive/2008/11/26/prezentace-o-entity-frameworku.aspx&amp;amp;;subject=Prezentace+o+Entity+Frameworku" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2008/11/26/prezentace-o-entity-frameworku.aspx"&gt;email it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blog.vyvojar.cz/aggbug.aspx?PostID=228677" width="1" height="1"&gt;</description><category domain="http://blog.vyvojar.cz/puschak/archive/tags/.NET/default.aspx">.NET</category></item><item><title>Visual Studio 2010 a .NET 4.0 CTP</title><link>http://blog.vyvojar.cz/puschak/archive/2008/11/11/visual-studio-2010-a-net-4-0-ctp.aspx</link><pubDate>Tue, 11 Nov 2008 15:55:00 GMT</pubDate><guid isPermaLink="false">99a92ff2-698a-48c2-8eaf-f3d9b6202627:228621</guid><dc:creator>Puschak</dc:creator><slash:comments>1</slash:comments><comments>http://blog.vyvojar.cz/puschak/comments/228621.aspx</comments><wfw:commentRss>http://blog.vyvojar.cz/puschak/commentrss.aspx?PostID=228621</wfw:commentRss><description>Není to zase tak dlouho, co vyšlo Visual Studio 2008 a už je na světě CTP (Community Technology Preview) další verze, kterou je Visual Studio 2010 (VS10). CTP je dodáváno formou Virtual PC image, jehož HW nároky nejsou zrovna malé (75 GB HDD, 2 GB RAM, Dual Core, ...). Pokud tedy disponujete strojem splňujícím tyto požadavky, můžete poprvé vyzkoušet .NET 4.0, který je, jakožto nezbytná součást VS 2010, taktéž součástí Virtual PC. CTP je ke stažení &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyId=922B4655-93D0-4476-BDA4-94CF5F8D4814&amp;amp;displaylang=en" target="_blank"&gt;zde&lt;/a&gt;.&lt;br&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Přidej do&lt;/strong&gt; &lt;a href = "http://linkuj.cz/?id=linkuj&amp;amp;url=http://blog.vyvojar.cz/puschak/archive/2008/11/11/visual-studio-2010-a-net-4-0-ctp.aspx&amp;amp;;title=Visual+Studio+2010+a+.NET+4.0+CTP" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2008/11/11/visual-studio-2010-a-net-4-0-ctp.aspx"&gt;linkuj.cz!&lt;/a&gt; |  &lt;a href = "http://www.jagg.cz/bookmarks.php?action=add&amp;amp;address=http://blog.vyvojar.cz/puschak/archive/2008/11/11/visual-studio-2010-a-net-4-0-ctp.aspx&amp;amp;;title=Visual+Studio+2010+a+.NET+4.0+CTP" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2008/11/11/visual-studio-2010-a-net-4-0-ctp.aspx"&gt;jagg.cz!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://blog.vyvojar.cz/puschak/archive/2008/11/11/visual-studio-2010-a-net-4-0-ctp.aspx&amp;amp;;title=Visual+Studio+2010+a+.NET+4.0+CTP" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2008/11/11/visual-studio-2010-a-net-4-0-ctp.aspx"&gt;del.icio.us!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://blog.vyvojar.cz/puschak/archive/2008/11/11/visual-studio-2010-a-net-4-0-ctp.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2008/11/11/visual-studio-2010-a-net-4-0-ctp.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://blog.vyvojar.cz/puschak/archive/2008/11/11/visual-studio-2010-a-net-4-0-ctp.aspx&amp;amp;title=Visual+Studio+2010+a+.NET+4.0+CTP" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2008/11/11/visual-studio-2010-a-net-4-0-ctp.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://blog.vyvojar.cz/puschak/archive/2008/11/11/visual-studio-2010-a-net-4-0-ctp.aspx&amp;amp;;title=Visual+Studio+2010+a+.NET+4.0+CTP" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2008/11/11/visual-studio-2010-a-net-4-0-ctp.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://blog.vyvojar.cz/puschak/archive/2008/11/11/visual-studio-2010-a-net-4-0-ctp.aspx&amp;amp;;title=Visual+Studio+2010+a+.NET+4.0+CTP&amp;amp;;top=1" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2008/11/11/visual-studio-2010-a-net-4-0-ctp.aspx"&gt;live it!&lt;/a&gt; |  &lt;a href = "mailto:?body=Thought you might like this: http://blog.vyvojar.cz/puschak/archive/2008/11/11/visual-studio-2010-a-net-4-0-ctp.aspx&amp;amp;;subject=Visual+Studio+2010+a+.NET+4.0+CTP" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2008/11/11/visual-studio-2010-a-net-4-0-ctp.aspx"&gt;email it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blog.vyvojar.cz/aggbug.aspx?PostID=228621" width="1" height="1"&gt;</description><category domain="http://blog.vyvojar.cz/puschak/archive/tags/.NET/default.aspx">.NET</category></item><item><title>Materiály z WUG (C# 3.0 a LINQ) v Hradci Králové</title><link>http://blog.vyvojar.cz/puschak/archive/2008/01/14/materi-ly-z-wug-c-3-0-a-linq-v-hradci-kr-lov.aspx</link><pubDate>Mon, 14 Jan 2008 20:27:00 GMT</pubDate><guid isPermaLink="false">99a92ff2-698a-48c2-8eaf-f3d9b6202627:226925</guid><dc:creator>Puschak</dc:creator><slash:comments>0</slash:comments><comments>http://blog.vyvojar.cz/puschak/comments/226925.aspx</comments><wfw:commentRss>http://blog.vyvojar.cz/puschak/commentrss.aspx?PostID=226925</wfw:commentRss><description>V Hradci Králové jsem měl 10.1. 2008 pro sdružení WUG přednášku o C# 3.0 a LINQ, která vznikla rozšířením přednášky o C# 3.0, kterou jsem vytvořil v rámci programu MSP. Slidy i ukázkové příklady jsou k dispozici ke stažení &lt;A class="" title="C# 3.0 a LINQ - Download" href="http://blog.vyvojar.cz/files/folders/others/entry226924.aspx" target=_blank&gt;zde&lt;/A&gt;. Mimochodem ukázky na novinky v C# 3.0 byly použity i v mém článku, který zde nedávno vyšel.
&lt;div class = "shareblock"&gt;&lt;strong&gt;Přidej do&lt;/strong&gt; &lt;a href = "http://linkuj.cz/?id=linkuj&amp;amp;url=http://blog.vyvojar.cz/puschak/archive/2008/01/14/materi-ly-z-wug-c-3-0-a-linq-v-hradci-kr-lov.aspx&amp;amp;;title=Materi%26%23225%3bly+z+WUG+(C%23+3.0+a+LINQ)+v+Hradci+Kr%26%23225%3blov%26%23233%3b" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2008/01/14/materi-ly-z-wug-c-3-0-a-linq-v-hradci-kr-lov.aspx"&gt;linkuj.cz!&lt;/a&gt; |  &lt;a href = "http://www.jagg.cz/bookmarks.php?action=add&amp;amp;address=http://blog.vyvojar.cz/puschak/archive/2008/01/14/materi-ly-z-wug-c-3-0-a-linq-v-hradci-kr-lov.aspx&amp;amp;;title=Materi%26%23225%3bly+z+WUG+(C%23+3.0+a+LINQ)+v+Hradci+Kr%26%23225%3blov%26%23233%3b" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2008/01/14/materi-ly-z-wug-c-3-0-a-linq-v-hradci-kr-lov.aspx"&gt;jagg.cz!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://blog.vyvojar.cz/puschak/archive/2008/01/14/materi-ly-z-wug-c-3-0-a-linq-v-hradci-kr-lov.aspx&amp;amp;;title=Materi%26%23225%3bly+z+WUG+(C%23+3.0+a+LINQ)+v+Hradci+Kr%26%23225%3blov%26%23233%3b" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2008/01/14/materi-ly-z-wug-c-3-0-a-linq-v-hradci-kr-lov.aspx"&gt;del.icio.us!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://blog.vyvojar.cz/puschak/archive/2008/01/14/materi-ly-z-wug-c-3-0-a-linq-v-hradci-kr-lov.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2008/01/14/materi-ly-z-wug-c-3-0-a-linq-v-hradci-kr-lov.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://blog.vyvojar.cz/puschak/archive/2008/01/14/materi-ly-z-wug-c-3-0-a-linq-v-hradci-kr-lov.aspx&amp;amp;title=Materi%26%23225%3bly+z+WUG+(C%23+3.0+a+LINQ)+v+Hradci+Kr%26%23225%3blov%26%23233%3b" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2008/01/14/materi-ly-z-wug-c-3-0-a-linq-v-hradci-kr-lov.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://blog.vyvojar.cz/puschak/archive/2008/01/14/materi-ly-z-wug-c-3-0-a-linq-v-hradci-kr-lov.aspx&amp;amp;;title=Materi%26%23225%3bly+z+WUG+(C%23+3.0+a+LINQ)+v+Hradci+Kr%26%23225%3blov%26%23233%3b" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2008/01/14/materi-ly-z-wug-c-3-0-a-linq-v-hradci-kr-lov.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://blog.vyvojar.cz/puschak/archive/2008/01/14/materi-ly-z-wug-c-3-0-a-linq-v-hradci-kr-lov.aspx&amp;amp;;title=Materi%26%23225%3bly+z+WUG+(C%23+3.0+a+LINQ)+v+Hradci+Kr%26%23225%3blov%26%23233%3b&amp;amp;;top=1" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2008/01/14/materi-ly-z-wug-c-3-0-a-linq-v-hradci-kr-lov.aspx"&gt;live it!&lt;/a&gt; |  &lt;a href = "mailto:?body=Thought you might like this: http://blog.vyvojar.cz/puschak/archive/2008/01/14/materi-ly-z-wug-c-3-0-a-linq-v-hradci-kr-lov.aspx&amp;amp;;subject=Materi%26%23225%3bly+z+WUG+(C%23+3.0+a+LINQ)+v+Hradci+Kr%26%23225%3blov%26%23233%3b" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2008/01/14/materi-ly-z-wug-c-3-0-a-linq-v-hradci-kr-lov.aspx"&gt;email it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blog.vyvojar.cz/aggbug.aspx?PostID=226925" width="1" height="1"&gt;</description><category domain="http://blog.vyvojar.cz/puschak/archive/tags/C_2300_+3.0/default.aspx">C# 3.0</category></item><item><title>Ukládání ViewState do Session</title><link>http://blog.vyvojar.cz/puschak/archive/2008/01/11/ukl-d-n-viewstate-do-session.aspx</link><pubDate>Fri, 11 Jan 2008 22:35:00 GMT</pubDate><guid isPermaLink="false">99a92ff2-698a-48c2-8eaf-f3d9b6202627:226917</guid><dc:creator>Puschak</dc:creator><slash:comments>2</slash:comments><comments>http://blog.vyvojar.cz/puschak/comments/226917.aspx</comments><wfw:commentRss>http://blog.vyvojar.cz/puschak/commentrss.aspx?PostID=226917</wfw:commentRss><description>&lt;P&gt;View-state patří k vrozeným vlastnostem ASP .NET již od jeho počátku a některými lidmi je milován a jinými zase zatracován. Podle mě je pravda někde mezi a při jeho správném použití může přinést spoustu užitku. Standardně je view-state stránky ukládán ve skrytém políčku formuláře (hidden field), což v případě stránek z mnoha ASP .NET prvky vede ke značné velikosti obsahu tohoto políčka a tím pádem i celé stránky. Nebo může být s touto reprezentací viewstate problém v případě mobilních zařízení.V těchto situacích je vhodné view-state uložit do alternativního úložiště, kterým často bývá session, která jak známo&amp;nbsp;čerpá prostředky serveru.&lt;/P&gt;
&lt;P&gt;Již od své první verze ASP .NET disponuje možností definovat vlastní mechanismus persistence view-state&amp;nbsp;stránky pomocí překrytí metod &lt;SPAN class=identifier&gt;&lt;STRONG&gt;&lt;EM&gt;LoadPageStateFromPersistenceMedium&lt;/EM&gt;&lt;/STRONG&gt; a &lt;SPAN class=identifier&gt;&lt;STRONG&gt;&lt;EM&gt;SavePageStateToPersistenceMedium&lt;/EM&gt;&lt;/STRONG&gt;. V takovémto případě implementace persistence view-state je dobré myslet mimo jiné na to, že klient může mít otevřeno více oken prohlížeče a tím pádem není vhodné ukládat view-state všech stránek do session pod stejným klíčem. Řešením může být GUID ve skrytém poli stránky. Také je při překrývání těchto metod dobré&amp;nbsp;myslet na to, kdy data z alternativního uložiště odstranit, aby nedocházelo ke zbytečnému plýtvání zdroji. Problém také vidím v tom, že metoda &lt;SPAN class=identifier&gt;&lt;EM&gt;SavePageStateToPersistenceMedium&lt;/EM&gt; se nezavolá v případě vyhození výjimky, což je problém při použití AJAX, kdy není přesměrováno na chybovou stránku, ale po zobrazení chyby pomocí javascriptu (což je v ASP .NET AJAX frameworku výchozí) je klientovi&amp;nbsp;umožněn další požadavek, u jehož zpracování ovšem nebude k dispozici view-state.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=identifier&gt;Na tyto problémy ovšem existuje poměrně jednoduchý lék, který je v ASP .NET, již od&amp;nbsp;zaběhlé verze 2.0,&amp;nbsp;k dispozici. Od ASP .NET 2.0&amp;nbsp;je možnost persistence view-state v session implementována, avšak je ve výchozím nastavení vypnuta. ASP .NET pro uložení view-state využívá služeb typů odvozených od třídy &lt;STRONG&gt;&lt;EM&gt;PageStatePersister&lt;/EM&gt;&lt;/STRONG&gt;, které jsou standardně dva a to &lt;SPAN class=identifier&gt;&lt;STRONG&gt;&lt;EM&gt;HiddenFieldPageStatePersister&lt;/EM&gt;&lt;/STRONG&gt;, který ukládá view-state standardně do skrytého pole a druhým typem je &lt;SPAN class=selflink&gt;&lt;STRONG&gt;SessionPageStatePersister&lt;/STRONG&gt;, jež ukládá viewstate do session. Konkrétní &lt;EM&gt;PageStatePersister&lt;/EM&gt; je pro konkrétní stránku získán přečtením vlastnosti &lt;STRONG&gt;PageStatePersister&lt;/STRONG&gt;. Takže uložení viewstate do session se provede jednoduchým překrytím této vlastnosti na stránce a navrácení instance typu &lt;SPAN class=selflink&gt;&lt;EM&gt;SessionPageStatePersister&lt;/EM&gt;. Pozor na to, že je třeba vracet v rámci stránky stejnou instanci typu PageStatePersister, jinak se mohou vyskytnout problémy (špatné uchovávání hodnot mezi post-backy).&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=selflink&gt;&lt;SPAN class=selflink&gt;protected override PageStatePersister PageStatePersister&lt;BR&gt;{&lt;BR&gt;&amp;nbsp; &lt;STRONG&gt;if (statePersister == null)&lt;BR&gt;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;statePersister = new SessionPageStatePersister(this);&lt;BR&gt;&amp;nbsp; }&lt;BR&gt;&lt;/STRONG&gt;&amp;nbsp; return statePersister;&lt;BR&gt;}&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=selflink&gt;&lt;SPAN class=selflink&gt;V případě, že se nechcete vydat cestou použití dědičnosti stránek, můžete využít podpory adaptivního renderingu, která je k dispozici od ASP .NET 2.0 a vytvořit &lt;STRONG&gt;&lt;EM&gt;PageAdapter&lt;/EM&gt;&lt;/STRONG&gt; u něhož je možné překrýt metodu &lt;STRONG&gt;&lt;EM&gt;GetStatePersister&lt;/EM&gt;&lt;/STRONG&gt;. Tímto způsobem lze v kombinaci s&amp;nbsp;konfigurací v &lt;EM&gt;browser&lt;/EM&gt; souboru zajistit, že view-state bude v session pouze pro specifická zařízení.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=selflink&gt;&lt;SPAN class=selflink&gt;public class MyPageAdapter : PageAdapter&lt;BR&gt;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; public override PageStatePersister GetStatePersister()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;return new SessionPageStatePersister(this.Page);&lt;BR&gt;&lt;/STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;}&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=selflink&gt;&lt;SPAN class=selflink&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=selflink&gt;&lt;SPAN class=selflink&gt;Použití &lt;EM&gt;SessionStatePagePersisteru&lt;/EM&gt; zařídí uložení view-state do session a do skrytého pole jsou uloženy pouze&amp;nbsp;informace nutné k možné rekonstrukci viewstate ze session. Pro případné otevření více oken ukládá data několika posledních&amp;nbsp;stránek. Výchozím nastavením je hodnota 9, takže když klient otevře desáté okno v tom prvním otevřeném při post-backu nedojde k načtení viewstate. Tuto hodnotu je ovšem možno konfiguračně nastavit v sekci &lt;EM&gt;system.web &lt;/EM&gt;souboru &lt;EM&gt;web.config&lt;/EM&gt;.&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=selflink&gt;&lt;SPAN class=selflink&gt;&amp;lt;system.web&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;&amp;lt;sessionPageState historySize="10"/&amp;gt;&lt;BR&gt;&lt;/STRONG&gt;&amp;lt;/system.web&amp;gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=selflink&gt;&lt;SPAN class=selflink&gt;V mnoha případech ovšem zjistíte, že i přestože je použit &lt;EM&gt;SessionPageStatePersister&lt;/EM&gt;, tak je view-state pořád poměrně velký. Je tomu z důvodu, že control-state, který je od ASP .NET 2.0 přítomen pro zachování fukčnosti ASP .NET prvků i v případě vypnutého view-state je stále ukládán do skrytého pole a to i v případě, že standardní viewstate je v session. V případě&amp;nbsp;řešení,&amp;nbsp;které bylo zmíněno výše, tedy&amp;nbsp;pomocí překrytí metod &lt;SPAN class=identifier&gt;&lt;EM&gt;LoadPageStateFromPersistenceMedium&lt;/EM&gt; a &lt;SPAN class=identifier&gt;&lt;EM&gt;SavePageStateToPersistenceMedium &lt;/EM&gt;tento problém nenastává, protože je ukládán view-state i control-state dohromady. Naštěstí je k dispozici řešení i v případě použití elegantějšího SessionPageStatePersisteru a to opět pomocí konfigurace v sekci &lt;STRONG&gt;&lt;EM&gt;browserCaps&lt;/EM&gt;&lt;/STRONG&gt; (která je již označena za deprecated, ale jiné řešení jsem nenašel).&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=selflink&gt;&lt;SPAN class=selflink&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=identifier&gt;&amp;lt;browserCaps&amp;gt;&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;STRONG&gt;&amp;lt;case&amp;gt;RequiresControlStateInSession=true&amp;lt;/case&amp;gt;&lt;BR&gt;&lt;/STRONG&gt;&amp;lt;/browserCaps&amp;gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=selflink&gt;&lt;SPAN class=selflink&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=identifier&gt;Udělal jsem si malý test s jednoduchou stránkou s prvkem GridView,&amp;nbsp;ve kterém bylo zobrazeno 10 záznamů se 3 sloupci a nastavenou vlastností DataKeyNames na hodnotu ID (hodnoty ID se ukládají do view-state)&amp;nbsp;a tady jsou výsledky velikosti skrytého pole s ID __VIEWSTATE ve stránce :&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=selflink&gt;&lt;SPAN class=selflink&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=identifier&gt;View-state i Control-state ve skrytém poli&amp;nbsp;- &lt;STRONG&gt;1440&amp;nbsp;bajtů&lt;BR&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=selflink&gt;&lt;SPAN class=selflink&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=identifier&gt;View-state v session a Control-state ve skrytém poli&amp;nbsp;- &lt;STRONG&gt;352 bajtů&lt;BR&gt;&lt;/STRONG&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=selflink&gt;&lt;SPAN class=selflink&gt;&lt;SPAN class=identifier&gt;&lt;SPAN class=identifier&gt;View-state i Control-state v session - &lt;STRONG&gt;56 bajtů&lt;BR&gt;&lt;/STRONG&gt;&lt;BR&gt;&lt;/P&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Přidej do&lt;/strong&gt; &lt;a href = "http://linkuj.cz/?id=linkuj&amp;amp;url=http://blog.vyvojar.cz/puschak/archive/2008/01/11/ukl-d-n-viewstate-do-session.aspx&amp;amp;;title=Ukl%26%23225%3bd%26%23225%3bn%26%23237%3b+ViewState+do+Session" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2008/01/11/ukl-d-n-viewstate-do-session.aspx"&gt;linkuj.cz!&lt;/a&gt; |  &lt;a href = "http://www.jagg.cz/bookmarks.php?action=add&amp;amp;address=http://blog.vyvojar.cz/puschak/archive/2008/01/11/ukl-d-n-viewstate-do-session.aspx&amp;amp;;title=Ukl%26%23225%3bd%26%23225%3bn%26%23237%3b+ViewState+do+Session" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2008/01/11/ukl-d-n-viewstate-do-session.aspx"&gt;jagg.cz!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://blog.vyvojar.cz/puschak/archive/2008/01/11/ukl-d-n-viewstate-do-session.aspx&amp;amp;;title=Ukl%26%23225%3bd%26%23225%3bn%26%23237%3b+ViewState+do+Session" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2008/01/11/ukl-d-n-viewstate-do-session.aspx"&gt;del.icio.us!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://blog.vyvojar.cz/puschak/archive/2008/01/11/ukl-d-n-viewstate-do-session.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2008/01/11/ukl-d-n-viewstate-do-session.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://blog.vyvojar.cz/puschak/archive/2008/01/11/ukl-d-n-viewstate-do-session.aspx&amp;amp;title=Ukl%26%23225%3bd%26%23225%3bn%26%23237%3b+ViewState+do+Session" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2008/01/11/ukl-d-n-viewstate-do-session.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://blog.vyvojar.cz/puschak/archive/2008/01/11/ukl-d-n-viewstate-do-session.aspx&amp;amp;;title=Ukl%26%23225%3bd%26%23225%3bn%26%23237%3b+ViewState+do+Session" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2008/01/11/ukl-d-n-viewstate-do-session.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://blog.vyvojar.cz/puschak/archive/2008/01/11/ukl-d-n-viewstate-do-session.aspx&amp;amp;;title=Ukl%26%23225%3bd%26%23225%3bn%26%23237%3b+ViewState+do+Session&amp;amp;;top=1" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2008/01/11/ukl-d-n-viewstate-do-session.aspx"&gt;live it!&lt;/a&gt; |  &lt;a href = "mailto:?body=Thought you might like this: http://blog.vyvojar.cz/puschak/archive/2008/01/11/ukl-d-n-viewstate-do-session.aspx&amp;amp;;subject=Ukl%26%23225%3bd%26%23225%3bn%26%23237%3b+ViewState+do+Session" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2008/01/11/ukl-d-n-viewstate-do-session.aspx"&gt;email it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blog.vyvojar.cz/aggbug.aspx?PostID=226917" width="1" height="1"&gt;</description><category domain="http://blog.vyvojar.cz/puschak/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blog.vyvojar.cz/puschak/archive/tags/ASP+.NET/default.aspx">ASP .NET</category></item><item><title>Zdržení uvolnění zdrojových kódů .NET</title><link>http://blog.vyvojar.cz/puschak/archive/2008/01/07/zdr-en-uvoln-n-zdrojov-ch-k-d-net.aspx</link><pubDate>Mon, 07 Jan 2008 20:26:00 GMT</pubDate><guid isPermaLink="false">99a92ff2-698a-48c2-8eaf-f3d9b6202627:226897</guid><dc:creator>Puschak</dc:creator><slash:comments>0</slash:comments><comments>http://blog.vyvojar.cz/puschak/comments/226897.aspx</comments><wfw:commentRss>http://blog.vyvojar.cz/puschak/commentrss.aspx?PostID=226897</wfw:commentRss><description>&lt;P&gt;Když Scott Guthrie na svém blogu vydal &lt;A class="" href="http://weblogs.asp.net/scottgu/archive/2007/10/03/releasing-the-source-code-for-the-net-framework-libraries.aspx" target=_blank&gt;příspěvek&lt;/A&gt; o plánovaném&amp;nbsp;uvolnění zdrojových kódů .NET frameworku byl jsem velmi nadšen a dokonce jsem o tomto skvělém&amp;nbsp;plánu&amp;nbsp;na studentském komunitním serveru netstudent.cz naším rodným jazykem &lt;A class="" href="http://www.netstudent.cz/Články/tabid/56/articleType/ArticleView/articleId/93/Microsoft-uvoln-zdrojov-kdy-NET-frameworku.aspx"&gt;informoval&lt;/A&gt;. Zdrojové kódy měly být uvolněny spolu s oficiálním&amp;nbsp;vydáním Visual Studia 2008. &lt;/P&gt;
&lt;P&gt;Visual Studio 2008 bylo vydáno už 19.11. minulého roku avšak, když jsem si dnes řekl, že bych mohl konečně, po zvládnutých zápočtech a "proflákaných" svátcích (.. a nadšení ze C# 3.0 a LINQ :-) ), zkusit debugování .NETu, nadšení vystřídalo zklamání, protože zdrojové kódy a server, který je má spolu s PDB symboly hostovat ještě není přístupný. V&amp;nbsp;blog postu&amp;nbsp;Shawna Burkeho je &lt;A class="" href="http://blogs.msdn.com/sburke/archive/2007/11/20/vs2008-net-3-5-ships-sooooo-where-s-the-source.aspx"&gt;vysvětlení&lt;/A&gt;, kde uvádí, že je&amp;nbsp;mimo jiné performance bug ve VS 2008, na jehož opravě usilovně pracují. &lt;/P&gt;
&lt;P&gt;Dobrá zpráva je, že Shawn ve svém příspěvku uvádí zpřístupnění zdrojových kódů a debug symbolů v rámci několika týdnů (od konce listopadu, kdy příspěvek vydal), takže to snad bude co nevidět. Než na to zase zapomenu :)&lt;/P&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Přidej do&lt;/strong&gt; &lt;a href = "http://linkuj.cz/?id=linkuj&amp;amp;url=http://blog.vyvojar.cz/puschak/archive/2008/01/07/zdr-en-uvoln-n-zdrojov-ch-k-d-net.aspx&amp;amp;;title=Zdr%c5%been%26%23237%3b+uvoln%c4%9bn%26%23237%3b+zdrojov%26%23253%3bch+k%26%23243%3bd%c5%af+.NET" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2008/01/07/zdr-en-uvoln-n-zdrojov-ch-k-d-net.aspx"&gt;linkuj.cz!&lt;/a&gt; |  &lt;a href = "http://www.jagg.cz/bookmarks.php?action=add&amp;amp;address=http://blog.vyvojar.cz/puschak/archive/2008/01/07/zdr-en-uvoln-n-zdrojov-ch-k-d-net.aspx&amp;amp;;title=Zdr%c5%been%26%23237%3b+uvoln%c4%9bn%26%23237%3b+zdrojov%26%23253%3bch+k%26%23243%3bd%c5%af+.NET" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2008/01/07/zdr-en-uvoln-n-zdrojov-ch-k-d-net.aspx"&gt;jagg.cz!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://blog.vyvojar.cz/puschak/archive/2008/01/07/zdr-en-uvoln-n-zdrojov-ch-k-d-net.aspx&amp;amp;;title=Zdr%c5%been%26%23237%3b+uvoln%c4%9bn%26%23237%3b+zdrojov%26%23253%3bch+k%26%23243%3bd%c5%af+.NET" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2008/01/07/zdr-en-uvoln-n-zdrojov-ch-k-d-net.aspx"&gt;del.icio.us!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://blog.vyvojar.cz/puschak/archive/2008/01/07/zdr-en-uvoln-n-zdrojov-ch-k-d-net.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2008/01/07/zdr-en-uvoln-n-zdrojov-ch-k-d-net.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://blog.vyvojar.cz/puschak/archive/2008/01/07/zdr-en-uvoln-n-zdrojov-ch-k-d-net.aspx&amp;amp;title=Zdr%c5%been%26%23237%3b+uvoln%c4%9bn%26%23237%3b+zdrojov%26%23253%3bch+k%26%23243%3bd%c5%af+.NET" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2008/01/07/zdr-en-uvoln-n-zdrojov-ch-k-d-net.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://blog.vyvojar.cz/puschak/archive/2008/01/07/zdr-en-uvoln-n-zdrojov-ch-k-d-net.aspx&amp;amp;;title=Zdr%c5%been%26%23237%3b+uvoln%c4%9bn%26%23237%3b+zdrojov%26%23253%3bch+k%26%23243%3bd%c5%af+.NET" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2008/01/07/zdr-en-uvoln-n-zdrojov-ch-k-d-net.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://blog.vyvojar.cz/puschak/archive/2008/01/07/zdr-en-uvoln-n-zdrojov-ch-k-d-net.aspx&amp;amp;;title=Zdr%c5%been%26%23237%3b+uvoln%c4%9bn%26%23237%3b+zdrojov%26%23253%3bch+k%26%23243%3bd%c5%af+.NET&amp;amp;;top=1" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2008/01/07/zdr-en-uvoln-n-zdrojov-ch-k-d-net.aspx"&gt;live it!&lt;/a&gt; |  &lt;a href = "mailto:?body=Thought you might like this: http://blog.vyvojar.cz/puschak/archive/2008/01/07/zdr-en-uvoln-n-zdrojov-ch-k-d-net.aspx&amp;amp;;subject=Zdr%c5%been%26%23237%3b+uvoln%c4%9bn%26%23237%3b+zdrojov%26%23253%3bch+k%26%23243%3bd%c5%af+.NET" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2008/01/07/zdr-en-uvoln-n-zdrojov-ch-k-d-net.aspx"&gt;email it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blog.vyvojar.cz/aggbug.aspx?PostID=226897" width="1" height="1"&gt;</description><category domain="http://blog.vyvojar.cz/puschak/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blog.vyvojar.cz/puschak/archive/tags/.NET+3.5/default.aspx">.NET 3.5</category><category domain="http://blog.vyvojar.cz/puschak/archive/tags/VS+2008/default.aspx">VS 2008</category></item><item><title>Video o Parallel FX</title><link>http://blog.vyvojar.cz/puschak/archive/2007/12/03/video-o-parallel-fx.aspx</link><pubDate>Sun, 02 Dec 2007 23:41:00 GMT</pubDate><guid isPermaLink="false">99a92ff2-698a-48c2-8eaf-f3d9b6202627:226720</guid><dc:creator>Puschak</dc:creator><slash:comments>0</slash:comments><comments>http://blog.vyvojar.cz/puschak/comments/226720.aspx</comments><wfw:commentRss>http://blog.vyvojar.cz/puschak/commentrss.aspx?PostID=226720</wfw:commentRss><description>Hlavní architekt jazyku C# a projektu LINQ&amp;nbsp;&lt;STRONG&gt;Anders Hejlsberg&lt;/STRONG&gt; a &lt;STRONG&gt;Joe Duffy&lt;/STRONG&gt;&amp;nbsp;z parallel computing platform teamu Microsoftu spolu na půlhodinovém videu na Channel 9 představují základní koncepty frameworku pro paralelní zpracování operací, kde již nebudeme "bojovat" s vlákny, jejich synchronizací či optimalizací pro vícejaderné procesory - Parallel FX. Diskuze je nejen o základním použití API tohoto frameworku, ale&amp;nbsp;i pojednání o vnitřní architektuře PFX a zapomenut není ani projekt PLINQ (paralelní spouštění LINQ dotazů).&lt;BR&gt;Mě osobně to velmi zaujalo a myslím, že nebudu sám. Video je ke shlédnutí i stažení &lt;A class="" href="http://channel9.msdn.com/Showpost.aspx?postid=347531"&gt;zde&lt;/A&gt;.
&lt;div class = "shareblock"&gt;&lt;strong&gt;Přidej do&lt;/strong&gt; &lt;a href = "http://linkuj.cz/?id=linkuj&amp;amp;url=http://blog.vyvojar.cz/puschak/archive/2007/12/03/video-o-parallel-fx.aspx&amp;amp;;title=Video+o+Parallel+FX" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2007/12/03/video-o-parallel-fx.aspx"&gt;linkuj.cz!&lt;/a&gt; |  &lt;a href = "http://www.jagg.cz/bookmarks.php?action=add&amp;amp;address=http://blog.vyvojar.cz/puschak/archive/2007/12/03/video-o-parallel-fx.aspx&amp;amp;;title=Video+o+Parallel+FX" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2007/12/03/video-o-parallel-fx.aspx"&gt;jagg.cz!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://blog.vyvojar.cz/puschak/archive/2007/12/03/video-o-parallel-fx.aspx&amp;amp;;title=Video+o+Parallel+FX" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2007/12/03/video-o-parallel-fx.aspx"&gt;del.icio.us!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://blog.vyvojar.cz/puschak/archive/2007/12/03/video-o-parallel-fx.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2007/12/03/video-o-parallel-fx.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://blog.vyvojar.cz/puschak/archive/2007/12/03/video-o-parallel-fx.aspx&amp;amp;title=Video+o+Parallel+FX" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2007/12/03/video-o-parallel-fx.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://blog.vyvojar.cz/puschak/archive/2007/12/03/video-o-parallel-fx.aspx&amp;amp;;title=Video+o+Parallel+FX" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2007/12/03/video-o-parallel-fx.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://blog.vyvojar.cz/puschak/archive/2007/12/03/video-o-parallel-fx.aspx&amp;amp;;title=Video+o+Parallel+FX&amp;amp;;top=1" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2007/12/03/video-o-parallel-fx.aspx"&gt;live it!&lt;/a&gt; |  &lt;a href = "mailto:?body=Thought you might like this: http://blog.vyvojar.cz/puschak/archive/2007/12/03/video-o-parallel-fx.aspx&amp;amp;;subject=Video+o+Parallel+FX" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2007/12/03/video-o-parallel-fx.aspx"&gt;email it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blog.vyvojar.cz/aggbug.aspx?PostID=226720" width="1" height="1"&gt;</description><category domain="http://blog.vyvojar.cz/puschak/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blog.vyvojar.cz/puschak/archive/tags/Research/default.aspx">Research</category></item><item><title>Jak "zkamarádit" assembly</title><link>http://blog.vyvojar.cz/puschak/archive/2007/12/01/jak-zkamar-dit-assembly.aspx</link><pubDate>Sat, 01 Dec 2007 21:41:00 GMT</pubDate><guid isPermaLink="false">99a92ff2-698a-48c2-8eaf-f3d9b6202627:226712</guid><dc:creator>Puschak</dc:creator><slash:comments>0</slash:comments><comments>http://blog.vyvojar.cz/puschak/comments/226712.aspx</comments><wfw:commentRss>http://blog.vyvojar.cz/puschak/commentrss.aspx?PostID=226712</wfw:commentRss><description>&lt;P&gt;Objektově orientovaný přístup nám definuje několik modifikátorů viditelnosti typů či jejich členů (public, protected, private).&amp;nbsp;V jazyku C# existuje jeden specifický modifikátor přístupu, který je na rozdíl od dříve zmíňených vázaný na konkrétní umístění kódu&amp;nbsp;typu. Nemám na mysli nic jiného, než specifikátor přístupu &lt;STRONG&gt;internal&lt;/STRONG&gt;, který daný typ či člen učiní viditelný pouze pro typy v rámci assembly, ve které je definován.&lt;/P&gt;
&lt;P&gt;Od .NET frameworku verze 2.0 existuje způsob, který nám umožní na úrovni assembly definovat, že některé vybrané assembly budou mít přístup k interním typům či členům, označených specifikátorem přístupu &lt;EM&gt;internal&lt;/EM&gt;. K takovémuto rozhodnutí můžou být různé důvody - zviditelnění nějakého API vybraným částem aplikace, unit testy atd. Tento způsob je představován použitím speciálního atributu &lt;STRONG&gt;InternalsVisibleTo&lt;/STRONG&gt;.&lt;/P&gt;
&lt;P&gt;Pojďme se podívat na jednoduchý příklad použití.&lt;/P&gt;
&lt;P&gt;Mějme dvě assembly - LibraryA a LibraryB.&lt;BR&gt;Na úrovni assembly s názvem LibraryB je definován interní typ obsahující interní člen.&lt;/P&gt;&lt;FONT color=#0000ff size=1&gt;
&lt;P&gt;namespace&lt;/FONT&gt;&lt;FONT size=1&gt; LibraryB&lt;BR&gt;{ &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;&amp;nbsp; internal&lt;/FONT&gt;&lt;FONT size=1&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;class&lt;/FONT&gt;&lt;FONT size=1&gt; &lt;/FONT&gt;&lt;FONT color=#2b91af size=1&gt;ClassFromLibraryB&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=1&gt;&amp;nbsp; {&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; internal&lt;/FONT&gt;&lt;FONT size=1&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;void&lt;/FONT&gt;&lt;FONT size=1&gt; SomeMethod()&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp; &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //implementace metody..&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR&gt;&amp;nbsp; }&lt;BR&gt;}&lt;/P&gt;&lt;/FONT&gt;
&lt;P&gt;Pokud bychom tento typ a jeho metodu chtěli použít z typu, který je obsažen v assembly s názvem LibraryA, tak by kompilace našeho projektu zcela logicky skončila chybou (&lt;EM&gt;LibraryB.ClassFromLibraryB' is inaccessible due to its protection level&lt;/EM&gt;). Pokud ovšem na úrovni assmbly LibraryB aplikujeme atribut &lt;EM&gt;InternalsVisibleTo&lt;/EM&gt;, kompilace po této změně proběhne bez problémů, protože jsme tímto&amp;nbsp;assembly LibraryA prohlásili za assembly přátelskou (Friendly assembly).&lt;/P&gt;&lt;FONT size=1&gt;&lt;FONT color=#008000 size=1&gt;
&lt;P&gt;//assembly s nazvem LibraryA oznacime za pratelskou&lt;/FONT&gt;&lt;BR&gt;[&lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;assembly&lt;/FONT&gt;&lt;FONT size=1&gt;: System.Runtime.CompilerServices.&lt;/FONT&gt;&lt;FONT color=#2b91af size=1&gt;InternalsVisibleTo&lt;/FONT&gt;&lt;FONT size=1&gt;(&lt;/FONT&gt;&lt;FONT color=#a31515 size=1&gt;"LibraryA"&lt;/FONT&gt;&lt;FONT size=1&gt;)]&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;namespace&lt;/FONT&gt;&lt;FONT size=1&gt; LibraryB&lt;BR&gt;{ &lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;&amp;nbsp; internal&lt;/FONT&gt;&lt;FONT size=1&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;class&lt;/FONT&gt;&lt;FONT size=1&gt; &lt;/FONT&gt;&lt;FONT color=#2b91af size=1&gt;ClassFromLibraryB&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=1&gt;&amp;nbsp; {&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=1&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ...&lt;BR&gt;&amp;nbsp; }&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;Níže uvedený kód již tedy bude zkompilovatelný.&lt;/P&gt;&lt;FONT color=#808080 size=1&gt;
&lt;P&gt;///&lt;/FONT&gt;&lt;FONT color=#008000 size=1&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=1&gt;&amp;lt;summary&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=1&gt;///&lt;/FONT&gt;&lt;FONT color=#008000 size=1&gt; Trida, ktera vyuziva sluzeb internich typu z assembly LibraryB.&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#808080 size=1&gt;///&lt;/FONT&gt;&lt;FONT color=#008000 size=1&gt; &lt;/FONT&gt;&lt;FONT color=#808080 size=1&gt;&amp;lt;/summary&amp;gt;&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;public&lt;/FONT&gt;&lt;FONT size=1&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;class&lt;/FONT&gt;&lt;FONT size=1&gt; &lt;/FONT&gt;&lt;FONT color=#2b91af size=1&gt;ClassFromLibraryA&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=1&gt;{&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;&amp;nbsp; public&lt;/FONT&gt;&lt;FONT size=1&gt; &lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;void&lt;/FONT&gt;&lt;FONT size=1&gt; DoSomething()&lt;BR&gt;&amp;nbsp; {&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=1&gt;&amp;nbsp; //je mozne vytvorit instanci interniho typu pratelske assembly&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#2b91af size=1&gt;&amp;nbsp; ClassFromLibraryB&lt;/FONT&gt;&lt;FONT size=1&gt; friendlyType = &lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;new&lt;/FONT&gt;&lt;FONT size=1&gt; &lt;/FONT&gt;&lt;FONT color=#2b91af size=1&gt;ClassFromLibraryB&lt;/FONT&gt;&lt;FONT size=1&gt;();&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=1&gt;&amp;nbsp; //je mozne zavolat interni metodu na typu z pratelske assembly&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=1&gt;&amp;nbsp; friendlyType.SomeMethod();&lt;BR&gt;&amp;nbsp; }&lt;BR&gt;}&lt;/P&gt;
&lt;P&gt;&lt;/FONT&gt;Pokud by assembly s názvem LibraryA měla silné jméno, situace se nám trochu zkomplikuje, protože v takovémto případě je nutné při použití atributu InternalsVisibleTo specifikovat kromě názvu assembly i hodnotu veřejného klíče (pozor, opravdu ne token veřejného klíče, jak by někteří mohli očekávat). Hodnotu veřejného klíče z podepsané assembly je možné získat pomocí utility &lt;STRONG&gt;sn.exe &lt;/STRONG&gt;například s přepínačem &lt;STRONG&gt;-Tp&lt;/STRONG&gt;. V kontextu našeho příkladu by tedy použití atributu &lt;EM&gt;InternalsVisibleTo&lt;/EM&gt; vypadalo nějak takto (veřejný klíč není z důvodu jeho délky uveden celý):&lt;FONT size=1&gt; &lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;[&lt;FONT color=#0000ff size=1&gt;assembly&lt;/FONT&gt;&lt;FONT size=1&gt;: System.Runtime.CompilerServices.&lt;/FONT&gt;&lt;FONT color=#2b91af size=1&gt;InternalsVisibleTo&lt;/FONT&gt;&lt;FONT size=1&gt;(&lt;/FONT&gt;&lt;FONT color=#a31515 size=1&gt;"LibraryA, PublicKey=0024000004 ... 4dd65a3085dd5"&lt;/FONT&gt;&lt;FONT size=1&gt;)]&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Samozřejmě je dobré této vlastnosti používat z rozmyslem a pouze v opodstatněných a dobře promyšlených případech.&lt;/STRONG&gt;&lt;/P&gt;
&lt;P&gt;P.S. I přesto, že jsem v .NET&amp;nbsp;"čístý" C#ista, zmíním, že pro přátelské assembly je nyní s příchodem .NET 3.5 podpora už&amp;nbsp;i v novém Visual Basicu 9. Viz tento &lt;A class="" href="http://community.bartdesmet.net/blogs/bart/archive/2007/09/01/visual-basic-9-0-feature-focus-friend-assemblies.aspx"&gt;link&lt;/A&gt;.&lt;/P&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Přidej do&lt;/strong&gt; &lt;a href = "http://linkuj.cz/?id=linkuj&amp;amp;url=http://blog.vyvojar.cz/puschak/archive/2007/12/01/jak-zkamar-dit-assembly.aspx&amp;amp;;title=Jak+%26quot%3bzkamar%26%23225%3bdit%26quot%3b+assembly" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2007/12/01/jak-zkamar-dit-assembly.aspx"&gt;linkuj.cz!&lt;/a&gt; |  &lt;a href = "http://www.jagg.cz/bookmarks.php?action=add&amp;amp;address=http://blog.vyvojar.cz/puschak/archive/2007/12/01/jak-zkamar-dit-assembly.aspx&amp;amp;;title=Jak+%26quot%3bzkamar%26%23225%3bdit%26quot%3b+assembly" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2007/12/01/jak-zkamar-dit-assembly.aspx"&gt;jagg.cz!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://blog.vyvojar.cz/puschak/archive/2007/12/01/jak-zkamar-dit-assembly.aspx&amp;amp;;title=Jak+%26quot%3bzkamar%26%23225%3bdit%26quot%3b+assembly" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2007/12/01/jak-zkamar-dit-assembly.aspx"&gt;del.icio.us!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://blog.vyvojar.cz/puschak/archive/2007/12/01/jak-zkamar-dit-assembly.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2007/12/01/jak-zkamar-dit-assembly.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://blog.vyvojar.cz/puschak/archive/2007/12/01/jak-zkamar-dit-assembly.aspx&amp;amp;title=Jak+%26quot%3bzkamar%26%23225%3bdit%26quot%3b+assembly" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2007/12/01/jak-zkamar-dit-assembly.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://blog.vyvojar.cz/puschak/archive/2007/12/01/jak-zkamar-dit-assembly.aspx&amp;amp;;title=Jak+%26quot%3bzkamar%26%23225%3bdit%26quot%3b+assembly" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2007/12/01/jak-zkamar-dit-assembly.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://blog.vyvojar.cz/puschak/archive/2007/12/01/jak-zkamar-dit-assembly.aspx&amp;amp;;title=Jak+%26quot%3bzkamar%26%23225%3bdit%26quot%3b+assembly&amp;amp;;top=1" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2007/12/01/jak-zkamar-dit-assembly.aspx"&gt;live it!&lt;/a&gt; |  &lt;a href = "mailto:?body=Thought you might like this: http://blog.vyvojar.cz/puschak/archive/2007/12/01/jak-zkamar-dit-assembly.aspx&amp;amp;;subject=Jak+%26quot%3bzkamar%26%23225%3bdit%26quot%3b+assembly" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2007/12/01/jak-zkamar-dit-assembly.aspx"&gt;email it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blog.vyvojar.cz/aggbug.aspx?PostID=226712" width="1" height="1"&gt;</description><category domain="http://blog.vyvojar.cz/puschak/archive/tags/.NET/default.aspx">.NET</category></item><item><title>Přednáška o .NET 3.5 a C# 3.0</title><link>http://blog.vyvojar.cz/puschak/archive/2007/11/29/p-edn-ka-o-net-3-5-a-c-3-0.aspx</link><pubDate>Thu, 29 Nov 2007 13:43:00 GMT</pubDate><guid isPermaLink="false">99a92ff2-698a-48c2-8eaf-f3d9b6202627:226710</guid><dc:creator>Puschak</dc:creator><slash:comments>1</slash:comments><comments>http://blog.vyvojar.cz/puschak/comments/226710.aspx</comments><wfw:commentRss>http://blog.vyvojar.cz/puschak/commentrss.aspx?PostID=226710</wfw:commentRss><description>&lt;P&gt;Dne 19.11. 2007 jsem na&amp;nbsp;půdě Fakulty&amp;nbsp;informatiky a managementu&amp;nbsp;Univerzity Hradec Králové přednášel o novinkách&amp;nbsp;v .NET 3.5 a C# 3.0. Shodou okolností ten den oficiálně vyšlo očekáváné Visual Studio 2008 spolu s .NET 3.5 o čemž jsem v době přednášky nevěděl a tak jsem tam ještě mluvil v budoucím čase &lt;img src="http://blog.vyvojar.cz/emoticons/emotion-1.gif" alt="Smile" /&gt;. Pro zájemce jsem na portál &lt;A href="http://www.netstudent.cz/"&gt;www.netstudent.cz&lt;/A&gt; umístil svou prezentaci ke stažení, takže koho to zajímá, nechť se na tomto portálu zaregistruje, pokud ještě tak neučinil,&amp;nbsp;a zmiňovanou prezentaci si &lt;A class="" title="Portál netstudent - Ke stažení" href="http://www.netstudent.cz/Kestažení/tabid/58/Default.aspx"&gt;zde&lt;/A&gt;&amp;nbsp;stáhne.&lt;/P&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Přidej do&lt;/strong&gt; &lt;a href = "http://linkuj.cz/?id=linkuj&amp;amp;url=http://blog.vyvojar.cz/puschak/archive/2007/11/29/p-edn-ka-o-net-3-5-a-c-3-0.aspx&amp;amp;;title=P%c5%99edn%26%23225%3b%c5%a1ka+o+.NET+3.5+a+C%23+3.0" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2007/11/29/p-edn-ka-o-net-3-5-a-c-3-0.aspx"&gt;linkuj.cz!&lt;/a&gt; |  &lt;a href = "http://www.jagg.cz/bookmarks.php?action=add&amp;amp;address=http://blog.vyvojar.cz/puschak/archive/2007/11/29/p-edn-ka-o-net-3-5-a-c-3-0.aspx&amp;amp;;title=P%c5%99edn%26%23225%3b%c5%a1ka+o+.NET+3.5+a+C%23+3.0" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2007/11/29/p-edn-ka-o-net-3-5-a-c-3-0.aspx"&gt;jagg.cz!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://blog.vyvojar.cz/puschak/archive/2007/11/29/p-edn-ka-o-net-3-5-a-c-3-0.aspx&amp;amp;;title=P%c5%99edn%26%23225%3b%c5%a1ka+o+.NET+3.5+a+C%23+3.0" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2007/11/29/p-edn-ka-o-net-3-5-a-c-3-0.aspx"&gt;del.icio.us!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://blog.vyvojar.cz/puschak/archive/2007/11/29/p-edn-ka-o-net-3-5-a-c-3-0.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2007/11/29/p-edn-ka-o-net-3-5-a-c-3-0.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://blog.vyvojar.cz/puschak/archive/2007/11/29/p-edn-ka-o-net-3-5-a-c-3-0.aspx&amp;amp;title=P%c5%99edn%26%23225%3b%c5%a1ka+o+.NET+3.5+a+C%23+3.0" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2007/11/29/p-edn-ka-o-net-3-5-a-c-3-0.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://blog.vyvojar.cz/puschak/archive/2007/11/29/p-edn-ka-o-net-3-5-a-c-3-0.aspx&amp;amp;;title=P%c5%99edn%26%23225%3b%c5%a1ka+o+.NET+3.5+a+C%23+3.0" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2007/11/29/p-edn-ka-o-net-3-5-a-c-3-0.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://blog.vyvojar.cz/puschak/archive/2007/11/29/p-edn-ka-o-net-3-5-a-c-3-0.aspx&amp;amp;;title=P%c5%99edn%26%23225%3b%c5%a1ka+o+.NET+3.5+a+C%23+3.0&amp;amp;;top=1" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2007/11/29/p-edn-ka-o-net-3-5-a-c-3-0.aspx"&gt;live it!&lt;/a&gt; |  &lt;a href = "mailto:?body=Thought you might like this: http://blog.vyvojar.cz/puschak/archive/2007/11/29/p-edn-ka-o-net-3-5-a-c-3-0.aspx&amp;amp;;subject=P%c5%99edn%26%23225%3b%c5%a1ka+o+.NET+3.5+a+C%23+3.0" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2007/11/29/p-edn-ka-o-net-3-5-a-c-3-0.aspx"&gt;email it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blog.vyvojar.cz/aggbug.aspx?PostID=226710" width="1" height="1"&gt;</description><category domain="http://blog.vyvojar.cz/puschak/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blog.vyvojar.cz/puschak/archive/tags/C_2300_+3.0/default.aspx">C# 3.0</category><category domain="http://blog.vyvojar.cz/puschak/archive/tags/.NET+3.5/default.aspx">.NET 3.5</category></item><item><title>Power Collections</title><link>http://blog.vyvojar.cz/puschak/archive/2007/10/27/power-collections.aspx</link><pubDate>Sat, 27 Oct 2007 13:46:00 GMT</pubDate><guid isPermaLink="false">99a92ff2-698a-48c2-8eaf-f3d9b6202627:226565</guid><dc:creator>Puschak</dc:creator><slash:comments>0</slash:comments><comments>http://blog.vyvojar.cz/puschak/comments/226565.aspx</comments><wfw:commentRss>http://blog.vyvojar.cz/puschak/commentrss.aspx?PostID=226565</wfw:commentRss><description>&lt;P&gt;Základní knihovna tříd .NET frameworku obsahuje ve jmenných prostorech System.Collections a System.Collections.Generic implementaci základních netypových respektive (mých oblíbených)&amp;nbsp;typových kolekcí. Nicméně pokud jste například&amp;nbsp;někdy pracovali v Javě a používali kolekce z JCF (Java Collection Framework) jistě jste při používání kolekcí v .NET poznali, že to není to na co jste zvyklí. Ale i pokud jste Javou nedotknutí, možná mi dáte za pravdu, že základní podpora kolekcí v .NET není na všechny situace adekvátně připravena.&lt;/P&gt;
&lt;P&gt;Pokud máte občas výše zmiňované pocity vyzkoušejte &lt;STRONG&gt;Wintellect's Power Collections for .NET&lt;/STRONG&gt;. Tento zajímavý open source projekt si klade za hlavní&amp;nbsp;cíl implementovat kolekce, které nejsou v BCL k dispozici. Všechny implementované kolekce jsou silně typované díky použití generik. Implementované kolekce jsou jak takové, které nemají, co se funkcionality týče,&amp;nbsp;protějška v BCL (Set, Bag, Deque..), ale i takové, které mají funkcionality stejnou, nicméně efektivněji implementovanou (BigList například). Dále v této knihovně najdete velkou množinu různých utilit pro práci s kolekcemi. Tyto utility nejsou vázány na použití kolekcí z Power Collections, ale používají standardních rozhraní .NETu (IEnumerable...), takže je můžete použít i pro standardní kolekce z BCL.&lt;/P&gt;
&lt;P&gt;Pro inspiraci zde uvedu pár ukázek použití. Tak například je zde implementována kolekce &lt;STRONG&gt;Set&lt;/STRONG&gt;, kterou dobře znají "Javisti". Jedná se o nesetříděnou kolekci, která neobsahuje duplikátní prvky.&lt;/P&gt;&lt;FONT color=#008000 size=1&gt;
&lt;P&gt;//vytvoreni instanci&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#2b91af size=1&gt;Set&lt;/FONT&gt;&lt;FONT size=1&gt;&amp;lt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;int&lt;/FONT&gt;&lt;FONT size=1&gt;&amp;gt; firstSet = &lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;new&lt;/FONT&gt;&lt;FONT size=1&gt; &lt;/FONT&gt;&lt;FONT color=#2b91af size=1&gt;Set&lt;/FONT&gt;&lt;FONT size=1&gt;&amp;lt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;int&lt;/FONT&gt;&lt;FONT size=1&gt;&amp;gt;();&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#2b91af size=1&gt;Set&lt;/FONT&gt;&lt;FONT size=1&gt;&amp;lt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;int&lt;/FONT&gt;&lt;FONT size=1&gt;&amp;gt; secondSet = &lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;new&lt;/FONT&gt;&lt;FONT size=1&gt; &lt;/FONT&gt;&lt;FONT color=#2b91af size=1&gt;Set&lt;/FONT&gt;&lt;FONT size=1&gt;&amp;lt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;int&lt;/FONT&gt;&lt;FONT size=1&gt;&amp;gt;();&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=1&gt;//naplneni prvky&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=1&gt;firstSet.Add(1);&lt;BR&gt;firstSet.Add(2);&lt;BR&gt;secondSet.Add(2);&lt;BR&gt;secondSet.Add(3);&lt;BR&gt;secondSet.Add(4);&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=1&gt;//ziskani prvku, ktere jsou v jinem setu jine&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#2b91af size=1&gt;Set&lt;/FONT&gt;&lt;FONT size=1&gt;&amp;lt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;int&lt;/FONT&gt;&lt;FONT size=1&gt;&amp;gt; differences = secondSet.Difference(firstSet);&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#2b91af size=1&gt;Console&lt;/FONT&gt;&lt;FONT size=1&gt;.WriteLine(&lt;/FONT&gt;&lt;FONT color=#a31515 size=1&gt;"Different items in second set : "&lt;/FONT&gt;&lt;FONT size=1&gt;);&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;foreach&lt;/FONT&gt;&lt;FONT size=1&gt; (&lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;int&lt;/FONT&gt;&lt;FONT size=1&gt; item &lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;in&lt;/FONT&gt;&lt;FONT size=1&gt; differences)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#2b91af size=1&gt;Console&lt;/FONT&gt;&lt;FONT size=1&gt;.WriteLine(item);&lt;BR&gt;}&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=1&gt;&lt;FONT size=2&gt;Další zajímavou implementovanou kolekcí v Power Collections je &lt;STRONG&gt;MultiDictionary&lt;/STRONG&gt;. Tato implementace slovníku je rozdílná od standardní v tom, že může pod jedním klíčem uchovávat více hodnot.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=1&gt;&lt;FONT size=1&gt;&lt;FONT color=#2b91af&gt;&amp;nbsp;&lt;/FONT&gt;MultiDictionary&lt;FONT size=1&gt;&amp;lt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;int&lt;/FONT&gt;&lt;FONT size=1&gt;, &lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;string&lt;/FONT&gt;&lt;FONT size=1&gt;&amp;gt; dict = &lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;new&lt;/FONT&gt;&lt;FONT size=1&gt; &lt;/FONT&gt;&lt;FONT color=#2b91af size=1&gt;MultiDictionary&lt;/FONT&gt;&lt;FONT size=1&gt;&amp;lt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;int&lt;/FONT&gt;&lt;FONT size=1&gt;, &lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;string&lt;/FONT&gt;&lt;FONT size=1&gt;&amp;gt;(&lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;true&lt;/FONT&gt;&lt;FONT size=1&gt;);&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=1&gt;//naplneni daty&lt;BR&gt;&lt;/FONT&gt;&lt;FONT size=1&gt;dict.Add(1, &lt;/FONT&gt;&lt;FONT color=#a31515 size=1&gt;"First item for '1'"&lt;/FONT&gt;&lt;FONT size=1&gt;);&lt;BR&gt;dict.Add(1, &lt;/FONT&gt;&lt;FONT color=#a31515 size=1&gt;"Second item for '1'"&lt;/FONT&gt;&lt;FONT size=1&gt;);&lt;BR&gt;dict.Add(2, &lt;/FONT&gt;&lt;FONT color=#a31515 size=1&gt;"First item for '2'"&lt;/FONT&gt;&lt;FONT size=1&gt;);&lt;BR&gt;dict.Add(2, &lt;/FONT&gt;&lt;FONT color=#a31515 size=1&gt;"Second item for '2'"&lt;/FONT&gt;&lt;FONT size=1&gt;);&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#008000 size=1&gt;//pro kazdy klic je vypsana mnozina hodnot&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;foreach&lt;/FONT&gt;&lt;FONT size=1&gt; (&lt;/FONT&gt;&lt;FONT color=#2b91af size=1&gt;KeyValuePair&lt;/FONT&gt;&lt;FONT size=1&gt;&amp;lt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;int&lt;/FONT&gt;&lt;FONT size=1&gt;, &lt;/FONT&gt;&lt;FONT color=#2b91af size=1&gt;ICollection&lt;/FONT&gt;&lt;FONT size=1&gt;&amp;lt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;string&lt;/FONT&gt;&lt;FONT size=1&gt;&amp;gt;&amp;gt; pair &lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;in&lt;/FONT&gt;&lt;FONT size=1&gt; dict)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#2b91af size=1&gt;Console&lt;/FONT&gt;&lt;FONT size=1&gt;.WriteLine(&lt;/FONT&gt;&lt;FONT color=#a31515 size=1&gt;"VALUES FOR KEY '{0}' : "&lt;/FONT&gt;&lt;FONT size=1&gt;, pair.Key);&lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;foreach&lt;/FONT&gt;&lt;FONT size=1&gt; (&lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;string&lt;/FONT&gt;&lt;FONT size=1&gt; value &lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;in&lt;/FONT&gt;&lt;FONT size=1&gt; pair.Value)&lt;BR&gt;&amp;nbsp;&amp;nbsp;{&lt;BR&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#2b91af size=1&gt;Console&lt;/FONT&gt;&lt;FONT size=1&gt;.WriteLine(value);&lt;BR&gt;&amp;nbsp;&amp;nbsp;}&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#2b91af size=1&gt;&amp;nbsp; Console&lt;/FONT&gt;&lt;FONT size=1&gt;.WriteLine();&lt;BR&gt;}&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=1&gt;&lt;FONT size=1&gt;&lt;FONT size=1&gt;&lt;FONT size=2&gt;Užitečná může být i struktura &lt;STRONG&gt;Pair&lt;/STRONG&gt; pro pohodlnou práci s dvojicí hodnot.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;FONT color=#2b91af size=1&gt;
&lt;P&gt;Dictionary&lt;/FONT&gt;&lt;FONT size=1&gt;&amp;lt;&lt;/FONT&gt;&lt;FONT color=#2b91af size=1&gt;Pair&lt;/FONT&gt;&lt;FONT size=1&gt;&amp;lt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;int&lt;/FONT&gt;&lt;FONT size=1&gt;, &lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;string&lt;/FONT&gt;&lt;FONT size=1&gt;&amp;gt;, &lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;string&lt;/FONT&gt;&lt;FONT size=1&gt;&amp;gt; dict = &lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;new&lt;/FONT&gt;&lt;FONT size=1&gt; &lt;/FONT&gt;&lt;FONT color=#2b91af size=1&gt;Dictionary&lt;/FONT&gt;&lt;FONT size=1&gt;&amp;lt;&lt;/FONT&gt;&lt;FONT color=#2b91af size=1&gt;Pair&lt;/FONT&gt;&lt;FONT size=1&gt;&amp;lt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;int&lt;/FONT&gt;&lt;FONT size=1&gt;, &lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;string&lt;/FONT&gt;&lt;FONT size=1&gt;&amp;gt;, &lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;string&lt;/FONT&gt;&lt;FONT size=1&gt;&amp;gt;();&lt;/FONT&gt;&lt;FONT size=1&gt;&lt;BR&gt;dict.Add(&lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;new&lt;/FONT&gt;&lt;FONT size=1&gt; &lt;/FONT&gt;&lt;FONT color=#2b91af size=1&gt;Pair&lt;/FONT&gt;&lt;FONT size=1&gt;&amp;lt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;int&lt;/FONT&gt;&lt;FONT size=1&gt;, &lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;string&lt;/FONT&gt;&lt;FONT size=1&gt;&amp;gt;(1, &lt;/FONT&gt;&lt;FONT color=#a31515 size=1&gt;"Hello"&lt;/FONT&gt;&lt;FONT size=1&gt;), &lt;/FONT&gt;&lt;FONT color=#a31515 size=1&gt;"First item"&lt;/FONT&gt;&lt;FONT size=1&gt;);&lt;BR&gt;dict.Add(&lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;new&lt;/FONT&gt;&lt;FONT size=1&gt; &lt;/FONT&gt;&lt;FONT color=#2b91af size=1&gt;Pair&lt;/FONT&gt;&lt;FONT size=1&gt;&amp;lt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;int&lt;/FONT&gt;&lt;FONT size=1&gt;, &lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;string&lt;/FONT&gt;&lt;FONT size=1&gt;&amp;gt;(2, &lt;/FONT&gt;&lt;FONT color=#a31515 size=1&gt;"World"&lt;/FONT&gt;&lt;FONT size=1&gt;), &lt;/FONT&gt;&lt;FONT color=#a31515 size=1&gt;"Second item"&lt;/FONT&gt;&lt;FONT size=1&gt;);&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;string&lt;/FONT&gt;&lt;FONT size=1&gt; itemFromDict = dict[&lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;new&lt;/FONT&gt;&lt;FONT size=1&gt; &lt;/FONT&gt;&lt;FONT color=#2b91af size=1&gt;Pair&lt;/FONT&gt;&lt;FONT size=1&gt;&amp;lt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;int&lt;/FONT&gt;&lt;FONT size=1&gt;, &lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;string&lt;/FONT&gt;&lt;FONT size=1&gt;&amp;gt;(1, &lt;/FONT&gt;&lt;FONT color=#a31515 size=1&gt;"Hello"&lt;/FONT&gt;&lt;FONT size=1&gt;)];&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;Statická třída &lt;STRONG&gt;Algorithms&lt;/STRONG&gt; obsahuje implementace spousty algoritmů, které při práci s kolekcemi nezřídka přijdou vhod. Například můžete spočítat kolik prvků v kolekci splňuje nějakou podmínku, kterou definujete implementací delegáta Predicate&amp;lt;T&amp;gt;. V ukázce je použita kolekce Bag, která je podobná kolekci Set, s tím rozdílem, že může obsahovat duplikátní prvky.&lt;/P&gt;
&lt;P&gt;&lt;FONT color=#2b91af size=1&gt;&lt;/FONT&gt;&lt;/P&gt;&lt;FONT color=#2b91af size=1&gt;
&lt;P&gt;Bag&lt;/FONT&gt;&lt;FONT size=1&gt;&amp;lt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;int&lt;/FONT&gt;&lt;FONT size=1&gt;&amp;gt; bagOfInts = &lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;new&lt;/FONT&gt;&lt;FONT size=1&gt; &lt;/FONT&gt;&lt;FONT color=#2b91af size=1&gt;Bag&lt;/FONT&gt;&lt;FONT size=1&gt;&amp;lt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;int&lt;/FONT&gt;&lt;FONT size=1&gt;&amp;gt;();&lt;/FONT&gt;&lt;FONT size=1&gt;&lt;BR&gt;bagOfInts.Add(1);&lt;BR&gt;bagOfInts.Add(2);&lt;BR&gt;bagOfInts.Add(3);&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#2b91af size=1&gt;Predicate&lt;/FONT&gt;&lt;FONT size=1&gt;&amp;lt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;int&lt;/FONT&gt;&lt;FONT size=1&gt;&amp;gt; predicate = &lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;delegate&lt;/FONT&gt;&lt;FONT size=1&gt;(&lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;int&lt;/FONT&gt;&lt;FONT size=1&gt; item)&lt;BR&gt;{&lt;BR&gt;&amp;nbsp; &lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;return&lt;/FONT&gt;&lt;FONT size=1&gt; item &amp;gt; 1;&lt;BR&gt;};&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;int&lt;/FONT&gt;&lt;FONT size=1&gt; count = &lt;/FONT&gt;&lt;FONT color=#2b91af size=1&gt;Algorithms&lt;/FONT&gt;&lt;FONT size=1&gt;.CountWhere&amp;lt;&lt;/FONT&gt;&lt;FONT color=#0000ff size=1&gt;int&lt;/FONT&gt;&lt;FONT size=1&gt;&amp;gt;(bagOfInts, predicate);&lt;BR&gt;&lt;/FONT&gt;&lt;FONT color=#2b91af size=1&gt;Console&lt;/FONT&gt;&lt;FONT size=1&gt;.WriteLine(count);&lt;/P&gt;&lt;/FONT&gt;
&lt;P&gt;&lt;FONT size=1&gt;&lt;FONT size=2&gt;Na třídě Algorithms jsou dále implementovány metody pro Binární prohledávání, řazení, kartézský součin, naplňování kolekcí atd.&lt;/FONT&gt;&lt;/FONT&gt;&lt;/P&gt;
&lt;P&gt;&lt;FONT size=1&gt;&lt;FONT size=2&gt;Pokud tedy patříte mezi ty, kterým ne vždy stačí standardní možnosti kolekcí v .NET neváhejte sáhnout pro tuto knihovnu, která je hostována na CodePlex (Microsoft repository pro open source projekty), přesně zde &lt;A href="http://www.codeplex.com/PowerCollections"&gt;http://www.codeplex.com/PowerCollections&lt;/A&gt;&amp;nbsp;.&lt;/FONT&gt;&lt;/P&gt;&lt;/FONT&gt;&lt;FONT size=1&gt;&lt;FONT size=1&gt;&lt;FONT size=1&gt;&lt;FONT size=1&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;&lt;/FONT&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Přidej do&lt;/strong&gt; &lt;a href = "http://linkuj.cz/?id=linkuj&amp;amp;url=http://blog.vyvojar.cz/puschak/archive/2007/10/27/power-collections.aspx&amp;amp;;title=Power+Collections" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2007/10/27/power-collections.aspx"&gt;linkuj.cz!&lt;/a&gt; |  &lt;a href = "http://www.jagg.cz/bookmarks.php?action=add&amp;amp;address=http://blog.vyvojar.cz/puschak/archive/2007/10/27/power-collections.aspx&amp;amp;;title=Power+Collections" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2007/10/27/power-collections.aspx"&gt;jagg.cz!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://blog.vyvojar.cz/puschak/archive/2007/10/27/power-collections.aspx&amp;amp;;title=Power+Collections" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2007/10/27/power-collections.aspx"&gt;del.icio.us!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://blog.vyvojar.cz/puschak/archive/2007/10/27/power-collections.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2007/10/27/power-collections.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://blog.vyvojar.cz/puschak/archive/2007/10/27/power-collections.aspx&amp;amp;title=Power+Collections" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2007/10/27/power-collections.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://blog.vyvojar.cz/puschak/archive/2007/10/27/power-collections.aspx&amp;amp;;title=Power+Collections" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2007/10/27/power-collections.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://blog.vyvojar.cz/puschak/archive/2007/10/27/power-collections.aspx&amp;amp;;title=Power+Collections&amp;amp;;top=1" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2007/10/27/power-collections.aspx"&gt;live it!&lt;/a&gt; |  &lt;a href = "mailto:?body=Thought you might like this: http://blog.vyvojar.cz/puschak/archive/2007/10/27/power-collections.aspx&amp;amp;;subject=Power+Collections" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2007/10/27/power-collections.aspx"&gt;email it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blog.vyvojar.cz/aggbug.aspx?PostID=226565" width="1" height="1"&gt;</description><category domain="http://blog.vyvojar.cz/puschak/archive/tags/.NET/default.aspx">.NET</category></item><item><title>Centralizace nastavení assembly</title><link>http://blog.vyvojar.cz/puschak/archive/2007/10/10/centralizace-nastaven-assembly.aspx</link><pubDate>Wed, 10 Oct 2007 19:17:00 GMT</pubDate><guid isPermaLink="false">99a92ff2-698a-48c2-8eaf-f3d9b6202627:226494</guid><dc:creator>Puschak</dc:creator><slash:comments>0</slash:comments><comments>http://blog.vyvojar.cz/puschak/comments/226494.aspx</comments><wfw:commentRss>http://blog.vyvojar.cz/puschak/commentrss.aspx?PostID=226494</wfw:commentRss><description>&lt;P&gt;Práce na větších aplikacích s sebou nese řadu menších či větších&amp;nbsp;problémů. Takovéto aplikace je totiž&amp;nbsp;obvykle dobré rozdělit na několik assembly, což znamená mít několik projektů v solution Visual Studia.&amp;nbsp;Jedním z možných problémů je zajištění společných vlastností těchto&amp;nbsp;assembly, které tvoří naši&amp;nbsp;aplikaci.&amp;nbsp;&amp;nbsp;Atributy definující vlastnosti assembly jakými jsou mimo jiné verze assembly&amp;nbsp;či název výrobce,&amp;nbsp;jsou standardně umísťovány v souboru &lt;EM&gt;AssemblyInfo.cs&lt;/EM&gt; ve složce &lt;EM&gt;Properties&lt;/EM&gt; daného VS&amp;nbsp;projektu. Vážou se tedy pouze k assembly vyprodukované kompilací zdrojových kódů VS projektu . &lt;/P&gt;
&lt;P&gt;Často ovšem chceme, aby všechny assembly měli po kompilaci například&amp;nbsp;stejnou verzi či zmiňovaného výrobce nebo jakékoliv jiné společné&amp;nbsp;vlastnosti. V případě, že je naše solution tvořena dvěma projekty, tak to zase takový problém není, ovšem problém nastává v případě, kdy je potřeba sjednotit některé vlastnosti pro 20 projektů, což u solution&amp;nbsp;větších aplikací není zase tak nezvyklé. V tom případě se udržování těchto společných vlastností pomocí souborů &lt;EM&gt;AssemblyInfo.cs&lt;/EM&gt; stává jaksi nepohodlné dalo by se označit za takovou "opičí" práci.&lt;/P&gt;
&lt;P&gt;Existuje ovšem poměrně jednoduchý způsob, jak mít všechny společné vlastnosti na jednom místě a opici si tedy&amp;nbsp;nechat akorát tak&amp;nbsp;na rána po předchozích&amp;nbsp;hospodských večerech. Tomuto způsobu se někdy říká SolutionInfo pattern a spočívá v tom, že se vytvoří jeden soubor obsahující atributy pro společné vlastnosti všech assembly aplikace a tento soubor je následně nalinkován do všech projektů v solution.&lt;/P&gt;
&lt;P&gt;Postup je tedy následující:&lt;/P&gt;
&lt;OL&gt;
&lt;LI&gt;Vytvořte soubor SolutionInfo.cs (název může samozřejmě být i jiný), do kterého pomocí atributů nadefinujte společné&amp;nbsp;vlastnosti pro celou aplikaci.&lt;BR&gt;Příklad souboru SolutionInfo.cs :&lt;BR&gt;&lt;FONT color=#0000ff size=1&gt;
&lt;P&gt;using&lt;/FONT&gt;&lt;FONT size=1&gt; System.Reflection;&lt;/P&gt;
&lt;P&gt;[assembly: &lt;/FONT&gt;&lt;FONT color=#2b91af size=1&gt;AssemblyVersion&lt;/FONT&gt;&lt;FONT size=1&gt;(&lt;/FONT&gt;&lt;FONT color=#a31515 size=1&gt;"2.0.0.0"&lt;/FONT&gt;&lt;FONT size=1&gt;)]&lt;BR&gt;[assembly: &lt;/FONT&gt;&lt;FONT color=#2b91af size=1&gt;AssemblyFileVersion&lt;/FONT&gt;&lt;FONT size=1&gt;(&lt;/FONT&gt;&lt;FONT color=#a31515 size=1&gt;"2.0.0.0"&lt;/FONT&gt;&lt;FONT size=1&gt;)]&lt;BR&gt;[assembly: &lt;/FONT&gt;&lt;FONT color=#2b91af size=1&gt;AssemblyCompany&lt;/FONT&gt;&lt;FONT size=1&gt;(&lt;/FONT&gt;&lt;FONT color=#a31515 size=1&gt;"Petr Pus Comany"&lt;/FONT&gt;&lt;FONT size=1&gt;)]&lt;BR&gt;[assembly: &lt;/FONT&gt;&lt;FONT color=#2b91af size=1&gt;AssemblyProduct&lt;/FONT&gt;&lt;FONT size=1&gt;(&lt;/FONT&gt;&lt;FONT color=#a31515 size=1&gt;"Muj velky projekt"&lt;/FONT&gt;&lt;FONT size=1&gt;)]&lt;/P&gt;&lt;/FONT&gt;&lt;/LI&gt;
&lt;LI&gt;Ze souborů AssemblyInfo.cs smažte všechny atributy, které jsou centralizovány v souboru SolutionInfo.cs&lt;/LI&gt;
&lt;LI&gt;Do jednotlivých projektů v solution nalinkujte soubor SolutionInfo.cs (Kontextová nabídka na VS projektu&amp;gt;Add&amp;gt;ExistingItem..&amp;gt;Add as link)&lt;BR&gt;&lt;BR&gt;&lt;IMG style="WIDTH:500px;HEIGHT:375px;" height=375 src="http://www.vyvojar.cz/Files/Petr%20Pu%C5%A1/Image/Blog/SolutionInfo/VS_dialog_open_as_link.jpg" width=500&gt;&lt;/LI&gt;&lt;/OL&gt;
&lt;P&gt;Pak by měla vaše solution vypadat nějak takto..&lt;/P&gt;
&lt;P&gt;&lt;IMG src="http://www.vyvojar.cz/Files/Petr%20Pu%C5%A1/Image/Blog/SolutionInfo/VS_Solutuion_explorer.jpg"&gt;&lt;/P&gt;
&lt;P&gt;Můžete jít v aplikaci tohoto postupu ještě dále a vytvořit jeden soubor pouze na určení společné&amp;nbsp;verze všech assembly (např. SolutionVersion.cs)&amp;nbsp;a v souboru SolutionInfo.cs uvést ostatní společné vlastnosti, ale to už nechám na vás. Doufám, že tímto postupem&amp;nbsp;ušetříte svůj, jistě drahý, čas &lt;img src="http://blog.vyvojar.cz/emoticons/emotion-5.gif" alt="Wink" /&gt;&lt;/P&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Přidej do&lt;/strong&gt; &lt;a href = "http://linkuj.cz/?id=linkuj&amp;amp;url=http://blog.vyvojar.cz/puschak/archive/2007/10/10/centralizace-nastaven-assembly.aspx&amp;amp;;title=Centralizace+nastaven%26%23237%3b+assembly" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2007/10/10/centralizace-nastaven-assembly.aspx"&gt;linkuj.cz!&lt;/a&gt; |  &lt;a href = "http://www.jagg.cz/bookmarks.php?action=add&amp;amp;address=http://blog.vyvojar.cz/puschak/archive/2007/10/10/centralizace-nastaven-assembly.aspx&amp;amp;;title=Centralizace+nastaven%26%23237%3b+assembly" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2007/10/10/centralizace-nastaven-assembly.aspx"&gt;jagg.cz!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://blog.vyvojar.cz/puschak/archive/2007/10/10/centralizace-nastaven-assembly.aspx&amp;amp;;title=Centralizace+nastaven%26%23237%3b+assembly" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2007/10/10/centralizace-nastaven-assembly.aspx"&gt;del.icio.us!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://blog.vyvojar.cz/puschak/archive/2007/10/10/centralizace-nastaven-assembly.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2007/10/10/centralizace-nastaven-assembly.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://blog.vyvojar.cz/puschak/archive/2007/10/10/centralizace-nastaven-assembly.aspx&amp;amp;title=Centralizace+nastaven%26%23237%3b+assembly" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2007/10/10/centralizace-nastaven-assembly.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://blog.vyvojar.cz/puschak/archive/2007/10/10/centralizace-nastaven-assembly.aspx&amp;amp;;title=Centralizace+nastaven%26%23237%3b+assembly" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2007/10/10/centralizace-nastaven-assembly.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://blog.vyvojar.cz/puschak/archive/2007/10/10/centralizace-nastaven-assembly.aspx&amp;amp;;title=Centralizace+nastaven%26%23237%3b+assembly&amp;amp;;top=1" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2007/10/10/centralizace-nastaven-assembly.aspx"&gt;live it!&lt;/a&gt; |  &lt;a href = "mailto:?body=Thought you might like this: http://blog.vyvojar.cz/puschak/archive/2007/10/10/centralizace-nastaven-assembly.aspx&amp;amp;;subject=Centralizace+nastaven%26%23237%3b+assembly" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2007/10/10/centralizace-nastaven-assembly.aspx"&gt;email it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blog.vyvojar.cz/aggbug.aspx?PostID=226494" width="1" height="1"&gt;</description><category domain="http://blog.vyvojar.cz/puschak/archive/tags/VS+2005/default.aspx">VS 2005</category></item><item><title>Shawn Burke o vydání zdrojových kódu</title><link>http://blog.vyvojar.cz/puschak/archive/2007/10/07/shawn-burke-o-vyd-n-zdrojov-ch-k-du.aspx</link><pubDate>Sun, 07 Oct 2007 08:35:00 GMT</pubDate><guid isPermaLink="false">99a92ff2-698a-48c2-8eaf-f3d9b6202627:226483</guid><dc:creator>Puschak</dc:creator><slash:comments>1</slash:comments><comments>http://blog.vyvojar.cz/puschak/comments/226483.aspx</comments><wfw:commentRss>http://blog.vyvojar.cz/puschak/commentrss.aspx?PostID=226483</wfw:commentRss><description>&lt;P&gt;Na Channel 9 je zajímavé video, kde Shawn Burke z .NET Developer Platform group hovoří o vydání zdrojových kódu k .NET frameworku a ukazuje jak je možné při ladění ve VS 2008&amp;nbsp;krokovat v interní&amp;nbsp;implementaci .NET frameworku. Doporučuji shlédnout.&lt;/P&gt;
&lt;P&gt;Link zde :&lt;A href="http://channel9.msdn.com/Showpost.aspx?postid=345805"&gt;http://channel9.msdn.com/Showpost.aspx?postid=345805&lt;/A&gt;&lt;/P&gt;
&lt;div class = "shareblock"&gt;&lt;strong&gt;Přidej do&lt;/strong&gt; &lt;a href = "http://linkuj.cz/?id=linkuj&amp;amp;url=http://blog.vyvojar.cz/puschak/archive/2007/10/07/shawn-burke-o-vyd-n-zdrojov-ch-k-du.aspx&amp;amp;;title=Shawn+Burke+o+vyd%26%23225%3bn%26%23237%3b+zdrojov%26%23253%3bch+k%26%23243%3bdu" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2007/10/07/shawn-burke-o-vyd-n-zdrojov-ch-k-du.aspx"&gt;linkuj.cz!&lt;/a&gt; |  &lt;a href = "http://www.jagg.cz/bookmarks.php?action=add&amp;amp;address=http://blog.vyvojar.cz/puschak/archive/2007/10/07/shawn-burke-o-vyd-n-zdrojov-ch-k-du.aspx&amp;amp;;title=Shawn+Burke+o+vyd%26%23225%3bn%26%23237%3b+zdrojov%26%23253%3bch+k%26%23243%3bdu" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2007/10/07/shawn-burke-o-vyd-n-zdrojov-ch-k-du.aspx"&gt;jagg.cz!&lt;/a&gt; |  &lt;a href = "http://del.icio.us/post?url=http://blog.vyvojar.cz/puschak/archive/2007/10/07/shawn-burke-o-vyd-n-zdrojov-ch-k-du.aspx&amp;amp;;title=Shawn+Burke+o+vyd%26%23225%3bn%26%23237%3b+zdrojov%26%23253%3bch+k%26%23243%3bdu" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2007/10/07/shawn-burke-o-vyd-n-zdrojov-ch-k-du.aspx"&gt;del.icio.us!&lt;/a&gt; |  &lt;a href = "http://www.digg.com/submit?url=http://blog.vyvojar.cz/puschak/archive/2007/10/07/shawn-burke-o-vyd-n-zdrojov-ch-k-du.aspx&amp;amp;;phase=2" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2007/10/07/shawn-burke-o-vyd-n-zdrojov-ch-k-du.aspx"&gt;digg it!&lt;/a&gt; |  &lt;a href = "http://reddit.com/submit?url=http://blog.vyvojar.cz/puschak/archive/2007/10/07/shawn-burke-o-vyd-n-zdrojov-ch-k-du.aspx&amp;amp;title=Shawn+Burke+o+vyd%26%23225%3bn%26%23237%3b+zdrojov%26%23253%3bch+k%26%23243%3bdu" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2007/10/07/shawn-burke-o-vyd-n-zdrojov-ch-k-du.aspx"&gt;reddit!&lt;/a&gt; |  &lt;a href = "http://www.dotnetkicks.com/submit/?url=http://blog.vyvojar.cz/puschak/archive/2007/10/07/shawn-burke-o-vyd-n-zdrojov-ch-k-du.aspx&amp;amp;;title=Shawn+Burke+o+vyd%26%23225%3bn%26%23237%3b+zdrojov%26%23253%3bch+k%26%23243%3bdu" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2007/10/07/shawn-burke-o-vyd-n-zdrojov-ch-k-du.aspx"&gt;kick it!&lt;/a&gt; |  &lt;a href = "https://favorites.live.com/quickadd.aspx?marklet=1&amp;amp;;mkt=en-us&amp;amp;;url=http://blog.vyvojar.cz/puschak/archive/2007/10/07/shawn-burke-o-vyd-n-zdrojov-ch-k-du.aspx&amp;amp;;title=Shawn+Burke+o+vyd%26%23225%3bn%26%23237%3b+zdrojov%26%23253%3bch+k%26%23243%3bdu&amp;amp;;top=1" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2007/10/07/shawn-burke-o-vyd-n-zdrojov-ch-k-du.aspx"&gt;live it!&lt;/a&gt; |  &lt;a href = "mailto:?body=Thought you might like this: http://blog.vyvojar.cz/puschak/archive/2007/10/07/shawn-burke-o-vyd-n-zdrojov-ch-k-du.aspx&amp;amp;;subject=Shawn+Burke+o+vyd%26%23225%3bn%26%23237%3b+zdrojov%26%23253%3bch+k%26%23243%3bdu" target="_blank" title = "Post http://blog.vyvojar.cz/puschak/archive/2007/10/07/shawn-burke-o-vyd-n-zdrojov-ch-k-du.aspx"&gt;email it!&lt;/a&gt;&lt;/div&gt;&lt;img src="http://blog.vyvojar.cz/aggbug.aspx?PostID=226483" width="1" height="1"&gt;</description><category domain="http://blog.vyvojar.cz/puschak/archive/tags/VS+2005/default.aspx">VS 2005</category><category domain="http://blog.vyvojar.cz/puschak/archive/tags/.NET/default.aspx">.NET</category></item></channel></rss>