<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Monogram C# okienko</title>
	<atom:link href="http://blog.monogram.sk/tetak/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.monogram.sk/tetak</link>
	<description>Blog o dianí vo svete C#</description>
	<lastBuildDate>Tue, 31 Jan 2012 10:57:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Nie je e-sluzba ako e-sluzba</title>
		<link>http://blog.monogram.sk/tetak/2012/01/nie-je-e-sluzba-ako-e-sluzba/</link>
		<comments>http://blog.monogram.sk/tetak/2012/01/nie-je-e-sluzba-ako-e-sluzba/#comments</comments>
		<pubDate>Tue, 31 Jan 2012 10:57:23 +0000</pubDate>
		<dc:creator>Lubo Tetak</dc:creator>
				<category><![CDATA[Nezaradené]]></category>

		<guid isPermaLink="false">http://blog.monogram.sk/tetak/?p=117</guid>
		<description><![CDATA[Ako asi ako kazdy mam rad dobre sluzby. Za tych par rokov, co sa pohybujem v svete IT som si zvykol pozerat (hlavne) na e-sluzby o nieco kritickejsie ako na ostatne. Je to zrejme najma tym, ze vidim casto ten &#8230; <a href="http://blog.monogram.sk/tetak/2012/01/nie-je-e-sluzba-ako-e-sluzba/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Ako asi ako kazdy mam rad dobre sluzby. Za tych par rokov, co sa pohybujem v svete IT som si zvykol pozerat (hlavne) na e-sluzby o nieco kritickejsie ako na ostatne. Je to zrejme najma tym, ze vidim casto ten potencial, ktory v nich je. Z domu si mozeme objednat od noveho auta cez hotel v Tatrach az po kilo pomarancov. K tomu nam sikovny reklamny server ponukne cipkovane spodne pradlo. Preco? Lebo je to pohodlnejsie, rychlejsie, spolahlivejsie. Dnes to uz nie je ziadna &#8220;geekovina&#8221; ako pred par rokmi objednat si napriklad vstupenku na koncert prave cez web. Takuto chybu som urobil aj ja. Mnozstvo organizatorov voli ako jedineho prave internetoveho predajcu (zvacsa toho najvacsieho). Takze clovek si listky osobne uz objednat ani nemoze. Ak by sa predavali listky aj osobne, zvacsa systemy aj tak nie su prepojene a hladisko je rozdelene podla sektorov alebo radov na cast predavanu predajcom a cast predavanu organizatorom. Najst teda na poslednu chvilu viac listkov pohromade nie je prakticky mozne, kedze volne miesta su fragmentovane. Toto su ale vsetko relativne zlozite ulohy a povedzme si &#8211; sme maly a &#8220;specificky&#8221; trh.</p>
<p>Co sa mi stalo ale minulu sobotu, to nedokazem pochopit. Objednal som si listky na koncert cez internet. Osobne som ich zaplatil a vyzdvihol v stanku predajcu. Po prichode na miesto koncertu nas vsak cakal iba nic netusiaci vratnik. Cez mobil som si na stranke predajcu zistil, ze uz 10 dni je koncert v kolonke zrusenych koncertov. Naozaj som nechcel uverit tomu, ze hoci maju 10 dni informaciu o zrusenom koncerte, nedokazali ma mailom (ktory je nutnou podmienkou registracie) upozornit na zmenu v programe. Vyrobit skript, ktory by rozposlal aspon informaciu o zmene s linkou na web by netrvalo dlhsie ako 2-3 hodinky a stovky ludi rocne by si mozno nepovzdychli nad kvallitou e-sluzieb na Slovensku.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.monogram.sk/tetak/2012/01/nie-je-e-sluzba-ako-e-sluzba/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MTM &#8211; Flow3</title>
		<link>http://blog.monogram.sk/tetak/2012/01/mtm-flow3/</link>
		<comments>http://blog.monogram.sk/tetak/2012/01/mtm-flow3/#comments</comments>
		<pubDate>Wed, 18 Jan 2012 08:13:00 +0000</pubDate>
		<dc:creator>Lubo Tetak</dc:creator>
				<category><![CDATA[Monogram Tech Mondays]]></category>
		<category><![CDATA[Život v Monograme]]></category>

		<guid isPermaLink="false">http://blog.monogram.sk/tetak/?p=98</guid>
		<description><![CDATA[V pondelok 16. 1. 2012 sa opäť konalo už 6. stretnutie Monogram Tech Mondays. Senior PHP programátor z PHP oddelenia Ondrej Hatala nám predviedol novinky v novom PHP frameworku Flow3. Slideshow prezentacie si mozete pozriet tu MTM &#8211; Flow3 View &#8230; <a href="http://blog.monogram.sk/tetak/2012/01/mtm-flow3/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>V pondelok 16. 1. 2012 sa opäť konalo už 6. stretnutie Monogram Tech Mondays. Senior PHP programátor z PHP oddelenia Ondrej Hatala nám predviedol novinky v novom PHP frameworku Flow3.</p>
<p>Slideshow prezentacie si mozete pozriet tu</p>
<div id="__ss_11127285" style="width: 425px;"><strong><a title="MTM - Flow3" href="http://www.slideshare.net/tetak/mtm-flow3">MTM &#8211; Flow3</a></strong><object id="__sse11127285" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="wmode" value="transparent" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=flow3-120118015956-phpapp01&amp;stripped_title=mtm-flow3&amp;userName=tetak" /><param name="name" value="__sse11127285" /><param name="allowfullscreen" value="true" /><embed id="__sse11127285" type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=flow3-120118015956-phpapp01&amp;stripped_title=mtm-flow3&amp;userName=tetak" name="__sse11127285" wmode="transparent" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<div style="padding: 5px 0 12px;">View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/tetak">tetak</a>.</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.monogram.sk/tetak/2012/01/mtm-flow3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MTM &#8211; Windows 8</title>
		<link>http://blog.monogram.sk/tetak/2011/11/mtm-windows-8/</link>
		<comments>http://blog.monogram.sk/tetak/2011/11/mtm-windows-8/#comments</comments>
		<pubDate>Tue, 22 Nov 2011 13:55:58 +0000</pubDate>
		<dc:creator>Lubo Tetak</dc:creator>
				<category><![CDATA[Monogram Tech Mondays]]></category>
		<category><![CDATA[Život v Monograme]]></category>
		<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://blog.monogram.sk/tetak/?p=90</guid>
		<description><![CDATA[V pondelok 21. 11. 2011 sa konalo 5. stretnutie Monogram Tech Mondays. Kolega zo C# oddelenia Daniel Turan nam ukazal Windows 8 a nove moznosti pre C# a C++ programatorov (Metro UI, WinRT API, spolupracu C#, C++ a JavaScriptu). Slideshow &#8230; <a href="http://blog.monogram.sk/tetak/2011/11/mtm-windows-8/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>V pondelok 21. 11. 2011 sa konalo <strong> 5. stretnutie Monogram Tech Mondays</strong>. Kolega zo C# oddelenia Daniel Turan nam ukazal Windows 8 a nove moznosti pre C# a C++ programatorov (Metro UI, WinRT API, spolupracu C#, C++ a JavaScriptu).</p>
<p>Slideshow prezentacie si mozete pozriet tu</p>
<div id="__ss_10271630" style="width: 425px;"><strong><a title="MTM - Windows 8" href="http://www.slideshare.net/tetak/mtm-windows-8">MTM &#8211; Windows 8</a></strong><object id="__sse10271630" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="wmode" value="transparent" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=windows8-111122074824-phpapp02&amp;stripped_title=mtm-windows-8&amp;userName=tetak" /><param name="name" value="__sse10271630" /><param name="allowfullscreen" value="true" /><embed id="__sse10271630" type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=windows8-111122074824-phpapp02&amp;stripped_title=mtm-windows-8&amp;userName=tetak" name="__sse10271630" wmode="transparent" allowscriptaccess="always" allowfullscreen="true"></embed></object></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.monogram.sk/tetak/2011/11/mtm-windows-8/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MTM &#8211; LINQ, SCRUM</title>
		<link>http://blog.monogram.sk/tetak/2011/09/mtm-linq-scrum/</link>
		<comments>http://blog.monogram.sk/tetak/2011/09/mtm-linq-scrum/#comments</comments>
		<pubDate>Fri, 16 Sep 2011 06:51:43 +0000</pubDate>
		<dc:creator>Lubo Tetak</dc:creator>
				<category><![CDATA[Monogram Tech Mondays]]></category>
		<category><![CDATA[Život v Monograme]]></category>

		<guid isPermaLink="false">http://blog.monogram.sk/tetak/?p=84</guid>
		<description><![CDATA[V pondelok 12. 9. sa konal uz v poradi 4. stretnutie Monogram Tech Mondays. Temy boli trochu jednoduchsie ako v minulosti. Ja som ukazal, co je to LINQ (http://msdn.microsoft.com/en-us/library/bb308959.aspx). Nie je to najnovsia technologia, ale v inych jazykoch ako C# &#8230; <a href="http://blog.monogram.sk/tetak/2011/09/mtm-linq-scrum/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>V pondelok 12. 9. sa konal uz v poradi<strong> 4. stretnutie Monogram Tech Mondays</strong>. Temy boli trochu jednoduchsie ako v minulosti. Ja som ukazal, co je to <strong>LINQ </strong>(<a href="http://msdn.microsoft.com/en-us/library/bb308959.aspx">http://msdn.microsoft.com/en-us/library/bb308959.aspx</a>). Nie je to najnovsia technologia, ale v inych jazykoch ako C# je nieco podobne stale malo zname. Miso Vilagi mal prezentaciu o <strong>SCRUM </strong>(<a href="http://en.wikipedia.org/wiki/Scrum_%28development%29">http://en.wikipedia.org/wiki/Scrum_%28development%29</a>) &#8211; metodologiu agile developmentu.</p>
<p>draft mojej prezentacie: <a href="http://blog.monogram.sk/tetak/wp-content/LINQ.pptx">LINQ</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.monogram.sk/tetak/2011/09/mtm-linq-scrum/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MTM 1</title>
		<link>http://blog.monogram.sk/tetak/2011/06/mtm-1/</link>
		<comments>http://blog.monogram.sk/tetak/2011/06/mtm-1/#comments</comments>
		<pubDate>Mon, 20 Jun 2011 16:46:32 +0000</pubDate>
		<dc:creator>Lubo Tetak</dc:creator>
				<category><![CDATA[Monogram Tech Mondays]]></category>
		<category><![CDATA[Programovanie]]></category>
		<category><![CDATA[Život v Monograme]]></category>

		<guid isPermaLink="false">http://blog.monogram.sk/tetak/?p=76</guid>
		<description><![CDATA[Prvy MTM je uspesne za nami. Ucast bola vyborna. Atmosfera este lepsia. Prebrali sme okrem hlavnych tem (Git a Redis) aj vselico okolo toho, co bolo aj cielom stretnutia. Tesim sa teda na dalsie stretnutie. Moja prezentacia k teme Redis &#8230; <a href="http://blog.monogram.sk/tetak/2011/06/mtm-1/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Prvy MTM je uspesne za nami. Ucast bola vyborna. Atmosfera este lepsia. Prebrali sme okrem hlavnych tem (Git a Redis) aj vselico okolo toho, co bolo aj cielom stretnutia. Tesim sa teda na dalsie stretnutie. </p>
<p>Moja prezentacia k teme Redis v ladeni Mythbusters <a href='http://blog.monogram.sk/tetak/wp-content/REDIS.pptx'>REDIS</a></p>
<div style="width:425px" id="__ss_8367108"> <strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/tomasmajer/monogram-tech-mondays-redis" title="MONOGRAM Tech Mondays: REDIS">MONOGRAM Tech Mondays: REDIS</a></strong> <iframe src="http://www.slideshare.net/slideshow/embed_code/8367108" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe> </div>
<p><a href="http://www.tomaj.sk/2011/06/20/monogram-tech-mondays-git/">Tomajova</a> prezentacia o Git-e</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.monogram.sk/tetak/2011/06/mtm-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Monogram Tech Mondays</title>
		<link>http://blog.monogram.sk/tetak/2011/06/monogram-tech-mondays/</link>
		<comments>http://blog.monogram.sk/tetak/2011/06/monogram-tech-mondays/#comments</comments>
		<pubDate>Tue, 14 Jun 2011 10:34:42 +0000</pubDate>
		<dc:creator>Lubo Tetak</dc:creator>
				<category><![CDATA[Monogram Tech Mondays]]></category>
		<category><![CDATA[Život v Monograme]]></category>

		<guid isPermaLink="false">http://blog.monogram.sk/tetak/?p=66</guid>
		<description><![CDATA[Zdravim vsetkych monogramakov, som rad, ze sa nasa spolocnost streta stale s novymi vyzvami a reaguje na ne pouzitim novych rieseni. Ze to nie je len moj nazor potvrdzuje ocenenie, ktore sme nedavno ziskali (http://www.monogram.sk/novinky/ziskali-sme-ocenenie-podnikatel-roka-2010-v-oblasti-inovacii.html). Urcite nemalu zasluhu na tom &#8230; <a href="http://blog.monogram.sk/tetak/2011/06/monogram-tech-mondays/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.monogram.sk/tetak/wp-content/MTM_buletin.png"><img class="alignleft size-medium wp-image-69" title="MTM_buletin" src="http://blog.monogram.sk/tetak/wp-content/MTM_buletin-300x240.png" alt="" width="300" height="240" /></a> Zdravim vsetkych monogramakov,</p>
<p>som rad, ze sa nasa spolocnost streta stale s novymi vyzvami a reaguje na ne pouzitim novych rieseni. Ze to nie je len moj nazor potvrdzuje ocenenie, ktore sme nedavno ziskali (http://www.monogram.sk/novinky/ziskali-sme-ocenenie-podnikatel-roka-2010-v-oblasti-inovacii.html). Urcite nemalu zasluhu na tom ma fakt, ze velku cast zamestnancov tvoria studenti. Prave v studentskom obdobi ma kazdy najviac casu a tiez chuti skusat nove veci (nie len zo sveta IT <img src='http://blog.monogram.sk/tetak/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  ).</p>
<p>Rozhodli sme sa tomuto prudu napadov dat priestor a preto by som Vas rad pozval na prve stretnutie Monogram Tech Mondays, ktore sa uskutocni uz tento pondelok 20.6. o 17:00 vo velkej zasadacke. Odhadovany koniec je do 18:00, zalezi od aktivity v diskusii. Ucast je dobrovolna a<strong> nie je</strong> sucastou pracovneho casu.</p>
<p>Prve dva prispevky bude mat Tomaj (Git) a ja (Redis).</p>
<p>Kazdy prezentujuci bude mat 15 minut na oboznamenie s vybranou technologiou alebo temou.<br />
Nasledovat bude 5-7 minutova diskusia, kde sa zhodnoti hlavne moznost pouzitia v nasich projektoch.<br />
<strong>Prezentovat moze ktokolvek. Prezentacia je dobrovolna, ale bude hodnotena kladne v mesacnom hodnoteni a teda sa moze odrazit aj na plate.</strong><br />
Sucastou prezentacie by mal byt aj blogovy prispevok k teme.</p>
<p>Verim, ze sa tieto pondelky stanu zvykom, nezaberu viac ako napriklad precitanie dsl.sk a prinesu napady na premyslanie.<br />
Dalsi zaujemcovia o prezentacie sa prosim hlaste u mna, nech mozem vyhlasit co najskor dalsi termin.</p>
<p>Tesim sa na Vas<br />
Lubo</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.monogram.sk/tetak/2011/06/monogram-tech-mondays/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>to 64bit or not to 64bit</title>
		<link>http://blog.monogram.sk/tetak/2011/04/to-64bit-or-not-to-64bit/</link>
		<comments>http://blog.monogram.sk/tetak/2011/04/to-64bit-or-not-to-64bit/#comments</comments>
		<pubDate>Tue, 12 Apr 2011 09:06:51 +0000</pubDate>
		<dc:creator>Lubo Tetak</dc:creator>
				<category><![CDATA[Nezaradené]]></category>
		<category><![CDATA[Programovanie]]></category>
		<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://blog.monogram.sk/tetak/?p=49</guid>
		<description><![CDATA[64 bitový windows tu máme už nejaký ten piatok, ale stále ma dokáže udiviť niektorými vlastnosťami. Písať o tom, aké sú rozdielne klasické Win32 DLL a to aj systémové asi nemá ani zmysel. Pod 64 bitovými windowsmi (tým viac server &#8230; <a href="http://blog.monogram.sk/tetak/2011/04/to-64bit-or-not-to-64bit/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>64 bitový windows tu máme už nejaký ten piatok, ale stále ma dokáže udiviť niektorými vlastnosťami. Písať o tom, aké sú rozdielne klasické Win32 DLL a to aj systémové asi nemá ani zmysel. Pod 64 bitovými windowsmi (tým viac server edition) len ťažko rozbeháte napríklad náhľady videa v exploreri. Našťastie C# je na tom o niečo lepšie.</p>
<h2>64 bit + C#</h2>
<p>Aplikácia pod .NET sa snaží vždy bežať „čo najlepšie“ (čo je chválitebné), preto sa pri prvom spustení sama prekompiluje podľa dostupného prostredia (verzie OS, procesora, nainštalovaných frameworkov atď.). Zožere nám to nejaké to miesto na systémovom disku a trochu času, ale druhý krát sa už spúšťa v skutočnosti kópia z cache. Ak teda spustíme &#8220;hello world&#8221; pod 64 bit OS, bude sa spúšťať ako 64 bitový proces. Čo ak ale využívame 32 bitové DLL knižnice? Tie musia bežať pod 32 bitovým procesom (nemôžeme mat časť procesu 32 bitovú a časť 64). Našťastie môžeme povedať celému .NET procesu, aby bol 32 bitový a takto zachrániť aj tieto postaršie knižnice.<br />
Nastavíme to v Properties aplikácie (môžeme aj assembly, ale dôležité je to hlavne v aplikácii, inde necháme Auto).</p>
<p><a href="http://blog.monogram.sk/tetak/wp-content/CPU-Select.png"><img class="alignnone size-medium wp-image-50" title="CPU Select" src="http://blog.monogram.sk/tetak/wp-content/CPU-Select-300x191.png" alt="" width="300" height="191" /></a></p>
<h2>Aké jednoduché&#8230; by to mohlo byť</h2>
<p>Väčšinou je to naozaj až také jednoduché. Stále ale niečo môže vyskočiť. Napríklad si treba dať pozor, že adresár C:\Windows\System32 smeruje do iného adresára pod 32 bitovým a 64 bitovým procesom (v tom istom case pod tym istym OS).<br />
Ďalším problémom je IIS, ktorý sa nedá úplne jednoducho prepnúť do 32 bitov, ale je to možné.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.monogram.sk/tetak/2011/04/to-64bit-or-not-to-64bit/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>WPF: Farba textoveho kurzora</title>
		<link>http://blog.monogram.sk/tetak/2011/01/wpf-farba-textoveho-kurzora/</link>
		<comments>http://blog.monogram.sk/tetak/2011/01/wpf-farba-textoveho-kurzora/#comments</comments>
		<pubDate>Wed, 12 Jan 2011 12:13:25 +0000</pubDate>
		<dc:creator>Lubo Tetak</dc:creator>
				<category><![CDATA[Programovanie]]></category>
		<category><![CDATA[WPF]]></category>
		<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://blog.monogram.sk/tetak/?p=43</guid>
		<description><![CDATA[Zmenit farbu kurzoru v TextBox-e nie je take jednoduche, ako by sa zdalo. Je to preto, ze WPF sa snazi tuto farbu udrziavat automaticky kontrastne ku farbe pozadia textboxu. Prave tuto vlastnost mozeme vyuzit &#60;Style TargetType=&#34;{x:Type TextBox}&#34;&#62; &#60;Setter Property=&#34;KeyboardNavigation.TabNavigation&#34; Value=&#34;None&#34; &#8230; <a href="http://blog.monogram.sk/tetak/2011/01/wpf-farba-textoveho-kurzora/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Zmenit farbu kurzoru v <em>TextBox</em>-e nie je take jednoduche, ako by sa zdalo. Je to preto, ze WPF sa snazi tuto farbu udrziavat automaticky kontrastne ku farbe pozadia textboxu. Prave tuto vlastnost mozeme vyuzit</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Style</span> <span style="color: #000066;">TargetType</span>=<span style="color: #ff0000;">&quot;{x:Type TextBox}&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Setter</span> <span style="color: #000066;">Property</span>=<span style="color: #ff0000;">&quot;KeyboardNavigation.TabNavigation&quot;</span> <span style="color: #000066;">Value</span>=<span style="color: #ff0000;">&quot;None&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Setter</span> <span style="color: #000066;">Property</span>=<span style="color: #ff0000;">&quot;FocusVisualStyle&quot;</span> <span style="color: #000066;">Value</span>=<span style="color: #ff0000;">&quot;{x:Null}&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Setter</span> <span style="color: #000066;">Property</span>=<span style="color: #ff0000;">&quot;AllowDrop&quot;</span> <span style="color: #000066;">Value</span>=<span style="color: #ff0000;">&quot;true&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Setter</span> <span style="color: #000066;">Property</span>=<span style="color: #ff0000;">&quot;Template&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Setter.Value<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;ControlTemplate</span> <span style="color: #000066;">TargetType</span>=<span style="color: #ff0000;">&quot;{x:Type TextBox}&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
                        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Grid<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Border</span> <span style="color: #000066;">x:Name</span>=<span style="color: #ff0000;">&quot;Border” BorderThickness=&quot;</span>2<span style="color: #ff0000;">&quot;  SnapsToDevicePixels=&quot;</span>True<span style="color: #ff0000;">&quot;  Padding=&quot;</span>2<span style="color: #ff0000;">&quot; CornerRadius=&quot;</span>2<span style="color: #ff0000;">&quot;&gt;</span></span>
                                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;ScrollViewer</span> <span style="color: #000066;">Margin</span>=<span style="color: #ff0000;">&quot;0&quot;</span> <span style="color: #000066;">x:Name</span>=<span style="color: #ff0000;">&quot;PART_ContentHost&quot;</span> <span style="color: #000066;">Style</span>=<span style="color: #ff0000;">&quot;{DynamicResource SimpleTextScrollViewer}&quot;</span>  <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
                            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Border<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Grid<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;ControlTemplate.Triggers<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Trigger</span> <span style="color: #000066;">Property</span>=<span style="color: #ff0000;">&quot;IsEnabled&quot;</span> <span style="color: #000066;">Value</span>=<span style="color: #ff0000;">&quot;False&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
                                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Setter</span> <span style="color: #000066;">Property</span>=<span style="color: #ff0000;">&quot;Background&quot;</span> <span style="color: #000066;">Value</span>=<span style="color: #ff0000;">&quot;{DynamicResource DisabledBackgroundBrush}&quot;</span> <span style="color: #000066;">TargetName</span>=<span style="color: #ff0000;">&quot;Border&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
                                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Setter</span> <span style="color: #000066;">Property</span>=<span style="color: #ff0000;">&quot;BorderBrush&quot;</span> <span style="color: #000066;">Value</span>=<span style="color: #ff0000;">&quot;{DynamicResource DisabledBackgroundBrush}&quot;</span> <span style="color: #000066;">TargetName</span>=<span style="color: #ff0000;">&quot;Border&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
                                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Setter</span> <span style="color: #000066;">Property</span>=<span style="color: #ff0000;">&quot;Foreground&quot;</span> <span style="color: #000066;">Value</span>=<span style="color: #ff0000;">&quot;{DynamicResource DisabledForegroundBrush}&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
                            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Trigger<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/ControlTemplate.Triggers<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/ControlTemplate<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Setter.Value<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Setter<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Style<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Zdroj: <a href="http://blogs.msdn.com/b/llobo/archive/2007/02/08/changing-caret-color-in-textbox.aspx">Lester&#8217;s WPF\SL Blog</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.monogram.sk/tetak/2011/01/wpf-farba-textoveho-kurzora/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rozdelenie app.config do suborov podla sekcii</title>
		<link>http://blog.monogram.sk/tetak/2011/01/app-config-external-file/</link>
		<comments>http://blog.monogram.sk/tetak/2011/01/app-config-external-file/#comments</comments>
		<pubDate>Tue, 04 Jan 2011 12:24:46 +0000</pubDate>
		<dc:creator>Lubo Tetak</dc:creator>
				<category><![CDATA[Nezaradené]]></category>
		<category><![CDATA[Programovanie]]></category>
		<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://blog.monogram.sk/tetak/?p=14</guid>
		<description><![CDATA[Aj o trochu vacsia aplikacia v .NET si vyzaduje aspon niekolko nastaveni, ktore by sme radi zmenili uz v skompilovanom kode. Existuje niekolko moznosti, ako tieto nastavenia ulozit v konfiguracnych suboroch alebo inom mieste. Asi najstarsi a mozno najjednoduchsi je &#8230; <a href="http://blog.monogram.sk/tetak/2011/01/app-config-external-file/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Aj o trochu vacsia aplikacia v .NET si vyzaduje aspon niekolko nastaveni, ktore by sme radi zmenili uz v skompilovanom kode. Existuje niekolko moznosti, ako tieto nastavenia ulozit v konfiguracnych suboroch alebo inom mieste. Asi najstarsi a mozno najjednoduchsi je pouzit subor <strong>app.config (web.config).</strong> Problem pouzivania tychto suborov je, ze pri vacsej aplikacii sa subor nafukne do neprehladnych rozmerov. Skusme ho teda rozdelit do viacerych suborov podla Section ku ktorej patria.</p>
<p>V <em>app.config</em> pridame do configuration nody:</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;configSections<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
 <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;sectionGroup</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;customSettings&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
 <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;section</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;gameParts&quot;</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">&quot;MyClasses.GamePartsSection, MyAssemblyName&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
 <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/sectionGroup<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/configSections<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Dalej samotne nastavenie (tiez v <em>app.config</em>)</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;customSettings<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
 <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;gameParts</span> <span style="color: #000066;">configSource</span>=<span style="color: #ff0000;">&quot;GameParts.config&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/customSettings<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>V subore GameParts.config bude povodny obsah gameParts nody.</p>

<div class="wp_syntax"><div class="code"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;?xml</span> <span style="color: #000066;">version</span>=<span style="color: #ff0000;">&quot;1.0&quot;</span> <span style="color: #000066;">encoding</span>=<span style="color: #ff0000;">&quot;utf-8&quot;</span> <span style="color: #000000; font-weight: bold;">?&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;gameParts</span> <span style="color: #000066;">periodName</span>=<span style="color: #ff0000;">&quot;Tretina&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;times<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;add</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;Play&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;-0:20:00&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;add</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;Intermission&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;0:18:00&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
    <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;add</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">&quot;Overtime&quot;</span> <span style="color: #000066;">value</span>=<span style="color: #ff0000;">&quot;0:5:00&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
  <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/times<span style="color: #000000; font-weight: bold;">&gt;</span></span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/gameParts<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></div></div>

<p>Pre to, aby nam tato sekcia vobec fungovala potrebujeme este vyrobit triedu</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;"><span style="color: #0600FF;">using</span> <span style="color: #008080;">System</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">using</span> <span style="color: #008080;">System.Collections.Generic</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">using</span> <span style="color: #008080;">System.Linq</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">using</span> <span style="color: #008080;">System.Text</span><span style="color: #008000;">;</span>
<span style="color: #0600FF;">using</span> <span style="color: #008080;">System.Configuration</span><span style="color: #008000;">;</span>
&nbsp;
<span style="color: #0600FF;">namespace</span> MyClasses
<span style="color: #000000;">&#123;</span>
  <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">class</span> GamePartsSection <span style="color: #008000;">:</span> ConfigurationSection
  <span style="color: #000000;">&#123;</span>
    <span style="color: #000000;">&#91;</span>ConfigurationProperty<span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;times&quot;</span>, IsDefaultCollection <span style="color: #008000;">=</span> <span style="color: #0600FF;">true</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#93;</span>
    <span style="color: #0600FF;">public</span> NameValueConfigurationCollection GamePartsTimes
    <span style="color: #000000;">&#123;</span>
      get
      <span style="color: #000000;">&#123;</span>
        <span style="color: #0600FF;">return</span> <span style="color: #000000;">&#40;</span>NameValueConfigurationCollection<span style="color: #000000;">&#41;</span><span style="color: #0600FF;">base</span><span style="color: #000000;">&#91;</span><span style="color: #666666;">&quot;times&quot;</span><span style="color: #000000;">&#93;</span><span style="color: #008000;">;</span>
      <span style="color: #000000;">&#125;</span>
    <span style="color: #000000;">&#125;</span>
&nbsp;
    <span style="color: #000000;">&#91;</span>ConfigurationProperty<span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;periodName&quot;</span><span style="color: #000000;">&#41;</span><span style="color: #000000;">&#93;</span>
    <span style="color: #0600FF;">public</span> <span style="color: #FF0000;">string</span> GamePartName
    <span style="color: #000000;">&#123;</span>
      get
      <span style="color: #000000;">&#123;</span>
        <span style="color: #0600FF;">return</span> <span style="color: #000000;">&#40;</span><span style="color: #FF0000;">string</span><span style="color: #000000;">&#41;</span><span style="color: #0600FF;">base</span><span style="color: #000000;">&#91;</span><span style="color: #666666;">&quot;periodName&quot;</span><span style="color: #000000;">&#93;</span><span style="color: #008000;">;</span>
      <span style="color: #000000;">&#125;</span>
    <span style="color: #000000;">&#125;</span>
  <span style="color: #000000;">&#125;</span>
<span style="color: #000000;">&#125;</span></pre></div></div>

<p>Cele to vytiahneme takymto kodom.</p>

<div class="wp_syntax"><div class="code"><pre class="csharp" style="font-family:monospace;">GamePartsSection section <span style="color: #008000;">=</span> ConfigurationManager.<span style="color: #0000FF;">GetSection</span><span style="color: #000000;">&#40;</span><span style="color: #666666;">&quot;customSettings/gameParts&quot;</span><span style="color: #000000;">&#41;</span> <span style="color: #0600FF;">as</span> GamePartsSection<span style="color: #008000;">;</span>
      <span style="color: #0600FF;">if</span> <span style="color: #000000;">&#40;</span>section <span style="color: #008000;">!=</span> <span style="color: #0600FF;">null</span><span style="color: #000000;">&#41;</span>
      <span style="color: #000000;">&#123;</span>
        var gamePartsTimes <span style="color: #008000;">=</span> section.<span style="color: #0000FF;">GamePartsTimes</span><span style="color: #008000;">;</span>
        var gamePartName <span style="color: #008000;">=</span> section.<span style="color: #0000FF;">GamePartName</span><span style="color: #008000;">;</span>
        <span style="color: #008080; font-style: italic;">//... a ulozime si to napr. do statickych premennych</span>
      <span style="color: #000000;">&#125;</span></pre></div></div>

<p>Vyhoda pouzivania vlastnych <em>Section</em> oproti systemovej sekcii <em>appSettings</em> je v oddeleni semantickych celkov, moznosti pouzivania inych typov ako len string a vyssej modularite. Mnozstvo kodu na to potrebne je tiez minimalne. Ked si pridame moznost vynat si celu sekciu do ineho suboru, dostaneme vcelku pouzitelny system.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.monogram.sk/tetak/2011/01/app-config-external-file/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WPF Virtual ListBox</title>
		<link>http://blog.monogram.sk/tetak/2009/09/wpf-virtual-listbox/</link>
		<comments>http://blog.monogram.sk/tetak/2009/09/wpf-virtual-listbox/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 20:50:20 +0000</pubDate>
		<dc:creator>Lubo Tetak</dc:creator>
				<category><![CDATA[Nezaradené]]></category>
		<category><![CDATA[Programovanie]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[WPF]]></category>

		<guid isPermaLink="false">http://blog.monogram.sk/tetak/?p=8</guid>
		<description><![CDATA[Problém: Často sa stáva, že niečo ide krásne, keď máme 100 prvkov, ale pri 1000 prvkoch, už je to zabité. Rovnaký problém som mal nedávno pri jednej WPF aplikácii. V zozname aktivít, ktore bolo nutné s 5 sekundovou periodicitou obnovovať &#8230; <a href="http://blog.monogram.sk/tetak/2009/09/wpf-virtual-listbox/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><strong>Problém: </strong><br />
Často sa stáva, že niečo ide krásne, keď máme 100 prvkov, ale pri 1000  prvkoch, už je to zabité. Rovnaký problém som mal nedávno pri jednej WPF aplikácii. V zozname aktivít, ktore bolo nutné s 5 sekundovou periodicitou obnovovať bolo nutné zobraziť niekoľko stoviek záznamov.</p>
<p><strong>Dôvod problému:</strong><br />
Pri zmene nejakého prvku v tomto zozname si musí WPF prekresliť  (preusporiadať) všetky prvky, čo mu samozrejme trva veľmi dlho a žere CPU. Uložený layout tiež zaberá nejaké to miesto v pamäti.</p>
<p><strong>Riešenie</strong><br />
Našťastie som presne tento problém kedysi riešil v jednej databáze  návodov a cheatov (kde sa ich zobrazovalo niekoľko desiatok tisíc). Bola to Win Forms aplikácia. Tam našťastie umožňuje Windows chápať listbox ako virtuálny = kóder rieši iba počet  prvkov a aktuálne zobrazené prvky. Ostatné prvky sa ani nezobrazujú, ani  nie su v pamäti UI.</p>
<p><strong>Riešenie ala WPF</strong><br />
Veľmi jednoduché &#8211; namiesto <em>StackPanel</em> containera použijem <em>VirtualizingStackPanel</em>.  Ten sa postará o všetko.</p>
<p>Iné riešenie by bolo napr. nevymazávať prvky, iba ich zamienať a iba v  prípade zmeny počtu ich pridávať alebo uberať &#8211; ak sa však tento počet mení  často, tak sme si veľmi nepomohli + niektorých problémov sme sa stále nezbavili &#8211; aj tak ide o relatívne účinný spôsob</p>
<p><strong>Nejaký benchmark</strong></p>
<table border="0">
<tbody>
<tr>
<td><strong> zoznam v &#8220;idle&#8221; stave</strong></td>
<td><strong>CPU</strong></td>
</tr>
<tr>
<td>bez optimalizacie</td>
<td>40%</td>
</tr>
<tr>
<td>s optimalizaciou cez &#8220;prepisovanie&#8221; prvkov</td>
<td>20%</td>
</tr>
<tr>
<td>VirtualizingStackPanel</td>
<td>10%</td>
</tr>
</tbody>
</table>
<p>Takže zhruba 4-násobné urýchlenie pri cca 1000 položkách &#8211; čo je ale dôležité, že tento čas uz bude  zhruba konštantný pri akomkoľvek počte prvkov. Aj keď neplatí to tak celkom. Stále hovoríme o &#8220;idle&#8221; stave. Ak začnem scrollovať v listboxe, tak CPU utešene rastie. Potom mi nezostane nič iné, ako poobzerať sa po iných urýchleniach, ale o tom niekedy nabudúce.</p>
<p><strong>Záver</strong></p>
<p>Odporúčam použivať pri všetkých relatívne dlhších zoznamoch vo WPF. Veľa muziky zadarmo.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.monogram.sk/tetak/2009/09/wpf-virtual-listbox/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

