<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://dotnet.lv/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/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd"><channel><title>Zināšanu bāze</title><link>http://dotnet.lv/blogs/</link><description /><dc:language>en-US</dc:language><generator>CommunityServer 2008 SP1 (Build: 30619.63)</generator><item><title>F# priekš telefona</title><link>http://dotnet.lv/blogs/vi/archive/2010/08/20/f-priek-telefona.aspx</link><pubDate>Fri, 20 Aug 2010 15:00:09 GMT</pubDate><guid isPermaLink="false">245d81fd-b543-41d7-a051-d8603c6e9e31:16652</guid><dc:creator>valdis.iljuconoks</dc:creator><slash:comments>0</slash:comments><description>&lt;div id="post_content"&gt;   &lt;p&gt;Ja kādam patīk programmēt funkcionālajā valodā un vēl papildus arī uz tik eksotiskas iekārtas kā Windows Phone 7, tad ļoti iespējams, ka noderēs online projekta šablons, kas piedāvā abas šīs lieliskās iespējas.&lt;/p&gt;    &lt;p&gt;Online galerijā meklējiet pēc “F# and C# Win Phone”.&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&lt;a href="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_7F38F766.png" rel="lightbox"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="" border="0" alt="" src="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_thumb_5F00_682A762A.png" width="444" height="308" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;Happy coding!&lt;/p&gt; &lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnet.lv/aggbug.aspx?PostID=16652" width="1" height="1"&gt;</description><category domain="http://dotnet.lv/blogs/vi/archive/tags/F_2300_/default.aspx">F#</category><category domain="http://dotnet.lv/blogs/vi/archive/tags/Windows+Phone/default.aspx">Windows Phone</category></item><item><title>Savdabīgs templating engine (DIY)</title><link>http://dotnet.lv/blogs/vi/archive/2010/08/11/savdab-gs-templating-engine-diy.aspx</link><pubDate>Wed, 11 Aug 2010 02:36:37 GMT</pubDate><guid isPermaLink="false">245d81fd-b543-41d7-a051-d8603c6e9e31:15612</guid><dc:creator>valdis.iljuconoks</dc:creator><slash:comments>2</slash:comments><description>&lt;div id="post_content"&gt;&lt;p&gt;Bieži mums kodā nākas izmantot kaut kādu sava veida mazu substitūcijas risinājumu, kuru mēs izmantojam, lai no kādas simbolu virknes aizvietotu kādu kaudzīti parametrus ar atbilstošajām šo parametru vērtībām konkrētajā situācijā.&lt;/p&gt;  &lt;p&gt;Šāda veida pieeja bieži redzēta dažāda veida žurnalizēšanas risinājumos, vai nu tas ir pašmāju ražojums vai arī kāds trešās puses risinājums daudzviet ir redzams kods:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;div style="border-bottom:1px dashed;border-left:1px dashed;padding-bottom:3px;padding-left:3px;padding-right:3px;font-family:courier new;background:#efefef;color:black;font-size:10pt;border-top:1px dashed;border-right:1px dashed;padding-top:3px;"&gt;   &lt;pre style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; result = &lt;span style="color:blue;"&gt;string&lt;/span&gt;.Format(&lt;span style="color:#a31515;"&gt;&amp;quot;Sis ir baigais {0}, kura tiek aizvietoti {1} parametri.&amp;quot;&lt;/span&gt;,&lt;/pre&gt;

  &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#a31515;"&gt;&amp;quot;teksts&amp;quot;&lt;/span&gt;, &lt;/pre&gt;

  &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#a31515;"&gt;&amp;quot;visi&amp;quot;&lt;/span&gt;);&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Principiāli šāds kods sniedz to, kas ir nepieciešams – ziņojuma šablonā aizvieto pareizās vietas ar nepieciešamajām parametru vērtībām. Ja ziņojuma šablons un parametru skaits ir pieejams uzreiz kodā, Visual Studio nāk mums pretim un sniedz informāciju par to, ka ne visiem šablona parametriem ir uzrādītas aizvietošanas vērtības.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_45861F45.png" rel="lightbox"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="" border="0" alt="" src="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_thumb_5F00_1A41883E.png" width="481" height="109" /&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt; Problēmas tikai rodas tad, kad šāda veida indeksa bāzēta pieeja tiek izmantota, piemēram, lokalizējamu ziņojumu parādīšanai. Lokalizējamie šablona teksti parasti glabājas kādos ārējos datu avotos (resx failos, datu bāzē, etc). Šādos gadījumos Visual Studio nespēj veikt nekādu analīzi.&lt;/p&gt;

&lt;p&gt;Un vēl jo vairāk, problēmas un grūtības rodas arī tiem cilvēkiem, kas nodarbojas ar šo resursu tulkošanu citās valodās. Skatoties tikai uz tulkojamo šablonu dažreiz ir grūti saprast, kas tieši ir plānots kādā no aizvietošanas pozīcijām, jo nekas vairāk par cipariņu sistēmiekavās tur nav.&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Tomēr izmantojot anonīmos datu tipus, ir iespējams šo situāciju uzlabot. Lai to nodemonstrētu, mums nepieciešama šāda metode:&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;div style="border-bottom:1px dashed;border-left:1px dashed;padding-bottom:3px;padding-left:3px;padding-right:3px;font-family:courier new;background:#efefef;color:black;font-size:10pt;border-top:1px dashed;border-right:1px dashed;padding-top:3px;"&gt;
  &lt;pre style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;static&lt;/span&gt; &lt;span style="color:blue;"&gt;string&lt;/span&gt; SubstituteParametersInMessage(&lt;span style="color:blue;"&gt;string&lt;/span&gt; message, &lt;span style="color:blue;"&gt;object&lt;/span&gt; arguments)&lt;/pre&gt;

  &lt;pre style="margin:0px;"&gt;{&lt;/pre&gt;

  &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;if&lt;/span&gt; (&lt;span style="color:blue;"&gt;string&lt;/span&gt;.IsNullOrEmpty(message))&lt;/pre&gt;

  &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/pre&gt;

  &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;return&lt;/span&gt; message;&lt;/pre&gt;

  &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/pre&gt;

  &lt;pre style="margin:0px;"&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;var&lt;/span&gt; originalMessage = message;&lt;/pre&gt;

  &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;if&lt;/span&gt; (arguments != &lt;span style="color:blue;"&gt;null&lt;/span&gt;)&lt;/pre&gt;

  &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/pre&gt;

  &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;var&lt;/span&gt; properties = arguments.GetType().GetProperties().ToList();&lt;/pre&gt;

  &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; properties.ForEach(&lt;/pre&gt;

  &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; p =&amp;gt;&lt;/pre&gt;

  &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/pre&gt;

  &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; originalMessage = originalMessage.Replace(&lt;span style="color:#a31515;"&gt;&amp;quot;{&amp;quot;&lt;/span&gt; + p.Name + &lt;span style="color:#a31515;"&gt;&amp;quot;}&amp;quot;&lt;/span&gt;,&lt;/pre&gt;

  &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; p.GetValue(arguments, &lt;span style="color:blue;"&gt;null&lt;/span&gt;).ToString());&lt;/pre&gt;

  &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; });&lt;/pre&gt;

  &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/pre&gt;

  &lt;pre style="margin:0px;"&gt;&amp;#160;&lt;/pre&gt;

  &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;return&lt;/span&gt; originalMessage;&lt;/pre&gt;

  &lt;pre style="margin:0px;"&gt;}&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt; Kura veic parastu string.Replace() izsaukumu uz visām padotā objekta īpašībām. Pašlaik gan metode neatbalsta indeksējamās īpašības, bet manuprāt tas arī nemaz tik ļoti nav nepieciešams.&lt;/p&gt;

&lt;p&gt;Klienta kods, kuram jāveic šablona parametru vērtību aizvietošana izskatās šāds:&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;div style="border-bottom:1px dashed;border-left:1px dashed;padding-bottom:3px;padding-left:3px;padding-right:3px;font-family:courier new;background:#efefef;color:black;font-size:10pt;border-top:1px dashed;border-right:1px dashed;padding-top:3px;"&gt;
  &lt;pre style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; result = SubstituteParametersInMessage(&lt;/pre&gt;

  &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:#a31515;"&gt;&amp;quot;Sis ir baigais {Type}, kura tiek aizvietoti {Count} parametri&amp;quot;&lt;/span&gt;,&lt;/pre&gt;

  &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;new&lt;/span&gt; {&lt;/pre&gt;

  &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Type = &lt;span style="color:#a31515;"&gt;&amp;quot;teksts&amp;quot;&lt;/span&gt;,&lt;/pre&gt;

  &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Count = &lt;span style="color:#a31515;"&gt;&amp;quot;visi&amp;quot;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; });&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Šāda pieeja dod iespēju gan sakarīgā veidā veikt substitūciju, gan arī dod pilnīgāku un saprotamāku priekšstatu tulkojuma veicējam par konkrētā ziņojuma saturu un semantisko nozīmi.&lt;/p&gt;

&lt;p&gt;Šo pieeju iespējams vēl vairāk noslīpēt un piedāvāt aizvietošanas metodi, kā paplašinājuma metodi System.String klasei!&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;div style="border-bottom:1px dashed;border-left:1px dashed;padding-bottom:3px;padding-left:3px;padding-right:3px;font-family:courier new;background:#efefef;color:black;font-size:10pt;border-top:1px dashed;border-right:1px dashed;padding-top:3px;"&gt;
  &lt;pre style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;var&lt;/span&gt; result = &lt;span style="color:#a31515;"&gt;&amp;quot;Sis ir baigais {Type}, kura tiek aizvietoti {Count} parametri&amp;quot;&lt;/span&gt;.Substitute(&lt;/pre&gt;

  &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;new&lt;/span&gt; {&lt;/pre&gt;

  &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Type = &lt;span style="color:#a31515;"&gt;&amp;quot;teksts&amp;quot;&lt;/span&gt;,&lt;/pre&gt;

  &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Count = &lt;span style="color:#a31515;"&gt;&amp;quot;visi&amp;quot;&lt;/span&gt;&lt;/pre&gt;

  &lt;pre style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; });&lt;/pre&gt;
&lt;/div&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;&amp;#160;&lt;/p&gt;

