<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1249800658162738924</id><updated>2012-02-15T23:35:36.197-08:00</updated><category term='jQuery tablesorter tips format method'/><category term='jQuerry'/><category term='IE7'/><category term='&quot;n columns&quot;'/><category term='asp.net dropdown apply styles text aligment'/><category term='Typed dataset identiifers update problem'/><category term='over web'/><category term='group by'/><category term='OriginalSource proprty'/><category term='reload'/><category term='Math.Round'/><category term='anonymous types'/><category term='Min function'/><category term='windows phone 7'/><category term='developer tools'/><category term='colspan'/><category term='service'/><category term='UK'/><category term='OnManipulationStarted'/><category term='enumerator drop down combo box control .net'/><category term='ASP.Net problem'/><category term='repeater'/><category term='Firefox'/><category term='wp7'/><category term='Tose Proeski'/><category term='Event Handlers'/><category term='Linq'/><category term='Sliverlight'/><category term='partial class'/><category term='Regular Expresions Alternation Pipe .Net'/><category term='training kit'/><category term='accelerometer'/><category term='winmo'/><category term='asp.net'/><category term='MTS 064 Sucks'/><category term='.net'/><category term='attr'/><category term='tombstoned'/><category term='mix 10 videos'/><category term='YSlow'/><category term='isolated storage'/><category term='training'/><category term='min selection criteria'/><category term='huge entity list'/><title type='text'>Aleksandar Panov @ DotNet</title><subtitle type='html'>My blog about .net programming</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://aleksandar-panov-at-dotnet.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249800658162738924/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://aleksandar-panov-at-dotnet.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Aleksandar Panov</name><uri>http://www.blogger.com/profile/15150907589314602227</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://4.bp.blogspot.com/_CUpmV4wxEhg/S6UIaQTfTII/AAAAAAAAAEs/_Y23kPMzg08/S220/18834_1303581223581_1051981853_940531_2579075_n.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>23</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1249800658162738924.post-8328838973041138811</id><published>2010-11-19T01:00:00.000-08:00</published><updated>2011-04-10T14:39:11.581-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='Math.Round'/><title type='text'>Math.Round rounds numbers, but in which way?!!</title><content type='html'>I was sure I knew how it rounds fractional parts of number and then I got weird results in some import batch.&lt;br /&gt;&lt;br /&gt;So, let's look at the example.&lt;br /&gt;&lt;pre name="code" class="csharp"&gt;  &lt;br /&gt;Math.Round(1.5) //goes to 2, right?&lt;br /&gt;Math.Round(2.5) //goes to 3, right? Wrong!&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Go back to method definition on MSDN and read about method definition and return value once more - &lt;a href="http://msdn.microsoft.com/en-us/library/3s2d3xkk.aspx"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;pre name="code" class="csharp"&gt;  &lt;br /&gt;public static decimal Round(&lt;br /&gt;       decimal d&lt;br /&gt;)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-style:italic;"&gt;"The integer nearest parameter d. If the fractional component of d is halfway between two integers, one of which is even and the other odd, &lt;span style="font-weight:bold;"&gt;then the even number is returned&lt;/span&gt;."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Okay, let's clarify rule.&lt;br /&gt;&lt;pre name="code" class="csharp"&gt;  &lt;br /&gt;Math.Round(1.5) //goes to 2&lt;br /&gt;Math.Round(2.5) //goes to 2 !!&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Very strange rule if you ask me.&lt;br /&gt;&lt;br /&gt;Have a nice day.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249800658162738924-8328838973041138811?l=aleksandar-panov-at-dotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aleksandar-panov-at-dotnet.blogspot.com/feeds/8328838973041138811/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249800658162738924&amp;postID=8328838973041138811' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249800658162738924/posts/default/8328838973041138811'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249800658162738924/posts/default/8328838973041138811'/><link rel='alternate' type='text/html' href='http://aleksandar-panov-at-dotnet.blogspot.com/2010/11/mathround-rounds-numbers-but-in-which.html' title='Math.Round rounds numbers, but in which way?!!'/><author><name>Aleksandar Panov</name><uri>http://www.blogger.com/profile/15150907589314602227</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://4.bp.blogspot.com/_CUpmV4wxEhg/S6UIaQTfTII/AAAAAAAAAEs/_Y23kPMzg08/S220/18834_1303581223581_1051981853_940531_2579075_n.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249800658162738924.post-3814603085519447663</id><published>2010-09-29T04:26:00.000-07:00</published><updated>2011-03-14T08:10:12.322-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='windows phone 7'/><category scheme='http://www.blogger.com/atom/ns#' term='wp7'/><category scheme='http://www.blogger.com/atom/ns#' term='tombstoned'/><category scheme='http://www.blogger.com/atom/ns#' term='isolated storage'/><title type='text'>State management in Windows Phone 7</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_CUpmV4wxEhg/TKMp90jZECI/AAAAAAAAAFc/Gu-O3Hqllfo/s1600/images.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 194px; height: 259px;" src="http://2.bp.blogspot.com/_CUpmV4wxEhg/TKMp90jZECI/AAAAAAAAAFc/Gu-O3Hqllfo/s320/images.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5522303710142205986" /&gt;&lt;/a&gt;&lt;br /&gt;There are 2 types of states you want to save on windows phone 7. One is when user leaves your application and another one is when your application is tombstoned (deactivated by launching some other application from shell, like phone is ringing, phone is locked and so on).&lt;br /&gt;&lt;br /&gt;In a first case persistent data is saved into Isolated storage.  Using of isolated storage is covered deeply in a number of places on net. So, in this case I put as a reference following &lt;a href="http://weblogs.asp.net/gunnarpeipman/archive/2010/05/06/windows-phone-7-development-using-isolated-storage.aspx"&gt;link&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;Small hint: all the data you save to isolated storage must be serializable. &lt;br /&gt;&lt;br /&gt;Another hint - how to check is entity seriazable or not - &lt;br /&gt;&lt;pre name="code" class="csharp"&gt;  &lt;br /&gt;private static bool IsSerializable(T obj)&lt;br /&gt;{&lt;br /&gt;    return ((obj is ISerializable) || (Attribute.IsDefined(typeof (T), typeof (SerializableAttribute))));&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;In a case another app forces your application closing deactivation event occurs and your handler on this event in app.xaml is executed. Keep in mind following - you have &lt;span style="font-weight:bold;"&gt;only 10 seconds&lt;/span&gt; to save your transient data. If you don't save them in 10 seconds data is discarded and exception raises.&lt;br /&gt;&lt;br /&gt;Hint: In this case data is saved into IDictionary&amp;lt;string,object&amp;gt; property called State on PhoneApplicationPage class. Keep in mind following - "The state is only accessible during or after the OnNavigatedTo(NavigationEventArgs) method is called. Also during or before the OnNavigatedFrom(NavigationEventArgs)  method is called. If you implement it too early or too late it will throw an exception. You should not use this property for excessive storage as there is a limit of 2MB for each page and 4MB for the entire application."&lt;br /&gt;&lt;br /&gt;Cheers&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249800658162738924-3814603085519447663?l=aleksandar-panov-at-dotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aleksandar-panov-at-dotnet.blogspot.com/feeds/3814603085519447663/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249800658162738924&amp;postID=3814603085519447663' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249800658162738924/posts/default/3814603085519447663'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249800658162738924/posts/default/3814603085519447663'/><link rel='alternate' type='text/html' href='http://aleksandar-panov-at-dotnet.blogspot.com/2010/09/state-management-in-windows-phone-7.html' title='State management in Windows Phone 7'/><author><name>Aleksandar Panov</name><uri>http://www.blogger.com/profile/15150907589314602227</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://4.bp.blogspot.com/_CUpmV4wxEhg/S6UIaQTfTII/AAAAAAAAAEs/_Y23kPMzg08/S220/18834_1303581223581_1051981853_940531_2579075_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_CUpmV4wxEhg/TKMp90jZECI/AAAAAAAAAFc/Gu-O3Hqllfo/s72-c/images.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249800658162738924.post-447529622835052928</id><published>2010-09-09T07:15:00.000-07:00</published><updated>2011-03-14T08:10:12.342-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wp7'/><category scheme='http://www.blogger.com/atom/ns#' term='accelerometer'/><title type='text'>Accelerometer readings from WP7</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_CUpmV4wxEhg/TIjsty2zRaI/AAAAAAAAAFU/-BV3cScnPFk/s1600/3630.image_5F00_thumb_5F00_7991C4A4.png"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 290px; height: 320px;" src="http://1.bp.blogspot.com/_CUpmV4wxEhg/TIjsty2zRaI/AAAAAAAAAFU/-BV3cScnPFk/s320/3630.image_5F00_thumb_5F00_7991C4A4.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5514918015205066146" /&gt;&lt;/a&gt;&lt;br /&gt;Recently I've found interesting image which explains how axes values are represented over sensor on windows phone 7 device. Once when you register event handler for ReadingChanged event you'll get values for x,y and z axes over AccelerometerReadingEventArgs  argument.&lt;br /&gt;&lt;br /&gt;Argument contains property for x, y and z points. The values are expressed in G-forces (1G = 9.81 m/s2), so a value of 1.0 means that the corresponding axis is being pulled with the same force as the gravity in Paris. For example, if Z is -1.0, then the device is lying flat, face up, on a perfectly flat surface. If Z is 1.0, then the device is lying flat, faced down.&lt;br /&gt;&lt;br /&gt;Keep in mind that acceleration reading change event occurs very often (50 times per second) and that you deal with a lot of data.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249800658162738924-447529622835052928?l=aleksandar-panov-at-dotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aleksandar-panov-at-dotnet.blogspot.com/feeds/447529622835052928/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249800658162738924&amp;postID=447529622835052928' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249800658162738924/posts/default/447529622835052928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249800658162738924/posts/default/447529622835052928'/><link rel='alternate' type='text/html' href='http://aleksandar-panov-at-dotnet.blogspot.com/2010/09/accelerometer-readings-from-wp7.html' title='Accelerometer readings from WP7'/><author><name>Aleksandar Panov</name><uri>http://www.blogger.com/profile/15150907589314602227</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://4.bp.blogspot.com/_CUpmV4wxEhg/S6UIaQTfTII/AAAAAAAAAEs/_Y23kPMzg08/S220/18834_1303581223581_1051981853_940531_2579075_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_CUpmV4wxEhg/TIjsty2zRaI/AAAAAAAAAFU/-BV3cScnPFk/s72-c/3630.image_5F00_thumb_5F00_7991C4A4.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249800658162738924.post-9101901622326338470</id><published>2010-04-28T01:40:00.000-07:00</published><updated>2010-04-28T01:53:53.299-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UK'/><category scheme='http://www.blogger.com/atom/ns#' term='training'/><category scheme='http://www.blogger.com/atom/ns#' term='Sliverlight'/><title type='text'>Silverlight Masterclass UK</title><content type='html'>&lt;div class="post xfolkentry"&gt;&lt;br /&gt;  &lt;span class="author"&gt;by &lt;a href="http://blog.hmobius.com/author/DanM.aspx"&gt;DanM&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;  &lt;span class="pubDate"&gt;27. April 2010 19:00&lt;/span&gt;&lt;br /&gt;  &lt;br /&gt;  &lt;div class="text"&gt;&lt;p&gt;The Silverlight Tour comes to the UK &amp;ndash; and it’s called the Masterclass!&lt;/p&gt;  &lt;p&gt;This 3 day hands-on training with both designer and developer tracks looks awesome and (uniquely) has &lt;strong&gt;two &lt;/strong&gt;expert trainers per course. &lt;/p&gt;  &lt;p&gt;Currently scheduled in London, Manchester, and the Midlands for June, all courses also come with the chance to win an xbox 360, and Silverlight Spy licences!&lt;/p&gt;  &lt;p&gt;Early bird discount of £100 if you book in May, and if you are a member of #SLUGUK or #&lt;a href="http://www.nxtgenug.net/"&gt;nxtgenug&lt;/a&gt; there are additional discounts to be had.&lt;/p&gt;  &lt;p&gt;Full Details are here: &lt;a href="http://silverlightmasterclass.net"&gt;http://silverlightmasterclass.net&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Cheers&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249800658162738924-9101901622326338470?l=aleksandar-panov-at-dotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aleksandar-panov-at-dotnet.blogspot.com/feeds/9101901622326338470/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249800658162738924&amp;postID=9101901622326338470' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249800658162738924/posts/default/9101901622326338470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249800658162738924/posts/default/9101901622326338470'/><link rel='alternate' type='text/html' href='http://aleksandar-panov-at-dotnet.blogspot.com/2010/04/silverlight-masterclass-uk-and-how-to.html' title='Silverlight Masterclass UK'/><author><name>Aleksandar Panov</name><uri>http://www.blogger.com/profile/15150907589314602227</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://4.bp.blogspot.com/_CUpmV4wxEhg/S6UIaQTfTII/AAAAAAAAAEs/_Y23kPMzg08/S220/18834_1303581223581_1051981853_940531_2579075_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249800658162738924.post-6234306817780324353</id><published>2010-04-09T01:10:00.000-07:00</published><updated>2010-11-24T08:39:11.733-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='group by'/><category scheme='http://www.blogger.com/atom/ns#' term='huge entity list'/><category scheme='http://www.blogger.com/atom/ns#' term='.net'/><category scheme='http://www.blogger.com/atom/ns#' term='anonymous types'/><category scheme='http://www.blogger.com/atom/ns#' term='Linq'/><title type='text'>Huge entities list in batches?</title><content type='html'>Work with huge list of entities in batches? It has been never easier.&lt;br /&gt;&lt;br /&gt;Common programming issue –you have list of 10000 integers or entities (bad programming practice!) in generic list and you need to process them in batches of, let’s say, 250 items per batch.&lt;br /&gt;&lt;br /&gt;In the past I solved this problem with following algorithm:&lt;br /&gt;&lt;br /&gt;- Sort items per some criteria (in most case sort on identifier)&lt;br /&gt;&lt;br /&gt;- Take first chunk of data&lt;br /&gt;&lt;br /&gt;- Save last processed id into local variable&lt;br /&gt;&lt;br /&gt;- While batch size is more than zero&lt;br /&gt;&lt;br /&gt;&lt;span style="padding-left:50px"&gt;- Process batch&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="padding-left:50px"&gt;- Take new chunk of data where identifiers are greater than last processed one&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="padding-left:50px"&gt;- Set new last processed id&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Here is listed code snippet:&lt;br /&gt;&lt;pre name="code" class="csharp"&gt;&lt;br /&gt;//sort list&lt;br /&gt;adIds.Sort((number1, number2) =&gt; number1.CompareTo(number2));&lt;br /&gt;&lt;br /&gt;int lastProcessedId = 0;&lt;br /&gt;&lt;br /&gt;List&lt;&gt; tempList = (adIds.Where(item =&gt; item &gt; lastProcessedId)).Take(250).ToList();&lt;br /&gt;&lt;br /&gt;while (tempList.Count() &gt; 0)&lt;br /&gt;{&lt;br /&gt;markerAds = AdHandler.GetByIDList(tempList); //items processing (in this case grabbing data from db)&lt;br /&gt;&lt;br /&gt;lastProcessedId = tempList[tempList.Count - 1];&lt;br /&gt;&lt;br /&gt;tempList = (adIds.Where(item =&gt; item &lt; lastProcessedId)).Take(250).ToList();&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;It looks like few simple lines of code. By power of linq, anonymous types and group by method in c# 3.0 it can be done even simpler and in less lines of code.&lt;br /&gt;&lt;pre name="code" class="csharp"&gt;&lt;br /&gt;var groups = adIds.Select((id, index) =&gt; new {GroupID = index/250, ID = id}).GroupBy(x =&gt; x.GroupID);&lt;br /&gt;&lt;br /&gt;foreach (var group in groups)&lt;br /&gt;{&lt;br /&gt;markerAds = AdHandler.GetByIDList(group.Select(x=&gt;x.ID).ToList());&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Variable “groups” contains chunks of 250 items per group. Faster, simpler and better.&lt;br /&gt;&lt;br /&gt;Cheers&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249800658162738924-6234306817780324353?l=aleksandar-panov-at-dotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aleksandar-panov-at-dotnet.blogspot.com/feeds/6234306817780324353/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249800658162738924&amp;postID=6234306817780324353' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249800658162738924/posts/default/6234306817780324353'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249800658162738924/posts/default/6234306817780324353'/><link rel='alternate' type='text/html' href='http://aleksandar-panov-at-dotnet.blogspot.com/2010/04/huge-entities-list-in-batches.html' title='Huge entities list in batches?'/><author><name>Aleksandar Panov</name><uri>http://www.blogger.com/profile/15150907589314602227</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://4.bp.blogspot.com/_CUpmV4wxEhg/S6UIaQTfTII/AAAAAAAAAEs/_Y23kPMzg08/S220/18834_1303581223581_1051981853_940531_2579075_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249800658162738924.post-1759761389024203115</id><published>2010-03-26T07:52:00.000-07:00</published><updated>2011-03-14T08:10:12.351-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OriginalSource proprty'/><category scheme='http://www.blogger.com/atom/ns#' term='OnManipulationStarted'/><category scheme='http://www.blogger.com/atom/ns#' term='mix 10 videos'/><title type='text'>Few more usefull Windows Phone 7 links</title><content type='html'>&lt;a href="http://msdn.microsoft.com/en-us/library/ff402551%28VS.92%29.aspx"&gt;Programming Guide for Windows Phone&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://download.microsoft.com/download/D/8/6/D869941E-455D-4882-A6B8-0DBCAA6AF2D4/UI%20Design%20and%20Interaction%20Guide%20for%20Windows%20Phone%207%20Series.pdf"&gt;Windows Phone 7 Series UI Design &amp;amp; Interaction Guide&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://windowsteamblog.com/blogs/wpdev/archive/2010/03/17/videos-of-mix10-windows-phone-sessions.aspx"&gt;Videos of MIX10 Windows Phone sessions&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.codeguru.com/csharp/.net/net_general/article.php/c17025"&gt;Getting Started With Windows Phone 7 Series Development&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Tip &amp;amp; information:&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="csharp"&gt;&lt;br /&gt;protected override void OnManipulationStarted(ManipulationStartedEventArgs args)&lt;br /&gt;{&lt;br /&gt;Color clr = Colors.White;&lt;br /&gt;if (args.OriginalSource == txtblk)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;....&lt;br /&gt;&lt;br /&gt;Original Source tells you in which element finger manipulation has been started.&lt;br /&gt;&lt;br /&gt;"Currently, no production devices have been released. As I understand, the devices will start hitting the market &lt;span style="font-weight: bold;"&gt;Q4 2010 before Christmas&lt;/span&gt;" by Chris Bennett.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249800658162738924-1759761389024203115?l=aleksandar-panov-at-dotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aleksandar-panov-at-dotnet.blogspot.com/feeds/1759761389024203115/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249800658162738924&amp;postID=1759761389024203115' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249800658162738924/posts/default/1759761389024203115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249800658162738924/posts/default/1759761389024203115'/><link rel='alternate' type='text/html' href='http://aleksandar-panov-at-dotnet.blogspot.com/2010/03/few-more-usefull-windows-phone-7-links.html' title='Few more usefull Windows Phone 7 links'/><author><name>Aleksandar Panov</name><uri>http://www.blogger.com/profile/15150907589314602227</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://4.bp.blogspot.com/_CUpmV4wxEhg/S6UIaQTfTII/AAAAAAAAAEs/_Y23kPMzg08/S220/18834_1303581223581_1051981853_940531_2579075_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249800658162738924.post-35859165303961001</id><published>2010-03-20T07:32:00.000-07:00</published><updated>2011-03-14T08:10:12.366-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='windows phone 7'/><category scheme='http://www.blogger.com/atom/ns#' term='winmo'/><category scheme='http://www.blogger.com/atom/ns#' term='training kit'/><category scheme='http://www.blogger.com/atom/ns#' term='developer tools'/><title type='text'>How to start working with Windows Phone 7</title><content type='html'>What do you need to start working with Windows Phone 7:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Downloads: &lt;/span&gt;&lt;br /&gt;Windows Phone developer tools - &lt;a href="http://go.microsoft.com/?linkid=9713250"&gt;here&lt;/a&gt; ~ 320 MB and 1 computer restart&lt;br /&gt;&lt;br /&gt;Developer Training Kit - &lt;a href="http://go.microsoft.com/?linkid=9723028"&gt;here&lt;/a&gt; (includes 4 sample apps). Gives you global picture and ideas what can be done in the future with windows phone 7 platform.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Articles &amp; books:&lt;/span&gt;&lt;br /&gt;ScootGu's first blog about windows phone 7 - &lt;a href="http://tiny.cc/3tt3w"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;First ever written book about Windows Phone 7 - &lt;a href="http://blogs.msdn.com/microsoft_press/archive/2010/03/15/free-ebook-programming-windows-phone-7-series-draft-preview.aspx"&gt;here&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Windows Phone 7 developer blog - headlines are &lt;a href="http://windowsteamblog.com/blogs/windowsphone/default.aspx"&gt;there&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Code Samples from msdn - &lt;a href="http://msdn.microsoft.com/en-us/library/ff431744%28VS.92%29.aspx"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;At the end screen from my first windows phone 7 app - Tweeter reader (thanks to scott guthrie)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_CUpmV4wxEhg/S6T5p8yKXfI/AAAAAAAAAEk/g9wgD0bQoOo/s1600-h/Capture.PNG"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 206px; height: 320px;" src="http://4.bp.blogspot.com/_CUpmV4wxEhg/S6T5p8yKXfI/AAAAAAAAAEk/g9wgD0bQoOo/s320/Capture.PNG" border="0" alt=""id="BLOGGER_PHOTO_ID_5450755948111617522" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Cheers&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249800658162738924-35859165303961001?l=aleksandar-panov-at-dotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aleksandar-panov-at-dotnet.blogspot.com/feeds/35859165303961001/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249800658162738924&amp;postID=35859165303961001' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249800658162738924/posts/default/35859165303961001'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249800658162738924/posts/default/35859165303961001'/><link rel='alternate' type='text/html' href='http://aleksandar-panov-at-dotnet.blogspot.com/2010/03/how-to-start-working-with-windows-phone.html' title='How to start working with Windows Phone 7'/><author><name>Aleksandar Panov</name><uri>http://www.blogger.com/profile/15150907589314602227</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://4.bp.blogspot.com/_CUpmV4wxEhg/S6UIaQTfTII/AAAAAAAAAEs/_Y23kPMzg08/S220/18834_1303581223581_1051981853_940531_2579075_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_CUpmV4wxEhg/S6T5p8yKXfI/AAAAAAAAAEk/g9wgD0bQoOo/s72-c/Capture.PNG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249800658162738924.post-7628948664767055812</id><published>2009-09-28T01:42:00.000-07:00</published><updated>2010-11-24T12:07:02.008-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='asp.net dropdown apply styles text aligment'/><title type='text'>ASP.NET Dropdown Text aligment</title><content type='html'>I've tried to find solution for problem on net but I couldn't find it. What I wanted to achieve is to have some items in drop down list moved a bit more to the right.&lt;br /&gt;&lt;br /&gt;I tried to accomplished it by adding "  "  at the moment when I created items but it didn't worked. Those spaces ("  ") were not recognized at the moment when items were rendered. Then I tried with double non breaking spaces (&amp;nbsp;&amp;nbsp;) but those were rendered like that &amp;nbsp;&amp;nbsp; in front of item's text. &lt;br /&gt;&lt;br /&gt;At the end I've got it with:&lt;br /&gt;&lt;pre name="code" class="csharp"&gt;&lt;br /&gt;item.Attributes.Add("style", "padding-left:10px;");&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;And drop down looks like on image below:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_CUpmV4wxEhg/SsB6YK-zhVI/AAAAAAAAADM/nxHTEcLnil4/s1600-h/New+Picture.bmp"&gt;&lt;img style="cursor:pointer; cursor:hand;width: 320px; height: 181px;" src="http://2.bp.blogspot.com/_CUpmV4wxEhg/SsB6YK-zhVI/AAAAAAAAADM/nxHTEcLnil4/s320/New+Picture.bmp" border="0" alt=""id="BLOGGER_PHOTO_ID_5386439710018340178" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Generally speaking use attributes property whenever you need to apply some styles to items in drop down.&lt;br /&gt;&lt;br /&gt;Cheers&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249800658162738924-7628948664767055812?l=aleksandar-panov-at-dotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aleksandar-panov-at-dotnet.blogspot.com/feeds/7628948664767055812/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249800658162738924&amp;postID=7628948664767055812' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249800658162738924/posts/default/7628948664767055812'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249800658162738924/posts/default/7628948664767055812'/><link rel='alternate' type='text/html' href='http://aleksandar-panov-at-dotnet.blogspot.com/2009/09/aspnet-dropdown-text-aligment.html' title='ASP.NET Dropdown Text aligment'/><author><name>Aleksandar Panov</name><uri>http://www.blogger.com/profile/15150907589314602227</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://4.bp.blogspot.com/_CUpmV4wxEhg/S6UIaQTfTII/AAAAAAAAAEs/_Y23kPMzg08/S220/18834_1303581223581_1051981853_940531_2579075_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_CUpmV4wxEhg/SsB6YK-zhVI/AAAAAAAAADM/nxHTEcLnil4/s72-c/New+Picture.bmp' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249800658162738924.post-7630700793442348470</id><published>2009-09-25T01:33:00.001-07:00</published><updated>2010-11-24T12:09:57.465-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='colspan'/><category scheme='http://www.blogger.com/atom/ns#' term='IE7'/><category scheme='http://www.blogger.com/atom/ns#' term='attr'/><category scheme='http://www.blogger.com/atom/ns#' term='jQuerry'/><title type='text'>jQuery, attr function, colspan and IE7</title><content type='html'>For some reason IE&amp; does not apply attributes from attr function to DOM elements in a case when you want to test colspan on some table cell. Colspan is rendered but it looks like IE refuses to apply it. There is a hack which makes wrapper around problem. Don't ask me why, but it works.&lt;br /&gt;&lt;br /&gt;Instead of $("#MediaTitleCell").attr("colspan", 4) you should type code from following snippet:&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="csharp"&gt;&lt;br /&gt; $("#MediaTitleCell" + queueID).each(function() {&lt;br /&gt;     this.colSpan = 4;&lt;br /&gt; });&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;As I say, don't ask me why but it works this way.&lt;br /&gt;&lt;br /&gt;Cheers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249800658162738924-7630700793442348470?l=aleksandar-panov-at-dotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aleksandar-panov-at-dotnet.blogspot.com/feeds/7630700793442348470/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249800658162738924&amp;postID=7630700793442348470' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249800658162738924/posts/default/7630700793442348470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249800658162738924/posts/default/7630700793442348470'/><link rel='alternate' type='text/html' href='http://aleksandar-panov-at-dotnet.blogspot.com/2009/09/jquery-attr-function-colspan-and-ie7.html' title='jQuery, attr function, colspan and IE7'/><author><name>Aleksandar Panov</name><uri>http://www.blogger.com/profile/15150907589314602227</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://4.bp.blogspot.com/_CUpmV4wxEhg/S6UIaQTfTII/AAAAAAAAAEs/_Y23kPMzg08/S220/18834_1303581223581_1051981853_940531_2579075_n.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249800658162738924.post-3664293191348843352</id><published>2009-08-13T02:16:00.000-07:00</published><updated>2009-08-13T02:19:31.161-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='&quot;n columns&quot;'/><category scheme='http://www.blogger.com/atom/ns#' term='asp.net'/><category scheme='http://www.blogger.com/atom/ns#' term='repeater'/><title type='text'>How to bind repeater in n columns.</title><content type='html'>Great &lt;a href="http://blogs.msdn.com/aribeiro/articles/351439.aspx"&gt;article&lt;/a&gt; I found about how to bind repeater in n column table.&lt;br /&gt;&lt;br /&gt;Thanks Antonio.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249800658162738924-3664293191348843352?l=aleksandar-panov-at-dotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aleksandar-panov-at-dotnet.blogspot.com/feeds/3664293191348843352/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249800658162738924&amp;postID=3664293191348843352' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249800658162738924/posts/default/3664293191348843352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249800658162738924/posts/default/3664293191348843352'/><link rel='alternate' type='text/html' href='http://aleksandar-panov-at-dotnet.blogspot.com/2009/08/how-to-bind-repeater-in-n-columns.html' title='How to bind repeater in n columns.'/><author><name>Aleksandar Panov</name><uri>http://www.blogger.com/profile/15150907589314602227</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://4.bp.blogspot.com/_CUpmV4wxEhg/S6UIaQTfTII/AAAAAAAAAEs/_Y23kPMzg08/S220/18834_1303581223581_1051981853_940531_2579075_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249800658162738924.post-9104697187593829460</id><published>2009-07-21T03:03:00.000-07:00</published><updated>2010-11-24T12:11:24.681-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jQuery tablesorter tips format method'/><title type='text'>jQuery: Few tips when you work with Tablesorter plugin</title><content type='html'>I like Tablesorter plugin. It is very useful. It can save you a lot of time by sorting items on client side instead of any(partial or full) postback to the server.  What I discovered is that sometimes it takes time before it starts to work for you. So, here are few tips for you:&lt;br /&gt;&lt;br /&gt;* use $.tablesorter.addParser whenever you can. It is useful cause in examples you can find on Tablesorter documentation all examples handle with plain text in cells. In my case I had few spans, images and so on as a content of span. &lt;br /&gt; &lt;br /&gt;*In format property of addParser you define what should be done when content of cell is available. Since I like to use jQuery I realize that jQuery is not appliable to content I get. So weird and so strange. After sometime I got it! jQuery requests root html element and content you get from parameter in format function doesn't have root element. So, in order to get content workable with jQuery create something like this &lt;br /&gt;var innerContent = $("&lt;&lt;root&gt;root&gt;" + s + "&lt;&lt;/root&gt;/root&gt;"). After that you can apply jQuery. As example I provide code snippet:&lt;br /&gt;&lt;pre name="code" class="csharp"&gt;&lt;br /&gt;$.tablesorter.addParser({&lt;br /&gt;        id: 'currencySwiss',&lt;br /&gt;        is: function(s) {&lt;br /&gt;            return false;&lt;br /&gt;        },&lt;br /&gt;        format: function(s) {&lt;br /&gt;            var innerContent = $("&lt;&lt;root&gt;root&gt;" + s + "&lt;&lt;/root&gt;/root&gt;");&lt;br /&gt;            if (isElectronicProduct === 'False') {&lt;br /&gt;                if ($("span[id$='ctlNetPriceMediaLabel']", innerContent)[0].innerHTML === "") {&lt;br /&gt;                    return 10000000;&lt;br /&gt;                } else {&lt;br /&gt;                    return $("span[id$='ctlNetPriceMediaLabel']", innerContent)[0].innerHTML;&lt;br /&gt;                }&lt;br /&gt;            } else {//electronic product&lt;br /&gt;                if ($("span[id$='ctlNetPriceLabel']", innerContent)[0].innerHTML === "") {&lt;br /&gt;                    return 10000000;&lt;br /&gt;                } else {&lt;br /&gt;                    return $("span[id$='ctlNetPriceLabel']", innerContent)[0].innerHTML;&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        },&lt;br /&gt;&lt;br /&gt;        type: 'numeric'&lt;br /&gt;    });&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Cheers,&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249800658162738924-9104697187593829460?l=aleksandar-panov-at-dotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aleksandar-panov-at-dotnet.blogspot.com/feeds/9104697187593829460/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249800658162738924&amp;postID=9104697187593829460' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249800658162738924/posts/default/9104697187593829460'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249800658162738924/posts/default/9104697187593829460'/><link rel='alternate' type='text/html' href='http://aleksandar-panov-at-dotnet.blogspot.com/2009/07/few-tips-when-you-work-with-tablesorter.html' title='jQuery: Few tips when you work with Tablesorter plugin'/><author><name>Aleksandar Panov</name><uri>http://www.blogger.com/profile/15150907589314602227</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://4.bp.blogspot.com/_CUpmV4wxEhg/S6UIaQTfTII/AAAAAAAAAEs/_Y23kPMzg08/S220/18834_1303581223581_1051981853_940531_2579075_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249800658162738924.post-6821384049584954124</id><published>2009-06-25T01:57:00.000-07:00</published><updated>2009-06-25T02:03:43.752-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Min function'/><category scheme='http://www.blogger.com/atom/ns#' term='min selection criteria'/><category scheme='http://www.blogger.com/atom/ns#' term='Linq'/><title type='text'>Linq : Select minimal element from collection by some criteria.</title><content type='html'>This task was a bit tricky for me but at the end I sorted out.&lt;br /&gt;&lt;br /&gt;It should look like similar to code snippet below:&lt;br /&gt;&lt;br /&gt;List&lt;&lt;prices&gt;Price&gt; list = (from prices in ProductPrices where prices.NetPrice == ProductPrices.Min(minPrice =&gt; minPrice.NetPrice) select prices).ToList&lt;&lt;prices&gt;Price&gt;();&lt;br /&gt;&lt;br /&gt;Inner selection sorts all problems :)&lt;br /&gt;&lt;br /&gt;Cheers&lt;/prices&gt;&lt;/prices&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249800658162738924-6821384049584954124?l=aleksandar-panov-at-dotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aleksandar-panov-at-dotnet.blogspot.com/feeds/6821384049584954124/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249800658162738924&amp;postID=6821384049584954124' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249800658162738924/posts/default/6821384049584954124'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249800658162738924/posts/default/6821384049584954124'/><link rel='alternate' type='text/html' href='http://aleksandar-panov-at-dotnet.blogspot.com/2009/06/linq-select-minimal-element-from.html' title='Linq : Select minimal element from collection by some criteria.'/><author><name>Aleksandar Panov</name><uri>http://www.blogger.com/profile/15150907589314602227</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://4.bp.blogspot.com/_CUpmV4wxEhg/S6UIaQTfTII/AAAAAAAAAEs/_Y23kPMzg08/S220/18834_1303581223581_1051981853_940531_2579075_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249800658162738924.post-6659043509409459004</id><published>2009-06-16T02:56:00.001-07:00</published><updated>2009-06-17T02:05:09.469-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='reload'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.Net problem'/><category scheme='http://www.blogger.com/atom/ns#' term='YSlow'/><category scheme='http://www.blogger.com/atom/ns#' term='Firefox'/><title type='text'>YSlow ASP.Net problems</title><content type='html'>I've recently expired problems with asp.net web page when I realized that for some reason it loads twice per request. Every time I was in debug mode and I reload page either by pressing F5 or by pressing Enter button in firefox I got my breakpoint on Page_Load method hits twice. When I first time open page in browser everything works fine and Page_Load is called only once.&lt;br /&gt;&lt;br /&gt;There is couple of steps to follow in this kind of scenario and as usual I started with looking into code. Soon I realized that code can't be a reason for double loading of page since code is pretty simple.&lt;br /&gt;&lt;br /&gt;Then I tested web page from other browsers (IE and Chrome) and everything works fine. Ha, it has something to do with Firefox :).&lt;br /&gt;&lt;br /&gt;After some time I ran Fiddler in order to trace communication between client and server and again mystery wasn't solved. There was only one call from client to server.&lt;br /&gt;&lt;br /&gt;Then colleague told me: "Why don't you check add ons in firefox?"( Roman thanks :) ). As a "crazy about add ons" developer I have more then 15 add ons inlcuded into Firefox. I disabled them all and problem was solved. Ha!. It has something to do with add ons.! :)&lt;br /&gt;&lt;br /&gt;I turned off/on every add on I have in firefox and after some time I realize that problem happens only when YSlow is enabled.&lt;br /&gt;&lt;br /&gt;And then I realize that YSlow (which I installed a day before and didn't try to use yet) has setting like "&lt;span style="font-weight: bold;"&gt;Autorun YSlow each time a web page is loaded&lt;/span&gt;".&lt;br /&gt;&lt;br /&gt;After hour or two problem was solved. Still I don't know why this only happend when I reload existing page.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_CUpmV4wxEhg/Sjdv1ZUAzzI/AAAAAAAAACc/FdNcwrLtg_g/s1600-h/Capture.JPG"&gt;&lt;img style="cursor: pointer; width: 320px; height: 80px;" src="http://3.bp.blogspot.com/_CUpmV4wxEhg/Sjdv1ZUAzzI/AAAAAAAAACc/FdNcwrLtg_g/s320/Capture.JPG" alt="" id="BLOGGER_PHOTO_ID_5347866045644328754" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_CUpmV4wxEhg/SjdwHdk9wxI/AAAAAAAAACk/NcNPKyYZog0/s1600-h/Capture1.JPG"&gt;&lt;img style="cursor: pointer; width: 320px; height: 175px;" src="http://4.bp.blogspot.com/_CUpmV4wxEhg/SjdwHdk9wxI/AAAAAAAAACk/NcNPKyYZog0/s320/Capture1.JPG" alt="" id="BLOGGER_PHOTO_ID_5347866356026819346" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Cheers, dear readers :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249800658162738924-6659043509409459004?l=aleksandar-panov-at-dotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aleksandar-panov-at-dotnet.blogspot.com/feeds/6659043509409459004/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249800658162738924&amp;postID=6659043509409459004' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249800658162738924/posts/default/6659043509409459004'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249800658162738924/posts/default/6659043509409459004'/><link rel='alternate' type='text/html' href='http://aleksandar-panov-at-dotnet.blogspot.com/2009/06/yslow-aspnet-postback-problems.html' title='YSlow ASP.Net problems'/><author><name>Aleksandar Panov</name><uri>http://www.blogger.com/profile/15150907589314602227</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://4.bp.blogspot.com/_CUpmV4wxEhg/S6UIaQTfTII/AAAAAAAAAEs/_Y23kPMzg08/S220/18834_1303581223581_1051981853_940531_2579075_n.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_CUpmV4wxEhg/Sjdv1ZUAzzI/AAAAAAAAACc/FdNcwrLtg_g/s72-c/Capture.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249800658162738924.post-5192051798173587889</id><published>2008-10-30T02:16:00.001-07:00</published><updated>2008-10-30T02:18:22.830-07:00</updated><title type='text'>Download file from some http address from .NET code</title><content type='html'>Never easier.&lt;br /&gt;&lt;br /&gt; WebClient oClient = new WebClient();&lt;br /&gt; oClient.DownloadFile(source, destination);&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249800658162738924-5192051798173587889?l=aleksandar-panov-at-dotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aleksandar-panov-at-dotnet.blogspot.com/feeds/5192051798173587889/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249800658162738924&amp;postID=5192051798173587889' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249800658162738924/posts/default/5192051798173587889'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249800658162738924/posts/default/5192051798173587889'/><link rel='alternate' type='text/html' href='http://aleksandar-panov-at-dotnet.blogspot.com/2008/10/download-file-from-some-http-address.html' title='Download file from some http address from .NET code'/><author><name>Aleksandar Panov</name><uri>http://www.blogger.com/profile/15150907589314602227</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://4.bp.blogspot.com/_CUpmV4wxEhg/S6UIaQTfTII/AAAAAAAAAEs/_Y23kPMzg08/S220/18834_1303581223581_1051981853_940531_2579075_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249800658162738924.post-3849412233688725517</id><published>2008-08-18T02:18:00.000-07:00</published><updated>2008-08-18T02:28:26.335-07:00</updated><title type='text'>Currency format in method ToString()</title><content type='html'>As it is documented in msdn documentation when you want to display currency value from some integer, decimal or any other numeric type you can use method ToString() with currency sign ("C") as a method parameter. Based on current culture info assigned to thread ToString method returns well formatted string. But what if you need some sort of customization of formatted value?&lt;br /&gt;&lt;br /&gt;For example, the issue I currently working on.&lt;br /&gt;&lt;br /&gt;Culture Info: de-CH (swiss german)&lt;br /&gt;&lt;br /&gt;int price = 26540&lt;br /&gt;&lt;br /&gt;Method price.ToString("C") returns CHF 26'540.00&lt;br /&gt;&lt;br /&gt;This is cool and nice but I need a value without decimal places. Searching thorugh documentation and some forums I found it myself. When you won't decimal places use another parameter for ToString() method - "C0" (c zero);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;So, solution is price.ToString("C0") . It returns CHF 26'540 without decimal places.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Cheers&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249800658162738924-3849412233688725517?l=aleksandar-panov-at-dotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aleksandar-panov-at-dotnet.blogspot.com/feeds/3849412233688725517/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249800658162738924&amp;postID=3849412233688725517' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249800658162738924/posts/default/3849412233688725517'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249800658162738924/posts/default/3849412233688725517'/><link rel='alternate' type='text/html' href='http://aleksandar-panov-at-dotnet.blogspot.com/2008/08/currency-format-in-method-tostring.html' title='Currency format in method ToString()'/><author><name>Aleksandar Panov</name><uri>http://www.blogger.com/profile/15150907589314602227</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://4.bp.blogspot.com/_CUpmV4wxEhg/S6UIaQTfTII/AAAAAAAAAEs/_Y23kPMzg08/S220/18834_1303581223581_1051981853_940531_2579075_n.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249800658162738924.post-713445709819316405</id><published>2008-05-11T23:39:00.000-07:00</published><updated>2008-05-12T05:15:01.707-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Regular Expresions Alternation Pipe .Net'/><title type='text'>Regular Expressions Alternation (Pipe) trick</title><content type='html'>I had a problem with RegEx when engine matches more then one option from alternation group.&lt;br /&gt;&lt;br /&gt;Example is like this one - I tried to match seasons like summer 2004 or spring 05. Pattern I made worked fine until I jump into problems when more then one option is listed in input string, like spring summer 2005.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;First pattern: (?&lt;season&gt;&lt;season&gt;spring|summer|autumn|winter)(\s)?(?&lt;year&gt;(?:\d{4}|\d{2}))&lt;br /&gt;Input Value: spring 2005&lt;br /&gt;Matches: spring 2005&lt;br /&gt;&lt;br /&gt;First pattern: (?&lt;season&gt;&lt;/season&gt;&lt;/year&gt;&lt;/season&gt;&lt;season&gt;&lt;season&gt;&lt;year&gt;&lt;season&gt;spring|summer|autumn|winter)(\s)?(?&lt;year&gt;(?:\d{4}|\d{2}))&lt;br /&gt;Input Value: &lt;span style="color: rgb(255, 0, 0);"&gt;spring summer 2005&lt;/span&gt;&lt;br /&gt;Matches: summer2005&lt;br /&gt;&lt;br /&gt;In this case I wanted spring 2005 to be matched. With listed pattern that is not possible. Since summer is listed after spring match for spring can not be found by the engine. I had to find a way to skip word summer somehow.&lt;br /&gt;&lt;br /&gt;After several different tests I found solution. What I realized is that in input string I have 2 times following pattern (pseudo code) - season + whitespace. From that point it was easy to find make appropriate pattern.&lt;br /&gt;&lt;br /&gt;&lt;/year&gt;&lt;/season&gt;&lt;/year&gt;&lt;/season&gt;2nd pattern: &lt;span style="color: rgb(255, 0, 0);"&gt;(&lt;/span&gt;(?&lt;season&gt;&lt;/season&gt;&lt;season&gt;spring|summer|autumn|winter)(\s)&lt;span style="color: rgb(255, 0, 0);"&gt;)+&lt;/span&gt;(?(?:\d{4}|\d{2}))&lt;br /&gt;Input Value: spring summer 2005&lt;br /&gt;Matches: spring summer 2005.&lt;br /&gt;&lt;br /&gt;Keep in mind that Season group has in this case two captures (for spring and summer) and in order to spring value you need to call first item in captures collection, like:&lt;br /&gt;&lt;br /&gt;m.Groups["Season"].Captures[0].Value.&lt;br /&gt;&lt;br /&gt;Also, captures property works fine when there is only one match.&lt;br /&gt;&lt;br /&gt;Every time when you get unexpected results from regex engine analyze what are reasons for unexpected result and you will understand better engine that works under regular expressions in .Net.&lt;br /&gt;&lt;br /&gt;One great reference for RegEx I use every time when I need to parse some strings:&lt;br /&gt;&lt;a href="http://www.regular-expressions.info/"&gt;http://www.regular-expressions.info&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Bye until next tip I found :)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;season&gt;&lt;year&gt;&lt;season&gt;&lt;year&gt;&lt;br /&gt;&lt;/year&gt;&lt;/season&gt;&lt;/year&gt;&lt;/season&gt;&lt;/season&gt;&lt;/season&gt;&lt;/season&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249800658162738924-713445709819316405?l=aleksandar-panov-at-dotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aleksandar-panov-at-dotnet.blogspot.com/feeds/713445709819316405/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249800658162738924&amp;postID=713445709819316405' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249800658162738924/posts/default/713445709819316405'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249800658162738924/posts/default/713445709819316405'/><link rel='alternate' type='text/html' href='http://aleksandar-panov-at-dotnet.blogspot.com/2008/05/regular-expressions-alternation-pipe.html' title='Regular Expressions Alternation (Pipe) trick'/><author><name>Aleksandar Panov</name><uri>http://www.blogger.com/profile/15150907589314602227</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://4.bp.blogspot.com/_CUpmV4wxEhg/S6UIaQTfTII/AAAAAAAAAEs/_Y23kPMzg08/S220/18834_1303581223581_1051981853_940531_2579075_n.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249800658162738924.post-6102767001499251071</id><published>2008-05-09T05:57:00.000-07:00</published><updated>2008-05-12T05:14:18.080-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='enumerator drop down combo box control .net'/><title type='text'>Enumerators in drop down.</title><content type='html'>There are very useful methods when you need to fill drop down box with values from some enumerator.&lt;br /&gt;&lt;br /&gt;For instance, if you have enumerator like this (VB.NET code):&lt;br /&gt;&lt;br /&gt;Public Enum FavoriteColours&lt;br /&gt;   Red = 1&lt;br /&gt;   White = 2&lt;br /&gt;   Yellow = 3&lt;br /&gt;   Green = 4&lt;br /&gt;   Blue = 5&lt;br /&gt;End Enum&lt;br /&gt;&lt;br /&gt;you can easily loop through enumerator keys and values and fill drop down control.&lt;br /&gt;&lt;br /&gt;Dim enumNames As String() = System.Enum.GetNames(GetType(FavoriteColours))&lt;br /&gt;&lt;br /&gt;Dim enumValues As System.Array = System.Enum.GetValues(GetType(FavoriteColours))&lt;br /&gt;&lt;br /&gt;       For i As Integer = 0 To enumValues.Length - 1&lt;br /&gt;           ctrlVehicleTypeDropDown.Items.Add(New ListItem(enumNames(i), &amp;amp; _&lt;br /&gt;Cstr(Cint(System.Enum.ToObject(GetType(FavoriteColours))))))&lt;br /&gt;       Next&lt;br /&gt;&lt;br /&gt;Generally speaking, you can fill any list type of control directly form enumerator.&lt;br /&gt;&lt;br /&gt;Fill free to use it :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249800658162738924-6102767001499251071?l=aleksandar-panov-at-dotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aleksandar-panov-at-dotnet.blogspot.com/feeds/6102767001499251071/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249800658162738924&amp;postID=6102767001499251071' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249800658162738924/posts/default/6102767001499251071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249800658162738924/posts/default/6102767001499251071'/><link rel='alternate' type='text/html' href='http://aleksandar-panov-at-dotnet.blogspot.com/2008/05/enumerators-in-drop-down.html' title='Enumerators in drop down.'/><author><name>Aleksandar Panov</name><uri>http://www.blogger.com/profile/15150907589314602227</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://4.bp.blogspot.com/_CUpmV4wxEhg/S6UIaQTfTII/AAAAAAAAAEs/_Y23kPMzg08/S220/18834_1303581223581_1051981853_940531_2579075_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249800658162738924.post-377997724467977282</id><published>2008-02-20T01:28:00.000-08:00</published><updated>2008-02-20T01:53:41.329-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='service'/><category scheme='http://www.blogger.com/atom/ns#' term='over web'/><category scheme='http://www.blogger.com/atom/ns#' term='partial class'/><category scheme='http://www.blogger.com/atom/ns#' term='Event Handlers'/><title type='text'>Keep in mind event hadnlers when pass typed dataset over web services.</title><content type='html'>Great new feature in .NET 2.0 - Partial class, can make huge problems sometimes.&lt;br /&gt;&lt;br /&gt;You are able to add partial class to typed dataset and to set your own methods, event hamdlers, etc. Particulary problem I work on is that for some reason event handlers are not passed over web services. Here is a scenario:&lt;br /&gt;&lt;br /&gt;In typed dataset I want to update one field (Field2) in datatable when other field(Field1) is changed. I also want this to happend when user changes something, not in a moment when typed dataset is filled with data.&lt;br /&gt;&lt;br /&gt;So, at the end of FillData method, which fills data into typed dataset I write AddHandler (VB.NET) to attach event handler on event raising in a moment when Field1 is changed. This approach works fine on Front End and value in Field2 is updated every time user changed Field1.&lt;br /&gt;&lt;br /&gt;Similar scenario should happend on back end when system (in this case COM+ component) changes value in Field1. Field2 value is not changed. Why??&lt;br /&gt;&lt;br /&gt;I started with investigation, write some log messages in event log and realase for some reason that event handlers are not triggered becase they don't exists. How is this possbile? In a moment when web service proxy class calls web service method event handlers are in typed data set. A second later they don't exists in back end. ??&lt;br /&gt;&lt;br /&gt;After some time I realise what is a problem. Event handlers are not passed to back end system because they are added programmatically in a run time, not in design time. Yes, it is a true. It is hard to belive but it is a true.&lt;br /&gt;&lt;br /&gt;When you add event hadnler programmatically (with AddHandler instruction) it is added to your class (entity, business object, whatever) but it is placed into separate place in local memory. This memory location  is not contacted when you pass typed dataset to back end.&lt;br /&gt;&lt;br /&gt;If you add event handler in design time (with Handles instruction) event handler is placed into some memory location but type dataset has a reference to it during its lifecycle. Strange, but it is true.&lt;br /&gt;&lt;br /&gt;Solution could be found with some local variable of boolean type. You set it to false as a first line of your fill typed dataset method and in event handlers you check is this variable true or not. At the end of fill method set variable to tru and everything is fine. Your code works.&lt;br /&gt;&lt;br /&gt;The same scenario applies to system dataset since they also have partial class feature.&lt;br /&gt;&lt;br /&gt;Example (some sort of pseudo code) - won't work on back end:&lt;br /&gt;&lt;br /&gt;Private sub FillData()&lt;br /&gt;&lt;br /&gt;    'get data from back end&lt;br /&gt;&lt;br /&gt;    'fill data&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;    Addhandler typedDataSet.Tables("SomeTable").RowChanged, AddressOf SomeEventHandler&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub SomeEventHandler(sender as Object, e as RowChangedEventArgs)&lt;br /&gt;&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;How it should be implemented:&lt;br /&gt;&lt;br /&gt;private loading as Boolean = false&lt;br /&gt;&lt;br /&gt;Private sub FillData()&lt;br /&gt;&lt;br /&gt;        loading = false&lt;br /&gt;       &lt;br /&gt;        'get data from back end&lt;br /&gt;&lt;br /&gt;        'fill data&lt;br /&gt;&lt;br /&gt;        loading = true&lt;br /&gt;&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Private Sub SomeEventHandler(sender as object, e as RowChangedEventArgs) &lt;span style="color: rgb(255, 102, 102);"&gt;Handles typedDataSet.Tables("SomeTable").RowChanged&lt;/span&gt;&lt;br /&gt;If loading&lt;br /&gt;&lt;br /&gt;               'do something&lt;br /&gt;&lt;br /&gt;End If&lt;br /&gt;&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Cheers, mates&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249800658162738924-377997724467977282?l=aleksandar-panov-at-dotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aleksandar-panov-at-dotnet.blogspot.com/feeds/377997724467977282/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249800658162738924&amp;postID=377997724467977282' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249800658162738924/posts/default/377997724467977282'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249800658162738924/posts/default/377997724467977282'/><link rel='alternate' type='text/html' href='http://aleksandar-panov-at-dotnet.blogspot.com/2008/02/keep-in-mind-event-hadnlers-when-pass.html' title='Keep in mind event hadnlers when pass typed dataset over web services.'/><author><name>Aleksandar Panov</name><uri>http://www.blogger.com/profile/15150907589314602227</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://4.bp.blogspot.com/_CUpmV4wxEhg/S6UIaQTfTII/AAAAAAAAAEs/_Y23kPMzg08/S220/18834_1303581223581_1051981853_940531_2579075_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249800658162738924.post-3846648573268796626</id><published>2007-11-06T01:33:00.000-08:00</published><updated>2007-11-06T01:52:41.308-08:00</updated><title type='text'>Once, forever and never again - Ekatarina Velika</title><content type='html'>R.I.P to all members of my favorite band, especially to Milan Mladenovic.&lt;br /&gt;&lt;br /&gt;If I had a idol in my life that was him.&lt;br /&gt;&lt;br /&gt;I never played guitar, I don't know to play any instrument but I know to understand message he sent to us.&lt;br /&gt;&lt;br /&gt;I  feel rebellious the same way he was. Rebel about system I live in, people I meet....&lt;br /&gt;&lt;br /&gt;I meet him only once in bus 16 to New Belgrade. He was standiing in the middle of bus, a meter from me. I was watching him, told him hello. He answerd me with hello too.  I will never foget him.&lt;br /&gt;&lt;br /&gt;Funeral:&lt;br /&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/ciD9tLlPFRU"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/ciD9tLlPFRU" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Like it once was:&lt;br /&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/FF-wywIw47E"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/FF-wywIw47E" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;EKV's hymn:&lt;br /&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/iuSthfwzjPs"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/iuSthfwzjPs" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;One of darknest and the best:&lt;br /&gt;&lt;object width="425" height="355"&gt;&lt;param name="movie" value="http://www.youtube.com/v/XeS5Qp7-xhk"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/XeS5Qp7-xhk" type="application/x-shockwave-flash" wmode="transparent" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Play with angels, you divine.&lt;br /&gt;&lt;br /&gt;Milan Mladenovic (1958 - 1994)&lt;br /&gt;R.I.P&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249800658162738924-3846648573268796626?l=aleksandar-panov-at-dotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aleksandar-panov-at-dotnet.blogspot.com/feeds/3846648573268796626/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249800658162738924&amp;postID=3846648573268796626' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249800658162738924/posts/default/3846648573268796626'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249800658162738924/posts/default/3846648573268796626'/><link rel='alternate' type='text/html' href='http://aleksandar-panov-at-dotnet.blogspot.com/2007/11/once-forever-and-never-again-ekatarina.html' title='Once, forever and never again - Ekatarina Velika'/><author><name>Aleksandar Panov</name><uri>http://www.blogger.com/profile/15150907589314602227</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://4.bp.blogspot.com/_CUpmV4wxEhg/S6UIaQTfTII/AAAAAAAAAEs/_Y23kPMzg08/S220/18834_1303581223581_1051981853_940531_2579075_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249800658162738924.post-3121601790057409549</id><published>2007-10-25T03:45:00.000-07:00</published><updated>2007-10-25T06:22:10.659-07:00</updated><title type='text'>Visual Studio 2005 usefull shortcuts</title><content type='html'>There is a plenty of useful shortcuts in Visual Studio 2005. I will number only those which I use everyday.&lt;br /&gt;&lt;br /&gt;ALT + F + T - Close solution&lt;br /&gt;&lt;br /&gt;CTRL + Shift + B - Build project&lt;br /&gt;&lt;br /&gt;ALT + W + L - Close all windows&lt;br /&gt;&lt;br /&gt;F12 - GoTo Definition !!! very, very useful (instead of selecting item from right mouse context menu)&lt;br /&gt;&lt;br /&gt;CTRL + -  Go to previous. Return focus to line of code where F12 was called.&lt;br /&gt;&lt;br /&gt;CTRL + K + CTRL + K - Add/Remove bookmark to line of code&lt;br /&gt;&lt;br /&gt;CTRL + K + CTRL + N - Move to next bookmark&lt;br /&gt;&lt;br /&gt;CTRL + K + CTRL + C - Comment line of code&lt;br /&gt;&lt;br /&gt;CTRL + K + CTRL + U - Uncoment line of code&lt;br /&gt;&lt;br /&gt;CTRL + Space - complete line from intellisense.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249800658162738924-3121601790057409549?l=aleksandar-panov-at-dotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aleksandar-panov-at-dotnet.blogspot.com/feeds/3121601790057409549/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249800658162738924&amp;postID=3121601790057409549' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249800658162738924/posts/default/3121601790057409549'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249800658162738924/posts/default/3121601790057409549'/><link rel='alternate' type='text/html' href='http://aleksandar-panov-at-dotnet.blogspot.com/2007/10/visual-studio-2005-usefull-shortcuts.html' title='Visual Studio 2005 usefull shortcuts'/><author><name>Aleksandar Panov</name><uri>http://www.blogger.com/profile/15150907589314602227</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://4.bp.blogspot.com/_CUpmV4wxEhg/S6UIaQTfTII/AAAAAAAAAEs/_Y23kPMzg08/S220/18834_1303581223581_1051981853_940531_2579075_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249800658162738924.post-1861203100296067996</id><published>2007-10-22T02:32:00.000-07:00</published><updated>2007-10-22T02:44:11.477-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MTS 064 Sucks'/><title type='text'>MTS 064 Telekom Srbija Sucks!!</title><content type='html'>If you are postpaid user of their service you &lt;strong&gt;should&lt;/strong&gt; be able to check at any moment what is your amount for current month, how many free minutes and sms you have for current month, etc.&lt;br /&gt;&lt;br /&gt;Of course, in a case of Telekom Srbija nothing is strict and anything can be changed from month to month. Today, October 22th, service 788 still is not in function for current month. So, all postpaid users of Telekom Srbija are not able to check current status of their amount for October. It means no matter how many talks I made and how many sms I send they can not charge my account more then my postpaid model includes by default, since I am not able to check my account, right?&lt;br /&gt;&lt;br /&gt;Somewhere else this is true, but not in Serbia.&lt;br /&gt;&lt;br /&gt;We have to pay for their mistakes, errors, disfunctionalities.&lt;br /&gt;&lt;br /&gt;Try to complain there:  :)&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.telekom.yu/KONTAKT/Kontakt.aspx"&gt;http://www.telekom.yu/KONTAKT/Kontakt.aspx&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249800658162738924-1861203100296067996?l=aleksandar-panov-at-dotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aleksandar-panov-at-dotnet.blogspot.com/feeds/1861203100296067996/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249800658162738924&amp;postID=1861203100296067996' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249800658162738924/posts/default/1861203100296067996'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249800658162738924/posts/default/1861203100296067996'/><link rel='alternate' type='text/html' href='http://aleksandar-panov-at-dotnet.blogspot.com/2007/10/mts-064-telekom-srbija-sucks.html' title='MTS 064 Telekom Srbija Sucks!!'/><author><name>Aleksandar Panov</name><uri>http://www.blogger.com/profile/15150907589314602227</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://4.bp.blogspot.com/_CUpmV4wxEhg/S6UIaQTfTII/AAAAAAAAAEs/_Y23kPMzg08/S220/18834_1303581223581_1051981853_940531_2579075_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249800658162738924.post-1104259660567091746</id><published>2007-10-18T02:14:00.000-07:00</published><updated>2007-10-18T03:07:10.643-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Typed dataset identiifers update problem'/><title type='text'>Typed DataSet's identifiers are not updated.</title><content type='html'>&lt;span style="font-family:arial;"&gt;Recent problem I had is that identifiers in typed datasets are not updated after I send typed dataset over web services to middle tier in order to save them.  Business Logic on middle tier saves row from typed dataset and update row's identifier if row is saved successfully. Update identifier is not visible in returned typed dataset although it is send with byref.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;I tried to find solution on net witthout success. I couldn't find anything usefull. Interesting is that when typed dataset is send over web as standard one identifiers are updated with new ids.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;What helps me from .Net Framework 2.0 is partial class. Partial class gives us ability to add our own methods in Typed DataSets. So, I opened partial class and add conversion to and from standard dataset.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Code looks like:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Partial Class SpecialSelectionDataSet&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;#Region "Field"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;   Private _standardDataSet As DataSet&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;#End Region&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;#Region "Properties"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;   Public Property StandardDataSet() As DataSet&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    Get&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;        If _standardDataSet Is Nothing Then&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;            _standardDataSet = CType(Me, DataSet)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;        End If&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;            Return _standardDataSet&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;        End Get&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    Set(ByVal value As DataSet)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;        _standardDataSet = value&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    End Set&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;   End Property&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;#End Region&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;#Region "Methods"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;   Public Sub ToTypedDataSet()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    Me.Clear()&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    Me.Merge(_standardDataSet, True, MissingSchemaAction.AddWithKey)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;   End Sub&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;#End Region&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;End Class&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;After that I called from me form something like this pseudo code:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    myWebServiceProxy.Save(SomeTypedDataSet.&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);font-family:arial;" &gt;StandardDataSet&lt;/span&gt;&lt;span style="font-family:arial;"&gt;)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;    me.SomeTypedDataSet.&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);font-family:arial;" &gt;ToTypedDataSet&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;This solution works fine for me since new identifiers are in typedataset after call of web service method and conversion to typed dataset again.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Do you have any suggestion?&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249800658162738924-1104259660567091746?l=aleksandar-panov-at-dotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aleksandar-panov-at-dotnet.blogspot.com/feeds/1104259660567091746/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249800658162738924&amp;postID=1104259660567091746' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249800658162738924/posts/default/1104259660567091746'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249800658162738924/posts/default/1104259660567091746'/><link rel='alternate' type='text/html' href='http://aleksandar-panov-at-dotnet.blogspot.com/2007/10/typed-datasets-identifiers-are-not.html' title='Typed DataSet&apos;s identifiers are not updated.'/><author><name>Aleksandar Panov</name><uri>http://www.blogger.com/profile/15150907589314602227</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://4.bp.blogspot.com/_CUpmV4wxEhg/S6UIaQTfTII/AAAAAAAAAEs/_Y23kPMzg08/S220/18834_1303581223581_1051981853_940531_2579075_n.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249800658162738924.post-6132348844290626777</id><published>2007-10-18T01:04:00.000-07:00</published><updated>2007-10-18T01:42:14.577-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Tose Proeski'/><title type='text'>Tose Proeski 1981-2007</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Tose Proeski&lt;/span&gt; has died in car accident in Croatia. I didn't listen his music. I even don't know any of his songs. What makes me sad is:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;He was so young, only 26 years old.&lt;/li&gt;&lt;li&gt;He has a fantastic voice.&lt;/li&gt;&lt;li&gt;He works a lot to improve his singing capabilities.&lt;/li&gt;&lt;li&gt;He works, works and works. Never stops.&lt;/li&gt;&lt;/ul&gt;Then I tried to find some of his his songs on youtube. I never heard that someone sings "Zajdi, Zajdi" so beautifully. That song is old Macedonian song which is very hard for singing and even harder for translation. Ask some ex yu citizen to translate you with meaning. No way. His voice can be compared with voices of some of greatest opera singers. Really sad.&lt;br /&gt;&lt;a href="http://www.blogger.com/%3Cobject%20width=%22425%22%20height=%22350%22%3E%3Cparam%20name=%22movie%22%20value=%22http://www.youtube.com/v/VSllN95UKow%22%3E%3C/param%3E%3Cparam%20name=%22wmode%22%20value=%22transparent%22%3E%3C/param%3E%3Cembed%20src=%22http://www.youtube.com/v/VSllN95UKow%22%20type=%22application/x-shockwave-flash%22%20wmode=%22transparent%22%20width=%22425%22%20height=%22350%22%3E%3C/embed%3E%3C/object%3E"&gt;&lt;br /&gt;&lt;/a&gt;Tose sang "Zajdi, Zajdi"&lt;br /&gt;&lt;object height="350" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/VSllN95UKow"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;embed src="http://www.youtube.com/v/VSllN95UKow" type="application/x-shockwave-flash" wmode="transparent" height="350" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Goodbye superstar.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249800658162738924-6132348844290626777?l=aleksandar-panov-at-dotnet.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://aleksandar-panov-at-dotnet.blogspot.com/feeds/6132348844290626777/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249800658162738924&amp;postID=6132348844290626777' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249800658162738924/posts/default/6132348844290626777'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249800658162738924/posts/default/6132348844290626777'/><link rel='alternate' type='text/html' href='http://aleksandar-panov-at-dotnet.blogspot.com/2007/10/tose-proeski.html' title='Tose Proeski 1981-2007'/><author><name>Aleksandar Panov</name><uri>http://www.blogger.com/profile/15150907589314602227</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='28' height='32' src='http://4.bp.blogspot.com/_CUpmV4wxEhg/S6UIaQTfTII/AAAAAAAAAEs/_Y23kPMzg08/S220/18834_1303581223581_1051981853_940531_2579075_n.jpg'/></author><thr:total>0</thr:total></entry></feed>
