<?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>Valdis Iljuconoks : ASP.NET</title><link>http://dotnet.lv/blogs/vi/archive/tags/ASP.NET/default.aspx</link><description>Tagi: ASP.NET</description><dc:language>en</dc:language><generator>CommunityServer 2008 SP1 (Build: 30619.63)</generator><item><title>Schedule</title><link>http://dotnet.lv/blogs/vi/archive/2012/04/19/schedule.aspx</link><pubDate>Wed, 18 Apr 2012 21:09:00 GMT</pubDate><guid isPermaLink="false">245d81fd-b543-41d7-a051-d8603c6e9e31:355406</guid><dc:creator>valdis.iljuconoks</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnet.lv/blogs/vi/rsscomments.aspx?PostID=355406</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnet.lv/blogs/vi/commentapi.aspx?PostID=355406</wfw:comment><comments>http://dotnet.lv/blogs/vi/archive/2012/04/19/schedule.aspx#comments</comments><description>&lt;div id="post_content"&gt;
&lt;p&gt;Kā izrādās, tad aprīļa pa&amp;scaron;as beigas un maija mēnesis izvērties par diezgan aizņemtu laika posmu. Katrā ziņā, var noķert mani kaut kur tur&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img height="352" width="469" src="http://i.i.com.com/cnwk.1d/i/tim/2010/10/13/businessman-running-4x3_540x405.jpg" align="right" border="0" style="background-image:none;border-right-width:0px;margin:20px;padding-left:0px;padding-right:0px;display:inline;float:right;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size:large;"&gt;Aprīlis 2012:&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size:medium;"&gt;2012.04.26&lt;/span&gt;: Transporta un Sakaru Institūts:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;18:15 &amp;ndash; 19:15 &amp;ldquo;MSF &amp;amp; Agile&amp;rdquo; &lt;/p&gt;
&lt;p&gt;19:15 &amp;ndash; 19:45 &amp;ldquo;TFS 2012 Overview (Dev &amp;lsquo;11)&amp;rdquo;.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size:large;"&gt;Maijs 2012:&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size:medium;"&gt;2012.05.07&lt;/span&gt;: Latvijas Universitāte:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;18:15&lt;/strong&gt; &amp;ndash; 19:15 &amp;ldquo;Parallel Computing in Visual Studio 2010&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size:medium;"&gt;2012.05.08&lt;/span&gt;: Vidzemes Augstskola:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;10:00&lt;/strong&gt; &amp;ndash; 10:55 &amp;ldquo;Asp.Net MVC&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;11:00&lt;/strong&gt; &amp;ndash; 11:55 &amp;ldquo;Funkcionālā programmē&amp;scaron;ana - F#&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;12:00&lt;/strong&gt; &amp;ndash; 12:55 &amp;ldquo;Visual Studio 2012 - What&amp;#39;s new?&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;13:00&lt;/strong&gt; &amp;ndash; 13:55 &amp;ldquo;Requirements Management in TFS&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size:medium;"&gt;2012.05.14&lt;/span&gt;: Latvijas Universitāte:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;18:15&lt;/strong&gt; &amp;ndash; 19:15 &amp;ldquo;Funkcionālā programmē&amp;scaron;ana - F#&amp;ldquo;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size:medium;"&gt;2012.05.17&lt;/span&gt;: Ventspils Augstskola:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;11:00&lt;/strong&gt; &amp;ndash; 11:45 &amp;ldquo;Designing Software Architecture in VS 2010&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;12:45&lt;/strong&gt; &amp;ndash; 13:30 &amp;ldquo;C# 3.0 &amp;amp; C# 4.0&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;13:40&lt;/strong&gt; &amp;ndash; 14:25 &amp;ldquo;MSF &amp;amp; Agile&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;14:35&lt;/strong&gt; &amp;ndash; 15:20 &amp;ldquo;Requirements Management in TFS&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size:medium;"&gt;2012.05.21&lt;/span&gt;: Latvijas Universitāte:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;18:15&lt;/strong&gt; &amp;ndash; 19:15 &amp;ldquo;C# 5.0 &amp;ndash; async&amp;rdquo;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;span style="font-size:medium;"&gt;2012.05.28&lt;/span&gt;: Latvijas Universitāte:&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;18:15&lt;/strong&gt; &amp;ndash; 19:15 &amp;ldquo;Ievads jQuery&amp;ldquo;&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;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=355406" 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/Tfs/default.aspx">Tfs</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/Design/default.aspx">Design</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/F_2300_/default.aspx">F#</category><category domain="http://dotnet.lv/blogs/vi/archive/tags/C_2300_/default.aspx">C#</category><category domain="http://dotnet.lv/blogs/vi/archive/tags/TFS+11/default.aspx">TFS 11</category><category domain="http://dotnet.lv/blogs/vi/archive/tags/Visual+Studio+Dev+11/default.aspx">Visual Studio Dev 11</category><category domain="http://dotnet.lv/blogs/vi/archive/tags/Visual+Studio+2012/default.aspx">Visual Studio 2012</category><category domain="http://dotnet.lv/blogs/vi/archive/tags/jQuery/default.aspx">jQuery</category><category domain="http://dotnet.lv/blogs/vi/archive/tags/Agile/default.aspx">Agile</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>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnet.lv/blogs/vi/rsscomments.aspx?PostID=13472</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnet.lv/blogs/vi/commentapi.aspx?PostID=13472</wfw:comment><comments>http://dotnet.lv/blogs/vi/archive/2010/05/04/p-d-jais-treni-a-invent-rs.aspx#comments</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>jQuery prezentācijas materiāli</title><link>http://dotnet.lv/blogs/vi/archive/2009/11/29/jquery-prezent-cijas-materi-li.aspx</link><pubDate>Sun, 29 Nov 2009 16:23:00 GMT</pubDate><guid isPermaLink="false">245d81fd-b543-41d7-a051-d8603c6e9e31:5881</guid><dc:creator>valdis.iljuconoks</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnet.lv/blogs/vi/rsscomments.aspx?PostID=5881</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnet.lv/blogs/vi/commentapi.aspx?PostID=5881</wfw:comment><comments>http://dotnet.lv/blogs/vi/archive/2009/11/29/jquery-prezent-cijas-materi-li.aspx#comments</comments><description>&lt;div id="post_content"&gt;
&lt;p&gt;Sveicins visiem!&lt;/p&gt;
&lt;p&gt;Ir pieejami ir pagāju&amp;scaron;ās .Net lietotāju grupas sanāksmes, kas norisinājās 2009-11-26 Kongresu namā, prezentācijas materiāli par &amp;ldquo;jQuery&amp;rdquo; &lt;a target="_blank" href="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi.jquery/jquery_2D00_presentation.zip"&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=5881" width="1" height="1"&gt;</description><category domain="http://dotnet.lv/blogs/vi/archive/tags/ASP.NET/default.aspx">ASP.NET</category></item><item><title>Uzsildiet aplikācijas baseinu</title><link>http://dotnet.lv/blogs/vi/archive/2009/08/18/uzsildiet-aplik-cijas-baseinu.aspx</link><pubDate>Tue, 18 Aug 2009 07:41:46 GMT</pubDate><guid isPermaLink="false">245d81fd-b543-41d7-a051-d8603c6e9e31:4111</guid><dc:creator>valdis.iljuconoks</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnet.lv/blogs/vi/rsscomments.aspx?PostID=4111</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnet.lv/blogs/vi/commentapi.aspx?PostID=4111</wfw:comment><comments>http://dotnet.lv/blogs/vi/archive/2009/08/18/uzsildiet-aplik-cijas-baseinu.aspx#comments</comments><description>&lt;div id="post_content"&gt;   &lt;p&gt;Cik reizes ir nācies dzirdēt ko klientiem vai kolēģiem, ka tīmekļa sistēmas pirmais pieprasījums ir nenormāli lēns un vispār – tur kaut kas nestrādā.&lt;/p&gt;    &lt;p&gt;Tā ir ierasta prakse, ka daudzas lietas, kas ir nepieciešamas sistēmas darbībai tiek kešotas un kešošanas operācijas tiek veiktas Global.asax tipā &lt;strong&gt;Application_Start&lt;/strong&gt; metodē. Šī metode tiek izsaukta pie aplikācijas domeina inicializācijas, kas parasti notiek kopā ar pašu pirmo sistēmas pieprasījumu. Lai kāds no sistēmas klientiem nekristu par upuri pirmajam pieprasījumam, kas var ieilgt pat līdz pāris minūtēm (ir redzētas tādas aplikācijas :)), tad parasti izstrādātāji nodarbojas ar abstrakto mākslu un mēģina izdomāt dažādus paņēmienus, kādā veidā varētu sistēmas aplikācijas baseinu (angl. &lt;em&gt;application pool&lt;/em&gt;) mākslīgi uzsildīt, nosūtot pirmo pieprasījumu uzreiz pēc sistēmas palaišanas vai pārlādes.&lt;/p&gt;    &lt;p&gt;Šajā risinājumā problēma vēl joprojām pastām – aplikācijas baseina pārlāde var notikt arī bez cilvēka iejaukšanās (dažādi &lt;em&gt;recycling &lt;/em&gt;politikas nosacījumi). Ja aplikācijas pool uzsildīšanas mehānisms nav pietiekoši spēcīgi attīstīts, kāds klients tik un tā kritīs par upuri pirmajam ilgajam pieprasījumam.&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;Šoreiz stāsts par interesantu iespēju, kas nākusi klajā kopā ar IIS 7.5 versiju (Windows 7 vai Windows 2008 R2). Šī jaunā iespēja saucās “autoStart” un dod iespēju atzīmēt aplikācijas pool par ilgdzīvotāju jeb marķēt to kā nemirstīgo ar atzīmi &lt;strong&gt;startMode=”AlwaysRunning”&lt;/strong&gt; zem attiecīgā system.applicationHost/applicationPools elementa applicationHost.config failā. Fails starp citu atrodas %windir%\system32\inetsrv\config direktorijā. Daudz lietas nu jau ir iespējams konfigurēt izmantojot lietotāja interfeisu no IIS pārvaldīšanas moduļa, tomēr šīm izmaiņām būs nepieciešams modificēt .config failu ar rokām, tāpēc ieteicams izveidot rezerves kopiju pirms manipulācijas.&lt;/p&gt;    &lt;p&gt;Tātad konfigurācija izskatās šāda konkrētajam aplikāciju pool’am:&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;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;configuration&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;system.applicationHost&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;applicationPools&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;add&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;Default .NET 4 App Pool&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;autoStart&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;true&lt;/span&gt;&amp;quot;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;font color="#0000ff"&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; &lt;/font&gt;&lt;strong&gt;&lt;span style="color:red;"&gt;startMode&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;AlwaysRunning&lt;/span&gt;&amp;quot;&lt;/strong&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;managedRuntimeVersion&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;v4.0&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;applicationPools&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;font color="#008000"&gt;&amp;lt;!—Additional content --&amp;gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;   &lt;/div&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;Vadoties pēc IIS konfigurācijas faila shēmas, atribūtam “&lt;font size="2" face="Courier New"&gt;startMode&lt;/font&gt;” ir pieejamas divas vērtības”: “&lt;font size="2" face="Courier New"&gt;OnDemand&lt;/font&gt;”, kas nosaka, ka aplikāciju pools tiks startēts pēc nepieciešamības, un “&lt;font size="2" face="Courier New"&gt;AlwaysRunning&lt;/font&gt;”, ko izmantosim šajā piemērām. Šis uzstādījums regulē Windows Activation Service (&lt;strong&gt;WAS&lt;/strong&gt;) darbību, kas nodrošina attiecīgā aplikācijas baseina palaišanu uzreiz pēc sistēmas (IIS) startēšanas vai pārstartēšanas. Nākamā iespēja ir šajā ielādes laikā, kad WAS neatkarīgi no tīmekļa pieprasījumiem veic aplikācijas baseina uzstartēšanu, veikt kādas nepieciešamās operācijas – piemēram, kešatmiņas ielādi no datubāzes, kas parasti ir laika ziņā apjomīgs darbs. Šī iespēja tiek piedāvāta ar piegādātāju (angl. &lt;em&gt;providers&lt;/em&gt;) arhitektūru, kas dod iespēju veikt šādas nepieciešamās operācijas. Par cik vienā aplikācijas baseinā var plunčāties vairākas sistēmas, tad autoStartProvider kolekcija tiek definēta aplikāciju līmenī katrā no tīmekļa vietnēm.&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;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;configuration&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;system.applicationHost&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;sites&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;site&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;Default Web Site&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;id&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;1&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;application&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;path&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;/WebApplication2&lt;/span&gt;&amp;quot;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;font color="#0000ff"&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; &lt;/font&gt;&lt;span style="color:red;"&gt;applicationPool&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;Default .NET 4 App Pool&lt;/span&gt;&amp;quot;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&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; &lt;/span&gt;&lt;strong&gt;&lt;span style="color:red;"&gt;serviceAutoStartEnabled&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;true&lt;/span&gt;&amp;quot;&lt;/strong&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;strong&gt;&lt;font color="#0000ff"&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; &lt;/font&gt;&lt;span style="color:red;"&gt;serviceAutoStartProvider&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;PrewarmMyCache&lt;/span&gt;&amp;quot;&lt;/strong&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;virtualDirectory&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;path&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;/&lt;/span&gt;&amp;quot;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;font color="#0000ff"&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; &lt;/font&gt;&lt;span style="color:red;"&gt;physicalPath&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;C:\inetpub\wwwroot\WebApplication2&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;application&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;bindings&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;binding&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;protocol&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;http&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;bindingInformation&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;*:80:&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;bindings&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;site&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;!--&lt;/span&gt;&lt;span style="color:green;"&gt; Additional site definitions &lt;/span&gt;&lt;span style="color:blue;"&gt;--&amp;gt;&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;sites&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;   &lt;/div&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;Tātad tiek definēta vai vispār ir nepieciešama šāda iespēja (serviceAutoStartEnabled), kā arī tiek definēts, kurš piegādātājs ir jāizsauc.&lt;/p&gt;    &lt;p&gt;Uzstartēšanās piegādātāji tiek definēti &lt;strong&gt;serviceAutoStartProviders&lt;/strong&gt; elementā. Zemāk esam nodefinējuši tikai vienu piegādātāju:&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;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;configuration&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;system.applicationHost&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;serviceAutoStartProviders&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;add&lt;/span&gt;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;name&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;PrewarmMyCache&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;type&lt;/span&gt;&lt;span style="color:blue;"&gt;=&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt;&lt;strong&gt;WebApplication2.CacheWarmupProvider, WebApplication2&lt;/strong&gt;&lt;/span&gt;&amp;quot;&lt;span style="color:blue;"&gt; /&amp;gt;&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;serviceAutoStartProviders&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/p&gt;   &lt;/div&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;Šim definētajam tipam (&lt;font size="2" face="Courier New"&gt;WebApplication2.CacheWarmupProvider&lt;/font&gt;) ir jāimplementē “&lt;font size="2" face="Courier New"&gt;System.Web.Hosting.IProcessHostPreloadClient&lt;/font&gt;” interfeiss. Definēto tipu un asembliju WAS mēģina ielādēt no tās pašas tīmekļa aplikācijas bin/ direktorijas.&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;using&lt;/span&gt; System.Threading;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;namespace&lt;/span&gt; WebApplication2&lt;/p&gt;      &lt;p style="margin:0px;"&gt;{&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;class&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;CacheWarmupProvider&lt;/span&gt; : System.Web.Hosting.&lt;span style="color:#2b91af;"&gt;IProcessHostPreloadClient&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color:blue;"&gt;public&lt;/span&gt; &lt;span style="color:blue;"&gt;void&lt;/span&gt; Preload(&lt;span style="color:blue;"&gt;string&lt;/span&gt;[] parameters)&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {&lt;/p&gt;      &lt;p 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;span style="color:green;"&gt;// for instance, load classifiers from DB&lt;/span&gt;&lt;/p&gt;      &lt;p 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;span style="color:green;"&gt;// and perform any other expensive operations&lt;/span&gt;&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;      &lt;p style="margin:0px;"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/p&gt;      &lt;p style="margin:0px;"&gt;}&lt;/p&gt;   &lt;/div&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;Pēc piegādātāja metodes sekmīga izsaukuma, tīmekļa sistēma tiek atgriezta ierastā kārtībā un gatava sākt apkalpot pieprasījumus.&lt;/p&gt;    &lt;p&gt;NB! Tomēr pagaidām, kamēr nav iznācis oficiāli ASP.NET 4 versija, pastāv nelielas domstarpības par šo iespēju. ASP.NET oficiālā dokumentācija raksta, ka applicationHost.config failā ir nepieciešams uzrādīt citus tīmekļa mājvietas elementu atribūtus (attiecīgi “preloadEnabled” un “preloadProvider”). Un attiecīgi laikā, kad notiek preload piegādātāja metodes izsaukums, ASP.NET sistēmai bija jāieslēdzas speciālā režīmā, kurā uz laiku neapstrādā nevienu HTTP pieprasījumu, un lietotājam par to paziņo. ASP.NET oficiālajā dokumentācijā stāv gan rakstīts, ka šāda iespēja ir izmantojot IIS 7.5 uz Windows 2008 R2. Kamēr OS vēl nav apskatīts, neko vairāk nevaru pateikt ;)&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;Šāda lūk ir jaunā IIS 7.5 iespēja.&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=4111" 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/Windows+2008/default.aspx">Windows 2008</category><category domain="http://dotnet.lv/blogs/vi/archive/tags/Architecture/default.aspx">Architecture</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></item><item><title>Konfigurācijas transformācijas</title><link>http://dotnet.lv/blogs/vi/archive/2009/04/02/konfigur-cijas-transform-cijas.aspx</link><pubDate>Thu, 02 Apr 2009 04:53:37 GMT</pubDate><guid isPermaLink="false">245d81fd-b543-41d7-a051-d8603c6e9e31:2919</guid><dc:creator>valdis.iljuconoks</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnet.lv/blogs/vi/rsscomments.aspx?PostID=2919</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnet.lv/blogs/vi/commentapi.aspx?PostID=2919</wfw:comment><comments>http://dotnet.lv/blogs/vi/archive/2009/04/02/konfigur-cijas-transform-cijas.aspx#comments</comments><description>&lt;div id="post_content"&gt;   &lt;p&gt;Cik bieži ir nācies nogādāt pie klienta tīmekļa veida aplikāciju, kurai ir palicis vecais DEBUG režīma konfigurācijas fails, ar izslēgtiem customErrors vai &amp;lt;compilation/&amp;gt; debug=true slēdžiem? Ir gadījies.. :)&lt;/p&gt;    &lt;p&gt;Tā lūk, jaunā studija piedāvā nebijušu iespēju – konfigurācijas failu transformāciju pakošanas laikā.&lt;/p&gt;    &lt;p&gt;Pēc noklusējuma, kad pievienojam jaunu Web Application projektu, tiek izveidoti sekojoši transformācijas faili:&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/1_5F00_11652040.png" rel="lightbox"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="1" border="0" alt="1" src="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/1_5F00_thumb_5F00_714A1382.png" width="275" height="207" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;Debug un Release konfigurācijas failu transformācijas faili ir pievienoti automātiski, par cik jauns projekts tiek veidots ar šīm konfigurācijām. Ja pievienojam jaunu (izmantojot &lt;em&gt;Configuration Manager&lt;/em&gt;), tad nospiežot labo taustiņu uz web.config faila ir pieejama komanda, kas pievienos trūkstošo konfigurāciju transformācijas failus:&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/2_5F00_181829C3.png" rel="lightbox"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="2" border="0" alt="2" src="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/2_5F00_thumb_5F00_10F8ED4B.png" width="267" height="304" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;Kā rezultātā iegūstam jaunu Web.Staging.config failu, kas pagaidām ir gandrīz tukšs:&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/3_5F00_37C7038B.png" rel="lightbox"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="3" border="0" alt="3" src="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/3_5F00_thumb_5F00_17ABF6CE.png" width="685" height="113" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;Transformācijas faili ir tikai dizainēšanas laika faili un netiek nogādāti pie klienta vai uz ražošanas vidi. Ja nu tomēr gadās šos failus arī aizgādāt līdz ražošanas videi, tad šie faili nenodara nekādu ļaunu, jo izpildes režīmā šie faili netiek izmantoti un ASP.NET neļauj klientiem iegūt .config failu saturu.&lt;/p&gt;    &lt;p&gt;Šajos transformācijas failos tiek rakstīta Xslt transformācijas, kuras ir nepieciešams veikt ar orģinālo web.config failu.&lt;/p&gt;    &lt;p&gt;Xml vārdu telpa “XML-Document-Transform” satur divus jaunus atribūtus:&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;Transform – šis atribūts informē transformācijas dzinēju, &lt;strong&gt;kas&lt;/strong&gt; tieši ir jāmaina web.config failā. &lt;/li&gt;      &lt;li&gt;Locator – šis atribūts informē transformācijas dzinēju, &lt;strong&gt;kur&lt;/strong&gt; tieši ir jāmaina web.config failā. &lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;At the time of writing, &lt;strong&gt;Transform&lt;/strong&gt; ir šādas iespējas:&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;Replace – iespējams aizvietot kādu konfigurācijas ierakstu (&lt;em&gt;replace node&lt;/em&gt;); &lt;/li&gt;      &lt;li&gt;Insert – iespējams ievietot kādu konfigurācijas ierakstu (&lt;em&gt;insert node&lt;/em&gt;); &lt;/li&gt;      &lt;li&gt;Delete – iespējams izdzēst kādu konfigurācijas ierakstu (&lt;em&gt;delete node&lt;/em&gt;); &lt;/li&gt;      &lt;li&gt;Remove Attribute – iespējams nodzēst kāda konfigurācijas ieraksta atribūtu (&lt;em&gt;remove attribute&lt;/em&gt;); &lt;/li&gt;      &lt;li&gt;Set Attribute - iespējams piešķirt vērtību kāda konfigurācijas ieraksta atribūtam (&lt;em&gt;set attribute&lt;/em&gt;); &lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;At the time of writing, &lt;strong&gt;Locator &lt;/strong&gt;ir šādas iespējas:&lt;/p&gt;    &lt;ul&gt;     &lt;li&gt;Match – sameklēt kādu konfigurācijas ierakstu pēc atribūta vērtības; &lt;/li&gt;      &lt;li&gt;Condition – nosacījumu konfigurācijas ieraksta meklēšana; &lt;/li&gt;      &lt;li&gt;XPath – precīza konfigurācijas ieraksta sameklēšana pēc XPath izteiksmes; &lt;/li&gt;   &lt;/ul&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;Ar šīm zināšanām mēģināsim transformēt noklusēto web.config failu, kurā ir appSettings testa konfigurācijas ieraksts:&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/4_5F00_257E3CC9.png" rel="lightbox"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="4" border="0" alt="4" src="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/4_5F00_thumb_5F00_7071AD98.png" width="551" height="247" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;Pieņemsim, ka “Staging” izpildes konfigurācijā, nav nepieciešams rādīt &lt;em&gt;verbose &lt;/em&gt;ziņojumus, kas nozīmē, ka ir jāveido transformācijas fails, kas šo vērtību no true pārliks uz false.&lt;/p&gt;    &lt;p&gt;Vienkāršākais Web.Staging.config faila saturs ir attēlots zemāk:&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/5_5F00_2C31464C.png" rel="lightbox"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="5" border="0" alt="5" src="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/5_5F00_thumb_5F00_251209D4.png" width="687" height="217" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;Transformācijas dzinējs pēc sameklēts attiecīgos &lt;em&gt;configuration/appSettings&lt;/em&gt; konfigurācijas ierakstus un pielietos transformāciju tikai &lt;em&gt;showVerboseMessages&lt;/em&gt; ierakstam, par cik &lt;em&gt;xdt:Locator &lt;/em&gt;norāda uz to, ka jāmeklē ir pēc &lt;em&gt;key&lt;/em&gt; atribūta attiecīgais konfigurācijas ieraksts un jāveic ir pilnā ieraksta (&lt;em&gt;node&lt;/em&gt;) aizvietošana par ko informē &lt;em&gt;xdt:Transform &lt;/em&gt;atribūts.&lt;/p&gt;    &lt;p&gt;Kā redzams, tad transformācijas fails nesatur nevienu citu konfigurācijas ierakstu, jo transformācijas dzinējs veic orģinālā faila un transformācijas faila apvienošanu (&lt;em&gt;merge&lt;/em&gt;) transformācijas procesa laikā.&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;Kad ir izveidots transformācijas fails, ir iespējams veikt transformācijas vai nu no komandrindiņas vai arī no Visual Studio.&lt;/p&gt;    &lt;p&gt;No komandrindiņas tas ir gaužām vienkārši (&lt;em&gt;Start -&amp;gt; Program Files –&amp;gt; Visual Studio v10.0 –&amp;gt; Visual Studio tools –&amp;gt; Visual Studio 10.0 Command Prompt&lt;/em&gt;):&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt;    &lt;div style="font-family:courier new;background:#efefef;color:black;font-size:9pt;"&gt;MSBuild “&lt;b&gt;&lt;i&gt;Path to Application project file (.csproj/.vbproj)&lt;/i&gt;&lt;/b&gt; ” /t:TransformWebConfig /p:Configuration=Staging&lt;/div&gt;    &lt;p&gt;&lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;Kad būvējums ir pabeigts, jaunās konfigurācijas faili glabāsies &lt;em&gt;obj/Staging&lt;/em&gt; direktorijā.&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/6_5F00_70057AA3.png" rel="lightbox"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="6" border="0" alt="6" src="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/6_5F00_thumb_5F00_0BAA069A.png" width="344" height="519" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;Aplūkojot failu redzams, ka transformācija ir izpildīta pareizi.&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/7_5F00_048ACA22.png" rel="lightbox"&gt;&lt;img style="border-right-width:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;" title="7" border="0" alt="7" src="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/7_5F00_thumb_5F00_7D6B8DA9.png" width="615" height="304" /&gt;&lt;/a&gt; &lt;/p&gt;    &lt;p&gt;&amp;#160;&lt;/p&gt;    &lt;p&gt;Ja web.config konfigurācijas faili ir izvietoti arī kādā no apakšdirektorijām, tad VS transformācijas dzinējs atbalsta arī šāda veida scenārijus un viss iepriekš minētais attiecas arī uz citiem web.config failiem projektā.&lt;/p&gt;    &lt;p&gt;Nākamajos rakstos mēģināšu pastāstīt, ko tad īsti iesākt ar šo obj/&amp;lt;Configuration&amp;gt; direktoriju saturu un kā notiek Web Application nodošana klientam vai instalācija uz ražošanas vides izmantojot jaunās VS2010 iespējas.      &lt;br /&gt;&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=2919" 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/Xml/default.aspx">Xml</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/Deployment/default.aspx">Deployment</category></item><item><title>Kā sadzīvot ar ShP 3.0 ?</title><link>http://dotnet.lv/blogs/vi/archive/2009/03/13/k-sadz-vot-ar-shp-3-0.aspx</link><pubDate>Fri, 13 Mar 2009 20:28:06 GMT</pubDate><guid isPermaLink="false">245d81fd-b543-41d7-a051-d8603c6e9e31:2839</guid><dc:creator>valdis.iljuconoks</dc:creator><slash:comments>5</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnet.lv/blogs/vi/rsscomments.aspx?PostID=2839</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnet.lv/blogs/vi/commentapi.aspx?PostID=2839</wfw:comment><comments>http://dotnet.lv/blogs/vi/archive/2009/03/13/k-sadz-vot-ar-shp-3-0.aspx#comments</comments><description>&lt;div id="post_content"&gt; &lt;p&gt;&lt;img align="right" src="http://dotnet.lv/cfs-filesystemfile.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/SharePoint_5F00_Logo.jpg" alt="" /&gt; Šis ir viens no sērijas &amp;quot;for self reference&amp;quot; rakstiem, par lietām, kas kādreiz varbūt būs noderīgas arī kādam citam :)&lt;/p&gt; &lt;p&gt;Vai ir nācies sadzīvināt kopā Asp.Net aplikāciju tajā paša komunālajā dzīvoklī, kurā jau mitinās Windows SharePoint Services? Nesen man nācās šādā komunālajā dzīvoklī apvienot 2 ģimenes, kuru pārstāvēja jau pastāvīgais iemītnieks - Windows SharePoint services un Asp.Net 2.0 sistēma, vulgaris.&lt;/p&gt; &lt;p&gt;Tātad ir jāpielieto sekojošas darbības, lai šāda kopdzīve izveidotos sekmīga:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Ja vecākajās Sharepoint versijās pastāvēja smuks &amp;quot;Exclude managed path&amp;quot; saraksts, tad jaunajā versijā ir tikai &amp;quot;Include managed path&amp;quot; :)  &lt;li&gt;Jaunajā Sharepoint versijā pietiek ar to, ka Asp.Net sistēmas izejas failus iekopē tajā pašā IIS virtuālajā mājvietā (web site) un nokonfigurē to kā IIS aplikāciju, kas automātiski paziņo Sharepoint Url dispetčerim, ka šis ceļš nav Sharepoint pārvaldīts.  &lt;li&gt;Tālāk ir jākonfigurē Asp.Net sistēmas &lt;font face="Courier New"&gt;web.config &lt;/font&gt;fails:  &lt;li&gt;Jāiestāda atpakaļ nepieciešamais drošības līmenis (&lt;em&gt;Trust Level&lt;/em&gt;), par cik Sharepoint pārvaldībā ir IIS galvenā tīmekļa mājvieta, kas nozīmē, ka visas pakļautās mājvietas pārņem uzstādījumus no galvenās, ja vien nav minēts savādāk pašos applikācijas uzstādījumos. Sharepoint pēc noklusējuma griežas zem minimālās drošības pakāpes (&lt;em&gt;Minimum&lt;/em&gt;). Vairums sistēmu ir nepieciešams vai nu vismaz &lt;em&gt;Medium &lt;/em&gt;vai &lt;em&gt;Full &lt;/em&gt;drošības līmenis. To far izdarīt pievienojot &lt;font face="Courier New"&gt;configuration/system.web&lt;/font&gt; elementam jaunu elementu:&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;&amp;lt;trust level=&amp;quot;Full&amp;quot; originUrl=&amp;quot;&amp;quot; /&amp;gt;&lt;/font&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Jāpievieno atpakaļ Http handleri, kas apstrādās aspx paplašinājuma lapas. To var izdarīt pievienojot jaunu elementu &lt;font face="Courier New"&gt;configuration/system.web/httpHandlers&lt;/font&gt;, kas atbildēs par aspx lapu apstrādi:&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;&amp;lt;add verb=&amp;quot;*&amp;quot; path=&amp;quot;*.aspx&amp;quot; type=&amp;quot;System.Web.UI.PageHandlerFactory, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a&amp;quot; /&amp;gt;&lt;/font&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Ja gadījumā tiek izmantota Asp.Net sesija, kas 99% sistēmu parasti tiek darīts, tad noteikti ir jāatjauno sesijas iespēja Asp lapās, kas izdarāms, pievienojot jaunu atribūtu &lt;font face="Courier New"&gt;configuration/system.web/pages &lt;/font&gt;elementam &lt;font face="Courier New"&gt;enableSessionState=&amp;quot;true&amp;quot;&lt;/font&gt;.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Ja pēc šīm darbībām Asp.Net sistēma vēl joprojām atsakās strādāt, kā tas arī bija manā gadījumā ar 3 host sistēmām, kas bija jāiedzīvina Sharepoint dzīvoklī, tad nepieciešams pievienot arī trūkstošos Http moduļus &lt;font face="Courier New"&gt;configuration/system.web/httpModules &lt;/font&gt;elementam:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;font face="Courier New"&gt;&amp;lt;add name=&amp;quot;Session&amp;quot; type=&amp;quot;System.Web.SessionState.SessionStateModule&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;add name=&amp;quot;FormsAuthentication&amp;quot; type=&amp;quot;System.Web.Security.FormsAuthenticationModule&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;add name=&amp;quot;PassportAuthentication&amp;quot; type=&amp;quot;System.Web.Security.PassportAuthenticationModule&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;add name=&amp;quot;UrlAuthorization&amp;quot; type=&amp;quot;System.Web.Security.UrlAuthorizationModule&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;add name=&amp;quot;FileAuthorization&amp;quot; type=&amp;quot;System.Web.Security.FileAuthorizationModule&amp;quot;/&amp;gt;&lt;/font&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Pēc šīm veiktajām darbībām sistēmai vajadzētu sākt darboties, bet tas protams negarantē 100% vienlīdzību ar situāciju, kurā Asp.Net sistēma darbojas neatkarīgājā vidē, jo iespējams, ka kāds uzstādījumus, kuru izmanto sistēma Winows SharePoint serveris ir pārrakstījis un tā vērtība neatbilst gaidītajai.&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Tā kā - jābūt uzmanīgiem :)&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=2839" 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/Architecture/default.aspx">Architecture</category><category domain="http://dotnet.lv/blogs/vi/archive/tags/Sharepoint/default.aspx">Sharepoint</category></item><item><title>Microsoft Asp.Net MVC RC2</title><link>http://dotnet.lv/blogs/vi/archive/2009/03/04/microsoft-asp-net-mvc-rc2.aspx</link><pubDate>Wed, 04 Mar 2009 00:08:00 GMT</pubDate><guid isPermaLink="false">245d81fd-b543-41d7-a051-d8603c6e9e31:2770</guid><dc:creator>valdis.iljuconoks</dc:creator><slash:comments>4</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnet.lv/blogs/vi/rsscomments.aspx?PostID=2770</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnet.lv/blogs/vi/commentapi.aspx?PostID=2770</wfw:comment><comments>http://dotnet.lv/blogs/vi/archive/2009/03/04/microsoft-asp-net-mvc-rc2.aspx#comments</comments><description>&lt;div id="post_content"&gt;
&lt;p&gt;Laists klajā ir Asp.Net MVC dzinēja izlaidiena otrais kandidāts (iegādāties var &lt;a href="http://go.microsoft.com/fwlink/?LinkId=144443"&gt;&amp;scaron;eit&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Pēc autoru vārdiem izmaiņas ir notiku&amp;scaron;as tooling un instalātora sadaļā - tāpēc vēlamies visiem, kas ir ieinteresēti vai arī nav ieinteresēti izmēģināt instalātoru uz visneiedomajākajām platformām un ziņot, ja nu gadījumā kaut kas ir nepareizi vai greizi.&lt;/p&gt;
&lt;p&gt;Galvenā izmaiņa ir, ka instalators pieprasīs .Net 3.5 SP1 klātesamību, bet tas ir tikai instalācijas laikā. Izpildes režīmā, SP1 teorētiski nav arī nepiecie&amp;scaron;ams.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Prieks redzēt, ka MVC dzinējs tuvojas RTM statusam beidzot. Pie tā esot strādāju&amp;scaron;i ~ 6 cilvēki.&lt;/p&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnet.lv/aggbug.aspx?PostID=2770" 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/MVC/default.aspx">MVC</category></item><item><title>Migrācija un dizaineri</title><link>http://dotnet.lv/blogs/vi/archive/2009/01/13/migr-cija-un-dizaineri.aspx</link><pubDate>Tue, 13 Jan 2009 08:15:00 GMT</pubDate><guid isPermaLink="false">245d81fd-b543-41d7-a051-d8603c6e9e31:2515</guid><dc:creator>valdis.iljuconoks</dc:creator><slash:comments>6</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnet.lv/blogs/vi/rsscomments.aspx?PostID=2515</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnet.lv/blogs/vi/commentapi.aspx?PostID=2515</wfw:comment><comments>http://dotnet.lv/blogs/vi/archive/2009/01/13/migr-cija-un-dizaineri.aspx#comments</comments><description>&lt;div id="post_content"&gt;
&lt;p&gt;&amp;Scaron;oreiz stāsts no sērijas &amp;quot;back-to-basics&amp;quot;. Pierakstīju pa&amp;scaron;a self-reference materiāliem...&lt;/p&gt;
&lt;p&gt;Nesen gadījās portēt vienu aplikāciju, kas tika veidota .Net 1.1 platformā izmantojot Web Site tehnoloģiju tīmekļa aplikācijas izstrādei. Lapas kontroles un visi citi zvēri tika deklarēti turpat primārajā lapas izejas kodā (&lt;em&gt;&amp;lt;lapas nosaukums&amp;gt;&lt;/em&gt;.aspx.cs) apmēram &amp;scaron;ādi:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;div style="font-family:andale mono;background:#efefef;color:black;font-size:9pt;"&gt;
&lt;pre style="margin:0px;"&gt;&lt;span style="color:silver;"&gt;///&lt;/span&gt;&lt;span style="color:gray;"&gt; &lt;/span&gt;&lt;span style="color:silver;"&gt;&amp;lt;summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="margin:0px;"&gt;&lt;span style="color:silver;"&gt;///&lt;/span&gt;&lt;span style="color:gray;"&gt; This is a text box.&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="margin:0px;"&gt;&lt;span style="color:silver;"&gt;///&lt;/span&gt;&lt;span style="color:gray;"&gt; &lt;/span&gt;&lt;span style="color:silver;"&gt;&amp;lt;/summary&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre style="margin:0px;"&gt;&lt;span style="color:blue;"&gt;protected&lt;/span&gt; &lt;span style="color:#2b91af;"&gt;TextBox&lt;/span&gt; textBoxNumber;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Protams, ka &amp;scaron;āds pieraksts nevienam netraucē, bet anyway gribējās, lai viss dizainera stuffs tiktu pārvietots uz .aspx.designer.cs failu. Nedaudz pameklējoties pa context-menu atradu &amp;quot;Convert to Web Application&amp;quot; komandu.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/convert_2D00_to_2D00_wa.png" alt="" /&gt; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Tātad, lai korekti izveidotu .designer.cs failu, nepiecie&amp;scaron;ams:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;izdzēst&amp;nbsp; visus nepiecie&amp;scaron;amos protected klases mainīgos, kas definē kādu elementu lapā;&lt;/li&gt;
&lt;li&gt;izvēlēties &amp;quot;Convert to Web Application&amp;quot; komandu faila konteksta izvēlnē;&lt;/li&gt;
&lt;li&gt;&amp;scaron;ī komanda izveidos korekti .designer.cs failu ar visiem nepiecie&amp;scaron;amajiem elementiem, kas tiks atrasti aspx lapā;&lt;/li&gt;
&lt;li&gt;&amp;scaron;ī komanda padarīs arī nepiecie&amp;scaron;amo lapas klasi par partial, lai varētu definēt klases saturu vairākos failos;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Ja &amp;scaron;ādā veidā .designer.cs failu neizdodas izveidot, tad var mēģināt arī &amp;scaron;ādi:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;atvērt aspx lapu source skatījumā;&lt;/li&gt;
&lt;li&gt;iezīmēt visu Html kodu (Ctrl+A);&lt;/li&gt;
&lt;li&gt;ievadīt kombināciju Ctrl+K un pēc tam Ctrl+F, kas saformēs pa jaunu Html izejas kodu un vajadzētu tam arī izveidot pa jaunu .designer.cs failu;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Prieks redzēt, ka vecās sistēmas arī dzīvo un tās konvertējot uz modernākām tehnoloģijām sajūta, ka dod tām otro iespēju! :)&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Cermas, 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=2515" width="1" height="1"&gt;</description><category domain="http://dotnet.lv/blogs/vi/archive/tags/.NET2.0/default.aspx">.NET2.0</category><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/Visual+Studio+2008/default.aspx">Visual Studio 2008</category><category domain="http://dotnet.lv/blogs/vi/archive/tags/Visual+Studio+2005/default.aspx">Visual Studio 2005</category></item><item><title>ListView, ObjectDataSource un Linq</title><link>http://dotnet.lv/blogs/vi/archive/2008/05/30/listview-objectdatasource-un-linq.aspx</link><pubDate>Fri, 30 May 2008 20:23:00 GMT</pubDate><guid isPermaLink="false">245d81fd-b543-41d7-a051-d8603c6e9e31:992</guid><dc:creator>valdis.iljuconoks</dc:creator><slash:comments>1</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnet.lv/blogs/vi/rsscomments.aspx?PostID=992</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnet.lv/blogs/vi/commentapi.aspx?PostID=992</wfw:comment><comments>http://dotnet.lv/blogs/vi/archive/2008/05/30/listview-objectdatasource-un-linq.aspx#comments</comments><description>&lt;p&gt;&amp;Scaron;odien, papildinot Tfs laika uzskaites moduli, par kura 3. daļu man ir jāatvainojas, ka nav sanācis laika turpināt sēriju, uzskrēju virsū interesantai lietai, par kuru vēlējos pastāstīt.&lt;/p&gt;
&lt;p&gt;Tātad laika uzskaites pārskata lapa, kas attēlo pavadīto laiku pie konkrētā darba jeb Work Item, ieguva sev Ajax &amp;scaron;armu un pēc rediģē&amp;scaron;anas operācijas sarakstā, tas vairs nepārlādējas nozibsnījot visai lapai, bet gan eleganti pārlādējas, jo ievietots UpdatePanel kontrolē. Pārskatot kodu un pamazām to pucējot uz publicē&amp;scaron;anu, nolēmu ar rokām rakstīto asp:Repeater kontroli aizvietot ar asp:ListView.&lt;/p&gt;
&lt;p&gt;ListView kontrole pa lielam ir DataGrid un Repeater apvienojums, piedāvājot &amp;scaron;ablona elastīgumu no Repater kontroles un rediģē&amp;scaron;anas iespējas no DataGrid. &amp;Scaron;i kontrole ir ērtāka par DataGrid, jo piedāvā lielāku kontroli pār to, kā izskatīsies datu rediģē&amp;scaron;anas kontrole klientam, tajā pa&amp;scaron;ā laikā saglabājot visas spēcīgās DataGrid iespējas.&lt;/p&gt;
&lt;p&gt;Tātad &amp;scaron;oreiz ir stāsts par sekojo&amp;scaron;iem aktieriem galvenajās lomās: lietotāja saskarnei tiek izmantots &lt;b&gt;ListView&lt;/b&gt; kontrole datu attēlo&amp;scaron;anai sarakstā (&lt;i&gt;Grid style&lt;/i&gt;), &lt;b&gt;ObjectDataSource&lt;/b&gt; kā datu avots, kur&amp;scaron; tiek pievienots pie pa&amp;scaron;taisīta datu pārvaldnieka jeb vārtejas uz datu avotiem. Zem pārsega slēpjas &lt;b&gt;Linq to Sql&lt;/b&gt; tehnloģija, lai iegūtu datus no datu bāzes, kā arī veikti saglabā&amp;scaron;anas, rediģē&amp;scaron;anas un dzē&amp;scaron;anas operācijas.&lt;/p&gt;
&lt;p&gt;ObjectDataSource tiek pievienots pa&amp;scaron;taisītam datu pārvaldniekam viena iemesla dēļ - ja atceraties Tfs laika uzskaites moduļa arhitektūras bildi (sk. &lt;a href="http://www.dotnet.lv/blogs/vi/archive/2008/02/25/tfs-laika-uzskaite-d2.aspx"&gt;&amp;scaron;eit&lt;/a&gt;), tad datu operācijas tiek veiktas citā servisā, kas nozīmē, ka lietotāja saskarsnē nebūs pieejams DataContext u tāpēc LinqDataSource nav iespējams izmantot. &amp;Scaron;im nolūkam ir jāizmanto klasi no DataLayer bibliotēkas, kas nodro&amp;scaron;ina vārteju uz laika uzskaites datu rediģē&amp;scaron;anas servisu.&lt;/p&gt;
&lt;p&gt;Demonstrācijas nolūkiem izveidosim sekojo&amp;scaron;u datu pārvaldnieku:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;public &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;List&lt;/span&gt;&amp;lt;&lt;span style="color:#2b91af;"&gt;Customer&lt;/span&gt;&amp;gt; GetList()&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color:blue;"&gt;using &lt;/span&gt;(&lt;span style="color:#2b91af;"&gt;NorthwindDataContext &lt;/span&gt;ctx = &lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;NorthwindDataContext&lt;/span&gt;())&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color:blue;"&gt;return &lt;/span&gt;(&lt;span style="color:blue;"&gt;from &lt;/span&gt;c &lt;span style="color:blue;"&gt;in &lt;/span&gt;ctx.Customers&lt;br /&gt;               &lt;span style="color:blue;"&gt;select &lt;/span&gt;c).ToList();&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="color:blue;"&gt;public void &lt;/span&gt;Delete(&lt;span style="color:#2b91af;"&gt;Customer &lt;/span&gt;customer)&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color:blue;"&gt;using &lt;/span&gt;(&lt;span style="color:#2b91af;"&gt;NorthwindDataContext &lt;/span&gt;ctx = &lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;NorthwindDataContext&lt;/span&gt;())&lt;br /&gt;    {&lt;/pre&gt;
&lt;pre class="code"&gt;        ctx.Customers.Attach(customer);&lt;br /&gt;        ctx.Customers.DeleteOnSubmit(customer);&lt;br /&gt;        ctx.SubmitChanges();&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;Scaron;is datu pārvaldnieks nodro&amp;scaron;ina atlases un dzē&amp;scaron;anas operācijas. Demonstrācijas nolūkiem vairāk arī nav nepiecie&amp;scaron;ams.&lt;/p&gt;
&lt;p&gt;Pēc tam mūsu lietotāju saskarnes slānī nodefinējam ObjectDataSource:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ObjectDataSource &lt;/span&gt;&lt;span style="color:red;"&gt;ID&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;ObjectDataSource1&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color:red;"&gt;SelectMethod&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;GetList&amp;quot;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color:red;"&gt;TypeName&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;ObjectDataStoreTest.DataManager&amp;quot;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color:red;"&gt;DataObjectTypeName&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;ObjectDataStoreTest.Customer&amp;quot;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color:red;"&gt;DeleteMethod&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Delete&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ObjectDataSource&lt;/span&gt;&lt;span style="color:blue;"&gt;&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Tad nodefinējam ListView kontroli. Tā ka ListView kontrole izmanto &amp;scaron;ablonus, tad operāciju saites (Insert, Update, Delete) mums ir jāveido pa&amp;scaron;iem tajā vietā un pozīcijā, kurā mēs to vēlamies. &amp;Scaron;im nolūkam atliek tikai kontrolei, kas nodro&amp;scaron;inās kādu no datu manipulācijas operācijām norādīt CommandName atribūtu.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;Button &lt;/span&gt;&lt;span style="color:red;"&gt;ID&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;DeleteButton&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;&lt;b&gt;CommandName&lt;/b&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;b&gt;=&amp;quot;Delete&amp;quot;&lt;/b&gt; &lt;/span&gt;&lt;span style="color:red;"&gt;Text&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;Delete&amp;quot; /&amp;gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Palaižot mūsu super-puper aplikāciju iegūstam smuki ģenerētu lietotāja interfeisu:&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_2.png" rel="lightbox"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" alt="image" src="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_thumb.png" width="537" border="0" height="405" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&amp;Scaron;ajā demonstrācijā mums interesē kāda no operācijām, &amp;scaron;ajā piemērā - Delete.&lt;/p&gt;
&lt;p&gt;Ja mēs ievietojam Breakpoint Delete() operācijā mūsu datu pārvaldniekā, tad momentā, kad nospiežam Delete pogu, izsaukuma parametrā redzam sekojo&amp;scaron;u ainu:&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_4.png" rel="lightbox"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" alt="image" src="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_thumb_5F00_1.png" width="534" border="0" height="372" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Pēc ienāko&amp;scaron;ā Delete operācijas parametra ir skaidrs, ka ListView kontrole visticamāk ģenerē operācijas parametru jeb Customer klases instanci.&lt;/p&gt;
&lt;p&gt;Papētot sīkāk ListView kontroli, ieraugām DataKeyNames īpa&amp;scaron;ību, kas nosaka, kuras objekta īpa&amp;scaron;ības kalpo identifikācijai. Loģiski, ka Customer klasei mēs definējam CustomerID, kā DataKeyNames atribūtu:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color:#a31515;"&gt;asp&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:#a31515;"&gt;ListView &lt;/span&gt;&lt;span style="color:red;"&gt;ID&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;ListView1&amp;quot; &lt;/span&gt;&lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color:red;"&gt;DataSourceID&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;ObjectDataSource1&amp;quot;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color:red;"&gt;OnItemDeleting&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;ListView1_ItemDeleting&amp;quot;&lt;br /&gt;    &lt;/span&gt;&lt;span style="color:red;"&gt;&lt;b&gt;DataKeyNames&lt;/b&gt;&lt;/span&gt;&lt;span style="color:blue;"&gt;&lt;b&gt;=&amp;quot;CustomerID&amp;quot;&lt;/b&gt;&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Jaunajā redakcijā situācija izskatās savādāk:&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_6.png" rel="lightbox"&gt;&lt;img style="border-top-width:0px;border-left-width:0px;border-bottom-width:0px;border-right-width:0px;" alt="image" src="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_thumb_5F00_2.png" width="534" border="0" height="373" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Tātad &amp;scaron;audas ir apstiprināju&amp;scaron;ās, ListView pats ģenerē operācijas parametra klases instanci, norādot tai DataKeyNames atribūtus pārkopējot tos no instances, kuras kontekstā operācija ir izpildīta.&lt;/p&gt;
&lt;p&gt;&amp;Scaron;āds piegājiens, mūs īsti neapmierina, jo pielietojot standarta Linq to Sql iespējas:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;using &lt;/span&gt;(&lt;span style="color:#2b91af;"&gt;NorthwindDataContext &lt;/span&gt;ctx = &lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;NorthwindDataContext&lt;/span&gt;())&lt;br /&gt;{&lt;/pre&gt;
&lt;pre class="code"&gt;    ctx.Customers.Attach(customer);&lt;br /&gt;    &lt;b&gt;ctx.Customers.DeleteOnSubmit(customer);&lt;/b&gt;&lt;br /&gt;    ctx.SubmitChanges();&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Delete operācijai ir nepiecie&amp;scaron;ams tie&amp;scaron;i tā pati klases instance, kas tika ielādēta, pretējā gadījumā iegūstam:&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_8.png"&gt;&lt;img style="border-right:0px;border-top:0px;border-left:0px;border-bottom:0px;" alt="image" src="http://dotnet.lv/cfs-file.ashx/__key/CommunityServer.Blogs.Components.WeblogFiles/vi/image_5F00_thumb_5F00_3.png" width="670" border="0" height="335" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Kāds var man lūdzu paskaidrot, kas iepriek&amp;scaron; jau ir saskāries ar &amp;scaron;āda veida problēmām - es daru kaut ko nepareizi, vai tas ir by-design?&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Ir viens variants, kas man ienāca prātā, kā varētu risināt &amp;scaron;o nelielo pārpratumu - ievie&amp;scaron;ot dzē&amp;scaron;anas operāciju (vai jebkuru cita veida operāciju) pēc identifikātoriem:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre class="code"&gt;&lt;span style="color:blue;"&gt;public void &lt;/span&gt;DeleteById(&lt;span style="color:#2b91af;"&gt;Customer &lt;/span&gt;customer)&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color:blue;"&gt;using &lt;/span&gt;(&lt;span style="color:#2b91af;"&gt;NorthwindDataContext &lt;/span&gt;ctx = &lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span style="color:#2b91af;"&gt;NorthwindDataContext&lt;/span&gt;())&lt;br /&gt;    {&lt;br /&gt;        ctx.Customers.DeleteOnSubmit (&lt;br /&gt;            ctx.Customers.Single (c =&amp;gt; c.CustomerID.Equals (customer.CustomerID)));&lt;br /&gt;        ctx.SubmitChanges();&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;
&lt;p&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Pēc pēdējām modifikācijām izriet, ka objekts, kas tiek nodots no ListView līdz attiecīgās operācijas metodei ir uzskatāms tikai kā DTO (data transfer objekts), kuram nekādas biznesa vērtības nav.&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Kopsummā jaunā ListView kontrole ir diezgan pievilcīga, piedāvājot funkcionalitāti, kas līdz &amp;scaron;im nebija pieejams - &amp;scaron;abloni no Repeater kontroles, rediģē&amp;scaron;anas iespējas no DataGrid. Protams, ir nepiecie&amp;scaron;ams daudz maarkup elementus ielikt kodā, lai tas viss strādātu, bet pārlūko&amp;scaron;anas un rediģē&amp;scaron;anas iespējas tur pat uz vietas - patie&amp;scaron;ām ir jauka iespēja.&lt;/p&gt;
&lt;p&gt;Jauks pievienojums ASP.NET 3.5 kontroļu saimei.&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 style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnet.lv/aggbug.aspx?PostID=992" 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/.NET3.5/default.aspx">.NET3.5</category><category domain="http://dotnet.lv/blogs/vi/archive/tags/LINQ/default.aspx">LINQ</category></item><item><title>Atjauninātais treniņa inventārs</title><link>http://dotnet.lv/blogs/vi/archive/2008/05/23/atjaunin-tais-treni-a-invent-rs.aspx</link><pubDate>Fri, 23 May 2008 06:34:43 GMT</pubDate><guid isPermaLink="false">245d81fd-b543-41d7-a051-d8603c6e9e31:851</guid><dc:creator>valdis.iljuconoks</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnet.lv/blogs/vi/rsscomments.aspx?PostID=851</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnet.lv/blogs/vi/commentapi.aspx?PostID=851</wfw:comment><comments>http://dotnet.lv/blogs/vi/archive/2008/05/23/atjaunin-tais-treni-a-invent-rs.aspx#comments</comments><description>Microsoft izstrādātāju evanģēlistu grupa ir laidusi klajā nelielu pievienojumu advancētajam treniņa inventāram . Šis pievienojums ir domāts, lai apskatītu un darbotos ar Visual Studio SP1 un .Net Framework 3.5 SP1 . Šīs tehnoiloģijas tiek aplūkotas treniņa...(&lt;a href="http://dotnet.lv/blogs/vi/archive/2008/05/23/atjaunin-tais-treni-a-invent-rs.aspx"&gt;read more&lt;/a&gt;)&lt;img src="http://dotnet.lv/aggbug.aspx?PostID=851" 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/.NET3.5/default.aspx">.NET3.5</category><category domain="http://dotnet.lv/blogs/vi/archive/tags/Visual+Studio+2008/default.aspx">Visual Studio 2008</category><category domain="http://dotnet.lv/blogs/vi/archive/tags/Patterns+_2600_amp_3B00_+Practices/default.aspx">Patterns &amp;amp; Practices</category></item><item><title>Advancēts treniņa inventārs</title><link>http://dotnet.lv/blogs/vi/archive/2008/04/13/advanc-ts-treni-a-invent-rs.aspx</link><pubDate>Sun, 13 Apr 2008 18:54:58 GMT</pubDate><guid isPermaLink="false">245d81fd-b543-41d7-a051-d8603c6e9e31:631</guid><dc:creator>valdis.iljuconoks</dc:creator><slash:comments>9</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnet.lv/blogs/vi/rsscomments.aspx?PostID=631</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnet.lv/blogs/vi/commentapi.aspx?PostID=631</wfw:comment><comments>http://dotnet.lv/blogs/vi/archive/2008/04/13/advanc-ts-treni-a-invent-rs.aspx#comments</comments><description>&lt;p&gt;Evanģēlistu grupa Microsoft koorporācijā ir izlaidusi jaunu treniņa inventāru, kas ir advancēts līdz pēdējām .Net 3.5 Framework pievienojumiem.&lt;/p&gt; &lt;p&gt;Treniņu laikā Jums būs iespēja apskatīt tādas lieliskas tehnoloģijas, kā:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;ASP.NET MVC Framework&lt;/li&gt; &lt;li&gt;ASP.NET Dynamic Data&lt;/li&gt; &lt;li&gt;ASP.NET Ajax History&lt;/li&gt; &lt;li&gt;ASP.NET Silverlight Controls&lt;/li&gt; &lt;li&gt;ADO.NET Data Services&lt;/li&gt; &lt;li&gt;ADO.NET Entity Framework&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;Inventārs atrodas &lt;a href="http://download.microsoft.com/download/2/a/b/2ab3c38f-3a13-4c48-bdaa-5d989a33baac/NETFramework35Enhancements_TrainingKit.exe"&gt;šeit&lt;/a&gt;. Treniņa piederumi pārējam .Net Framework 3.5 sadaļām ir iegūstama &lt;a href="http://www.dotnet.lv/blogs/vi/archive/2007/11/26/treni-a-invent-rs.aspx"&gt;šeit&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnet.lv/aggbug.aspx?PostID=631" 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/.NET3.5/default.aspx">.NET3.5</category><category domain="http://dotnet.lv/blogs/vi/archive/tags/Visual+Studio+2008/default.aspx">Visual Studio 2008</category><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/MVC/default.aspx">MVC</category></item><item><title>Atslogo tīmekļu servisus ar kešu</title><link>http://dotnet.lv/blogs/vi/archive/2008/04/05/atslogo-t-mek-u-servisus-ar-ke-u.aspx</link><pubDate>Sat, 05 Apr 2008 20:45:00 GMT</pubDate><guid isPermaLink="false">245d81fd-b543-41d7-a051-d8603c6e9e31:560</guid><dc:creator>valdis.iljuconoks</dc:creator><slash:comments>29</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnet.lv/blogs/vi/rsscomments.aspx?PostID=560</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnet.lv/blogs/vi/commentapi.aspx?PostID=560</wfw:comment><comments>http://dotnet.lv/blogs/vi/archive/2008/04/05/atslogo-t-mek-u-servisus-ar-ke-u.aspx#comments</comments><description>&lt;p&gt;Yo!&lt;/p&gt; &lt;p&gt;Sen nekas nav rakstīts... Daudz laika ir aizgājis &lt;a href="http://www.microsoft.com/heroeshappenhere/default.mspx"&gt;HHH&lt;/a&gt; pasākuma sagatavošanās darbiem, kā arī &lt;a href="http://www.dotnet.lv/events/"&gt;Community Launch&lt;/a&gt; notikumam.&lt;/p&gt; &lt;p&gt;Ta kā TFS timesheet 3. daļa vēl ir rakstīšanas stadijā (&lt;a href="http://www.dotnet.lv/blogs/vi/archive/2008/02/22/tfs-laika-uzskaite-d1.aspx"&gt;1.&lt;/a&gt; un &lt;a href="http://www.dotnet.lv/blogs/vi/archive/2008/02/25/tfs-laika-uzskaite-d2.aspx"&gt;2.&lt;/a&gt; apskatāma zem linkiem), šoreiz gribēju pieminēt vienu interesantu lietu, par ko biju piemirsis un varbūt, ka arī Jums šis liksies sen aizmirsts triks :)&lt;/p&gt; &lt;p&gt;Tātad problēmas pamatbūtība bija: ir serviss, kas atgriež baitu plūsmu, kas patiesībā ir Pdf formāta izdruka. Risināmā problēma izvirzīja prasību, ka servisa izsaukumu skaits ir jāsamazina, ja serviss ir izpildījies sekmīgi. Samazināt izsaukumu skaitu nozīmē neizsaukt servisu atkārtoti, ja operāciju ir bijusi sekmīga. Kopīgās diskusijās ar kolēģiem (viens no viņiem bija &lt;a href="http://www.dotnet.lv/blogs/am/default.aspx"&gt;Andrejs&lt;/a&gt;) nonācām pie secinājuma, ka problēmas būtība bija uzstādīta nepareiza. Pēc pāris domu gājieniem un potenciālo nākamo problēmu apspriešanas pie klienta puses keša, mēs izsecinājām, ka pareizā problēmas nostādne ir: atvieglot servisa darbību ar keša palīdzību, neizpildot sūri grūto darbu (izdrukas ģenerācija no kristāla šablona uz Pdf plūsmu), bet gan sekmīgo atbildi kešot servera galā.&lt;/p&gt; &lt;p&gt;Šim nolūkam mums ērti noder &lt;span&gt;&lt;font face="Courier New" size="2"&gt;WebMethod&lt;/font&gt;&lt;/span&gt; atribūta papildus iespējas.&lt;/p&gt; &lt;p&gt;Tātad, ja mēs vēlamies sekmīgo servisa izsaukumu iekešot, mums būs nepieciešams iestatīt &lt;font face="Courier New" size="2"&gt;CacheDuration&lt;/font&gt; īpašības vērtību.&lt;/p&gt; &lt;p&gt;Tātad scenārijs ir sekojošs: pieņemsim, ka mums ir serviss, kas saņem 2 parametris, kaut ko ar tiem izdara un atgriež atbildi.&lt;/p&gt; &lt;p&gt;Zemāk ir parādīts tīmekļa servisa kods:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;pre class="code"&gt;[&lt;span&gt;WebMethod &lt;/span&gt;(EnableSession = &lt;span style="color:blue;"&gt;false&lt;/span&gt;, &lt;b&gt;CacheDuration = 5&lt;/b&gt;)]&lt;br /&gt;&lt;span style="color:blue;"&gt;public string &lt;/span&gt;SessionLessOperation(&lt;span style="color:blue;"&gt;int &lt;/span&gt;param1, &lt;span style="color:blue;"&gt;string &lt;/span&gt;param2)&lt;br /&gt;{&lt;br /&gt;    WriteLog (&lt;span&gt;&amp;quot;Doing work in state less manner...&amp;quot;&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;    &lt;span style="color:blue;"&gt;return string&lt;/span&gt;.Format (&lt;span&gt;&amp;quot;You provided in session state &amp;#39;{0}&amp;#39; and &amp;#39;{1}&amp;#39; parameters.&amp;quot;&lt;br /&gt;        &lt;/span&gt;, param1, param2);&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Tīmekļa servisam atbildi ir &amp;quot;jāpatur prātā&amp;quot; 5 sekundes. Lai to mēs vizuāli varētu novērtēt, izveidojam testa klientu mūsu izveidotajam servisam.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.dotnet.lv/blogs/vi/WindowsLiveWriter/Atslogoservisus_1311A/image_4.png" rel="lightbox"&gt;&lt;img src="http://www.dotnet.lv/blogs/vi/WindowsLiveWriter/Atslogoservisus_1311A/image_thumb_1.png" style="border-width:0px;" alt="" border="0" height="228" width="457" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Tātad palaižam testa klientu un padarbināt nedaudz to.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.dotnet.lv/blogs/vi/WindowsLiveWriter/Atslogoservisus_1311A/image_6.png" rel="lightbox"&gt;&lt;img src="http://www.dotnet.lv/blogs/vi/WindowsLiveWriter/Atslogoservisus_1311A/image_thumb_2.png" style="border-width:0px;" alt="image" border="0" height="228" width="457" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;No testa klienta redzams, ka patiesībā, visas darbības, kas tika izpildītas pēc 41 sekundes līdz 55 - patiesībā neizsauca nemaz tīmekļa servisa darbību, kas nozīmē, ka pieprasījums nemaz neskāra servisu un kešings notiek zemākā līmenī (Asp.Net handlera līmenī).&lt;/p&gt;
&lt;p&gt;Nākamais jautājums, kas mani ieinteresēja ir - sesijas. Kas notiek ar sesijām, ja tīmekļa servisam tādas ir deklarētas ar &lt;font face="Courier New" size="2"&gt;EnableSession = &lt;/font&gt;&lt;span style="color:blue;"&gt;&lt;font face="Courier New" size="2"&gt;true&lt;/font&gt; &lt;/span&gt;īpašības palīdzību.&lt;/p&gt;
&lt;p&gt;Otra tīmekļa metode izsaktās šāda:&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;pre class="code"&gt;[&lt;span&gt;WebMethod&lt;/span&gt;(EnableSession = &lt;span style="color:blue;"&gt;true&lt;/span&gt;, CacheDuration = 5)]&lt;br /&gt;&lt;span style="color:blue;"&gt;public string &lt;/span&gt;SessionStateOperation(&lt;span style="color:blue;"&gt;int &lt;/span&gt;param1, &lt;span style="color:blue;"&gt;string &lt;/span&gt;param2)&lt;br /&gt;{&lt;br /&gt;    WriteLog(&lt;span&gt;&amp;quot;Doing work in session state manner...&amp;quot;&lt;/span&gt;);&lt;br /&gt;&lt;br /&gt;    &lt;span style="color:blue;"&gt;if &lt;/span&gt;(Session[&lt;span&gt;&amp;quot;test-key&amp;quot;&lt;/span&gt;] == &lt;span style="color:blue;"&gt;null&lt;/span&gt;)&lt;br /&gt;    {&lt;br /&gt;        Session[&lt;span&gt;&amp;quot;test-key&amp;quot;&lt;/span&gt;] = &lt;span&gt;Guid&lt;/span&gt;.NewGuid();&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    &lt;span style="color:blue;"&gt;return string&lt;/span&gt;.Format (&lt;span&gt;&amp;quot;{0}: {1}\t{2}&amp;quot;&lt;/span&gt;, Session[&lt;span&gt;&amp;quot;test-key&amp;quot;&lt;/span&gt;], param1, param2);&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Šī metode izvada kādu patvaļīgi ģenerētu sesijas mainīgo, lai mēs pārliecinātos, ka tā ir tā pati sesija.&lt;/p&gt;
&lt;p&gt;Testa klienta izsaukumu šāviņš:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.dotnet.lv/blogs/vi/WindowsLiveWriter/Atslogoservisus_1311A/image_8.png" rel="lightbox"&gt;&lt;img src="http://www.dotnet.lv/blogs/vi/WindowsLiveWriter/Atslogoservisus_1311A/image_thumb_3.png" style="border-width:0px;" alt="image" border="0" height="232" width="465" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Kā redzams, tad arī tīmekļa serviss, kas ir ieslēgta sesijas uzglabāšana tīri labi tiek galā ar servera puses kešingu.&lt;/p&gt;
&lt;p&gt;Lai vēl konkrētāk pārbaudītu no sesijas atkarīgo servisu kešosas mehānismu ieviesīsim vēlvienu &amp;quot;klientu&amp;quot;:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.dotnet.lv/blogs/vi/WindowsLiveWriter/Atslogoservisus_1311A/image_10.png" rel="lightbox"&gt;&lt;img src="http://www.dotnet.lv/blogs/vi/WindowsLiveWriter/Atslogoservisus_1311A/image_thumb.png" style="border-width:0px;" alt="image" border="0" height="288" width="465" /&gt;&lt;/a&gt; &lt;/p&gt;
&lt;p&gt;Btw, lai sekmīgi strādātu sesijas instance uz servera, nepietiek tikai ar tīru ģenerēto proxy klientu, pēc proxy klienta klases inicializācijas ir jāizpilda šāds kods, lai sekmīgi klients varētu uzglabāt servera ģenerētos sesijas identifikatorus (&lt;i&gt;cookies&lt;/i&gt;):&lt;/p&gt;&lt;pre class="code"&gt;srv.CookieContainer = &lt;span style="color:blue;"&gt;new &lt;/span&gt;&lt;span&gt;CookieContainer&lt;/span&gt;();&lt;/pre&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Jautājums: kas notiek ar WCF servisiem un kāds tur ir atbalsts kešingam? Ātri pārmeklējot MSDN specifikācijas, neko prātīgu uz pirmo sitienu neatradu. Tas ko ātrumā varēja izdomāt ir:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Izmantojot HttpRuntime objekti nokļūt līdz Asp.Net kešinga objektam&amp;nbsp; un izmantot to; 
&lt;/li&gt;&lt;li&gt;Izmantot kaut kādu trešās puses kešošanas risinājumu (Enterprise Library, piemēram); 
&lt;/li&gt;&lt;li&gt;Ieviest savu implementāciju kešošanas problēmas risinājumam, parasti tas reducējas līdz objekta &lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;span&gt;Dictionary&lt;/span&gt;&amp;lt;&lt;span style="color:blue;"&gt;string&lt;/span&gt;, &lt;span style="color:blue;"&gt;object&lt;/span&gt;&amp;gt;&lt;/font&gt;&lt;/font&gt; izmantošanai;&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;Pirmais risinājums nav elegants ar to, ka, tas piešķir zināmu lomu IIS un HTTP terminiem tavā risinājumā. Trešais risinājums parasti beidzas ar &amp;#39;quick and dirty solution&amp;#39; (ko es parasti gan dēvēju par &amp;#39;fast non solution&amp;#39; :)), kas parasti neatbalsta keša atkarību mehānismus (dependency policy) vai arī keša izbeigšanās politikas (expiration policy).&lt;/p&gt;
&lt;p&gt;However, sameklēju inetā nelielu &lt;a href="http://wcf.netfx3.com/files/folders/operation_invocation/entry3785.aspx"&gt;piemēru&lt;/a&gt;, kas risina tieši šo problēmu ar interfeisa &lt;font size="2"&gt;&lt;font face="Courier New"&gt;&lt;span&gt;IOperationInvoker&lt;/span&gt;&lt;/font&gt;&lt;/font&gt; palīdzību.&lt;/p&gt;
&lt;p&gt;Par šo problēmu iespējams, ka nepietika laika norealizēt pietiekoši smuki jeb arī iespēja netika izmantota pietiekoši aktīvi pirms tam, un .Net komanda nolēma risinājumu pataupīt nākamajām versijām.&lt;/p&gt;
&lt;p&gt;Toties WCF ir daudzas citas labas īpašības :)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnet.lv/aggbug.aspx?PostID=560" 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/Caching/default.aspx">Caching</category><category domain="http://dotnet.lv/blogs/vi/archive/tags/Web+Services/default.aspx">Web Services</category></item><item><title>Darbi</title><link>http://dotnet.lv/blogs/vi/archive/2008/02/20/darbi.aspx</link><pubDate>Wed, 20 Feb 2008 08:34:59 GMT</pubDate><guid isPermaLink="false">245d81fd-b543-41d7-a051-d8603c6e9e31:431</guid><dc:creator>valdis.iljuconoks</dc:creator><slash:comments>2</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnet.lv/blogs/vi/rsscomments.aspx?PostID=431</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnet.lv/blogs/vi/commentapi.aspx?PostID=431</wfw:comment><comments>http://dotnet.lv/blogs/vi/archive/2008/02/20/darbi.aspx#comments</comments><description>&lt;p&gt;Pirms laika uzskaites 2-ās daļas rakstīšanas, kuru es minēji &lt;a href="http://www.dotnet.lv/blogs/vi/archive/2008/02/16/tfs-amp-laika-uzskaite.aspx"&gt;šeit&lt;/a&gt;, bija doma nedaudz paeksperimentēt ar 2008 serveri, kā rezultātā pašlaik esmu nokrāvies ar reinstalācijas darbiem.&lt;/p&gt; &lt;p&gt;Rakstiņu ar sīkāku izklāstu par pielietotajām tehnoloģijām arhitektūru un niansēm pašlaik plānoju aprakstīt tikai nākamnedēļ :(&lt;/p&gt; &lt;p&gt;Līdz tam secinu, ka &lt;a href="http://www.dotnet.lv/blogs/vi/archive/2008/02/18/ut3.aspx"&gt;UT3&lt;/a&gt; ir pagaidām ļoti nestabila spēle attiecībā pret darbināšanu dažādās vidēs. Nu, lai pienācis arī spēļu industrijai nerakstūrīgas tendences: gaidam UT3 Sp1 :)&lt;/p&gt; &lt;p&gt;līdz tam varētu ieteikt noteikti &lt;a href="http://www.hanselman.com/blog/ASPNET35ExtensionsPlusMVCHowToScreencast.aspx"&gt;palūrēt&lt;/a&gt; Asp.Net MVC jauno dzinēju, kuru ļoti uzsaktāmi demonstrē &lt;a href="http://www.hanselman.com/blog/"&gt;Skots Hanselmans&lt;/a&gt;.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnet.lv/aggbug.aspx?PostID=431" 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/.NET3.5/default.aspx">.NET3.5</category><category domain="http://dotnet.lv/blogs/vi/archive/tags/Other/default.aspx">Other</category><category domain="http://dotnet.lv/blogs/vi/archive/tags/MVC/default.aspx">MVC</category></item><item><title>Kā skaņot Global.asax.cs līmeņa notikumus</title><link>http://dotnet.lv/blogs/vi/archive/2007/08/16/k-ska-ot-global-asax-cs-l-me-a-notikumus.aspx</link><pubDate>Thu, 16 Aug 2007 04:57:00 GMT</pubDate><guid isPermaLink="false">245d81fd-b543-41d7-a051-d8603c6e9e31:32</guid><dc:creator>valdis.iljuconoks</dc:creator><slash:comments>0</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnet.lv/blogs/vi/rsscomments.aspx?PostID=32</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnet.lv/blogs/vi/commentapi.aspx?PostID=32</wfw:comment><comments>http://dotnet.lv/blogs/vi/archive/2007/08/16/k-ska-ot-global-asax-cs-l-me-a-notikumus.aspx#comments</comments><description>&lt;span style="mso-ansi-language:LV;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Līdz ar Visual Studio 2005 Microsoft ir izstrādājis &lt;i style="mso-bidi-font-style:normal;"&gt;Asp.Net Development Server&lt;/i&gt;, kas dod iespēju skaņot Asp.Net sistēmas bez IIS klātbūtnes uz izstrādātāja mašīnas.&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:LV;"&gt;&lt;font face="Calibri" size="3"&gt;Tomēr ir situācijas, kad sistēma ir palaižama tikai IIS vidē. Šādos gadījumos ir nedaudz problemātiski skaņot un atkļūdot Global.asax līmeņa notikumus, kā piemēram &lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;FONT-FAMILY:&amp;#39;Andale Mono&amp;#39;;mso-ansi-language:LV;mso-bidi-font-size:11.0pt;"&gt;Application_Start()&lt;/span&gt;&lt;span style="mso-ansi-language:LV;"&gt;&lt;font face="Calibri" size="3"&gt; notikumu. Tādiem notikumiem kā &lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;FONT-FAMILY:&amp;#39;Andale Mono&amp;#39;;mso-ansi-language:LV;mso-bidi-font-size:11.0pt;"&gt;Session_Start()&lt;/span&gt;&lt;span style="mso-ansi-language:LV;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt; ir iespējams ”pievienoties” arī pēc Application Domain ielādes.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:LV;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Notikums Asp.Net sistēmā tik izsaukts pie pirmā pieprasījuma sistēmai, kurai Application Domain vēl nav ielādēts. Kā rīkoties šādos gadījumos? Var mēģināt no Visual Studio laist projektu Debug režīmā (F5), bet citreiz arī šajos gadījumos esam saskārušies ar problēmu, ka Visual Studio izstrādes videi ir problēmas pievienoties IIS procesam sistēmas skaņošanai un atkļūdošanai.&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:LV;"&gt;&lt;font face="Calibri" size="3"&gt;Tātad problēma ir, ka &lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE:9pt;FONT-FAMILY:&amp;#39;Andale Mono&amp;#39;;mso-ansi-language:LV;mso-bidi-font-size:11.0pt;"&gt;Application_Start()&lt;/span&gt;&lt;font face="Calibri"&gt;&lt;span style="FONT-SIZE:9pt;mso-ansi-language:LV;mso-bidi-font-size:11.0pt;"&gt; &lt;/span&gt;&lt;span style="mso-ansi-language:LV;"&gt;&lt;font size="3"&gt;notikuma skaņošanai ir nepieciešams jau Asp.Net process (aspnet_wp.exe vai w3wp.exe). Pēc IIS servisa restartēšanas šis process nav uzstartēts.&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;span style="mso-ansi-language:LV;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Alternatīvais ceļš kā „pieslēgties” Asp.Net procesam pirms Application Domain ielādes jeb pirmā pieprasījuma sistēmai ir izsaukt Asp.Net ISAPI filtra darbību neizsaucot sistēmas ielādi.&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:LV;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Tagad pa soļiem. &lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:LV;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Ja Asp.Net sistēma ir izpildes režīmā IIS process eksistē uz servera:&lt;/font&gt;&lt;/font&gt;&lt;/span&gt; 
&lt;p&gt;&lt;a href="http://dotnet.lv/blogs/vi/1.jpg"&gt;&lt;img src="http://dotnet.lv/blogs/vi/1.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="mso-ansi-language:LV;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Pēc „iisreset” komandas izpildes process tiek slēgts. Tas ir labi redzams no Visual Studio Debug-&amp;gt;Attach to Process... dialoga loga:&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="mso-ansi-language:LV;"&gt;&lt;font face="Calibri" size="3"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="mso-ansi-language:LV;"&gt;&lt;a href="http://dotnet.lv/blogs/vi/2.jpg"&gt;&lt;img src="http://dotnet.lv/blogs/vi/2.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="mso-ansi-language:LV;"&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;span style="mso-ansi-language:LV;"&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="mso-ansi-language:LV;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Lai pieslēgtos IIS procesam pirms Asp.Net sistēmas uzstartēšanās, ir nepieciešams izsaukt Asp.Net ISAPI filtra darbību, ko var izdarīt pieprasot neeksistējošu .aspx lapu, jo IIS meta bāzē ir nokonfigurēts, ka failus ar paplašinājumu „.aspx” apstrādā Asp.Net ISAPI filtrs, kas nozīmē, ka neatkarīgi no tā vai fails eksistē vai nē, Asp.Net ISAPI filtrs tiks iedarbināts līdz ar IIS procesu.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p class="MsoNormal" style="MARGIN:0cm 0cm 0pt;LINE-HEIGHT:normal;"&gt;&lt;span style="mso-ansi-language:LV;"&gt;&lt;font face="Calibri" size="3"&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;span style="mso-ansi-language:LV;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;a href="http://dotnet.lv/blogs/vi/3.jpg"&gt;&lt;img src="http://dotnet.lv/blogs/vi/3.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:LV;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:LV;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-theme-font:minor-bidi;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;No Visual Studio Debug-&amp;gt;Attach to Process... dialoga loga ir redzams, ka pēc falšā pieprasījuma ir uzsācis darbību Asp.Net ISAPI filtrs un līdz ar to arī IIS process.&lt;br /&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:LV;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:LV;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-theme-font:minor-bidi;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:LV;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:LV;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-theme-font:minor-bidi;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:LV;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:LV;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-theme-font:minor-bidi;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:LV;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:LV;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-theme-font:minor-bidi;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;span style="mso-ansi-language:LV;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:LV;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-theme-font:minor-bidi;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;&lt;a href="http://dotnet.lv/blogs/vi/4.jpg"&gt;&lt;br /&gt;&lt;img src="http://dotnet.lv/blogs/vi/4.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:LV;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:LV;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-theme-font:minor-bidi;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;span style="mso-ansi-language:LV;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:LV;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-theme-font:minor-bidi;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:LV;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:LV;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-theme-font:minor-bidi;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:LV;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:LV;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-theme-font:minor-bidi;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:LV;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:LV;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-theme-font:minor-bidi;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:LV;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-theme-font:minor-bidi;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;Pievienojoties (Attach) šim procesam un pēc tam pieprasot reālās sistēmas pieprasījumu ir iespējams nokļūt skaņošanas režīmā Global.asax faila notikumos.&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:LV;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:LV;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-theme-font:minor-bidi;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:LV;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-theme-font:minor-bidi;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:LV;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:LV;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-theme-font:minor-bidi;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:LV;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-theme-font:minor-bidi;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:LV;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:LV;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-theme-font:minor-bidi;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:LV;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-theme-font:minor-bidi;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;span style="mso-ansi-language:LV;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:LV;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-theme-font:minor-bidi;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:LV;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-theme-font:minor-bidi;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;span style="mso-ansi-language:LV;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:LV;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-theme-font:minor-bidi;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:LV;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-theme-font:minor-bidi;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;&lt;a href="http://dotnet.lv/blogs/vi/5.jpg"&gt;&lt;br /&gt;&lt;img src="http://dotnet.lv/blogs/vi/5.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:LV;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:LV;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-theme-font:minor-bidi;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:LV;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-theme-font:minor-bidi;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="mso-ansi-language:LV;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:LV;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-theme-font:minor-bidi;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:LV;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-theme-font:minor-bidi;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:LV;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:LV;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-theme-font:minor-bidi;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:LV;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-theme-font:minor-bidi;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:LV;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:LV;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-theme-font:minor-bidi;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;&lt;span style="FONT-SIZE:11pt;LINE-HEIGHT:115%;FONT-FAMILY:&amp;#39;Calibri&amp;#39;,&amp;#39;sans-serif&amp;#39;;mso-ansi-language:LV;mso-ascii-theme-font:minor-latin;mso-fareast-font-family:Calibri;mso-fareast-theme-font:minor-latin;mso-hansi-theme-font:minor-latin;mso-bidi-font-family:&amp;#39;Times New Roman&amp;#39;;mso-bidi-theme-font:minor-bidi;mso-fareast-language:EN-US;mso-bidi-language:AR-SA;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="mso-ansi-language:LV;"&gt;&lt;font size="3"&gt;&lt;font face="Calibri"&gt;Pieļauju, ka eksistē arī citas alternatīvās metodes, kādā veidā iekļūt šajos notikumos, bet šī man šķiet visātrākā un vienkāršākā.&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnet.lv/aggbug.aspx?PostID=32" width="1" height="1"&gt;</description><category domain="http://dotnet.lv/blogs/vi/archive/tags/.NET2.0/default.aspx">.NET2.0</category><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/Debugging/default.aspx">Debugging</category></item><item><title>AspNet lokalizācijas problēma</title><link>http://dotnet.lv/blogs/vi/archive/2007/08/15/aspnet-lokaliz-cijas-probl-ma.aspx</link><pubDate>Wed, 15 Aug 2007 08:42:00 GMT</pubDate><guid isPermaLink="false">245d81fd-b543-41d7-a051-d8603c6e9e31:29</guid><dc:creator>valdis.iljuconoks</dc:creator><slash:comments>12</slash:comments><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnet.lv/blogs/vi/rsscomments.aspx?PostID=29</wfw:commentRss><wfw:comment xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://dotnet.lv/blogs/vi/commentapi.aspx?PostID=29</wfw:comment><comments>http://dotnet.lv/blogs/vi/archive/2007/08/15/aspnet-lokaliz-cijas-probl-ma.aspx#comments</comments><description>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span&gt;Doma pārtaisīt lokalizācijas
jeb resursu ieguvi Asp.Net vides projektos man radās jau sen, bet tikai nesen
nonācām līdz reālām darbībām resursu piegādātāja (angl. &lt;i&gt;provider&lt;/i&gt;) izstrādē un pielāgošanā. Noklusēto jeb uz resx failiem bāzēto
resursu piegādātāju aizvietošanas ieguvumus atstāsim citai reizei.&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span&gt;Asp.Net lokalizācijas
objektu modelis ir veidots tā, ak to var ērti paplašināt un izstrādāt savu
resursu ielādi, meklēšanas un uzglabāšanas mehānismu – implementējot noteiktus &lt;/span&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Andale Mono&amp;#39;;"&gt;System.Resources&lt;/span&gt;&lt;span style="font-size:10pt;font-family:Consolas;"&gt; un &lt;/span&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Andale Mono&amp;#39;;"&gt;System.Web.Compilation&lt;/span&gt;&lt;span&gt; interfeisus.&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span&gt;Objekta modeļa
paplašināšanas nianses un knifiņi, lai pagaidām paliek citai reizei. Tas ko
gribēju pastāstīt ir Asp.Net aplikācijas kompilācijas laika notikumi jūsu
providerī.&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span&gt;Lokalizēt Asp.Net aplikāciju
var dažādos veidos, ļoti būtiska nianse ir lokalizācija ar netiešo (angl. &lt;i&gt;implicit&lt;/i&gt;) resursa norādi:&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Andale Mono&amp;#39;;color:blue;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Andale Mono&amp;#39;;"&gt;asp&lt;/span&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Andale Mono&amp;#39;;color:blue;"&gt;:&lt;/span&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Andale Mono&amp;#39;;"&gt;Localize&lt;/span&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Andale Mono&amp;#39;;"&gt; &lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Andale Mono&amp;#39;;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:red;"&gt;ID&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;labHello&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Andale Mono&amp;#39;;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:red;"&gt;runat&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Andale Mono&amp;#39;;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:red;"&gt;Text&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;[labHello]&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Andale Mono&amp;#39;;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span&gt;meta&lt;/span&gt;&lt;span style="color:blue;"&gt;:&lt;/span&gt;&lt;span style="color:red;"&gt;resourcekey&lt;/span&gt;&lt;span style="color:blue;"&gt;=&amp;quot;labHelloResource1&amp;quot;&lt;/span&gt; /&lt;span style="color:blue;"&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span&gt;Šī Asp.Net koda kompilācijas
laikā kompilators izsaukts Asp.Net aplikācijā nokonfigurēto resursu piegādātāju,
lai pārliecinātos, ka resursu glabātuvē eksistē šāds resursus (resursi tiek
identificēti pēc &lt;/span&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Andale Mono&amp;#39;;"&gt;meta&lt;/span&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Andale Mono&amp;#39;;color:blue;"&gt;:&lt;/span&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Andale Mono&amp;#39;;color:red;"&gt;resourcekey&lt;/span&gt;&lt;span&gt; atribūta vērtības). &lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Andale Mono&amp;#39;;color:blue;"&gt;private&lt;/span&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Andale Mono&amp;#39;;"&gt; &lt;span&gt;Localize&lt;/span&gt; __BuildControllabHelloLocal()&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Andale Mono&amp;#39;;"&gt;{&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Andale Mono&amp;#39;;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span&gt;Localize&lt;/span&gt; __ctrl = &lt;span style="color:blue;"&gt;new&lt;/span&gt;
&lt;span&gt;Localize&lt;/span&gt;();&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Andale Mono&amp;#39;;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;base&lt;/span&gt;.labHelloLocal = __ctrl;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Andale Mono&amp;#39;;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;__ctrl.ID = &lt;span&gt;&amp;quot;labHelloLocal&amp;quot;&lt;/span&gt;;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Andale Mono&amp;#39;;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;__ctrl.Text = &lt;span&gt;&amp;quot;[labHelloLocal]&amp;quot;&lt;/span&gt;;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Andale Mono&amp;#39;;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;__ctrl.Text = &lt;span&gt;Convert&lt;/span&gt;.ToString(&lt;span style="color:blue;"&gt;base&lt;/span&gt;.GetLocalResourceObject(&lt;span&gt;&amp;quot;labHelloLocalResource1.Text&amp;quot;&lt;/span&gt;),
&lt;span&gt;CultureInfo&lt;/span&gt;.CurrentCulture);&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Andale Mono&amp;#39;;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;return&lt;/span&gt; __ctrl;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Andale Mono&amp;#39;;"&gt;}&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span&gt;Situācija ir sekojoša, ja
kompilācijas laikā resursa piegādātājs nevar piegādāt resursu ar atbilstošo
identifikatoru, tad Asp.Net kompilators kompilējamajā lapā nemaz nekompilē resursa
piegādātāja izsaukumu:&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Andale Mono&amp;#39;;color:blue;"&gt;private&lt;/span&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Andale Mono&amp;#39;;"&gt; &lt;span&gt;Localize&lt;/span&gt; __BuildControllabHelloLocal()&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Andale Mono&amp;#39;;"&gt;{&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Andale Mono&amp;#39;;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span&gt;Localize&lt;/span&gt; __ctrl = &lt;span style="color:blue;"&gt;new&lt;/span&gt;
&lt;span&gt;Localize&lt;/span&gt;();&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Andale Mono&amp;#39;;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;base&lt;/span&gt;.labHelloLocal = __ctrl;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Andale Mono&amp;#39;;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;__ctrl.ID = &lt;span&gt;&amp;quot;labHelloLocal&amp;quot;&lt;/span&gt;;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Andale Mono&amp;#39;;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;__ctrl.Text = &lt;span&gt;&amp;quot;[labHelloLocal]&amp;quot;&lt;/span&gt;;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Andale Mono&amp;#39;;"&gt;&lt;span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="color:blue;"&gt;return&lt;/span&gt; __ctrl;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Andale Mono&amp;#39;;"&gt;}&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span&gt;Par attiecīgā resursa
pieejamību kompilācijas laikā biju domājis &lt;/span&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Andale Mono&amp;#39;;color:blue;"&gt;public&lt;/span&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Andale Mono&amp;#39;;"&gt; System.Resources.&lt;span&gt;IResourceReader&lt;/span&gt; ResourceReader {get;}&lt;/span&gt;&lt;span style="font-size:9pt;font-family:&amp;#39;Andale Mono&amp;#39;;"&gt; &lt;/span&gt;&lt;span&gt;izsaukumu resursa piegādātāja objektam. Šo
kompilācijas laika problēmu varētu atrisināt ar workaroundu, ka resursu piegādātājs
atgriež pieprasīto resursu „jebkuros apstākļos”, t.i., jebkuru resursu pēc tā identifikatora
jebkurai kultūrai. Bet šis workarounds nestrādā, jo Asp.Net aplikācijas kompilators
neizsauc resursu tieši (&lt;/span&gt;explicit&lt;span&gt;) bet gan netieši (&lt;/span&gt;implicit&lt;span&gt;). Netiešo resursu norādes koda kompilācijas laikā Asp.Net kompilators no
resursu piegādātāja saņem &lt;/span&gt;&lt;span style="font-size:8pt;font-family:&amp;#39;Andale Mono&amp;#39;;"&gt;IDictionaryEnumerator&lt;/span&gt;&lt;span&gt; &lt;span&gt;implementāciju, kas satur visus
resursu identifikatorus. Vadoties pēc attiecīgā resursa esamības šajā resursu
glabātuvē Asp.Net kompilators arī pieņem lēmumu par to, vai resursu piegādātāja
izsaukums ir jākompilē kodā vai arī nav.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoNormal" style="margin-bottom:0.0001pt;line-height:normal;"&gt;&lt;span&gt;Lietas par ko jāatceras, ja
implementē citu resursa piegādātāju:&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpFirst" style="margin-bottom:0.0001pt;text-indent:-18pt;line-height:normal;"&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span&gt;-&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Kompilācijas
laikā ir jābūt pieejamiem visiem resursiem. Tas nozīmē, ka ir jāpadomā par dienas
(jeb pareizāk sakot nakts) būvējumu loģistiku, jo pirms kompilācijas resursu piegādātājam
ir jāfunkcionē korekti (ja runa ir par datu bāzes bāzētu resursa piegādātāju).&lt;/span&gt;&lt;/p&gt;

&lt;p class="MsoListParagraphCxSpLast" style="margin-bottom:0.0001pt;text-indent:-18pt;line-height:normal;"&gt;&lt;span style="font-family:Symbol;"&gt;&lt;span&gt;-&lt;span style="font-family:&amp;#39;Times New Roman&amp;#39;;font-style:normal;font-variant:normal;font-weight:normal;font-size:7pt;line-height:normal;font-size-adjust:none;font-stretch:normal;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;Par resursu
neatrašanu kompilācijas laikā nekādu kļūdas paziņojumu nav, tas nozīmē, ka lokalizācijas
trūkumu lapā var novērot tikai izpildes (angl. &lt;i&gt;runtime&lt;/i&gt;) laikā. Šā iemesla dēļ labāk noklusēto tekstu lokalizējamajās
vietās likt kontroles identifikatoru, lai situācijās varētu viegli atšķirt un
sameklēt problemātiskos apgabalus.&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://dotnet.lv/aggbug.aspx?PostID=29" width="1" height="1"&gt;</description><category domain="http://dotnet.lv/blogs/vi/archive/tags/CSharp/default.aspx">CSharp</category><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/Localization/default.aspx">Localization</category></item></channel></rss>