&lt;p&gt;Cerams, ka noderēs!&lt;/p&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnet.lv/aggbug.aspx?PostID=15612" width="1" height="1"&gt;</description><category domain="http://dotnet.lv/blogs/vi/archive/tags/C_2300_+4.0/default.aspx">C# 4.0</category><category domain="http://dotnet.lv/blogs/vi/archive/tags/.NET4.0/default.aspx">.NET4.0</category></item><item><title>Izkrāso “Build Output” logu</title><link>http://dotnet.lv/blogs/vi/archive/2010/07/19/izkr-so-build-output-logu.aspx</link><pubDate>Mon, 19 Jul 2010 09:19:00 GMT</pubDate><guid isPermaLink="false">245d81fd-b543-41d7-a051-d8603c6e9e31:15327</guid><dc:creator>valdis.iljuconoks</dc:creator><slash:comments>0</slash:comments><description>&lt;div id="post_content"&gt;
&lt;p&gt;Tajās retajās situācijās, kad ērtāk izmantot &amp;ldquo;Build Output&amp;rdquo; logu nekā &amp;ldquo;Error List&amp;rdquo;, ļoti noder viena no VS spraudņa (&lt;b&gt;VSCommands 2010&lt;/b&gt;) piedāvātajām iespējām: &amp;ldquo;Enable Build Output coloring&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Pirms &amp;scaron;īs iespējas izmanto&amp;scaron;anas output logs izskatās pelēcīgi neinteresants.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_23AAE93A.png" rel="lightbox"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" title="image" alt="image" src="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_thumb_5F00_5C559347.png" width="714" border="0" height="199" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Ja ir instalēts VS Commands 2010 papla&amp;scaron;inājums, tad pieejama jauka iespēja izkrāsot output loga saturu dažādās krāsās (krāsojas tikai warning un error ieraksti). Ieslēgt &amp;scaron;o iespēju var &amp;scaron;eit:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_63089CCA.png" rel="lightbox"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" title="image" alt="image" src="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_thumb_5F00_69BBA64D.png" width="563" border="0" height="328" /&gt;&lt;/a&gt;&amp;nbsp; &lt;/p&gt;
&lt;p&gt;Pēc iespējas ieslēg&amp;scaron;anas output logs parādās jau smukākās krāsās un ja nepiecie&amp;scaron;ams detalizēti analizēt tie&amp;scaron;i &amp;ldquo;Build Output&amp;rdquo; loga saturu, kad notiek kādas problēmas risinā&amp;scaron;ana, iespējams, ka noderēs arī brīdinājumu vai kļūdu vizuāla izdalī&amp;scaron;ana ar krāsu palīdzību uz kopējā fona.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_694F7358.png" rel="lightbox"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" title="image" alt="image" src="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_thumb_5F00_101D8999.png" width="737" border="0" height="203" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Vairāk info par to, ko vēl piedāvā bezmaksas versija &amp;scaron;im spraudnim &amp;ndash; &lt;a href="http://visualstudiogallery.msdn.microsoft.com/en-us/d491911d-97f3-4cf6-87b0-6a2882120acf" target="_blank"&gt;&amp;scaron;eit&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Cerams, ka noderēs!&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnet.lv/aggbug.aspx?PostID=15327" width="1" height="1"&gt;</description><category domain="http://dotnet.lv/blogs/vi/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><category domain="http://dotnet.lv/blogs/vi/archive/tags/Add-Ins/default.aspx">Add-Ins</category><category domain="http://dotnet.lv/blogs/vi/archive/tags/Extensions/default.aspx">Extensions</category></item><item><title>FK kolonas datu modelī</title><link>http://dotnet.lv/blogs/vi/archive/2010/06/23/fk-kolonas-datu-model.aspx</link><pubDate>Tue, 22 Jun 2010 21:28:00 GMT</pubDate><guid isPermaLink="false">245d81fd-b543-41d7-a051-d8603c6e9e31:14612</guid><dc:creator>valdis.iljuconoks</dc:creator><slash:comments>1</slash:comments><description>&lt;div id="post_content"&gt;
&lt;p&gt;Veidojot datu modeli izmantojot EF (Entity Framework) tehnoloģijas ievēroju, ka FK kolonas uzrādās kā atsevi&amp;scaron;kas kolonas datu modelī kaut gan tām nebūtu pēc loģikas spriežot tur jābut, jo saiti starp dažādām entītijām nodro&amp;scaron;ina jau &amp;ldquo;Navigation Properties&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;Atceroties arī EF v1.0 uzvedību, likās savdabīgi, ka EF ģenerē &amp;scaron;is kolonas datu modelī pie jaunas entītijas pievieno&amp;scaron;anas. Ātrumā nekas cits neienāca prātā, ka vienkār&amp;scaron;i rediģēt edmx failu, kas nebūt nav no tiem patīkamākajiem darbiem un tā vietā jebkur&amp;scaron; vēlētos sēdēt kaut kur jūras malā un strebt kādu aukstu aliņu :)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" src="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_53FB43DA.png" width="429" border="0" height="325" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Tomēr pēc sekmīgas edmx faila rediģē&amp;scaron;anas operācijas, kas sekmīgi beidzās tikai pēc 3-ā piegājiena, nolēmu datu modelim pievienot jaunu entītiju, kas trūka. Pievieno&amp;scaron;anas ekrānā ieraudzīju brīni&amp;scaron;ķīgu checkbox &amp;ldquo;Include foreign key columns in the model&amp;rdquo;, kas pēc nosaukuma liecināja par kaut ko pazīstamu un tikko veiktas operācijas.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_68809358.png" rel="lightbox"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" src="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_thumb_5F00_1358F76B.png" width="443" border="0" height="394" alt="" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;Scaron;ī ķeksī&amp;scaron;a izņem&amp;scaron;ana arī sniedza nepiecie&amp;scaron;amo efektu &amp;ndash; foreign key atslēgu kolonas vairs nav datu modelī un navigācija starp entītijām tiek nodro&amp;scaron;ināta ar &amp;ldquo;Navigation Properties&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" src="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_1A0C00EE.png" width="460" border="0" height="320" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Jauki! :)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Cerams, ka noderēs un nebūs jāstumda simboli edmx failā.&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnet.lv/aggbug.aspx?PostID=14612" width="1" height="1"&gt;</description><category domain="http://dotnet.lv/blogs/vi/archive/tags/Entity+Framework/default.aspx">Entity Framework</category><category domain="http://dotnet.lv/blogs/vi/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category></item><item><title>Extension List (update)</title><link>http://dotnet.lv/blogs/vi/archive/2010/06/10/extension-list.aspx</link><pubDate>Thu, 10 Jun 2010 20:38:00 GMT</pubDate><guid isPermaLink="false">245d81fd-b543-41d7-a051-d8603c6e9e31:13505</guid><dc:creator>valdis.iljuconoks</dc:creator><slash:comments>0</slash:comments><description>&lt;div id="post_content"&gt;   &lt;p&gt;Laikā, kad pārinstalēju Win7 nodomāju, ka jāpiefiksē ir paplašinājumi, kurus ikdienā lietoju VS10. Atrodami visi šie paplašinājumi Extension Manager logā.&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&lt;a href="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_3A751ECC.png" rel="lightbox"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="" border="0" alt="" src="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_thumb_5F00_1FC882B3.png" width="527" height="259" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;Tātad, pirmais ar ko var sākt dienu ir:&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;Visual Studio Tip of the Day Start Page&lt;/strong&gt;&lt;/p&gt;    &lt;p&gt;&lt;a href="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_260F5941.png" rel="lightbox"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="" border="0" alt="" src="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_thumb_5F00_77B5D393.png" width="348" height="339" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;Ieslēdzama ir zem Tools –&amp;gt; Options –&amp;gt; Environment –&amp;gt; Startup –&amp;gt; Customize Start Page.&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p align="left"&gt;Ja nodarbojas ar arhitektūras lietām jaunaja studijas versijā, tad noteikti noderēs &lt;strong&gt;Architecture Layers Patterns&lt;/strong&gt;. Kad veidos “Layer Diagram” pie toolbox iespējām parādīsies dažāda veida arhitektūras, kuras tālāk jau var izmantot, lai veidotu sava risinājuma arhitektūras diagrammu.&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&lt;a href="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_5E4DD059.png" rel="lightbox"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="" border="0" alt="" src="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_thumb_5F00_44E5CD1F.png" width="218" height="316" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;Nākamais rindā – &lt;strong&gt;ReSharper&lt;/strong&gt;. No comments :) Vienkārši must-have.&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;(update)&lt;/font&gt; &lt;/strong&gt;Vēlies brīnumjauku, piemēram, references pievienošanas logu, instalē &lt;strong&gt;Visual Studio 2010 Pro Power Tools&lt;/strong&gt;. Un šis jaunais references pievienošanas ekrāns, kas ir viena no mīļākajām īpašībām šim paplašinājumam, nav vienīgais ko var piedāvāt šis spraudnis :)&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&lt;a href="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_78551897.png" rel="lightbox"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" title="" border="0" alt="" src="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_thumb_5F00_2CF574D3.png" width="426" height="252" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;Ja nodarbojaties ar datu struktūrām savās aplikācijās, bet nav tieša pieeja pie DB nepieciešama vai arī SQL ģenerācijas soli gribās kontrolēt pašam, tad noteikti ir jēga apskatīt &lt;strong&gt;Ado.Net C# POCO Entity Generator &lt;/strong&gt;papildinājumu, kas dod iespēju veidot EF datu modeli neizmantojot iebūvēto funkcionalitāti, bet veidot modeli, kuram apakšā ir tikai “pliki” objekti, bet jebkādām citām EF inteleģintejām iestrādnēm.&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&lt;a href="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_0B62BD28.png" rel="lightbox"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="" border="0" alt="" src="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_thumb_5F00_0F00D805.png" width="423" height="317" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;     &lt;br /&gt;&lt;/p&gt;    &lt;p&gt;Ja nevēlies rakstīt dokumentāciju, Tavā vietā to izdarīs &lt;strong&gt;GhostDoc &lt;/strong&gt;:)&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&lt;a href="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_02FEE7D1.png" rel="lightbox"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="" border="0" alt="" src="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_thumb_5F00_497BD7D9.png" width="412" height="147" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;     &lt;br /&gt;Ir vērts kādreiz pārbaudīt pirmkodu arī uz stila kļūdām izmantojot &lt;strong&gt;StyleCop&lt;/strong&gt; paplašinājumu.&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&lt;a href="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_28F49827.png" rel="lightbox"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="" border="0" alt="" src="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_thumb_5F00_737BD601.png" width="488" height="151" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;     &lt;br /&gt;Vesela kaudze ar dažādām noderīgām mazām lietiņām, kas nāk klāt, ja uzinstalē &lt;strong&gt;PowerCommands for Visual Studio 2010&lt;/strong&gt;.&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&lt;a href="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_6BF06694.png" rel="lightbox"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="" border="0" alt="" src="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_thumb_5F00_2BBA4D1A.png" width="314" height="264" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;     &lt;br /&gt;Dažreiz ir noderīgi novilkt kādu atskaites punktu pirmkodā. Tad noderēs &lt;strong&gt;Editor Guidelines&lt;/strong&gt; / &lt;strong&gt;Editor Guidelines UI&lt;/strong&gt;.&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&lt;a href="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_78EA46A5.png" rel="lightbox"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="" border="0" alt="" src="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_thumb_5F00_49B85B0E.png" width="400" height="250" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;     &lt;br /&gt;Ja nodarbojas ar VS paplašinājuma veidošanu, noderēs &lt;strong&gt;VSIX Explorer&lt;/strong&gt; programmatūra.&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&lt;a href="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_5E3DAA8C.png" rel="lightbox"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="" border="0" alt="" src="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_thumb_5F00_4E4E65C8.png" width="409" height="217" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;     &lt;br /&gt;      &lt;br /&gt;Dažreiz ieraudzīt komentārus savādāk ir jauki – &lt;strong&gt;ItalicComments&lt;/strong&gt;.&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&lt;a href="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_7B635296.png" rel="lightbox"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="" border="0" alt="" src="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_thumb_5F00_54290961.png" width="435" height="202" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;     &lt;br /&gt;Ja kāds būs strādājis ar Emacs un tā teksta iezīmēšanas spējām, iespējams, ka patiks arī ko piedāvā paplašinājums - &lt;strong&gt;Selection Plus&lt;/strong&gt;.&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&lt;a href="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_33A1C9AF.png" rel="lightbox"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="" border="0" alt="" src="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_thumb_5F00_013DF630.png" width="425" height="201" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;     &lt;br /&gt;Grammatika Asp.Net kodā arī ir svarīga – &lt;strong&gt;HTML Spell Checker&lt;/strong&gt;.&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&lt;a href="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_60B6B67D.png" rel="lightbox"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="" border="0" alt="" src="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_thumb_5F00_325D30D0.png" width="389" height="206" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;     &lt;br /&gt;&lt;/p&gt;    &lt;p&gt;Ja esat pieradis pie Word un citu teksta redaktoru darbības, ka pie trešā peles klikšķa tiek iezīmēta visa rindiņa, tad nāksies instalēt &lt;strong&gt;Triple Click&lt;/strong&gt;. Jāsaka gan, ka šis paplašinājums ir pieejams jau kopā ar &lt;strong&gt;Visual Studio 2010 Pro Power Tools &lt;/strong&gt;spraudni.&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;     &lt;br /&gt;Ja iegribās mainīt teksta krāsu, kas tiek renderēta, ja teksts tiek izīmēts, tad lieti noderēs &lt;strong&gt;Selection Foreground&lt;/strong&gt;.&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&lt;a href="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_20146A0E.png" rel="lightbox"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="" border="0" alt="" src="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_thumb_5F00_0AB6B4A6.png" width="412" height="128" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&lt;font color="#ff0000"&gt;&lt;strong&gt;(update)&lt;/strong&gt;&lt;/font&gt; Ļoti interesantā un jaunā lieta, kas ir parādījusies VS 2010 ir T4 šabloni. Daudzas tehnoloģijas un platfomas, kas pieejamas pašā VS koda ģenerācijai izmanto T4 šablonus. Ja sanāk pašam krāmēties ar šiem šabloniem, tad zināms, ka VS nepastāv iebūvēts Intellisense vai color-high-lighting. Lai to nodrošinātu, nāksies instalēt &lt;strong&gt;tangible T4 Editor plus modeling tools for VS2010&lt;/strong&gt;.&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&lt;a href="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_4034EFCB.png" rel="lightbox"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="" border="0" alt="" src="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_thumb_5F00_46E7F94E.png" width="417" height="369" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;     &lt;br /&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;Jāpiemin tomēr ka jebkuras izmaiņas paplašinājumos pieprasa VS restartēšanu, bet to var pārdzīvot vismaz periodā, kad sakonfigurētas un nostabilizēts saraksts ar paplašinājumiem :)&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;Cerams, ka noderēs!&lt;/p&gt; &lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnet.lv/aggbug.aspx?PostID=13505" width="1" height="1"&gt;</description><category domain="http://dotnet.lv/blogs/vi/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><category domain="http://dotnet.lv/blogs/vi/archive/tags/Extensions/default.aspx">Extensions</category></item><item><title>Athens</title><link>http://dotnet.lv/blogs/vi/archive/2010/05/25/athens.aspx</link><pubDate>Tue, 25 May 2010 05:20:30 GMT</pubDate><guid isPermaLink="false">245d81fd-b543-41d7-a051-d8603c6e9e31:14051</guid><dc:creator>valdis.iljuconoks</dc:creator><slash:comments>0</slash:comments><description>&lt;div id="post_content"&gt;   &lt;p&gt;Kā saka, ka vīnam ir jānostāvās, tad tas kļūst pavisam labs.. Kaut kas līdzīgs ir ar emocijām, sajūtām un bildēm.&lt;/p&gt;    &lt;p&gt;Tikai tagad pēc mēneša izvilku fotoaparātu un aplūkoju bildes, kas tapušas aprīļa beigās Atēnās, kad vairāk nekā pusi Eiropas lidostu bija pārņēmusi krīzes sajūta un bardaka/haosa garša. Lielākā daļa Eiropas bija netīra ar putekļiem un citādiem sīkorganismiem, kuri savu ceļu bija mērojuši no pašas Īslandes.&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&lt;a href="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_503D247C.png" rel="lightbox"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="" border="0" alt="" src="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_thumb_5F00_65D75D19.png" width="298" height="419" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;Toreiz aprīļa beigās Atēnās notika MVP reģionālais summits, kurā bija iespēja satikt sev līdzīgus un divas dienas parrunāt par problēmām un idejām, kuras nodarbina mūsu industrijas profesionāļus.&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&lt;a href="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_39BA6028.png" rel="lightbox"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="" border="0" alt="" src="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_thumb_5F00_76FB14EF.png" width="439" height="280" /&gt;&lt;/a&gt;&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;Tādos pasākumos ir iespēja satik sev jau pazīstamus cilvēkus, kurus esi saticis globālajā summitā, kas katru gadu notiek Redmondā (parasti februāra/marta mēnešos), gan arī iespēja iepazīsties ar nepazīstamiem cilvēkiem un dibināt kontaktus ar tādiem pašiem MVP, kas atlidojuši vai atbraukuši no blakusesošajām kaimiņzemēm.&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&lt;a href="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_398AB068.png" rel="lightbox"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="" border="0" alt="" src="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_thumb_5F00_1CC11586.png" width="437" height="273" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;Šoreiz stāsts un asākās diskusijas bija par mākoņiem, kas ik pa laikam mijās gan putekļu, gan arī ar computing mākoņu tēmām. Bija jocīgi redzēt sēžot pēdējās rindās, kas otrā dienā, kad konverence jau tuvojās savai loģiskajai izskaņai, tiem kuriem bija līdzi portatīvais dators, ekrānos zibēja tikai laika ziņu portāli, lidostas mājas lapas un aviokompāniju twitter konti.&lt;/p&gt;    &lt;p&gt;Kopsummā ceļojums bija interesants un aizraujošs. Neesmu gan ļoti spēcīgs eksperts ekonomikā, bet cik no tā visa saprotu, nemaz neizskatījās, ka grieķi īpaši paši pārdzīvotu par to, ka viņiem ir dziļāks dibens nekā mums. Cilvēki atvērti, pozitīvi, smaidīgi. Tikai satiksme viņiem nedaudz aktīvāka – nebija brīdis, kad nedzirdētu ārā pa viesnīcas logu motorolleru pīpināšanu vai čīkstošas bremzes.&lt;/p&gt;    &lt;p&gt;Arī es gribu darba laiku, kura ietvaros es varētu uz darbu atnākt ap pulksten vienpadsmitiem, pa vidu kaut ko pažonglēt un ap četriem jau doties pie jūras vai kaitot..&lt;/p&gt;    &lt;p&gt;Vienkāršā ceļojumā uz turieni laikam es nebrauktu :)&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;Anyway - enjoy coding!&lt;/p&gt; &lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnet.lv/aggbug.aspx?PostID=14051" width="1" height="1"&gt;</description><category domain="http://dotnet.lv/blogs/vi/archive/tags/Other/default.aspx">Other</category></item><item><title>Navigate To</title><link>http://dotnet.lv/blogs/vi/archive/2010/05/21/navigate-to.aspx</link><pubDate>Fri, 21 May 2010 08:48:00 GMT</pubDate><guid isPermaLink="false">245d81fd-b543-41d7-a051-d8603c6e9e31:13949</guid><dc:creator>valdis.iljuconoks</dc:creator><slash:comments>0</slash:comments><description>&lt;div id="post_content"&gt;
&lt;p&gt;Pārlasot jaunās studijas VS10 iespējas atradu interesantu feature: Edit &amp;ndash;&amp;gt; Navigate To. Izskatās tas apmēram &amp;scaron;ādi:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_44E28850.png" rel="lightbox"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" src="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_thumb_5F00_440A2266.png" width="424" border="0" height="305" alt="" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Ir iespēajms uzreiz, zinādams tikai daļu no meklējamā tipa nosaukumu, atvērt tā definīciju. Starp citu tas ir jaunievedums arī VS10 IntelliSense tehnoloģijā &amp;ndash; tagad Vs10 piedāvā arī sameklētos tipus, ja tiek ievadīta tikai daļa no tipa nosaukuma :)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" src="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_2382E2B4.png" width="507" border="0" height="106" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Arī viens no populārākajiem Visual Studio pielikumiem &amp;ndash; Resharper &amp;ndash; jau sen piedāvāja &amp;scaron;ādā veidā sameklēt vēlamo tipu. Jāsaka gan, ka Resharper piedāvātais variants &amp;scaron;ķiet pievilcīgāks.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img style="border-bottom:0px;border-left:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" src="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_7C48997E.png" width="379" border="0" height="200" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Enjoy! Cerams, ka Jūs vismaz jau lietojiet jauno studiju pilnā sparā :)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Cerams, ka noderēs.&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnet.lv/aggbug.aspx?PostID=13949" width="1" height="1"&gt;</description><category domain="http://dotnet.lv/blogs/vi/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category></item><item><title>Ekrāna tapetes VS10</title><link>http://dotnet.lv/blogs/vi/archive/2010/05/19/ekr-na-tapetes-vs10.aspx</link><pubDate>Wed, 19 May 2010 11:47:19 GMT</pubDate><guid isPermaLink="false">245d81fd-b543-41d7-a051-d8603c6e9e31:13895</guid><dc:creator>valdis.iljuconoks</dc:creator><slash:comments>0</slash:comments><description>&lt;div id="post_content"&gt;   &lt;p&gt;Jaunās VS10 noskaņās un darba svētkos, atklāju interesantu resursu, kurā puisis (vai arī meitene) publicē VS10 ekrāna tapetes. Dažas no tām ir pat lietojamas.&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&lt;a href="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/tumblr_5F00_l2dmnnzl421qbkusho1_5F00_1280_5F00_08F0979E.jpg" rel="lightbox"&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="tumblr_l2dmnnzl421qbkusho1_1280" border="0" alt="tumblr_l2dmnnzl421qbkusho1_1280" src="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/tumblr_5F00_l2dmnnzl421qbkusho1_5F00_1280_5F00_thumb_5F00_6F1C616E.jpg" width="431" height="271" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;Tapetes pieejamas šeit - &lt;a title="http://vs2010wallpapers.com/" href="http://vs2010wallpapers.com/"&gt;http://vs2010wallpapers.com/&lt;/a&gt;.&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;Enjoy!&lt;/p&gt; &lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnet.lv/aggbug.aspx?PostID=13895" width="1" height="1"&gt;</description><category domain="http://dotnet.lv/blogs/vi/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category></item><item><title>Pēdējais treniņa inventārs</title><link>http://dotnet.lv/blogs/vi/archive/2010/05/04/p-d-jais-treni-a-invent-rs.aspx</link><pubDate>Tue, 04 May 2010 09:58:05 GMT</pubDate><guid isPermaLink="false">245d81fd-b543-41d7-a051-d8603c6e9e31:13472</guid><dc:creator>valdis.iljuconoks</dc:creator><slash:comments>0</slash:comments><description>&lt;div id="post_content"&gt;   &lt;p&gt;Līdz ar Visual Studio pēdējās versijas oficiālo iznākšanu š.g. aprīļa vidū ir pieejams arī treniņa inventārs, kas paredzēts lai efektīvāk apgūtu jaunās tehnoloģijas un iespējas, kas jaunajā studijā nav maz.&lt;/p&gt;    &lt;p&gt;Visual Studio 2010 Training Kit ietver sevī šādas tehnoloģijas:&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;C# 4 &lt;/li&gt;      &lt;li&gt;Visual Basic 10 &lt;/li&gt;      &lt;li&gt;F# &lt;/li&gt;      &lt;li&gt;Parallel Extensions &lt;/li&gt;      &lt;li&gt;Windows Communication Foundation &lt;/li&gt;      &lt;li&gt;Windows Workflow &lt;/li&gt;      &lt;li&gt;Windows Presentation Foundation &lt;/li&gt;      &lt;li&gt;ASP.NET 4 &lt;/li&gt;      &lt;li&gt;Windows 7 &lt;/li&gt;      &lt;li&gt;Entity Framework &lt;/li&gt;      &lt;li&gt;ADO.NET Data Services &lt;/li&gt;      &lt;li&gt;Managed Extensibility Framework &lt;/li&gt;      &lt;li&gt;Visual Studio Team System &lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;Pakotnes izstrādē galvenokārt ir piedalījušies eksperti no Microsoft Developer &amp;amp; Platform Evangelism grupas.&lt;/p&gt;    &lt;p&gt;Pieejams – &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=752CB725-969B-4732-A383-ED5740F02E93&amp;amp;displaylang=en" target="_blank"&gt;šeit&lt;/a&gt;.&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;Cerams, ka noderēs!&lt;/p&gt; &lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnet.lv/aggbug.aspx?PostID=13472" width="1" height="1"&gt;</description><category domain="http://dotnet.lv/blogs/vi/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://dotnet.lv/blogs/vi/archive/tags/Entity+Framework/default.aspx">Entity Framework</category><category domain="http://dotnet.lv/blogs/vi/archive/tags/Parallel+FX/default.aspx">Parallel FX</category><category domain="http://dotnet.lv/blogs/vi/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><category domain="http://dotnet.lv/blogs/vi/archive/tags/TFS+2010/default.aspx">TFS 2010</category><category domain="http://dotnet.lv/blogs/vi/archive/tags/C_2300_+4.0/default.aspx">C# 4.0</category><category domain="http://dotnet.lv/blogs/vi/archive/tags/F_2300_/default.aspx">F#</category><category domain="http://dotnet.lv/blogs/vi/archive/tags/.NET4.0/default.aspx">.NET4.0</category><category domain="http://dotnet.lv/blogs/vi/archive/tags/Windows+7/default.aspx">Windows 7</category><category domain="http://dotnet.lv/blogs/vi/archive/tags/WCF/default.aspx">WCF</category><category domain="http://dotnet.lv/blogs/vi/archive/tags/WPF/default.aspx">WPF</category><category domain="http://dotnet.lv/blogs/vi/archive/tags/WF/default.aspx">WF</category><category domain="http://dotnet.lv/blogs/vi/archive/tags/MEF/default.aspx">MEF</category></item><item><title>F#  operatoru rakstīšana</title><link>http://dotnet.lv/blogs/am/archive/2010/04/28/f-operatoru-rakst-ana.aspx</link><pubDate>Wed, 28 Apr 2010 21:54:39 GMT</pubDate><guid isPermaLink="false">245d81fd-b543-41d7-a051-d8603c6e9e31:13413</guid><dc:creator>andrejs.mamontovs</dc:creator><slash:comments>2</slash:comments><description>&lt;p&gt;&lt;font size="3" face="cal"&gt;Sveicināti,&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="cal"&gt;Turpinu intensīvi apgūt F# valodu. Jāsaka godīgi, sasodīti interesanti! Iespējams tādēļ, ka ikdienā veidoju programmatūru biznesa vajadzībām(OOP).&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="cal"&gt;Šoreiz par vienu interesantu F# valodas iespēju, definēt savas operatoru. Apskatīsim uz vienkārša piemēra:&lt;/font&gt;&lt;span style="color:#e8e8e8;"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;pre class="code"&gt;&lt;font size="3"&gt;&lt;font face="cal"&gt;&lt;span style="color:#d6d694;"&gt;let &lt;/span&gt;&lt;span style="color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="color:#80ff00;"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt;&lt;span style="color:#a79a86;"&gt;) &lt;/span&gt;&lt;span style="color:#e8e8e8;"&gt;a b &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cal"&gt;&lt;span style="color:#80ff00;"&gt;=
    &lt;/span&gt;&lt;span style="color:#e8e8e8;"&gt;a &lt;/span&gt;&lt;span style="color:#80ff00;"&gt;+ &lt;/span&gt;&lt;span style="color:#44b1e3;"&gt;&amp;quot;,&amp;quot; &lt;/span&gt;&lt;span style="color:#80ff00;"&gt;+ &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color:#e8e8e8;"&gt;&lt;font size="3" face="cal"&gt;b
&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;&lt;font color="#e8e8e8" size="3" face="Courier New"&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3" face="cal"&gt;Šinī konkrētajā piemērā izveidoju savu operatoru(&amp;gt;&amp;gt;&amp;gt;), kas salīmē divas virknes, ieliekot starp tām komatu. &lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3" face="cal"&gt;Tātad, ja man parādās nepieciešamība pēc šāda vieda virkņu salīmēšanas, varu rakstīt šādi:&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;span style="color:#44b1e3;"&gt;&lt;font color="#d6d694" size="3" face="cal"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;

&lt;pre class="code"&gt;&lt;font size="3"&gt;&lt;font face="cal"&gt;&lt;span style="color:#d6d694;"&gt;let &lt;/span&gt;&lt;span style="color:#e8e8e8;"&gt;s &lt;/span&gt;&lt;span style="color:#80ff00;"&gt;= &lt;/span&gt;&lt;span style="color:#44b1e3;"&gt;&amp;quot;Andrejs&amp;quot; &lt;/span&gt;&lt;span style="color:#80ff00;"&gt;&amp;gt;&amp;gt;&amp;gt; &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color:#44b1e3;"&gt;&lt;font size="3" face="cal"&gt;&amp;quot;Mamontovs&amp;quot;
&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;&lt;font size="3" face="cal"&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3" face="cal"&gt;Cerams ka noderēs!&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3" face="cal"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnet.lv/aggbug.aspx?PostID=13413" width="1" height="1"&gt;</description><category domain="http://dotnet.lv/blogs/am/archive/tags/.NET+4.0/default.aspx">.NET 4.0</category><category domain="http://dotnet.lv/blogs/am/archive/tags/F_2300_/default.aspx">F#</category></item><item><title>RxJS (Reactive Extensions JavaScript) pielietojuma piemērs</title><link>http://dotnet.lv/blogs/am/archive/2010/04/24/rxjs-reactive-extensions-javascript-pielietojuma-piem-rs.aspx</link><pubDate>Sat, 24 Apr 2010 13:30:20 GMT</pubDate><guid isPermaLink="false">245d81fd-b543-41d7-a051-d8603c6e9e31:13321</guid><dc:creator>andrejs.mamontovs</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;font size="3" face="cali"&gt;Sveicināti,&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="cali"&gt;Pavisam nesen biju iemūžinājis saiti uz prezentāciju par &lt;/font&gt;&lt;a href="http://www.dotnet.lv/blogs/am/archive/2010/03/31/reactive-extensions-prezent-cija.aspx"&gt;&lt;em&gt;&lt;font size="3" face="cali"&gt;Rx(Reactive Extensions)&lt;/font&gt;&lt;/em&gt;&lt;/a&gt;&lt;font size="3" face="cali"&gt;. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;em&gt;Rx&lt;/em&gt; projekts nāk no &lt;em&gt;Microsoft&lt;/em&gt; izpētes komandas. Projekta pamatā ir doma, ka visas darbības var uzvērt kā datubāzi(man patīk vairāk datu avots). Piemēram, datora pele ir nekas cits, kā datu avots. Katru mirkli tās raida informāciju par sava stāvokļa izmaiņām. Datorā ar ierīces draivera palīdzību šie te dati nepārtraukti tiek apstrādāti, un pārraidīti tālāk. Šo te principu var pārnest uz programmēšanas platformu. &lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="cali"&gt;Piemēram, datu iegūšana no interneta vietnes(datu avots). Vaicājumi pēc datiem ir asinhrons process. Var paiet ilgs laiks no pieprasījuma nosūtīšanas līdz brīdim kad tiek saņemta atbildes. Nav svarīgi vai tā ir pelīte vai komunikācijas protokols vai vel kas, svarīgi būtu iegūt savā rīcībā vienotu veidu, kādā programmēt signāla pārraidi, saņemšanu, filtrāciju un apstrādi. Šiem te mērķiem arī kalpo &lt;em&gt;.NET&lt;/em&gt; videi rakstīta &lt;em&gt;Rx&lt;/em&gt; bibliotēka, un arī tas &lt;em&gt;JavaScript&lt;/em&gt; versija. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="cali"&gt;Uz piemēra pacentīšos parādīt idejas spēku! &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="cali"&gt;Nospraudīsim darba uzdevumu: &lt;/font&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;font size="3" face="cali"&gt;Nepieciešams parakstīties uz ASP.NET AJAX asinhronu datu nosūtīšanu uz serveri.&lt;/font&gt;&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;font size="3" face="cali"&gt;Realizācija&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="cali"&gt;     &lt;br /&gt;&lt;/font&gt;&lt;font size="3" face="cali"&gt;Izstrādātāji, kas ir pazīstami ar ASP.NET noteikti pazīst &lt;em&gt;ScriptManager&lt;/em&gt; kontroli. Kontrolei ir visai noteikt mērķis, nodrošinās AJAX funkcionalitāti gan servera gan klienta pusē.&lt;/font&gt;&lt;/p&gt;  &lt;pre class="code"&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;asp&lt;/span&gt;&lt;span style="background:#10100d;color:#a1b070;"&gt;:&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;ScriptManager &lt;/span&gt;&lt;span style="background:#10100d;color:#009b00;"&gt;ID&lt;/span&gt;&lt;span style="background:#10100d;color:#a1b070;"&gt;=&lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;quot;scriptManager&amp;quot; &lt;/span&gt;&lt;span style="background:#10100d;color:#009b00;"&gt;runat&lt;/span&gt;&lt;span style="background:#10100d;color:#a1b070;"&gt;=&lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;quot;server&amp;quot; &lt;/span&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;/&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;&lt;font size="3" face="cali"&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3" face="cali"&gt;Ar šīs kontroles starpniecību pavērās iespēja piekļūt pie AJAX JavaScript API dažādām manipulācijām ar datiem. Manā gadījumā, iespēju noteikt brīdi, kad tiek nosūtīts asinhronais pieprasījums, un tiek saņemta atbildes. Zemāk kods, ar kura palīdzību var parakstīties uz nosūtīšanas notikumu.&lt;/font&gt;&lt;/p&gt;

&lt;pre class="code"&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;var &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;i &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;= &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Sys&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;WebForms&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;PageRequestManager&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;getInstance&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;();
&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;i&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;add_beginRequest&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;function&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;&lt;font size="3" face="cali"&gt;() {});
&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;&lt;font size="3" face="cali"&gt;Līdzīgā veida var parakstīties vel uz vairākiem citiem notikumiem.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3" face="cali"&gt;Kā jau rakstīju, būtu lieliski, ja notikumu apstrāde būtu vienādota, nav svarīgi vai apstrādāšu pelītes kustību, vai pieprasu datus, vai veicu vel kādu citu darbību.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3" face="cali"&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3" face="cali"&gt;Tātad pirmajā soli pievienojam &lt;/font&gt;&lt;a href="http://msdn.microsoft.com/en-us/devlabs/ee794896.aspx"&gt;&lt;font size="3" face="cali"&gt;RxJS&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="cali"&gt; bibliotēku savā kodā.
    &lt;br /&gt;&lt;/font&gt;&lt;/p&gt;

&lt;pre class="code"&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;script &lt;/span&gt;&lt;span style="background:#10100d;color:#009b00;"&gt;type&lt;/span&gt;&lt;span style="background:#10100d;color:#a1b070;"&gt;=&lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;quot;text/javascript&amp;quot; &lt;/span&gt;&lt;span style="background:#10100d;color:#009b00;"&gt;src&lt;/span&gt;&lt;span style="background:#10100d;color:#a1b070;"&gt;=&lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="background:black;color:#a5e02d;"&gt;&amp;lt;%&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;=ResolveUrl(&amp;quot;~/Content/rx.js&amp;quot;) &lt;/span&gt;&lt;span style="background:black;color:#a5e02d;"&gt;%&amp;gt;&lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;quot;&lt;/span&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;script&lt;/span&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;

&lt;p&gt;&lt;font size="3" face="cali"&gt;No šī brīža vara sākt rakstīt kodu, tā saucamo signālu avotu. &lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3" face="cali"&gt;&lt;/font&gt;&lt;/p&gt;

&lt;pre class="code"&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;var &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;RequestObservable &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;= &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;{
    &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Create&lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;: &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;function&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;() {
        &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;return &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Rx&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Observable&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Create&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;function&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;obs&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;) {
            &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;with &lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Sys&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;WebForms&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;PageRequestManager&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;getInstance&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;()) {
                &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;add_beginRequest&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;function&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;() {
                    &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;obs&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;OnNext&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;false&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;);
                });

                &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;add_endRequest&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;function&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;() {
                    &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;obs&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;OnNext&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;true&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;);
                });
            }

            &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;return &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;&lt;font size="3" face="cali"&gt;{}

        });
    }
};&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;&lt;font size="3" face="cali"&gt;Izveidoju objektu &lt;em&gt;RequestObservable&lt;/em&gt; ar vienīgo metodi &lt;em&gt;Create&lt;/em&gt;, kas atgriezīs man tā saucamo Push stila kolekciju. Tas tiek panākts ar &lt;em&gt;Rx.Observable.Create&lt;/em&gt; izsaukuma rezultāta atgriešanu. Rx.Observable.Create metodei, kā arguments tiek padota funkcija. Tas ķermenī notiek parakstīšanās uz &lt;em&gt;ASP.NET AJAX&lt;/em&gt; notikumiem &lt;em&gt;add_beginRequest&lt;/em&gt; un &lt;em&gt;add_endRequest&lt;/em&gt;. Tanī brīdī, kad šie notikumi izpildīsies, tiks raidīts signāls ar atšķirīgiem argumentiem. Manā gadījumā tie ir &lt;em&gt;true/false&lt;/em&gt;.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3" face="cali"&gt;Pēc signāla avota izveides, veidojam signāla apstrādes funkcionalitāti. &lt;/font&gt;&lt;/p&gt;

&lt;pre class="code"&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;$&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;document&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;).&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;ready&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(
    &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;function&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;() {
        &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;var &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;request &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;= &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;RequestObservable&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Create&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;();

        &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;var &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;open &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;= &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;request&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Throttle&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:cyan;"&gt;250&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;).&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Where&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;function&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;e&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;) { &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;return &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;e &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;=== &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;false&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;; });
        &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;var &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;close &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;= &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;request&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Where&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;function&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;e&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;) { &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;return &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;e &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;=== &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;true&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;; });

        &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;open&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Subscribe&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;function&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;&lt;font size="3" face="cali"&gt;() {
            &lt;/font&gt;&lt;/span&gt;&lt;span style="background:#10100d;color:#756f51;"&gt;&lt;font size="3" face="cali"&gt;// Kods
        &lt;/font&gt;&lt;/span&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;});

        &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;close&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Subscribe&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;function&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;&lt;font size="3" face="cali"&gt;() {
            &lt;/font&gt;&lt;/span&gt;&lt;span style="background:#10100d;color:#756f51;"&gt;&lt;font size="3" face="cali"&gt;// Kods
        &lt;/font&gt;&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;&lt;font size="3" face="cali"&gt;});
    }
);
&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;&lt;font size="3" face="cali"&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3" face="cali"&gt;Izmantoju &lt;em&gt;jQuery&lt;/em&gt; lai parakstītos uz lapas ielasīšanu&lt;em&gt;(metodes ready izsaukšana)&lt;/em&gt;. Pēc lapas ielasīšanas veidojam signāla avotu.&lt;/font&gt;&lt;/p&gt;

&lt;pre class="code"&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;var &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;request &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;= &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;RequestObservable&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Create&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;();&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;

&lt;p&gt;&lt;font size="3" face="cali"&gt;Nākamajā solī nodefinēju divus filtrus, kuri veiks signāla šķirošanu. &lt;/font&gt;&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;font size="3" face="cali"&gt;open filtrs atlasīs pieprasīja nosūtīšanu, nolasot tikai signālu, kuri ir pēdējie 250 milisekunžu laikā(metode Throttle).&lt;/font&gt;&lt;/li&gt;

  &lt;li&gt;&lt;font size="3" face="cali"&gt;Otrs, close filtrs atlasīs atbildēs saņemšanas signālus.&lt;/font&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;pre class="code"&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;var &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;open &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;= &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;request&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Throttle&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:cyan;"&gt;250&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;).&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Where&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;function&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;e&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;) { &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;return &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;e &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;=== &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;false&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;; });
&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;var &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;close &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;= &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;request&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Where&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;function&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;e&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;) { &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;return &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;e &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;=== &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;true&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;&lt;font size="3" face="cali"&gt;; });
&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;&lt;font size="3" face="cali"&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3" face="cali"&gt;Pēdējais solis, atliek tikai parakstīties uz notikumiem.&lt;/font&gt;&lt;/p&gt;

&lt;pre class="code"&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;open&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Subscribe&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;function&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;&lt;font size="3" face="cali"&gt;() {
    &lt;/font&gt;&lt;/span&gt;&lt;span style="background:#10100d;color:#756f51;"&gt;&lt;font size="3" face="cali"&gt;// Kods
&lt;/font&gt;&lt;/span&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;});

&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;close&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Subscribe&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;function&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;&lt;font size="3" face="cali"&gt;() {
    &lt;/font&gt;&lt;/span&gt;&lt;span style="background:#10100d;color:#756f51;"&gt;&lt;font size="3" face="cali"&gt;// Kods
&lt;/font&gt;&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;&lt;font size="3" face="cali"&gt;});
&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;&lt;font size="3" face="cali"&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3"&gt;Šinī rakstā centos parādīt maksimāli pietuvinātu dzīvei piemēru. Tas ir tikai viens scenārijs no daudziem.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3"&gt;Cerams, ka noderēs!&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3"&gt;&lt;em&gt;Gaidīšu jūsu komentārus, labprāt atbildēšu uz visiem jautājumiem!&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnet.lv/aggbug.aspx?PostID=13321" width="1" height="1"&gt;</description><category domain="http://dotnet.lv/blogs/am/archive/tags/JavaScript/default.aspx">JavaScript</category><category domain="http://dotnet.lv/blogs/am/archive/tags/Rx/default.aspx">Rx</category><category domain="http://dotnet.lv/blogs/am/archive/tags/RxJs/default.aspx">RxJs</category></item><item><title>Izstrādātāja ikdiena, darbs ar Enum v2</title><link>http://dotnet.lv/blogs/am/archive/2010/04/20/izstr-d-t-ja-ikdiena-darbs-ar-enum-v2.aspx</link><pubDate>Tue, 20 Apr 2010 19:41:29 GMT</pubDate><guid isPermaLink="false">245d81fd-b543-41d7-a051-d8603c6e9e31:13113</guid><dc:creator>andrejs.mamontovs</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;font size="3" face="cal"&gt;Sveicināti!&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="cal"&gt;Pavisam nesen biju iemusinājis kodu, kas ļauj viegli pārveidot virkni uz pārskaitījuma tipu (&lt;/font&gt;&lt;a title="http://www.dotnet.lv/blogs/am/archive/2010/03/10/izstr-d-t-ja-ikdiena-darbs-ar-enum.aspx" href="http://www.dotnet.lv/blogs/am/archive/2010/03/10/izstr-d-t-ja-ikdiena-darbs-ar-enum.aspx"&gt;&lt;font size="3" face="cal"&gt;http://www.dotnet.lv/blogs/am/archive/2010/03/10/izstr-d-t-ja-ikdiena-darbs-ar-enum.aspx&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="cal"&gt;). Ar &lt;em&gt;Microsoft .NET Framework 4.0&lt;/em&gt; iznākšanu šis te kods pārveidots izmantojot jaunās iespējas. &lt;/font&gt;&lt;/p&gt;  &lt;pre class="code"&gt;&lt;font size="3"&gt;&lt;font face="cal"&gt;    &lt;span style="color:#d6d694;"&gt;public static class &lt;/span&gt;&lt;span style="color:#009b00;"&gt;Enum&lt;/span&gt;&lt;span style="color:#80ff00;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#e8e8e8;"&gt;T&lt;/span&gt;&lt;span style="color:#80ff00;"&gt;&amp;gt; &lt;/span&gt;&lt;span style="color:#d6d694;"&gt;where &lt;/span&gt;&lt;span style="color:#a79a86;"&gt;T : &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color:#d6d694;"&gt;&lt;font size="3" face="cal"&gt;struct 
    &lt;/font&gt;&lt;/span&gt;&lt;font size="3"&gt;&lt;font face="cal"&gt;&lt;span style="color:#a79a86;"&gt;{
        &lt;/span&gt;&lt;span style="color:#d6d694;"&gt;public static &lt;/span&gt;&lt;span style="color:#a79a86;"&gt;T &lt;/span&gt;&lt;span style="color:#e8e8e8;"&gt;Parse&lt;/span&gt;&lt;span style="color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="color:#d6d694;"&gt;string &lt;/span&gt;&lt;span style="color:#e8e8e8;"&gt;value&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cal"&gt;&lt;span style="color:#a79a86;"&gt;)
        {
            T &lt;/span&gt;&lt;span style="color:#e8e8e8;"&gt;result&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cal"&gt;&lt;span style="color:#a79a86;"&gt;;

            &lt;/span&gt;&lt;span style="color:#009b00;"&gt;Enum&lt;/span&gt;&lt;span style="color:#80ff00;"&gt;.&lt;/span&gt;&lt;span style="color:#e8e8e8;"&gt;TryParse&lt;/span&gt;&lt;span style="color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="color:#e8e8e8;"&gt;value&lt;/span&gt;&lt;span style="color:#a79a86;"&gt;, &lt;/span&gt;&lt;span style="color:#d6d694;"&gt;out &lt;/span&gt;&lt;span style="color:#e8e8e8;"&gt;result&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cal"&gt;&lt;span style="color:#a79a86;"&gt;)
&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cal"&gt;&lt;span style="color:#a79a86;"&gt;
            &lt;/span&gt;&lt;span style="color:#d6d694;"&gt;return &lt;/span&gt;&lt;span style="color:#e8e8e8;"&gt;result&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color:#a79a86;"&gt;&lt;font size="3" face="cal"&gt;;
        }
    }
&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;&lt;font size="3" face="cal"&gt;Ar &lt;em&gt;.NET 4.0&lt;/em&gt; ienākšanu &lt;em&gt;Enum&lt;/em&gt; tipam parādījās statiska metode &lt;em&gt;TryParse&lt;/em&gt;, kas atrisina visas problēmas ar virknes pārveidošanu uz pārskaitījumu. Palīg klase tagad kalpo tikai noklusētās vērtības atgriešanai, gadījumā ja neizdevās pārveidot uz norādīto pārskaitījuma tipu.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3" face="cal"&gt;Cerams ka noderēs!&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnet.lv/aggbug.aspx?PostID=13113" width="1" height="1"&gt;</description><category domain="http://dotnet.lv/blogs/am/archive/tags/Generic/default.aspx">Generic</category><category domain="http://dotnet.lv/blogs/am/archive/tags/OOP/default.aspx">OOP</category><category domain="http://dotnet.lv/blogs/am/archive/tags/Patterns/default.aspx">Patterns</category><category domain="http://dotnet.lv/blogs/am/archive/tags/.NET+4.0/default.aspx">.NET 4.0</category></item><item><title>Iznākusi jauna bezmaksas e-grāmata SQL server administratoriem un biznesa intelekta izstrādātājiem</title><link>http://dotnet.lv/blogs/jb/archive/2010/04/14/izn-kusi-jauna-bezmaksas-e-gr-mata-sql-server-administratoriem-un-biznesa-intelekta-izstr-d-t-jiem.aspx</link><pubDate>Wed, 14 Apr 2010 20:57:19 GMT</pubDate><guid isPermaLink="false">245d81fd-b543-41d7-a051-d8603c6e9e31:13031</guid><dc:creator>janis.bicans</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;Sveiki,&lt;/p&gt;  &lt;p&gt;tā nu tuvojoties SQL Server 2008 R2 oficiālajam laidienam ir sarosījušies arī literatūras autori. Ja ir interese par &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Introducing Microsoft SQL Server 2008 R2, by Ross Mistry and Stacia Misner &lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Grāmata satur 10 nodaļas un 216 lappuses: &lt;/p&gt;  &lt;p&gt;PART I&amp;#160;&amp;#160; Database Administration &lt;/p&gt;  &lt;p&gt;CHAPTER 1&amp;#160;&amp;#160; SQL Server 2008 R2 Editions and Enhancements 3    &lt;br /&gt;CHAPTER 2&amp;#160;&amp;#160; Multi-Server Administration 21     &lt;br /&gt;CHAPTER 3&amp;#160;&amp;#160; Data-Tier Applications 41     &lt;br /&gt;CHAPTER 4&amp;#160;&amp;#160; High Availability and Virtualization Enhancements 63     &lt;br /&gt;CHAPTER 5&amp;#160;&amp;#160; Consolidation and Monitoring 85 &lt;/p&gt;  &lt;p&gt;PART II&amp;#160;&amp;#160; Business Intelligence Development &lt;/p&gt;  &lt;p&gt;CHAPTER 6&amp;#160;&amp;#160; Scalable Data Warehousing 109    &lt;br /&gt;CHAPTER 7&amp;#160;&amp;#160; Master Data Services 125     &lt;br /&gt;CHAPTER 8&amp;#160;&amp;#160; Complex Event Processing with StreamInsight 145     &lt;br /&gt;CHAPTER 9&amp;#160;&amp;#160; Reporting Services Enhancements 165     &lt;br /&gt;CHAPTER 10&amp;#160;&amp;#160; Self-Service Analysis with PowerPivot 189 &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/microsoft_press/archive/2010/04/14/free-ebook-introducing-microsoft-sql-server-2008-r2.aspx"&gt;Vairāk informācijas un lejupielādes iespējas šeit!&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Ceru, ka noderēs!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnet.lv/aggbug.aspx?PostID=13031" width="1" height="1"&gt;</description><category domain="http://dotnet.lv/blogs/jb/archive/tags/E-gr_0101_matas/default.aspx">E-grāmatas</category><category domain="http://dotnet.lv/blogs/jb/archive/tags/Literat_6B01_ra/default.aspx">Literatūra</category><category domain="http://dotnet.lv/blogs/jb/archive/tags/SQL+Server/default.aspx">SQL Server</category></item><item><title>JavaScript Intellisense uzlabojums Visual Studio 2010</title><link>http://dotnet.lv/blogs/am/archive/2010/04/13/javascript-intellisense-uzlabojums-visual-studio-2010.aspx</link><pubDate>Tue, 13 Apr 2010 18:59:20 GMT</pubDate><guid isPermaLink="false">245d81fd-b543-41d7-a051-d8603c6e9e31:13017</guid><dc:creator>andrejs.mamontovs</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;&lt;font size="3" face="ca"&gt;Sveicināti,&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;&lt;font face="ca"&gt;&lt;em&gt;Visual Studio 2010 &lt;/em&gt;kļūst vel draudzīgāka pret Web izstrādātājiem. Ir uzlabots JavaScript Intellisense, kas tagad spēj analizēt &lt;em&gt;JavaScript&lt;/em&gt; kodu.&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="ca"&gt;Zemāk redzams neliels vizuāls piemērs:&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/am/VS2010JavaScriptIntellisense_5F00_08F06BD5.png" rel="lightbox"&gt;&lt;font color="#000000" size="3" face="ca"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="VS2010JavaScriptIntellisense" border="0" alt="VS2010JavaScriptIntellisense" src="http://www.dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/am/VS2010JavaScriptIntellisense_5F00_thumb_5F00_2FBE8215.png" width="643" height="324" /&gt;&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="ca"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="ca"&gt;Kā redzams, koda analīze darbojās, izlecošā sarakstā parādās manis definētā metode – “&lt;em&gt;Do”&lt;/em&gt; un lauks “&lt;em&gt;Text”&lt;/em&gt;. Pagaidām, ar visiem maniem testiem &lt;em&gt;Visual Studio&lt;/em&gt; lieliski tiek galā. Tagad es varu rakstīt kodu daudz precīzāk un ātrāk.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="ca"&gt;Cerams ka noderēs!&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="ca"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnet.lv/aggbug.aspx?PostID=13017" width="1" height="1"&gt;</description><category domain="http://dotnet.lv/blogs/am/archive/tags/JavaScript/default.aspx">JavaScript</category><category domain="http://dotnet.lv/blogs/am/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category></item><item><title>Studijas laidiena noskaņās</title><link>http://dotnet.lv/blogs/vi/archive/2010/04/11/studijas-laidiena-noska-s.aspx</link><pubDate>Sun, 11 Apr 2010 03:34:00 GMT</pubDate><guid isPermaLink="false">245d81fd-b543-41d7-a051-d8603c6e9e31:12977</guid><dc:creator>valdis.iljuconoks</dc:creator><slash:comments>0</slash:comments><description>&lt;div id="post_content"&gt;
&lt;p&gt;Kā jau vairumam no jums zināms &amp;ndash; rīt notiek oficiālā Visual Studio 2010 Launch pasākumu sērija all-over-the-world.&lt;/p&gt;
&lt;p&gt;Par godu &amp;scaron;im notikumam Microsoft Feed mājvieta ir izveidojusi sēriju ar interesantām tapetēm.&lt;/p&gt;
&lt;p&gt;Viena sērija ir ar Twitter nosakaņu un atrodama &amp;scaron;eit - &lt;a title="http://microsoftfeed.com/2010/visual-studio-2010-launch-twitter-backgrounds/" href="http://microsoftfeed.com/2010/visual-studio-2010-launch-twitter-backgrounds/"&gt;http://microsoftfeed.com/2010/visual-studio-2010-launch-twitter-backgrounds/&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Otra sērija ir vienkār&amp;scaron;i VS10 dažāda veida sienas tapetes - &lt;a title="http://microsoftfeed.com/2010/10-beautiful-microsoft-visual-studio-2010-wallpapers/" href="http://microsoftfeed.com/2010/10-beautiful-microsoft-visual-studio-2010-wallpapers/"&gt;http://microsoftfeed.com/2010/10-beautiful-microsoft-visual-studio-2010-wallpapers/&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Man personīgi patika &amp;scaron;ī tapete visvairāk:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/VisualStudioWallPaper06_5F00_13E440E0.jpg" rel="lightbox"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" title="VisualStudio-WallPaper-06" alt="VisualStudio-WallPaper-06" src="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/VisualStudioWallPaper06_5F00_thumb_5F00_53AE2765.jpg" border="0" height="307" width="489" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Cerams, ka noderēs!&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnet.lv/aggbug.aspx?PostID=12977" width="1" height="1"&gt;</description><category domain="http://dotnet.lv/blogs/vi/archive/tags/Other/default.aspx">Other</category><category domain="http://dotnet.lv/blogs/vi/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category></item><item><title>Visual Studio 2010 F# Tutorial projekts</title><link>http://dotnet.lv/blogs/am/archive/2010/04/09/visual-studio-2010-f-tutorial-projekts.aspx</link><pubDate>Fri, 09 Apr 2010 19:37:32 GMT</pubDate><guid isPermaLink="false">245d81fd-b543-41d7-a051-d8603c6e9e31:12958</guid><dc:creator>andrejs.mamontovs</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;font size="3" face="cali"&gt;Sveicināti,&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="cali"&gt;Lai veicinātu ātrāku F# apguvi, jaunās &lt;em&gt;Visual Studio 2010 &lt;/em&gt;ietvaros izveidots jauns projekts ar nosaukumu - &lt;em&gt;F# Tutorial (attēls 1.)&lt;/em&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="cali"&gt;&lt;a href="http://www.dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/am/VS2010FSharpNewProject_5F00_73F1C83A.png" rel="lightbox"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="VS2010FSharpNewProject" border="0" alt="VS2010FSharpNewProject" src="http://www.dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/am/VS2010FSharpNewProject_5F00_thumb_5F00_1ABFDE7B.png" width="644" height="446" /&gt;&lt;/a&gt; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="cali"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="cali"&gt;Pēc pogas OK nospiešanas, tiek uzģenerēts jauns projekts, kas satur vienu failu “&lt;em&gt;Tutorial.fs”. &lt;/em&gt;Tanī atradīsies piemēru ar svarīgākām F# valodas konstrukcijām &lt;em&gt;(attēls 2.)&lt;/em&gt;.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="cali"&gt;&lt;a href="http://www.dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/am/VS2010FSharpProject_5F00_13A0A203.png" rel="lightbox"&gt;&lt;img style="border-bottom:0px;border-left:0px;display:inline;border-top:0px;border-right:0px;" title="VS2010FSharpProject" border="0" alt="VS2010FSharpProject" src="http://www.dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/am/VS2010FSharpProject_5F00_thumb_5F00_3A6EB843.png" width="644" height="459" /&gt;&lt;/a&gt; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="cali"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="cali"&gt;Tādā veidā, maksimāli ātri izveidojās pirmais praktiskais iespaids par valodas iespējām.&lt;/font&gt;&lt;font size="3"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;Cerams ka noderēs!&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnet.lv/aggbug.aspx?PostID=12958" width="1" height="1"&gt;</description><category domain="http://dotnet.lv/blogs/am/archive/tags/F_2300_/default.aspx">F#</category><category domain="http://dotnet.lv/blogs/am/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category></item><item><title>F# vērtības piešķiršana vairākiem mainīgiem</title><link>http://dotnet.lv/blogs/am/archive/2010/04/09/f-v-rt-bas-pie-ir-ana-vair-k-m-main-g-m.aspx</link><pubDate>Fri, 09 Apr 2010 12:40:19 GMT</pubDate><guid isPermaLink="false">245d81fd-b543-41d7-a051-d8603c6e9e31:12953</guid><dc:creator>andrejs.mamontovs</dc:creator><slash:comments>4</slash:comments><description>&lt;p&gt;&lt;font size="3" face="ca"&gt;Sveicināti,&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="ca"&gt;Soli pa solim pievienojos funkcionālās programmēšanas piekritējiem. Šoreiz par ērtu veidu, kādā piešķirt vērtības vairākām mainīgiem.&lt;/font&gt;&lt;/p&gt;  &lt;pre class="code"&gt;&lt;font size="3" face="ca"&gt;&lt;span style="color:#d6d694;"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/pre&gt;

&lt;pre class="code"&gt;&lt;font size="3"&gt;&lt;font face="ca"&gt;&lt;span style="color:#d6d694;"&gt;let &lt;/span&gt;&lt;span style="color:#e8e8e8;"&gt;FirstName&lt;/span&gt;&lt;span style="color:#a79a86;"&gt;, &lt;/span&gt;&lt;span style="color:#e8e8e8;"&gt;LastName&lt;/span&gt;&lt;span style="color:#a79a86;"&gt;, &lt;/span&gt;&lt;span style="color:#e8e8e8;"&gt;Age &lt;/span&gt;&lt;span style="color:#80ff00;"&gt;= &lt;/span&gt;&lt;span style="color:#44b1e3;"&gt;&amp;quot;Andrejs&amp;quot;&lt;/span&gt;&lt;span style="color:#a79a86;"&gt;, &lt;/span&gt;&lt;span style="color:#44b1e3;"&gt;&amp;quot;Mamontovs&amp;quot;&lt;/span&gt;&lt;span style="color:#a79a86;"&gt;, &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color:cyan;"&gt;&lt;font size="3" face="ca"&gt;29
&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;&lt;font size="3" face="ca"&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3" face="ca"&gt;Šinī piemēra definējam 3x mainīgās &lt;em&gt;FirstName, LastName, Age&lt;/em&gt; un tādā pat secībā pēc vienādojumu zīmes tiek piešķirtas vērtības. F# gadījumā valoda pēc koda veic tipa piemeklēšanu. &lt;em&gt;FirstName, LastName&lt;/em&gt; mainīgie ir ar tipu &lt;em&gt;string, &lt;/em&gt;un mainīgais &lt;em&gt;Age&lt;/em&gt; ar tipu &lt;em&gt;int&lt;/em&gt;. &lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3" face="ca"&gt;Var definēt arī ar tipa precizējumu.&lt;/font&gt;&lt;/p&gt;

&lt;pre class="code"&gt;&lt;font size="3"&gt;&lt;font face="ca"&gt;&lt;span style="color:#d6d694;"&gt;let &lt;/span&gt;&lt;span style="color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="color:#e8e8e8;"&gt;FirstName&lt;/span&gt;&lt;span style="color:#80ff00;"&gt;:&lt;/span&gt;&lt;span style="color:#e8e8e8;"&gt;string&lt;/span&gt;&lt;span style="color:#a79a86;"&gt;), (&lt;/span&gt;&lt;span style="color:#e8e8e8;"&gt;LastName&lt;/span&gt;&lt;span style="color:#80ff00;"&gt;:&lt;/span&gt;&lt;span style="color:#e8e8e8;"&gt;string&lt;/span&gt;&lt;span style="color:#a79a86;"&gt;), (&lt;/span&gt;&lt;span style="color:#e8e8e8;"&gt;Age&lt;/span&gt;&lt;span style="color:#80ff00;"&gt;:&lt;/span&gt;&lt;span style="color:#e8e8e8;"&gt;int&lt;/span&gt;&lt;span style="color:#a79a86;"&gt;) &lt;/span&gt;&lt;span style="color:#80ff00;"&gt;= &lt;/span&gt;&lt;span style="color:#44b1e3;"&gt;&amp;quot;Andrejs&amp;quot;&lt;/span&gt;&lt;span style="color:#a79a86;"&gt;, &lt;/span&gt;&lt;span style="color:#44b1e3;"&gt;&amp;quot;Mamontovs&amp;quot;&lt;/span&gt;&lt;span style="color:#a79a86;"&gt;, &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color:cyan;"&gt;&lt;font size="3" face="ca"&gt;29
&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;&lt;span style="color:cyan;"&gt;&lt;font size="3" face="ca"&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3" face="ca"&gt;Cerams ka noderēs!&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3" face="ca"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnet.lv/aggbug.aspx?PostID=12953" width="1" height="1"&gt;</description><category domain="http://dotnet.lv/blogs/am/archive/tags/Generic/default.aspx">Generic</category><category domain="http://dotnet.lv/blogs/am/archive/tags/Patterns/default.aspx">Patterns</category><category domain="http://dotnet.lv/blogs/am/archive/tags/F_2300_/default.aspx">F#</category></item><item><title>DTC, transakcijas un logging</title><link>http://dotnet.lv/blogs/vi/archive/2010/04/03/dtc-transakcijas-un-logging.aspx</link><pubDate>Sat, 03 Apr 2010 14:33:00 GMT</pubDate><guid isPermaLink="false">245d81fd-b543-41d7-a051-d8603c6e9e31:12831</guid><dc:creator>valdis.iljuconoks</dc:creator><slash:comments>4</slash:comments><description>&lt;div id="post_content"&gt;
&lt;p&gt;&amp;Scaron;odien saskāros ar diezgan interesantu problēmu, kuras risinājumam veltīju apmēram agra rīta 4 stundas :)&lt;/p&gt;
&lt;p&gt;Neliels historical background izklāsts par problēmu domēnu.&lt;/p&gt;
&lt;p&gt;Veidoju sistēmu, kura izmanto WCF un MQ, lai savā starpā veidotu reliable komunikācijas starp vairākām sistēmas komponentēm, kuras atrodas uz dažādiem serveriem. Kopējais raksts par &lt;i&gt;reliable communication&lt;/i&gt; .Net sistēmās vēl top, bet &amp;scaron;oreiz diezgan interesants stāsts par vienu no aspektiem ar ko saskāros veidojot &amp;scaron;o sistēmu.&lt;/p&gt;
&lt;p&gt;Situācija ir sekojo&amp;scaron;a:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Viena no sistēmas komponentēm nosūta ziņojumu rindā izmantojot NetMsmqBinding komponenti. &lt;/li&gt;
&lt;li&gt;Otra sistēmas komponente no tās pa&amp;scaron;as rindas nolasa ziņojumus izmantojot to pa&amp;scaron;u WCF komponenti. &lt;/li&gt;
&lt;li&gt;Rinda ir transakcionāla, t.i., sūtī&amp;scaron;ana un nolasī&amp;scaron;ana rindā notiek transakcijā. &lt;/li&gt;
&lt;li&gt;Ziņojuma nolasī&amp;scaron;anas laikā tiek izmantots arī SQL serveris. &lt;/li&gt;
&lt;li&gt;Tiklīdz tiek izmantots kāds cits transakcijas piegādātājs, tā nolasī&amp;scaron;anas transakcija automātiski tiek deleģēta DTC komponentei, kas atbild par dažāda rakstura sadalīto transakciju savstarpējo koordinē&amp;scaron;anu. &lt;/li&gt;
&lt;li&gt;Ziņojuma nolasī&amp;scaron;anas laikā notiek arī sistēmas aktivitātes logging, kas žurnalizē visu, kas notiek tajā momentā. &lt;/li&gt;
&lt;li&gt;Rinda iztransakcionāla un nolasī&amp;scaron;anas operācijas failure gadījumā kopējā transakcija tiek rollback&amp;rsquo;ota. &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Pēdējais punkts arī ir interesantākais &amp;scaron;ajā scenārijā. Common practice ir tāds, ka vairums vienas un tās pa&amp;scaron;as sistēmas komponentes saņem vienu un to pa&amp;scaron;u Sql savienojumu darbam ar datubāzi. Par cik žurnalizē&amp;scaron;ana notiek ar tā pa&amp;scaron;a Sql savienojuma starpniecību, tad problēma rodas apstāklī, kad ziņojuma nolasī&amp;scaron;ana no rindas nav sekmīga gan MQ, gan SQL transkacijas tiek rollback&amp;rsquo;otas, tas nozīmē, ka arī logging statementi tiek rollback&amp;rsquo;oti, kas savukārt rezultējas situācijā, ka pēc nesekmīgas ziņojuma apstrādes Log tabula ir tuk&amp;scaron;a :)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Pēc neilgas (patiesībā diezgan ilgas meklē&amp;scaron;anas, jo vairums laika pavadīju meklējot nepareizā virzienā) research, uzgāju SQL Connection String interesantu īpa&amp;scaron;ību &amp;ndash; &lt;span style="font-family:Courier New;"&gt;Enlist&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Citāts no dokumentācijas:&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:small;"&gt;&amp;ldquo;&lt;/span&gt;&lt;i&gt;true indicates that the SQL Server connection pooler automatically enlists the connection in the creation thread&amp;#39;s current transaction context.&lt;/i&gt;&lt;span style="font-size:small;"&gt;&amp;rdquo;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:x-small;"&gt;Lai liktu lietā &amp;scaron;o iespēju, diemžēl ir jāveido jauns savienojums ar SQL serveri, kura parametros &lt;span style="font-family:Courier New;"&gt;Enlist&lt;/span&gt; īpa&amp;scaron;ība ir norādīta ar vērtību &amp;lsquo;false&amp;rsquo; (&lt;span style="font-family:Courier New;"&gt;Enlist=false;&lt;/span&gt;).&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:x-small;"&gt;Un vispār no pieredzes varu teikt, ka parasti logging datu bāzes savienojumu izdalu no kopējā savienojuma klāsta, par cik tas dod iespēju veidot žurnalizē&amp;scaron;anu arī citā datu bāzē atvieglojot operacionālās datubāzes noslodzi un izmērus.&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:x-small;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span style="font-size:x-small;"&gt;Cerams, ka noderēs!&lt;/span&gt;&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnet.lv/aggbug.aspx?PostID=12831" width="1" height="1"&gt;</description><category domain="http://dotnet.lv/blogs/vi/archive/tags/Patterns+_2600_amp_3B00_+Practices/default.aspx">Patterns &amp;amp; Practices</category><category domain="http://dotnet.lv/blogs/vi/archive/tags/Other/default.aspx">Other</category><category domain="http://dotnet.lv/blogs/vi/archive/tags/Architecture/default.aspx">Architecture</category><category domain="http://dotnet.lv/blogs/vi/archive/tags/WCF/default.aspx">WCF</category></item><item><title>Reactive Extensions prezentācija</title><link>http://dotnet.lv/blogs/am/archive/2010/03/31/reactive-extensions-prezent-cija.aspx</link><pubDate>Wed, 31 Mar 2010 21:47:29 GMT</pubDate><guid isPermaLink="false">245d81fd-b543-41d7-a051-d8603c6e9e31:12679</guid><dc:creator>andrejs.mamontovs</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;&lt;font size="3" face="cal"&gt;Sveicināti,&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="cal"&gt;Šoreiz iemūžināšu saiti uz Reactive Extensions precentāciju(&lt;/font&gt;&lt;a title="http://live.visitmix.com/MIX10/Sessions/FTL01" href="http://live.visitmix.com/MIX10/Sessions/FTL01"&gt;&lt;font size="3" face="cal"&gt;http://live.visitmix.com/MIX10/Sessions/FTL01&lt;/font&gt;&lt;/a&gt;&lt;font size="3" face="cal"&gt;), kuru pasniedz &lt;a href="http://en.wikipedia.org/wiki/Erik_Meijer_(computer_scientist)"&gt;Erik Meijer&lt;/a&gt;. Šī konkrētā versija tika pasniegta &lt;a href="http://live.visitmix.com/"&gt;MIX 2010&lt;/a&gt; ietvaros. Es personīgi šo te prezentāciju apmeklēju &lt;a href="http://www.mvpsummit2010.com/"&gt;Microsoft Global Summit 2010&lt;/a&gt; laikā. Raksturošu to tikai ar vienu vārdu – neaizmirstami. Pateikšu vairāk - Ēriks ir viens no tiem cilvēkiem, kas patiešām ir uzticīgs savai profesijai, un spēj aizraut visus klātesošos ar tām idejām, pie kurām darbojās viņa komanda.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;Cerams noderēs!&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnet.lv/aggbug.aspx?PostID=12679" width="1" height="1"&gt;</description><category domain="http://dotnet.lv/blogs/am/archive/tags/OOP/default.aspx">OOP</category><category domain="http://dotnet.lv/blogs/am/archive/tags/Patterns/default.aspx">Patterns</category><category domain="http://dotnet.lv/blogs/am/archive/tags/Arhitekt_6B01_ra/default.aspx">Arhitektūra</category><category domain="http://dotnet.lv/blogs/am/archive/tags/JavaScript/default.aspx">JavaScript</category><category domain="http://dotnet.lv/blogs/am/archive/tags/Rx/default.aspx">Rx</category></item><item><title>jQuery aktuālās versijas izmantošana</title><link>http://dotnet.lv/blogs/am/archive/2010/03/30/jquery-aktu-l-s-versijas-izmanto-ana.aspx</link><pubDate>Tue, 30 Mar 2010 19:53:23 GMT</pubDate><guid isPermaLink="false">245d81fd-b543-41d7-a051-d8603c6e9e31:12603</guid><dc:creator>andrejs.mamontovs</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;&lt;font size="3" face="ca"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="ca"&gt;Sveicināti,&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="ca"&gt;Šoreiz vēlos iemūžināt vienu noderīgu Html koda fragmentu, lai izstrādes laikā vienmēr tiktu lietota uz šo te brīdi aktuālā &lt;/font&gt;&lt;font size="3" face="ca"&gt;&lt;a href="http://www.jquery.com/"&gt;&lt;em&gt;jQuery&lt;/em&gt;&lt;/a&gt; versija. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="ca"&gt;&lt;/font&gt;&lt;/p&gt;  &lt;pre class="code"&gt;&lt;font size="3"&gt;&lt;font face="ca"&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;script &lt;/span&gt;&lt;span style="background:#10100d;color:#009b00;"&gt;type&lt;/span&gt;&lt;span style="background:#10100d;color:#a1b070;"&gt;=&lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;quot;text/javascript&amp;quot; &lt;/span&gt;&lt;span style="background:#10100d;color:#009b00;"&gt;src&lt;/span&gt;&lt;span style="background:#10100d;color:#a1b070;"&gt;=&lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;quot;http://code.jquery.com/jquery-latest.js&amp;quot;&lt;/span&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;script&lt;/span&gt;&lt;span style="background:#10100d;color:#c3c567;"&gt;&amp;gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;

&lt;p&gt;&lt;font size="3" face="ca"&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3" face="ca"&gt;Protams tas neatbrīvo no nepieciešamības produkcijas versijā tomēr pārslēgties uz lokālo faila versiju.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3"&gt;Cerams noderēs!&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3" face="ca"&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3" face="ca"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnet.lv/aggbug.aspx?PostID=12603" width="1" height="1"&gt;</description><category domain="http://dotnet.lv/blogs/am/archive/tags/Patterns/default.aspx">Patterns</category><category domain="http://dotnet.lv/blogs/am/archive/tags/Arhitekt_6B01_ra/default.aspx">Arhitektūra</category><category domain="http://dotnet.lv/blogs/am/archive/tags/jQuery/default.aspx">jQuery</category><category domain="http://dotnet.lv/blogs/am/archive/tags/JavaScript/default.aspx">JavaScript</category></item><item><title>FSharp – mērvienību atbalsts</title><link>http://dotnet.lv/blogs/vi/archive/2010/03/19/fsharp-m-rvien-bu-atbalsts.aspx</link><pubDate>Fri, 19 Mar 2010 16:13:53 GMT</pubDate><guid isPermaLink="false">245d81fd-b543-41d7-a051-d8603c6e9e31:11852</guid><dc:creator>valdis.iljuconoks</dc:creator><slash:comments>1</slash:comments><description>&lt;div id="post_content"&gt;&lt;p&gt;Pētot nedaudz vairāk F# valodas konstrukcijas uzdūros interesantai lietai, kas saucās – SI sistēmas mērvienību atbalsts uzreiz tieši jau pašā valodā. Šo mērvienību atbalsts tiek pasniegts tādā veidā, ka kompilācijas laikā tiek pārbaudītas dažādas formulas un izteiksmes un pēc labākās gribas FSharp kompilators mēģinās konkrēto izteiksmi pārbaudīt. Šīs pārbaudes notiek tikai kompilācijas laikā un nekādu ātrdarbības ietekmi uz izpildes laiku neatstāj.&lt;/p&gt;  &lt;p&gt;Tātad, lai kodā sāktu lietot mērvienības ir jādefinē vēlamais tips un jānorāda tam, ka tas ir mērvienības tips. Izdarāms tas ir ar &lt;font face="Courier New"&gt;Measure&lt;/font&gt; atribūta palīdzību.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;div style="border-bottom:1px dashed;border-left:1px dashed;padding-bottom:3px;padding-left:3px;padding-right:3px;font-family:courier new;background:#efefef;color:black;font-size:10pt;border-top:1px dashed;border-right:1px dashed;padding-top:3px;"&gt;   &lt;p style="margin:0px;"&gt;&lt;span style="color:green;"&gt;// type to represent weight (kilo)&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;[&amp;lt;Measure&amp;gt;] &lt;span style="color:blue;"&gt;type&lt;/span&gt; kg&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:green;"&gt;// type to represent distance (meter)&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;[&amp;lt;Measure&amp;gt;] &lt;span style="color:blue;"&gt;type&lt;/span&gt; m&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:green;"&gt;// type to represent time (second)&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;[&amp;lt;Measure&amp;gt;] &lt;span style="color:blue;"&gt;type&lt;/span&gt; s&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Pēc tam ir iespējams veidot jau konkrētās mērvienības instances datus. Piemēram, varam izveidot attāluma un laika mērvienības vērtības:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;div style="border-bottom:1px dashed;border-left:1px dashed;padding-bottom:3px;padding-left:3px;padding-right:3px;font-family:courier new;background:#efefef;color:black;font-size:10pt;border-top:1px dashed;border-right:1px dashed;padding-top:3px;"&gt;   &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;let&lt;/span&gt; distance = 100.0&amp;lt;m&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;let&lt;/span&gt; time = 7.8&amp;lt;s&amp;gt;&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Pēc tipu evaluācijas konsoles logs attēlo jaunos izveidotos tipus:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;div style="border-bottom:1px dashed;border-left:1px dashed;padding-bottom:3px;padding-left:3px;padding-right:3px;font-family:courier new;background:#efefef;color:black;font-size:10pt;border-top:1px dashed;border-right:1px dashed;padding-top:3px;"&gt;   &lt;p&gt;&amp;gt; &lt;/p&gt;    &lt;p&gt;[&amp;lt;Measure&amp;gt;]      &lt;br /&gt;type kg       &lt;br /&gt;[&amp;lt;Measure&amp;gt;]       &lt;br /&gt;type m       &lt;br /&gt;[&amp;lt;Measure&amp;gt;]       &lt;br /&gt;type s       &lt;br /&gt;val distance : float&amp;lt;m&amp;gt; = 100.0       &lt;br /&gt;val time : float&amp;lt;s&amp;gt; = 7.8&amp;#160; &lt;/p&gt; &lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Kad ir izveidoti gan tipi, gan arī mērvienības vērtības kodā var sākt rakstīt formulas un algoritmus, kas izmanto šīs mērvienības. Piemēram varam aprēķināt ātrumu kādā jābrauc kādai super-puper opel sporta astrīdai, lai nobrauktu 100m 7.8 sekundēs. Izklausās jau nereāli, bet testa piemēram būs pilnīgi pietiekoši.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;div style="border-bottom:1px dashed;border-left:1px dashed;padding-bottom:3px;padding-left:3px;padding-right:3px;font-family:courier new;background:#efefef;color:black;font-size:10pt;border-top:1px dashed;border-right:1px dashed;padding-top:3px;"&gt;   &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;let&lt;/span&gt; speed = (distance / time)&lt;/p&gt;    &lt;p&gt;&amp;gt; &lt;/p&gt;    &lt;p&gt;val speed : float&amp;lt;m/s&amp;gt; = 12.82051282&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Kompilācijas laikā, piemēram, tiek arī pārbaudīts vai laiku un attālumu maz var saskaitīt.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;img style="border-right-width:0px;display:block;float:none;border-top-width:0px;border-bottom-width:0px;margin-left:auto;border-left-width:0px;margin-right:auto;" title="" border="0" alt="" src="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/error_5F00_2DC4D291.png" width="579" height="80" /&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Lai pārkonvertētu to daudz saprotamākā izteiksmē, jāatceras ir augstākā matemātika no 2. klasītes un jādefinē ir vairākas konvertēšanas konstantes:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;div style="border-bottom:1px dashed;border-left:1px dashed;padding-bottom:3px;padding-left:3px;padding-right:3px;font-family:courier new;background:#efefef;color:black;font-size:10pt;border-top:1px dashed;border-right:1px dashed;padding-top:3px;"&gt;   &lt;p style="margin:0px;"&gt;&lt;span style="color:green;"&gt;// type to represent distance (kilometer)&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;[&amp;lt;Measure&amp;gt;] &lt;span style="color:blue;"&gt;type&lt;/span&gt; km&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:green;"&gt;// type to represent distance (hour)&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;[&amp;lt;Measure&amp;gt;] &lt;span style="color:blue;"&gt;type&lt;/span&gt; h&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;let&lt;/span&gt; kmPerMeter = 0.001&amp;lt;km/m&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;let&lt;/span&gt; secPerHour = 3600.0&amp;lt;s/h&amp;gt;&lt;/p&gt;    &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Pēc kad ir nodefinētas konstantes varam veikt konvertēšanu no metriem sekundē uz kilometriem stundā:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;div style="border-bottom:1px dashed;border-left:1px dashed;padding-bottom:3px;padding-left:3px;padding-right:3px;font-family:courier new;background:#efefef;color:black;font-size:10pt;border-top:1px dashed;border-right:1px dashed;padding-top:3px;"&gt;   &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;let&lt;/span&gt; speedKph =&amp;#160; speed * kmPerMeter * secPerHour&lt;/p&gt;    &lt;p&gt;&amp;gt; &lt;/p&gt;    &lt;p&gt;val speedKph : float&amp;lt;km/h&amp;gt; = 46.15384615&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Protams kompilators nenoķers programmētāja loģiskās kļūdas, bet ja tiek sajaukta kāda matemātiskā operācija (piemēram, reizināšanas vietā tiek dalīts), noteikti rezultāts būs ar jocīgu datu tipu:&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;div style="border-bottom:1px dashed;border-left:1px dashed;padding-bottom:3px;padding-left:3px;padding-right:3px;font-family:courier new;background:#efefef;color:black;font-size:10pt;border-top:1px dashed;border-right:1px dashed;padding-top:3px;"&gt;   &lt;p&gt;&amp;gt; speed * kmPerMeter / secPerHour;;      &lt;br /&gt;val it : float&amp;lt;h km/s ^ 2&amp;gt; = 3.561253561e-06&lt;/p&gt; &lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Kā redzams, tad F# valodas iebūvētais atbalsts mērvienībām ir diezgan noderīgs gadījumos, kad tiešām ir jāveido formulas un jādod iespēja pārslēgties starp dažādām mērvienības sistēmām.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Cerams, ka noderēs!&lt;/p&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnet.lv/aggbug.aspx?PostID=11852" width="1" height="1"&gt;</description><category domain="http://dotnet.lv/blogs/vi/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><category domain="http://dotnet.lv/blogs/vi/archive/tags/F_2300_/default.aspx">F#</category></item><item><title>Augstas kvalitātes(HD) video internetā 1.daļa</title><link>http://dotnet.lv/blogs/jb/archive/2010/03/19/augstas-kvalit-tes-hd-video-internet-1-da-a.aspx</link><pubDate>Thu, 18 Mar 2010 23:16:00 GMT</pubDate><guid isPermaLink="false">245d81fd-b543-41d7-a051-d8603c6e9e31:11801</guid><dc:creator>janis.bicans</dc:creator><slash:comments>1</slash:comments><description>&lt;p&gt;Sveiciens!&lt;/p&gt;
&lt;p&gt;&amp;Scaron;ajā rakstu sērijā apskatī&amp;scaron;u Smooth Streaming tehnoloģiju un dalī&amp;scaron;os savā pieredzē tās izmanto&amp;scaron;anā. Galvenais uzsvars tiks likts uz &amp;scaron;is tehnoloģijas pielieto&amp;scaron;anas iespējām un lietotāja pieredzei izmantojot ierakstītu materiālu. Ar &amp;scaron;o tehnoloģiju ikdienā saskaros veidojot video lekcijas vienā no universitātes kursiem, tādēļ mēģinā&amp;scaron;u ilustrēt savu pieredzi. Strādāt sanāk ar video materiālu, kas ierakstīts izmantojot Sony&amp;nbsp; HDR-SR12 video kameru maksimālajā kvalitātē.&lt;/p&gt;
&lt;p&gt;Vērojot sesijas no &lt;a href="http://live.visitmix.com/Videos"&gt;MIX 2010&lt;/a&gt; konferences diezgan populāra tēma ir augstas kvalitātes video straumē&amp;scaron;ana un ar to saistītie izaicinājumi un problēmas. MS &amp;scaron;o problēmu risina piedāvājot Smooth Streaming, kas ir IIS Media Services papla&amp;scaron;inājums. Pieejams IIS 7.X versijās. Piedāvāju pirms tālākas &amp;scaron;ī raksta lasī&amp;scaron;anas aplūkot kā Smooth Streaming darbojas:&amp;nbsp; &lt;a href="http://www.iis.net/media/experiencesmoothstreaming"&gt;Piemērs no IIS.net 720&lt;/a&gt; un &lt;a href="http://www.iis.net/media/experiencesmoothstreaming1080p"&gt;Piemērs no IIS.net 1080&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;Tā darbības princips ir salīdzino&amp;scaron;i vienkār&amp;scaron;s. Tas analizē video pakotņu ceļu no servera līdz klientam un vajadzības gadījumā veic korekcijas, lai nodro&amp;scaron;inātu nepārtrauktu video translāciju. Ir pieejami 2 Smooth Streaming&amp;nbsp; izmanto&amp;scaron;anas scenāriji, 1.translēt ierakstītu materiālu un 2. translēt tie&amp;scaron;raidi. Tie&amp;scaron;raides translācijas izmanto&amp;scaron;anai vajag speciālu aprīkojumu, kas veic video signāla pārveido&amp;scaron;anu(piemēram, &lt;a href="http://www.inlethd.com/?q=products/spinnaker"&gt;aparatūra&lt;/a&gt;, &lt;a href="http://live.visitmix.com/MIX10/Sessions/EX32"&gt;MIX 10 Smooth Streaming Live&lt;/a&gt; ). &lt;/p&gt;
&lt;p&gt;Vienkār&amp;scaron;ota Smooth Streaming darbības shēma:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jb/image_5F00_78225AC0.png"&gt;&lt;img height="509" width="678" src="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jb/image_5F00_thumb_5F00_579B1B0E.png" alt="image" border="0" title="image" style="border-bottom:0px;border-left:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Tātad laba interneta ātruma gadījumā Jūs saņemsiet Full HD video, savukārt slikta gadījumā SD video, kas tuvojas PAL un NTSC atbalstītajām iz&amp;scaron;ķirtpējām. &lt;/p&gt;
&lt;p&gt;&lt;a href="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jb/image_5F00_7E69314E.png"&gt;&lt;img height="470" width="729" src="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jb/image_5F00_thumb_5F00_5E4E2491.png" alt="image" border="0" title="image" style="border-bottom:0px;border-left:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Reāli skatoties Smooth streaming video ekrānā redzamā video ekrāna izmēri nemainās, tikai mainās iz&amp;scaron;ķirtspēja(mainās attēla graudainība). Lai ilustrētu &amp;scaron;o situāciju izveidoju 2&amp;nbsp; attēlus izmantojot 19 collu monitoru ar&amp;nbsp; 1280*1024 iz&amp;scaron;ķirtspēju. &lt;/p&gt;
&lt;p&gt;720p maksimālā kvalitāte:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jb/image_5F00_53249A47.png"&gt;&lt;img height="587" width="733" src="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jb/image_5F00_thumb_5F00_1E180B17.png" alt="image" border="0" title="image" style="border-bottom:0px;border-left:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;720p zemākā kvalitāte:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jb/image_5F00_72D3740F.png"&gt;&lt;img height="595" width="741" src="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/jb/image_5F00_thumb_5F00_56C2B524.png" alt="image" border="0" title="image" style="border-bottom:0px;border-left:0px;display:block;float:none;margin-left:auto;border-top:0px;margin-right:auto;border-right:0px;" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Attēlu at&amp;scaron;ķirība ir pamatīga! &lt;/p&gt;
&lt;p&gt;Skatoties Smooth Streaming video ir patīkami, ka praktiski nav tik ierastās buferizācijas(atkarīgs no interneta ātruma un servera noslodzes) un atbildes laiks uz pārlek&amp;scaron;anu no vienas vietas video uz citu ir minimāla. &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Nākamajā rakstā apskatī&amp;scaron;u klienta izstrādes SDK.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Turpinājums sekos&amp;hellip;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnet.lv/aggbug.aspx?PostID=11801" width="1" height="1"&gt;</description><category domain="http://dotnet.lv/blogs/jb/archive/tags/Microsoft+Expression+Encoder/default.aspx">Microsoft Expression Encoder</category><category domain="http://dotnet.lv/blogs/jb/archive/tags/IIS/default.aspx">IIS</category><category domain="http://dotnet.lv/blogs/jb/archive/tags/Silverlight/default.aspx">Silverlight</category></item><item><title>Izstrādātāja ikdienas (Objekta izveide pēc pieprasījuma, optimizēšana C#)</title><link>http://dotnet.lv/blogs/am/archive/2010/03/17/izstr-d-t-ja-ikdienas-objekta-izveide-p-c-piepras-juma.aspx</link><pubDate>Wed, 17 Mar 2010 22:33:30 GMT</pubDate><guid isPermaLink="false">245d81fd-b543-41d7-a051-d8603c6e9e31:11743</guid><dc:creator>andrejs.mamontovs</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;font size="3" face="ca"&gt;Sveiki,&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="ca"&gt;Šoreiz mazliet par koda optimizāciju, tiem no jums, kas strādā pie relatīvi lieliem projektiem labi atpazīs zemāk redzamo kodu:&lt;/font&gt;&lt;/p&gt;  &lt;pre class="code"&gt;&lt;font size="3"&gt;&lt;font face="ca"&gt;    &lt;span style="color:#d6d694;"&gt;public class &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color:#009b00;"&gt;&lt;font size="3" face="ca"&gt;Controller
    &lt;/font&gt;&lt;/span&gt;&lt;font size="3"&gt;&lt;font face="ca"&gt;&lt;span style="color:#a79a86;"&gt;{
    }

    &lt;/span&gt;&lt;span style="color:#d6d694;"&gt;public class &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color:#009b00;"&gt;&lt;font size="3" face="ca"&gt;View
    &lt;/font&gt;&lt;/span&gt;&lt;font size="3"&gt;&lt;font face="ca"&gt;&lt;span style="color:#a79a86;"&gt;{
        &lt;/span&gt;&lt;span style="color:#d6d694;"&gt;private &lt;/span&gt;&lt;span style="color:#009b00;"&gt;Controller &lt;/span&gt;&lt;span style="color:#e8e8e8;"&gt;controller&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="ca"&gt;&lt;span style="color:#a79a86;"&gt;;

        &lt;/span&gt;&lt;span style="color:#d6d694;"&gt;public &lt;/span&gt;&lt;span style="color:#009b00;"&gt;Controller &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color:#e8e8e8;"&gt;&lt;font size="3" face="ca"&gt;Controller
        &lt;/font&gt;&lt;/span&gt;&lt;span style="color:#a79a86;"&gt;&lt;font size="3" face="ca"&gt;{
            &lt;/font&gt;&lt;/span&gt;&lt;span style="color:#d6d694;"&gt;&lt;font size="3" face="ca"&gt;get
            &lt;/font&gt;&lt;/span&gt;&lt;font size="3"&gt;&lt;font face="ca"&gt;&lt;span style="color:#a79a86;"&gt;{
                &lt;/span&gt;&lt;span style="color:#d6d694;"&gt;if &lt;/span&gt;&lt;span style="color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="color:#e8e8e8;"&gt;controller &lt;/span&gt;&lt;span style="color:#80ff00;"&gt;== &lt;/span&gt;&lt;span style="color:#d6d694;"&gt;null&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="ca"&gt;&lt;span style="color:#a79a86;"&gt;)
                {
                    &lt;/span&gt;&lt;span style="color:#e8e8e8;"&gt;controller &lt;/span&gt;&lt;span style="color:#80ff00;"&gt;= &lt;/span&gt;&lt;span style="color:#d6d694;"&gt;new &lt;/span&gt;&lt;span style="color:#009b00;"&gt;Controller&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="ca"&gt;&lt;span style="color:#a79a86;"&gt;();
                }

                &lt;/span&gt;&lt;span style="color:#d6d694;"&gt;return &lt;/span&gt;&lt;span style="color:#e8e8e8;"&gt;controller&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color:#a79a86;"&gt;&lt;font size="3" face="ca"&gt;;
            }
        }

    }
&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;&lt;font size="3" face="ca"&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3" face="ca"&gt;Paskaidrošu, piemērā ir divas klases Controller un View. Objektam View ir norāde uz objektu Controller. Controller objekts tiek veidot brīdī, kad tas tiek reāli izmantots. Kā redzam, tad ir visai daudz koda, lai veiktu šo te inicializāciju. Daži no jums neticēs, bet arī tik īsā kodā cilvēki pamanās pielaist kļūdas. Viens no variantiem, kā šo kodu mazliet pārveidot, uzrakstot pārbaudi vienā rindā.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3" face="ca"&gt;&lt;/font&gt;&lt;/p&gt;

&lt;pre class="code"&gt;&lt;font size="3"&gt;&lt;font face="ca"&gt;    &lt;span style="color:#d6d694;"&gt;public class &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color:#009b00;"&gt;&lt;font size="3" face="ca"&gt;Controller
    &lt;/font&gt;&lt;/span&gt;&lt;font size="3"&gt;&lt;font face="ca"&gt;&lt;span style="color:#a79a86;"&gt;{
    }

    &lt;/span&gt;&lt;span style="color:#d6d694;"&gt;public class &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color:#009b00;"&gt;&lt;font size="3" face="ca"&gt;View
    &lt;/font&gt;&lt;/span&gt;&lt;font size="3"&gt;&lt;font face="ca"&gt;&lt;span style="color:#a79a86;"&gt;{
        &lt;/span&gt;&lt;span style="color:#d6d694;"&gt;private &lt;/span&gt;&lt;span style="color:#009b00;"&gt;Controller &lt;/span&gt;&lt;span style="color:#e8e8e8;"&gt;controller&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="ca"&gt;&lt;span style="color:#a79a86;"&gt;;

        &lt;/span&gt;&lt;span style="color:#d6d694;"&gt;public &lt;/span&gt;&lt;span style="color:#009b00;"&gt;Controller &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color:#e8e8e8;"&gt;&lt;font size="3" face="ca"&gt;Controller
        &lt;/font&gt;&lt;/span&gt;&lt;span style="color:#a79a86;"&gt;&lt;font size="3" face="ca"&gt;{
            &lt;/font&gt;&lt;/span&gt;&lt;span style="color:#d6d694;"&gt;&lt;font size="3" face="ca"&gt;get
            &lt;/font&gt;&lt;/span&gt;&lt;font size="3"&gt;&lt;font face="ca"&gt;&lt;span style="color:#a79a86;"&gt;{
                &lt;/span&gt;&lt;span style="color:#d6d694;"&gt;return &lt;/span&gt;&lt;span style="color:#e8e8e8;"&gt;controller &lt;/span&gt;&lt;span style="color:#80ff00;"&gt;?? &lt;/span&gt;&lt;span style="color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="color:#e8e8e8;"&gt;controller &lt;/span&gt;&lt;span style="color:#80ff00;"&gt;= &lt;/span&gt;&lt;span style="color:#d6d694;"&gt;new &lt;/span&gt;&lt;span style="color:#009b00;"&gt;Controller&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="color:#a79a86;"&gt;&lt;font size="3" face="ca"&gt;());
            }
        }

    }&lt;/font&gt;&lt;/span&gt;&lt;span style="color:#a79a86;"&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;&lt;font size="3" face="ca"&gt;Interesanti, vai nākotnē būs pieejama kāda valodas konstrukcija, kas atvieglos šo te procesu? Jo arī šādā izpildījumā kods slēpj sevi draudus, jo netikām vaļā no globālās mainīgās controller.&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3" face="ca"&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3" face="ca"&gt;Cerams ka noderēs!&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3" face="ca"&gt;&amp;#160;&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnet.lv/aggbug.aspx?PostID=11743" width="1" height="1"&gt;</description><category domain="http://dotnet.lv/blogs/am/archive/tags/CSharp/default.aspx">CSharp</category><category domain="http://dotnet.lv/blogs/am/archive/tags/OOP/default.aspx">OOP</category><category domain="http://dotnet.lv/blogs/am/archive/tags/Patterns/default.aspx">Patterns</category></item><item><title>Izstrādātāja ikdiena, darbs ar Enum</title><link>http://dotnet.lv/blogs/am/archive/2010/03/10/izstr-d-t-ja-ikdiena-darbs-ar-enum.aspx</link><pubDate>Wed, 10 Mar 2010 21:11:10 GMT</pubDate><guid isPermaLink="false">245d81fd-b543-41d7-a051-d8603c6e9e31:11064</guid><dc:creator>andrejs.mamontovs</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;&lt;font size="3" face="cali"&gt;Labdien,&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="cali"&gt;Šoreiz iemūžināšu vienu koda gabalu, kas var būt visai noderīgs Web izstrādātājiem. Lieta tāda, ka ikdienā bieži nododam argumentus izmantojot &lt;em&gt;URL&lt;/em&gt;. Piemēram: “list.aspx?status=Enabled”. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="3" face="cali"&gt;Lapas apstrādes kodā parasti var atrasts ko līdzīgu uz šo te piemēru:&lt;/font&gt;&lt;/p&gt;  &lt;pre class="code"&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;var &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;status &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;= &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Request&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;[&lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;quot;status&amp;quot;&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;] &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;?? &lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;quot;Disabled&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;;
&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;switch&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;status&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;)
{
    &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;case &lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;quot;Enabled&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;&lt;font size="3" face="cali"&gt;:
        &lt;/font&gt;&lt;/span&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#756f51;"&gt;// Code;
        &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;break&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;;

    &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;case &lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;quot;Disabled&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;&lt;font size="3" face="cali"&gt;:
        &lt;/font&gt;&lt;/span&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#756f51;"&gt;// Code
        &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;break&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;&lt;font size="3" face="cali"&gt;;
}&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;&lt;font size="3" face="cali"&gt;Tāds īsts PHP variants. Ir visai liela varbūtība pieļaut kļūdu. Vai nav daudz OOP draudzīgāks variants? &lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3" face="cali"&gt;Šinī gadījumā var labi noderēt Enum tips. Izveidojam pārskaitījumu ar nosaukumu Status.&lt;/font&gt;&lt;/p&gt;

&lt;pre class="code"&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;&lt;font size="3" face="cali"&gt;public enum &lt;/font&gt;&lt;/span&gt;&lt;span style="background:#10100d;color:#2b91af;"&gt;&lt;font size="3" face="cali"&gt;Status
&lt;/font&gt;&lt;/span&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;{
    &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Disabled&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;&lt;font size="3" face="cali"&gt;,
    &lt;/font&gt;&lt;/span&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Enabled
&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;}&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/pre&gt;

&lt;p&gt;&lt;font size="3" face="cali"&gt;Pārveidojam jau iepriekš apskatīto kodu, lai pārveidotu tekstu par konkrētāku Enum tipu.&lt;/font&gt;&lt;/p&gt;

&lt;pre class="code"&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;var &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;status &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;= &lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#2b91af;"&gt;Status&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;)&lt;/span&gt;&lt;span style="background:#10100d;color:#009b00;"&gt;Enum&lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Parse&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(
    &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;typeof&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#2b91af;"&gt;Status&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;), &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Request&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;[&lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;quot;status&amp;quot;&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;] &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;?? &lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;quot;0&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;);

&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;switch&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;status&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;)
{
    &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;case &lt;/span&gt;&lt;span style="background:#10100d;color:#2b91af;"&gt;Status&lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Enabled&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;&lt;font size="3" face="cali"&gt;:
        &lt;/font&gt;&lt;/span&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#756f51;"&gt;// Code;
        &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;break&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;;

    &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;case &lt;/span&gt;&lt;span style="background:#10100d;color:#2b91af;"&gt;Status&lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Disabled&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;&lt;font size="3" face="cali"&gt;:
        &lt;/font&gt;&lt;/span&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#756f51;"&gt;// Code
        &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;break&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;&lt;font size="3" face="cali"&gt;;
}
&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;&lt;font size="3" face="cali"&gt;Tagad kods ir daudz kontrolējamāks, pārbaudes veicam ar pārskaitījuma vērtībām. Jāatzīmē, ka abos gadījumos, kodā vel būtu jāveic dažas papildus pārbaudes. &lt;/font&gt;&lt;font size="3" face="cali"&gt;Kas tur tāds, principā jau nav lielas atšķirības abās realizācijās. Daļēji tā arī ir. Bet gadījumā ar pārskaitījumiem, mēs šo te funkcionalitāte varam padarīt par universālāku izmantojot &lt;em&gt;Generic&lt;/em&gt; iespējas. Izveidosim jaunu palīg klasi.&lt;/font&gt;&lt;/p&gt;

&lt;pre class="code"&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;public static class &lt;/span&gt;&lt;span style="background:#10100d;color:#009b00;"&gt;Enum&lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;T&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;&lt;font size="3" face="cali"&gt;&amp;gt;
&lt;/font&gt;&lt;/span&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;{
    &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;public static &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;T Parse&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;string &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;value&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;)
    {
        &lt;/span&gt;&lt;span style="background:#10100d;color:#009b00;"&gt;Type &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;t &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;= &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;typeof &lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;T&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;);

        &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;if &lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;!&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;t&lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;IsEnum&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;)
        {
            &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;throw new &lt;/span&gt;&lt;span style="background:#10100d;color:#009b00;"&gt;ArgumentException&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(
                &lt;/span&gt;&lt;span style="background:#10100d;color:#009b00;"&gt;String&lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Format&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;quot;{0} is not an Enum&amp;quot;&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;, &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;t&lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Name&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;));
        }

        &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;string &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;s &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;= &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;value &lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;?? &lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;;

        &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;if &lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#009b00;"&gt;Enum&lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;IsDefined&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;t&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;, &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;s&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;))
        {
            &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;return &lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;T&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;) &lt;/span&gt;&lt;span style="background:#10100d;color:#009b00;"&gt;Enum&lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Parse&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;t&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;, &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;s&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;);
        }

        &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;return default&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;T&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;&lt;font size="3" face="cali"&gt;);
    }
}&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;&lt;font size="3" face="cali"&gt;Tagad mums pavērās iespēja izmantot šādu te funkcionalitāti visur, kur mēs apstrādājam argumentus. Vēlreiz pārveidojam mūsu piemēru.&lt;/font&gt;&lt;/p&gt;

&lt;pre class="code"&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;var &lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;status &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;=
    &lt;/span&gt;&lt;span style="background:#10100d;color:#009b00;"&gt;Enum&lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="background:#10100d;color:#2b91af;"&gt;Status&lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;&amp;gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Parse&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Request&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;[&lt;/span&gt;&lt;span style="background:#10100d;color:#44b1e3;"&gt;&amp;quot;status&amp;quot;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;]);

&lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;switch&lt;/span&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;(&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;status&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;)
{
    &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;case &lt;/span&gt;&lt;span style="background:#10100d;color:#2b91af;"&gt;Status&lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Enabled&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;&lt;font size="3" face="cali"&gt;:
        &lt;/font&gt;&lt;/span&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#756f51;"&gt;// Code;
        &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;break&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;;

    &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;case &lt;/span&gt;&lt;span style="background:#10100d;color:#2b91af;"&gt;Status&lt;/span&gt;&lt;span style="background:#10100d;color:#80ff00;"&gt;.&lt;/span&gt;&lt;span style="background:#10100d;color:#e8e8e8;"&gt;Disabled&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;&lt;font size="3" face="cali"&gt;:
        &lt;/font&gt;&lt;/span&gt;&lt;font size="3"&gt;&lt;font face="cali"&gt;&lt;span style="background:#10100d;color:#756f51;"&gt;// Code
        &lt;/span&gt;&lt;span style="background:#10100d;color:#d6d694;"&gt;break&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;span style="background:#10100d;color:#a79a86;"&gt;&lt;font size="3" face="cali"&gt;;
}&lt;/font&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;

&lt;p&gt;&lt;font size="3" face="cali"&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3" face="cali"&gt;Tagad kods ir maksimāli drošs lietošana. Protams pēc vajadzības klasi Enum&amp;lt;T&amp;gt; vel var papildināt ar funkcionalitāti, bet tas jau pēc vajadzības. Galvenais mans uzdevums novirzīt domāšanu pareizā virzienā:)&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;&lt;font size="3" face="cali"&gt;Cerams noderēs!&lt;/font&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnet.lv/aggbug.aspx?PostID=11064" width="1" height="1"&gt;</description><category domain="http://dotnet.lv/blogs/am/archive/tags/CSharp/default.aspx">CSharp</category><category domain="http://dotnet.lv/blogs/am/archive/tags/Generic/default.aspx">Generic</category><category domain="http://dotnet.lv/blogs/am/archive/tags/OOP/default.aspx">OOP</category><category domain="http://dotnet.lv/blogs/am/archive/tags/Patterns/default.aspx">Patterns</category><category domain="http://dotnet.lv/blogs/am/archive/tags/Arhitekt_6B01_ra/default.aspx">Arhitektūra</category></item><item><title>AppFabric beta 2</title><link>http://dotnet.lv/blogs/vi/archive/2010/03/03/appfabric-beta-2.aspx</link><pubDate>Wed, 03 Mar 2010 14:42:00 GMT</pubDate><guid isPermaLink="false">245d81fd-b543-41d7-a051-d8603c6e9e31:10645</guid><dc:creator>valdis.iljuconoks</dc:creator><slash:comments>4</slash:comments><description>&lt;div id="post_content"&gt;
&lt;p&gt;Tiem, kas nav pamanīju&amp;scaron;i, tad biju&amp;scaron;ais projekts ar koda nosaukumu &amp;ldquo;Velocity&amp;rdquo; kādu laiciņu atpakaļ ir ticis pārsaukts par &amp;ldquo;AppFabric&amp;rdquo;. Varbūt ne pats veiksmīgākais buzz-words &amp;scaron;im projektam, bet anyway galvenā ideoloģija un iespēju sets ir saglabājies un nāku&amp;scaron;as tikai klāt jaunas iespējas.&lt;/p&gt;
&lt;p&gt;Tātad vakar (2. martā) klajā tika laista beta 2 versija, kas ir bināri savietojama ar VS 10 RC būvējumu.&lt;/p&gt;
&lt;p&gt;Kopsummā var just, ka &amp;ldquo;Velocity&amp;rdquo; projekts &amp;scaron;ā vai tā &amp;ldquo;skrien&amp;rdquo; pakaļ nu jau aizbrauku&amp;scaron;ajam vilcienam :) Cerams, ka ar VS 11 versiju, ke&amp;scaron;atmiņas un scalability risinājums tiks iekļauts pilnvērtīgi jau platformā un tiks pakļauts vienotai laidienu politikai, kā tas pamazām notiek ar visām vairāk vai mazāk svarīgām bibliotēkām.&lt;/p&gt;
&lt;p&gt;Tātad, ja ir vēlme paspēlēties un saprast, kas ir AppFabric, ir vērts iegādāties beta 2 versiju &amp;ndash; &lt;a href="http://www.microsoft.com/downloads/details.aspx?displaylang=en&amp;amp;FamilyID=a1ed6018-ddd1-4bd8-b4af-6561e910ebb4"&gt;&amp;scaron;eit&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Cerams, ka noderēs!&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnet.lv/aggbug.aspx?PostID=10645" width="1" height="1"&gt;</description><category domain="http://dotnet.lv/blogs/vi/archive/tags/Caching/default.aspx">Caching</category><category domain="http://dotnet.lv/blogs/vi/archive/tags/Visual+Studio+2010/default.aspx">Visual Studio 2010</category><category domain="http://dotnet.lv/blogs/vi/archive/tags/.NET4.0/default.aspx">.NET4.0</category></item></channel></rss>