<?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-5734935016600069480</id><updated>2011-12-26T20:47:31.675-08:00</updated><category term='Globalization'/><category term='Windows SDK'/><category term='Javascript'/><category term='Visual Studio 2005'/><category term='Controls'/><category term='Opera'/><category term='Culture'/><category term='DOM 2 Events'/><category term='UI'/><category term='COM'/><category term='.NET Framework'/><category term='ASP.NET'/><category term='C# 3.0'/><category term='Interop'/><category term='Development'/><category term='Visual Studio 2008'/><category term='Firefox'/><category term='Chrome'/><category term='Dream'/><category term='Visual Studio policy'/><category term='HTML'/><category term='Notebook'/><category term='Internet Explorer'/><category term='Components'/><category term='WPF'/><category term='Video OnDemand'/><title type='text'>Ideas on my head on .NET</title><subtitle type='html'>Geeks on .NET</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://nickotech2000.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5734935016600069480/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://nickotech2000.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Nicko Satria Utama</name><uri>http://www.blogger.com/profile/13954117740118688905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></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-5734935016600069480.post-2282641511665167413</id><published>2011-03-16T07:04:00.001-07:00</published><updated>2011-03-16T07:04:45.674-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet Explorer'/><category scheme='http://www.blogger.com/atom/ns#' term='Chrome'/><category scheme='http://www.blogger.com/atom/ns#' term='Opera'/><category scheme='http://www.blogger.com/atom/ns#' term='Firefox'/><title type='text'>Latest browser javascript test result</title><content type='html'>&lt;p&gt;This is a test for javascript to compare in different browsers. They are Firefox 4 RC, Internet Explorer 9, Opera 11 and Chrome 10. &lt;/p&gt;  &lt;p&gt;I use web kit sun spider as tester in URL : &lt;a title="http://www.webkit.org/perf/sunspider/sunspider.html" href="http://www.webkit.org/perf/sunspider/sunspider.html"&gt;http://www.webkit.org/perf/sunspider/sunspider.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;This is the result &lt;/p&gt;  &lt;table style="line-height: normal; border-collapse: collapse" border="0" cellspacing="0" cellpadding="0" width="556"&gt;&lt;colgroup&gt;&lt;col style="width: 171pt; mso-width-source: userset; mso-width-alt: 8338" width="228" /&gt;&lt;col style="width: 71pt; mso-width-source: userset; mso-width-alt: 3474" width="95" /&gt;&lt;col style="width: 54pt; mso-width-source: userset; mso-width-alt: 2633" width="72" /&gt;&lt;col style="width: 65pt; mso-width-source: userset; mso-width-alt: 3181" width="87" /&gt;&lt;col style="width: 56pt; mso-width-source: userset; mso-width-alt: 2742" width="75" /&gt;&lt;/colgroup&gt;&lt;tbody&gt;     &lt;tr style="height: 18pt" height="24"&gt;       &lt;td style="padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" height="24" width="228"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;Testee&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; border-top: windowtext 1pt solid; padding-top: 1px" class="xl74" width="94" align="center"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 13pt" color="#1f497d"&gt;&lt;strong&gt;Firefox 4 RC&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; border-top: windowtext 1pt solid; padding-top: 1px" class="xl74" width="72" align="center"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 13pt" color="#1f497d"&gt;&lt;strong&gt;IE 9 RTM&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; border-top: windowtext 1pt solid; padding-top: 1px" class="xl74" width="86" align="center"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 13pt" color="#1f497d"&gt;&lt;strong&gt;Chrome 10&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-bottom: windowtext 1pt solid; border-left: windowtext 1pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; border-top: windowtext 1pt solid; border-right: windowtext 1pt solid; padding-top: 1px" class="xl78" width="74" align="center"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 13pt" color="#1f497d"&gt;&lt;strong&gt;Opera 11&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 20.25pt" height="27"&gt;       &lt;td style="border-bottom: #4f81bd 1.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl70" height="27"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 15pt" color="#1f497d"&gt;&lt;strong&gt;3d&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; background-color: #da9694; padding-left: 1px; padding-right: 1px; vertical-align: middle; padding-top: 1px" class="xl73"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#ffffff"&gt;47.5ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; background-color: #da9694; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl72"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#ffffff"&gt;41.5ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; background-color: #da9694; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl72"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#ffffff"&gt;57.3ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; background-color: #da9694; padding-left: 1px; padding-right: 1px; vertical-align: bottom; border-right: windowtext 0.5pt solid; padding-top: 1px" class="xl76"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#ffffff"&gt;46.2ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 15.75pt" height="21"&gt;       &lt;td style="padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" height="21"&gt;&lt;font face="Calibri"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 11pt"&gt;cube&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: middle; padding-top: 1px" class="xl65"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;20.3ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;17.1ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;16.6ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; border-right: windowtext 0.5pt solid; padding-top: 1px" class="xl75"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;13.0ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 15pt" height="20"&gt;       &lt;td style="padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" height="20"&gt;&lt;font face="Calibri"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 11pt"&gt;morph&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: middle; padding-top: 1px" class="xl66"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;9.2ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;6.2ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;17.1ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; border-right: windowtext 0.5pt solid; padding-top: 1px" class="xl75"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;18.7ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 15pt" height="20"&gt;       &lt;td style="padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" height="20"&gt;&lt;font face="Calibri"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 11pt"&gt;raytrace&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: middle; padding-top: 1px" class="xl66"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;18.0ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;18.2ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;23.6ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; border-right: windowtext 0.5pt solid; padding-top: 1px" class="xl75"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;14.5ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 15pt" height="20"&gt;       &lt;td style="padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" height="20"&gt;&amp;nbsp;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: middle; padding-top: 1px" class="xl66"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; border-right: windowtext 0.5pt solid; padding-top: 1px" class="xl75"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 20.25pt" height="27"&gt;       &lt;td style="border-bottom: #4f81bd 1.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl70" height="27"&gt;&lt;font face="Calibri"&gt;&lt;font color="#1f497d"&gt;&lt;strong&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 15pt"&gt;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 15pt"&gt;access&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; background-color: #da9694; padding-left: 1px; padding-right: 1px; vertical-align: middle; padding-top: 1px" class="xl71"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#ffffff"&gt;44.8ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; background-color: #da9694; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl72"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#ffffff"&gt;43.2ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; background-color: #da9694; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl72"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#ffffff"&gt;47.8ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; background-color: #da9694; padding-left: 1px; padding-right: 1px; vertical-align: bottom; border-right: windowtext 0.5pt solid; padding-top: 1px" class="xl76"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#ffffff"&gt;46.5ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 15.75pt" height="21"&gt;       &lt;td style="padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" height="21"&gt;&lt;font face="Calibri"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 11pt"&gt;binary-trees&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: middle; padding-top: 1px" class="xl66"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;7.0ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;6.2ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;2.9ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; border-right: windowtext 0.5pt solid; padding-top: 1px" class="xl75"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;2.8ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 15pt" height="20"&gt;       &lt;td style="padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" height="20"&gt;&lt;font face="Calibri"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 11pt"&gt;fannkuch&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: middle; padding-top: 1px" class="xl66"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;21.3ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;15.5ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;28.1ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; border-right: windowtext 0.5pt solid; padding-top: 1px" class="xl75"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;23.0ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 15pt" height="20"&gt;       &lt;td style="padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" height="20"&gt;&lt;font face="Calibri"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 11pt"&gt;nbody&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: middle; padding-top: 1px" class="xl66"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;8.1ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;17.1ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;10.9ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; border-right: windowtext 0.5pt solid; padding-top: 1px" class="xl75"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;13.2ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 15pt" height="20"&gt;       &lt;td style="padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" height="20"&gt;&lt;font face="Calibri"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 11pt"&gt;nsieve&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: middle; padding-top: 1px" class="xl66"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;8.4ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;4.4ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;5.9ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; border-right: windowtext 0.5pt solid; padding-top: 1px" class="xl75"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;7.5ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 15pt" height="20"&gt;       &lt;td style="padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" height="20"&gt;&amp;nbsp;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: middle; padding-top: 1px" class="xl66"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; border-right: windowtext 0.5pt solid; padding-top: 1px" class="xl75"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 20.25pt" height="27"&gt;       &lt;td style="border-bottom: #4f81bd 1.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl70" height="27"&gt;&lt;font face="Calibri"&gt;&lt;font color="#1f497d"&gt;&lt;strong&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 15pt"&gt;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 15pt"&gt;bitops&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; background-color: #da9694; padding-left: 1px; padding-right: 1px; vertical-align: middle; padding-top: 1px" class="xl71"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#ffffff"&gt;19.0ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; background-color: #da9694; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl72"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#ffffff"&gt;28.9ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; background-color: #da9694; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl72"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#ffffff"&gt;36.5ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; background-color: #da9694; padding-left: 1px; padding-right: 1px; vertical-align: bottom; border-right: windowtext 0.5pt solid; padding-top: 1px" class="xl76"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#ffffff"&gt;17.7ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 15.75pt" height="21"&gt;       &lt;td style="padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" height="21"&gt;&lt;font face="Calibri"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 11pt"&gt;3bit-bits-in-byte&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: middle; padding-top: 1px" class="xl66"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;1.0ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;1.9ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;3.7ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; border-right: windowtext 0.5pt solid; padding-top: 1px" class="xl75"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;1.7ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 15pt" height="20"&gt;       &lt;td style="padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" height="20"&gt;&lt;font face="Calibri"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 11pt"&gt;bits-in-byte&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: middle; padding-top: 1px" class="xl66"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;8.5ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;7.1ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;8.5ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; border-right: windowtext 0.5pt solid; padding-top: 1px" class="xl75"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;3.3ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 15pt" height="20"&gt;       &lt;td style="padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" height="20"&gt;&lt;font face="Calibri"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 11pt"&gt;bitwise-and&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: middle; padding-top: 1px" class="xl66"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;2.4ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;8.8ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;11.8ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; border-right: windowtext 0.5pt solid; padding-top: 1px" class="xl75"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;2.1ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 15pt" height="20"&gt;       &lt;td style="padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" height="20"&gt;&lt;font face="Calibri"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 11pt"&gt;nsieve-bits&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: middle; padding-top: 1px" class="xl66"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;7.1ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;11.1ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;12.5ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; border-right: windowtext 0.5pt solid; padding-top: 1px" class="xl75"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;10.6ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 15pt" height="20"&gt;       &lt;td style="padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" height="20"&gt;&amp;nbsp;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: middle; padding-top: 1px" class="xl66"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; border-right: windowtext 0.5pt solid; padding-top: 1px" class="xl75"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 20.25pt" height="27"&gt;       &lt;td style="border-bottom: #4f81bd 1.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl70" height="27"&gt;&lt;font face="Calibri"&gt;&lt;font color="#1f497d"&gt;&lt;strong&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 15pt"&gt;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 15pt"&gt;controlflow&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; background-color: #da9694; padding-left: 1px; padding-right: 1px; vertical-align: middle; padding-top: 1px" class="xl71"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#ffffff"&gt;3.4ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; background-color: #da9694; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl72"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#ffffff"&gt;3.0ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; background-color: #da9694; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl72"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#ffffff"&gt;4.9ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; background-color: #da9694; padding-left: 1px; padding-right: 1px; vertical-align: bottom; border-right: windowtext 0.5pt solid; padding-top: 1px" class="xl76"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#ffffff"&gt;3.9ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 15.75pt" height="21"&gt;       &lt;td style="padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" height="21"&gt;&lt;font face="Calibri"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 11pt"&gt;recursive&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: middle; padding-top: 1px" class="xl66"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;3.4ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;3.0ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;4.9ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; border-right: windowtext 0.5pt solid; padding-top: 1px" class="xl75"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;3.9ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 15pt" height="20"&gt;       &lt;td style="padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" height="20"&gt;&amp;nbsp;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: middle; padding-top: 1px" class="xl66"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; border-right: windowtext 0.5pt solid; padding-top: 1px" class="xl75"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 20.25pt" height="27"&gt;       &lt;td style="border-bottom: #4f81bd 1.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl70" height="27"&gt;&lt;font face="Calibri"&gt;&lt;font color="#1f497d"&gt;&lt;strong&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 15pt"&gt;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 15pt"&gt;crypto&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; background-color: #da9694; padding-left: 1px; padding-right: 1px; vertical-align: middle; padding-top: 1px" class="xl71"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#ffffff"&gt;20.2ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; background-color: #da9694; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl72"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#ffffff"&gt;18.6ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; background-color: #da9694; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl72"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#ffffff"&gt;29.8ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; background-color: #da9694; padding-left: 1px; padding-right: 1px; vertical-align: bottom; border-right: windowtext 0.5pt solid; padding-top: 1px" class="xl76"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#ffffff"&gt;20.5ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 15.75pt" height="21"&gt;       &lt;td style="padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" height="21"&gt;&lt;font face="Calibri"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 11pt"&gt;aes&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: middle; padding-top: 1px" class="xl66"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;11.3ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;7.1ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;12.6ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; border-right: windowtext 0.5pt solid; padding-top: 1px" class="xl75"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;12.1ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 15pt" height="20"&gt;       &lt;td style="padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" height="20"&gt;&lt;font face="Calibri"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 11pt"&gt;md5&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: middle; padding-top: 1px" class="xl66"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;4.9ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;5.4ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;7.8ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; border-right: windowtext 0.5pt solid; padding-top: 1px" class="xl75"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;4.5ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 15pt" height="20"&gt;       &lt;td style="padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" height="20"&gt;&lt;font face="Calibri"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 11pt"&gt;sha1&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: middle; padding-top: 1px" class="xl66"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;4.0ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;6.1ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;9.4ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; border-right: windowtext 0.5pt solid; padding-top: 1px" class="xl75"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;3.9ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 15pt" height="20"&gt;       &lt;td style="padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" height="20"&gt;&amp;nbsp;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: middle; padding-top: 1px" class="xl66"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; border-right: windowtext 0.5pt solid; padding-top: 1px" class="xl75"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 20.25pt" height="27"&gt;       &lt;td style="border-bottom: #4f81bd 1.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl70" height="27"&gt;&lt;font face="Calibri"&gt;&lt;font color="#1f497d"&gt;&lt;strong&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 15pt"&gt;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 15pt"&gt;date&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; background-color: #da9694; padding-left: 1px; padding-right: 1px; vertical-align: middle; padding-top: 1px" class="xl71"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#ffffff"&gt;45.9ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; background-color: #da9694; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl72"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#ffffff"&gt;29.0ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; background-color: #da9694; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl72"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#ffffff"&gt;37.0ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; background-color: #da9694; padding-left: 1px; padding-right: 1px; vertical-align: bottom; border-right: windowtext 0.5pt solid; padding-top: 1px" class="xl76"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#ffffff"&gt;36.0ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 15.75pt" height="21"&gt;       &lt;td style="padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" height="21"&gt;&lt;font face="Calibri"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 11pt"&gt;format-tofte&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: middle; padding-top: 1px" class="xl66"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;23.9ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;11.1ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;17.2ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; border-right: windowtext 0.5pt solid; padding-top: 1px" class="xl75"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;15.7ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 15pt" height="20"&gt;       &lt;td style="padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" height="20"&gt;&lt;font face="Calibri"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 11pt"&gt;format-xparb&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: middle; padding-top: 1px" class="xl66"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;22.0ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;17.9ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;19.8ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; border-right: windowtext 0.5pt solid; padding-top: 1px" class="xl75"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;20.3ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 15pt" height="20"&gt;       &lt;td style="padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" height="20"&gt;&amp;nbsp;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: middle; padding-top: 1px" class="xl66"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; border-right: windowtext 0.5pt solid; padding-top: 1px" class="xl75"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 20.25pt" height="27"&gt;       &lt;td style="border-bottom: #4f81bd 1.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl70" height="27"&gt;&lt;font face="Calibri"&gt;&lt;font color="#1f497d"&gt;&lt;strong&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 15pt"&gt;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 15pt"&gt;math&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; background-color: #da9694; padding-left: 1px; padding-right: 1px; vertical-align: middle; padding-top: 1px" class="xl71"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#ffffff"&gt;27.7ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; background-color: #da9694; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl72"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#ffffff"&gt;26.0ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; background-color: #da9694; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl72"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#ffffff"&gt;28.7ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; background-color: #da9694; padding-left: 1px; padding-right: 1px; vertical-align: bottom; border-right: windowtext 0.5pt solid; padding-top: 1px" class="xl76"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#ffffff"&gt;37.6ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 15.75pt" height="21"&gt;       &lt;td style="padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" height="21"&gt;&lt;font face="Calibri"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 11pt"&gt;cordic&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: middle; padding-top: 1px" class="xl66"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;9.2ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;1.0ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;5.3ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; border-right: windowtext 0.5pt solid; padding-top: 1px" class="xl75"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;8.2ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 15pt" height="20"&gt;       &lt;td style="padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" height="20"&gt;&lt;font face="Calibri"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 11pt"&gt;partial-sums&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: middle; padding-top: 1px" class="xl66"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;13.2ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;18.4ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;18.2ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; border-right: windowtext 0.5pt solid; padding-top: 1px" class="xl75"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;24.8ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 15pt" height="20"&gt;       &lt;td style="padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" height="20"&gt;&lt;font face="Calibri"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 11pt"&gt;spectral-norm&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: middle; padding-top: 1px" class="xl66"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;5.3ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;6.6ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;5.2ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; border-right: windowtext 0.5pt solid; padding-top: 1px" class="xl75"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;4.6ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 15pt" height="20"&gt;       &lt;td style="padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" height="20"&gt;&amp;nbsp;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: middle; padding-top: 1px" class="xl66"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; border-right: windowtext 0.5pt solid; padding-top: 1px" class="xl75"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 20.25pt" height="27"&gt;       &lt;td style="border-bottom: #4f81bd 1.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl70" height="27"&gt;&lt;font face="Calibri"&gt;&lt;font color="#1f497d"&gt;&lt;strong&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 15pt"&gt;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 15pt"&gt;regexp&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; background-color: #da9694; padding-left: 1px; padding-right: 1px; vertical-align: middle; padding-top: 1px" class="xl71"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#ffffff"&gt;17.2ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; background-color: #da9694; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl72"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#ffffff"&gt;10.9ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; background-color: #da9694; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl72"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#ffffff"&gt;14.5ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; background-color: #da9694; padding-left: 1px; padding-right: 1px; vertical-align: bottom; border-right: windowtext 0.5pt solid; padding-top: 1px" class="xl76"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#ffffff"&gt;14.6ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 15.75pt" height="21"&gt;       &lt;td style="padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" height="21"&gt;&lt;font face="Calibri"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 11pt"&gt;dna&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: middle; padding-top: 1px" class="xl66"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;17.2ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;10.9ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;14.5ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; border-right: windowtext 0.5pt solid; padding-top: 1px" class="xl75"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;14.6ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 15pt" height="20"&gt;       &lt;td style="padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" height="20"&gt;&amp;nbsp;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: middle; padding-top: 1px" class="xl66"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; border-right: windowtext 0.5pt solid; padding-top: 1px" class="xl75"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;&amp;#160;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 20.25pt" height="27"&gt;       &lt;td style="border-bottom: #4f81bd 1.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl70" height="27"&gt;&lt;font face="Calibri"&gt;&lt;font color="#1f497d"&gt;&lt;strong&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 15pt"&gt;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 15pt"&gt;string&lt;/font&gt;&lt;/strong&gt;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; background-color: #da9694; padding-left: 1px; padding-right: 1px; vertical-align: middle; padding-top: 1px" class="xl71"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#ffffff"&gt;88.9ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; background-color: #da9694; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl72"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#ffffff"&gt;93.2ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; background-color: #da9694; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl72"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#ffffff"&gt;104.4ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; background-color: #da9694; padding-left: 1px; padding-right: 1px; vertical-align: bottom; border-right: windowtext 0.5pt solid; padding-top: 1px" class="xl76"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#ffffff"&gt;108.9ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 15.75pt" height="21"&gt;       &lt;td style="padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" height="21"&gt;&lt;font face="Calibri"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 11pt"&gt;base64&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: middle; padding-top: 1px" class="xl66"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;5.8ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;5.8ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;8.2ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; border-right: windowtext 0.5pt solid; padding-top: 1px" class="xl75"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;11.9ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 15pt" height="20"&gt;       &lt;td style="padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" height="20"&gt;&lt;font face="Calibri"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 11pt"&gt;fasta&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: middle; padding-top: 1px" class="xl66"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;14.0ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;23.8ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;18.9ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; border-right: windowtext 0.5pt solid; padding-top: 1px" class="xl75"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;21.0ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 15pt" height="20"&gt;       &lt;td style="padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" height="20"&gt;&lt;font face="Calibri"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 11pt"&gt;tagcloud&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: middle; padding-top: 1px" class="xl66"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;28.0ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;29.6ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;25.1ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; border-right: windowtext 0.5pt solid; padding-top: 1px" class="xl75"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;31.3ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 15pt" height="20"&gt;       &lt;td style="padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" height="20"&gt;&lt;font face="Calibri"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 11pt"&gt;unpack-code&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: middle; padding-top: 1px" class="xl66"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;30.0ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;20.5ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl68"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;34.4ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; border-right: windowtext 0.5pt solid; padding-top: 1px" class="xl75"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;22.8ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;      &lt;tr style="height: 15pt" height="20"&gt;       &lt;td style="padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" height="20"&gt;&lt;font face="Calibri"&gt;&lt;font color="#000000"&gt;&lt;span style="mso-spacerun: yes"&gt;&lt;font style="font-size: 11pt"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size: 11pt"&gt;validate-input&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-bottom: windowtext 0.5pt solid; border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: middle; padding-top: 1px" class="xl67"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;11.1ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-bottom: windowtext 0.5pt solid; border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl69"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;13.5ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-bottom: windowtext 0.5pt solid; border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; padding-top: 1px" class="xl69"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;17.8ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;        &lt;td style="border-bottom: windowtext 0.5pt solid; border-left: windowtext 0.5pt solid; padding-left: 1px; padding-right: 1px; vertical-align: bottom; border-right: windowtext 0.5pt solid; padding-top: 1px" class="xl77"&gt;&lt;font face="Calibri"&gt;&lt;font style="font-size: 11pt" color="#000000"&gt;21.9ms&lt;/font&gt;&lt;/font&gt;&lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;   &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:afcaaf64-e44f-4a2b-afbc-a7a59d04652c" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Internet+Explorer+9" rel="tag"&gt;Internet Explorer 9&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Firefox+4+RC" rel="tag"&gt;Firefox 4 RC&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Opera+11" rel="tag"&gt;Opera 11&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Chrome+10" rel="tag"&gt;Chrome 10&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Javascript" rel="tag"&gt;Javascript&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Javascript+test" rel="tag"&gt;Javascript test&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5734935016600069480-2282641511665167413?l=nickotech2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nickotech2000.blogspot.com/feeds/2282641511665167413/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5734935016600069480&amp;postID=2282641511665167413&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5734935016600069480/posts/default/2282641511665167413'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5734935016600069480/posts/default/2282641511665167413'/><link rel='alternate' type='text/html' href='http://nickotech2000.blogspot.com/2011/03/latest-browser-javascript-test-result.html' title='Latest browser javascript test result'/><author><name>Nicko Satria Utama</name><uri>http://www.blogger.com/profile/13954117740118688905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5734935016600069480.post-690355566550164271</id><published>2010-01-12T02:25:00.001-08:00</published><updated>2010-01-12T02:25:59.398-08:00</updated><title type='text'>Choose : Parallel or not in .NET 4.0 beta 2; Part 1</title><content type='html'>&lt;p&gt;This is a little sample to choose parallel or not. It is used LINQ to object. &lt;/p&gt;  &lt;p&gt;Example of source code:&lt;/p&gt;  &lt;hr /&gt;  &lt;p&gt;DateTime start = DateTime.MinValue;    &lt;br /&gt;DateTime stop = DateTime.MinValue;     &lt;br /&gt;TimeSpan seleisih;     &lt;br /&gt;Console.WriteLine(&amp;quot;Sequential&amp;quot;); &lt;/p&gt;  &lt;p&gt;IEnumerable&amp;lt;int&amp;gt; cobaAss = Enumerable.Range(0, 30000000);    &lt;br /&gt;var hh = from x in cobaAss     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; where x % 3 == 0     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; select Math.Sqrt(x);     &lt;br /&gt;start = DateTime.Now;     &lt;br /&gt;foreach (var item in hh)     &lt;br /&gt;{     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; double x = item * 1.5;     &lt;br /&gt;}     &lt;br /&gt;stop = DateTime.Now;     &lt;br /&gt;seleisih = stop - start; &lt;/p&gt;  &lt;p&gt;Console.WriteLine(&amp;quot;Start : {0}&amp;quot;, start);    &lt;br /&gt;Console.WriteLine(&amp;quot;Stop : {0}&amp;quot;, stop);     &lt;br /&gt;Console.WriteLine(&amp;quot;Selisih (tick) : {0}&amp;quot;, seleisih.Ticks); &lt;/p&gt;  &lt;p&gt;// -- &lt;/p&gt;  &lt;p&gt;Console.WriteLine(&amp;quot;Parallel&amp;quot;); &lt;/p&gt;  &lt;p&gt;cobaAss = Enumerable.Range(0, 30000000);    &lt;br /&gt;hh = from x in cobaAss.AsParallel()     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; where x % 3 == 0     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; select Math.Sqrt(x);     &lt;br /&gt;start = DateTime.Now;     &lt;br /&gt;//Parallel.ForEach&amp;lt;double&amp;gt;(hh, (item) =&amp;gt; { });     &lt;br /&gt;foreach (var item in hh)     &lt;br /&gt;{     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; double x = item * 1.5;     &lt;br /&gt;}     &lt;br /&gt;stop = DateTime.Now;     &lt;br /&gt;seleisih = stop - start; &lt;/p&gt;  &lt;p&gt;Console.WriteLine(&amp;quot;Start : {0}&amp;quot;, start);    &lt;br /&gt;Console.WriteLine(&amp;quot;Stop : {0}&amp;quot;, stop);     &lt;br /&gt;Console.WriteLine(&amp;quot;Selisih (tick) : {0}&amp;quot;, seleisih.Ticks); &lt;/p&gt;  &lt;p&gt;Console.WriteLine(&amp;quot;Parallel Doit manually&amp;quot;); &lt;/p&gt;  &lt;p&gt;var cobaAss1 = Enumerable.Range(0, 10000000);    &lt;br /&gt;var cobaAss2 = Enumerable.Range(10000000, 10000000);     &lt;br /&gt;var cobaAss3 = Enumerable.Range(20000000, 10000000); &lt;/p&gt;  &lt;p&gt;var hh1 = from x in cobaAss    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; where x % 3 == 0     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; select Math.Sqrt(x);     &lt;br /&gt;var hh2 = from x in cobaAss     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; where x % 3 == 0     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; select Math.Sqrt(x);     &lt;br /&gt;var hh3 = from x in cobaAss     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; where x % 3 == 0     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; select Math.Sqrt(x);     &lt;br /&gt;start = DateTime.Now;     &lt;br /&gt;Parallel.Invoke(     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; () =&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; foreach (var item in hh1)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; double x = item * 1.5;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; },     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; () =&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; foreach (var item in hh2)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; double x = item * 1.5;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; },     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; () =&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; foreach (var item in hh3)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; double x = item * 1.5;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; });     &lt;br /&gt;stop = DateTime.Now;     &lt;br /&gt;seleisih = stop - start; &lt;/p&gt;  &lt;p&gt;Console.WriteLine(&amp;quot;Start : {0}&amp;quot;, start);    &lt;br /&gt;Console.WriteLine(&amp;quot;Stop : {0}&amp;quot;, stop);     &lt;br /&gt;Console.WriteLine(&amp;quot;Selisih (tick) : {0}&amp;quot;, seleisih.Ticks); &lt;/p&gt;  &lt;p&gt;Console.ReadLine(); &lt;/p&gt;  &lt;hr /&gt;  &lt;p&gt;I use console project to use it. You can try your own test&lt;/p&gt;  &lt;p&gt;Below is the result:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://lh5.ggpht.com/_dQtXxlcS-jk/S0xOLU4LYzI/AAAAAAAAAxY/Akc7A5IU0Ok/s1600-h/test_parallel%5B3%5D.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="test_parallel" border="0" alt="test_parallel" src="http://lh4.ggpht.com/_dQtXxlcS-jk/S0xONZOGq-I/AAAAAAAAAxc/YyIAn6om_iQ/test_parallel_thumb%5B1%5D.png?imgmax=800" width="340" height="264" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;This is strange since sequential is faster than parallel using AsParallel() or manually to do in parallel. &lt;/p&gt;  &lt;p&gt;Summary: Parallelism is not always fasten the query&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5734935016600069480-690355566550164271?l=nickotech2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nickotech2000.blogspot.com/feeds/690355566550164271/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5734935016600069480&amp;postID=690355566550164271&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5734935016600069480/posts/default/690355566550164271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5734935016600069480/posts/default/690355566550164271'/><link rel='alternate' type='text/html' href='http://nickotech2000.blogspot.com/2010/01/choose-parallel-or-not-in-net-40-beta-2.html' title='Choose : Parallel or not in .NET 4.0 beta 2; Part 1'/><author><name>Nicko Satria Utama</name><uri>http://www.blogger.com/profile/13954117740118688905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_dQtXxlcS-jk/S0xONZOGq-I/AAAAAAAAAxc/YyIAn6om_iQ/s72-c/test_parallel_thumb%5B1%5D.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5734935016600069480.post-5382305558591580100</id><published>2010-01-10T23:23:00.001-08:00</published><updated>2010-01-10T23:23:02.928-08:00</updated><title type='text'>Forcing parallelism in .NET 4 b2</title><content type='html'>&lt;p&gt;Concurrent and parallel programming is really hard to develop. In the old days like .NET 3.x, 2.0 or older, developer can obtain parallel by creating a new thread, maintain their own thread manually; that can harm system performance and execution when not managed carefully.&lt;/p&gt;  &lt;p&gt;The past approach (.NET 2.x-3.x)&lt;/p&gt;  &lt;p&gt;public static void DoSomething()    &lt;br /&gt;{     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // do something hard and time consuming like counting with loop     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; while(true)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&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; int x = 3 + 5;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;}&lt;/p&gt;  &lt;p&gt;public static void Run()    &lt;br /&gt;{     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Thread t = new Thread(new ThreadStart(DoSomething));     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; t.Start();     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; t.Join();     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // do whatever     &lt;br /&gt;}&lt;/p&gt;  &lt;p&gt;In the .NET 4.0 (right now I use beta 2), It is easier to develop by using Invoke method from Parallel class    &lt;br /&gt;public static void Run()     &lt;br /&gt;{     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Parallel.Invoke(()=&amp;gt;{ DoSomething(); });     &lt;br /&gt;}&lt;/p&gt;  &lt;p&gt;Code above will pause main thread and run all code inside Invoke until all running thread terminated. This method deliver more safety than manual ones.&lt;/p&gt;  &lt;p&gt;Developer can easily set processor affinity for specific thread by assigning them into the methods. Processor affinity is a bit flags. The documentation is available on microsoft MSDN on class Process with property ProcessorAffinity.&lt;/p&gt;  &lt;p&gt;For example, the thread will be executed on second processor, set affinity by&lt;/p&gt;  &lt;p&gt;public static void Run()    &lt;br /&gt;{     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Parallel.Invoke(()=&amp;gt;{     &lt;br /&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; Process.GetCurrentProcess().ProcessorAffinity = (IntPtr)2;     &lt;br /&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; DoSomething(); }     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; );     &lt;br /&gt;}&lt;/p&gt;  &lt;p&gt;In task manager. the process will make second processor runs high.    &lt;br /&gt;    &lt;br /&gt;&lt;a href="http://lh4.ggpht.com/_dQtXxlcS-jk/S0rRz5GqqcI/AAAAAAAAAxQ/vnTaqra17mc/s1600-h/cpu_sibuk3.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="cpu_sibuk" border="0" alt="cpu_sibuk" src="http://lh4.ggpht.com/_dQtXxlcS-jk/S0rR1Qo0jgI/AAAAAAAAAxU/koQMhywPfj8/cpu_sibuk_thumb1.png?imgmax=800" width="366" height="162" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5734935016600069480-5382305558591580100?l=nickotech2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nickotech2000.blogspot.com/feeds/5382305558591580100/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5734935016600069480&amp;postID=5382305558591580100&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5734935016600069480/posts/default/5382305558591580100'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5734935016600069480/posts/default/5382305558591580100'/><link rel='alternate' type='text/html' href='http://nickotech2000.blogspot.com/2010/01/forcing-parallelism-in-net-4-b2.html' title='Forcing parallelism in .NET 4 b2'/><author><name>Nicko Satria Utama</name><uri>http://www.blogger.com/profile/13954117740118688905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh4.ggpht.com/_dQtXxlcS-jk/S0rR1Qo0jgI/AAAAAAAAAxU/koQMhywPfj8/s72-c/cpu_sibuk_thumb1.png?imgmax=800' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5734935016600069480.post-2626679126520155394</id><published>2009-11-15T10:32:00.001-08:00</published><updated>2009-11-15T10:32:46.814-08:00</updated><title type='text'>When to use F#.NET and C#.NET/VB.NET</title><content type='html'>&lt;p&gt;F# is a new development language that is available on Visual Studio 2010; It can be downloaded separately from Microsoft research F# for Visual Studio 2008. It is a new language that has paradigm of functional programming. It is differs from C# or VB that has paradigm of imperative by design.&lt;/p&gt;  &lt;p&gt;Functional means preventing state and mutable data, and treats as mathematic functional.&amp;#160; This is in contrast of imperative that can change state using statement.&lt;/p&gt;  &lt;p&gt;In a software development project, F# is use on financial or math. Some banking applications for example needs financial project like counting interest, pmt, value manipulation or else. C#/VB is useful on UI interaction, data/io interaction.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5734935016600069480-2626679126520155394?l=nickotech2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nickotech2000.blogspot.com/feeds/2626679126520155394/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5734935016600069480&amp;postID=2626679126520155394&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5734935016600069480/posts/default/2626679126520155394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5734935016600069480/posts/default/2626679126520155394'/><link rel='alternate' type='text/html' href='http://nickotech2000.blogspot.com/2009/11/when-to-use-fnet-and-cnetvbnet.html' title='When to use F#.NET and C#.NET/VB.NET'/><author><name>Nicko Satria Utama</name><uri>http://www.blogger.com/profile/13954117740118688905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5734935016600069480.post-1411763429606110639</id><published>2009-11-15T09:40:00.001-08:00</published><updated>2009-11-15T09:40:34.237-08:00</updated><title type='text'>Make IEnumerable&lt;T&gt; to BindingList&lt;T&gt;as datasource for collection control</title><content type='html'>&lt;p&gt;IEnumerable&amp;lt;T&amp;gt; can be used as datasource for some controls especially on collection thing like gridview or else. It happens when assigning Datasource property from the control with data in it.&lt;/p&gt;  &lt;p&gt;for example:&lt;/p&gt;  &lt;p&gt;IEnumerable&amp;lt;Sales&amp;gt; sales = GetAllSales(); // return value from GetSales is IEnumerable&amp;lt;Sales&amp;gt;   &lt;br /&gt;GridView1.DataSource = sales;    &lt;br /&gt;GridView1.DataBind();&lt;/p&gt;  &lt;p&gt;The samples above will display all sales from methods. This is good when there is no paging in GridView. For advanced use like paging or else; Try to cast or convert to BindingList&amp;lt;T&amp;gt; so it can be use in the control.&lt;/p&gt;  &lt;p&gt;public static BindingList&amp;lt;T&amp;gt; ToBindingList&amp;lt;T&amp;gt;(this IEnumerable&amp;lt;T&amp;gt; data)   &lt;br /&gt;{    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; BindingList&amp;lt;T&amp;gt; result = null;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; if (data != null)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; result = new BindingList&amp;lt;T&amp;gt;();    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; foreach (T item in data)    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; result.Add(item);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; }    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; return result;    &lt;br /&gt;} &lt;/p&gt;  &lt;p&gt;The method above will help to convert to BindingList&amp;lt;T&amp;gt; and ready to use as datasource in control&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5734935016600069480-1411763429606110639?l=nickotech2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nickotech2000.blogspot.com/feeds/1411763429606110639/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5734935016600069480&amp;postID=1411763429606110639&amp;isPopup=true' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5734935016600069480/posts/default/1411763429606110639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5734935016600069480/posts/default/1411763429606110639'/><link rel='alternate' type='text/html' href='http://nickotech2000.blogspot.com/2009/11/make-ienumerable-to-bindinglist.html' title='Make IEnumerable&amp;lt;T&amp;gt; to BindingList&amp;lt;T&amp;gt;as datasource for collection control'/><author><name>Nicko Satria Utama</name><uri>http://www.blogger.com/profile/13954117740118688905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5734935016600069480.post-2279571009810935131</id><published>2009-04-26T19:20:00.000-07:00</published><updated>2009-04-26T19:26:31.268-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Javascript'/><category scheme='http://www.blogger.com/atom/ns#' term='DOM 2 Events'/><category scheme='http://www.blogger.com/atom/ns#' term='HTML'/><title type='text'>Internet Explorer 8 still not supported DOM 2 Events</title><content type='html'>&lt;p&gt;I am surprised that until today, Internet Explorer 8 is not supporting DOM 2 Events. This can be tested using method that is described on DOM 2 Events like &lt;strong&gt;addEventListener&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;I try to make a very simple sample like in Javascript:&lt;/p&gt;  &lt;pre&gt;&amp;lt;script language=&amp;quot;javascript&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;     var btn = document.getElementById('btnShow');&lt;br /&gt;     btn.addEventListener('click', function() {&lt;br /&gt;                alert('DOM 2 Alert A');&lt;br /&gt;            }, false);&lt;br /&gt;     btn.addEventListener('click', function() {&lt;br /&gt;                alert('DOM 2 Alert B');&lt;br /&gt;            }, false);&lt;br /&gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Code above in Firefox 3.0.8 and Google Chrome 1.0 work perfectly. It will register functions that will executed when the button click. It will display dialog box twice. I try in Internet Explorer 7 and 8. It says that object doesn;t have property or methods.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Internet Explorer have methods that similar to DOM 2 &lt;strong&gt;addEventListener&lt;/strong&gt;; that is called &lt;strong&gt;attachEvent&lt;/strong&gt;. This methods work the same as addEventListener by registering many functions that is executed when event triggers. The only different is attachEvent register the functions in LIFO while addEventListener register in FIFO.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Below is the simple complete html + javascript:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&amp;lt;script language=&amp;quot;javascript&amp;quot; type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;        var btn = document.getElementById('btnShow');&lt;br /&gt;        var browserName = navigator.appName;&lt;br /&gt;        &lt;br /&gt;        if (browserName == 'Microsoft Internet Explorer') {&lt;br /&gt;            btn.attachEvent('onclick', function() {&lt;br /&gt;                alert('NON DOM 2 Alert A');&lt;br /&gt;            });&lt;br /&gt;            btn.attachEvent('onclick', function() {&lt;br /&gt;                alert('NON DOM 2 Alert B');&lt;br /&gt;            }&lt;br /&gt;            );&lt;br /&gt;         }&lt;br /&gt;        else {&lt;br /&gt;            btn.addEventListener('click', function() {&lt;br /&gt;                alert('DOM 2 Alert A');&lt;br /&gt;            }, false);&lt;br /&gt;            btn.addEventListener('click', function() {&lt;br /&gt;                alert('DOM 2 Alert B');&lt;br /&gt;            }, false);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;In the Internet Explorer, dialog with NON DOM 2 Alert B will appear first and then NON DOM 2 Alert A because attachEvent is registering in LIFO&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;In the Firefox and Google Chrome, dialog with DOM 2 Alert A will appear first then DOM 2 Alert B because attachEvent is registering in FIFO&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:f9b1bec4-4b17-4d65-99bc-2dd0d1172cba" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/DOM+2+Events" rel="tag"&gt;DOM 2 Events&lt;/a&gt;,&lt;a href="http://technorati.com/tags/HTML" rel="tag"&gt;HTML&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Javascript" rel="tag"&gt;Javascript&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5734935016600069480-2279571009810935131?l=nickotech2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nickotech2000.blogspot.com/feeds/2279571009810935131/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5734935016600069480&amp;postID=2279571009810935131&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5734935016600069480/posts/default/2279571009810935131'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5734935016600069480/posts/default/2279571009810935131'/><link rel='alternate' type='text/html' href='http://nickotech2000.blogspot.com/2009/04/internet-explorer-8-still-not-supported.html' title='Internet Explorer 8 still not supported DOM 2 Events'/><author><name>Nicko Satria Utama</name><uri>http://www.blogger.com/profile/13954117740118688905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5734935016600069480.post-4538246709947873348</id><published>2009-02-20T10:19:00.000-08:00</published><updated>2009-03-14T11:21:21.621-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2005'/><category scheme='http://www.blogger.com/atom/ns#' term='.NET Framework'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Checking .NET framework installed using ASP.NET</title><content type='html'>&lt;p&gt;Some articles in codeproject or other site help me on checking the version of .NET Framework installed on a machine. They use techniques to get information from various resources such as Registry or even look at the windows folder. You can see the articles on :&lt;/p&gt;  &lt;p&gt;Code Project&amp;#160; xFxDetection : &lt;a title="http://www.codeproject.com/KB/dotnet/XFxDetect.aspx" href="http://www.codeproject.com/KB/dotnet/XFxDetect.aspx"&gt;http://www.codeproject.com/KB/dotnet/XFxDetect.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The article above show about searching keys and values in specific location on registry. It can detect version including RTM and Service pack. &lt;/p&gt;  &lt;p&gt;This is good for desktop application and not for web application. In web application, most of system administrator prevent access specific resource like registry. So I came with an idea of checking some features that is available in that machine with specific assembly.&lt;/p&gt;  &lt;p&gt;First thing is about assembly that come with .NET Framework 2.0. We can easily choose any assembly that come from .NET Framework for example is mscorlib.dll. This is a basic assembly that must be existed. I just is it available by load that assembly into current application domain. Other assembly can be loaded with the same way.&lt;/p&gt;  &lt;p&gt;In .NET Framework 3.0, There are 3 pillars of the Framework; There are Windows Presentation Foundation (WPF), Windows Communication Foundation (WCF), Windows Workflow Foundation (WF). Those all pillars come with new assembly. I choose PresentationCore as an assembly to load in my current application domain. That assembly belongs to WPF.&lt;/p&gt;  &lt;p&gt;In .NET Framework 3.5, There are new functionality like LINQ and ASP.NET 3.5 Ajax. I choose System.Core since this assembly contain LINQ&lt;/p&gt;  &lt;p&gt;In .NET Framework 3.5 with Service Pack 1, There is functionality like web routing.&amp;#160; I choose System.Web.Abstraction to load because it belongs to web routing techniques.&lt;/p&gt;  &lt;p&gt;The technique is really simple. I just load all that assembly with their culture, version and token; into my current application domain. If this process throw exception, the machine is not supporting that framework version. &lt;/p&gt;  &lt;p&gt;The code below is a sample. I use an aspx without code behind so user can reuse and put on web server easily.&lt;/p&gt;  &lt;p&gt;I give a name of this file : TestedFramework.aspx&lt;/p&gt;  &lt;hr /&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;lt;%@ Page Language=&amp;quot;C#&amp;quot; AutoEventWireup=&amp;quot;true&amp;quot;&amp;#160; %&amp;gt;    &lt;br /&gt;&amp;lt;%@ Import Namespace=&amp;quot;System.Collections.Generic&amp;quot; %&amp;gt;     &lt;br /&gt;&amp;lt;!DOCTYPE html PUBLIC &amp;quot;-//W3C//DTD XHTML 1.0 Transitional//EN&amp;quot; &amp;quot;&lt;a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;"&gt;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&lt;/a&gt;&amp;gt;     &lt;br /&gt;&amp;lt;html xmlns=&amp;quot;&lt;a href="http://www.w3.org/1999/xhtml&amp;quot;"&gt;http://www.w3.org/1999/xhtml&amp;quot;&lt;/a&gt;&amp;gt;     &lt;br /&gt;&amp;lt;head runat=&amp;quot;server&amp;quot;&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;title&amp;gt;&amp;lt;/title&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;script type=&amp;quot;text/C#&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public const string Net20KnownAssembly = &amp;quot;mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&amp;quot;;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public const string Net30KnownAssembly = &amp;quot;PresentationCore, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35&amp;quot;;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public const string Net35KnownAssembly = &amp;quot;System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089&amp;quot;;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public const string Net35Sp1KnownAssembly = &amp;quot;System.Web.Abstractions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35&amp;quot;; &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public const string ResponseFormat = &amp;quot;.Net Version {0} is {1}&amp;quot;;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public enum ServerNetVersionInstalled     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // not implemented     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Net1x,     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Net20,     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Net30,     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Net35,     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Net35SP1,     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; public IEnumerable&amp;lt;ServerNetVersionInstalled&amp;gt; GetInstalledVersion()    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; List&amp;lt;ServerNetVersionInstalled&amp;gt; lstVersion = new List&amp;lt;ServerNetVersionInstalled&amp;gt;();     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // try for .NET 2.0     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; try     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&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; AppDomain.CurrentDomain.Load(testedframework_aspx.Net20KnownAssembly);     &lt;br /&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; lstVersion.Add(ServerNetVersionInstalled.Net20);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; catch { } &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // try for .NET 3.0    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; try     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&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; AppDomain.CurrentDomain.Load(testedframework_aspx.Net30KnownAssembly);     &lt;br /&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; lstVersion.Add(ServerNetVersionInstalled.Net30);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; catch { } &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // try for .NET 3.5    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; try     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&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; AppDomain.CurrentDomain.Load(testedframework_aspx.Net35KnownAssembly);     &lt;br /&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; lstVersion.Add(ServerNetVersionInstalled.Net35);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; catch { } &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // try for .NET 3.5 Sp1    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; try     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&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; AppDomain.CurrentDomain.Load(testedframework_aspx.Net35Sp1KnownAssembly);     &lt;br /&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; lstVersion.Add(ServerNetVersionInstalled.Net35SP1);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; catch { }     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // try for .NET 1x     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // not implemented     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; return lstVersion;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/script&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;style media=&amp;quot;screen&amp;quot; type=&amp;quot;text/css&amp;quot;&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; em {color:Red; font-weight:lighter; font-size:large;}     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; strong {color:Blue; font-weight:bolder; font-size:large;}     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/style&amp;gt;     &lt;br /&gt;&amp;lt;/head&amp;gt;     &lt;br /&gt;&amp;lt;body style=&amp;quot;font-family:Arial;&amp;quot;&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;form id=&amp;quot;form1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;div style=&amp;quot;height:100px; background-color:#66CCFF; vertical-align:middle; text-align:center;&amp;quot;&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;h1&amp;gt;List of Framework Version Installed&amp;lt;/h1&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/div&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;hr /&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;div style=&amp;quot;background-color:#CEE9F0;&amp;quot;&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &amp;lt;%     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; List&amp;lt;ServerNetVersionInstalled&amp;gt; lstVersion = new List&amp;lt;ServerNetVersionInstalled&amp;gt;(this.GetInstalledVersion());     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; List&amp;lt;string&amp;gt; lstResponse = new List&amp;lt;string&amp;gt;();     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; string formated = &amp;quot;&amp;quot;;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // .NET 2.0     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (lstVersion.IndexOf(ServerNetVersionInstalled.Net20) &amp;gt;= 0)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&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; formated = string.Format(testedframework_aspx.ResponseFormat, &amp;quot;2.0&amp;quot;, &amp;quot;&amp;lt;strong&amp;gt;Installed&amp;lt;/strong&amp;gt;&amp;quot;);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; else     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&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; formated = string.Format(testedframework_aspx.ResponseFormat, &amp;quot;2.0&amp;quot;, &amp;quot;&amp;lt;em&amp;gt;Not Installed&amp;lt;/em&amp;gt;&amp;quot;);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; lstResponse.Add(formated); &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // .NET 3.0    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (lstVersion.IndexOf(ServerNetVersionInstalled.Net30) &amp;gt;= 0)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&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; formated = string.Format(testedframework_aspx.ResponseFormat, &amp;quot;3.0&amp;quot;, &amp;quot;&amp;lt;strong&amp;gt;Installed&amp;lt;/strong&amp;gt;&amp;quot;);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; else     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&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; formated = string.Format(testedframework_aspx.ResponseFormat, &amp;quot;3.0&amp;quot;, &amp;quot;&amp;lt;em&amp;gt;Not Installed&amp;lt;/em&amp;gt;&amp;quot;);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; lstResponse.Add(formated); &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // .NET 3.5    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (lstVersion.IndexOf(ServerNetVersionInstalled.Net35) &amp;gt;= 0)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&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; formated = string.Format(testedframework_aspx.ResponseFormat, &amp;quot;3.5&amp;quot;, &amp;quot;&amp;lt;strong&amp;gt;Installed&amp;lt;/strong&amp;gt;&amp;quot;);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; else     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&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; formated = string.Format(testedframework_aspx.ResponseFormat, &amp;quot;3.5&amp;quot;, &amp;quot;&amp;lt;em&amp;gt;Not Installed&amp;lt;/em&amp;gt;&amp;quot;);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; lstResponse.Add(formated); &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; // .NET 3.5 SP 1    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; if (lstVersion.IndexOf(ServerNetVersionInstalled.Net35SP1) &amp;gt;= 0)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; { &lt;/p&gt;  &lt;p&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; formated = string.Format(testedframework_aspx.ResponseFormat, &amp;quot;3.5 SP 1&amp;quot;, &amp;quot;&amp;lt;strong&amp;gt;Installed&amp;lt;/strong&amp;gt;&amp;quot;);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; else     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&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; formated = string.Format(testedframework_aspx.ResponseFormat, &amp;quot;3.5 SP 1&amp;quot;, &amp;quot;&amp;lt;em&amp;gt;Not Installed&amp;lt;/em&amp;gt;&amp;quot;);     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; lstResponse.Add(formated); &lt;/p&gt;  &lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; this.Response.Write(&amp;quot;&amp;quot;);    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; foreach (string item in lstResponse)     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&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; string html = string.Format(&amp;quot;&amp;lt;p&amp;gt;{0}&amp;lt;/p&amp;gt;&amp;quot;,item);     &lt;br /&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; this.Response.Write(html);&amp;#160;&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&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;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/div&amp;gt;     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;/form&amp;gt;     &lt;br /&gt;&amp;lt;/body&amp;gt;     &lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/p&gt;  &lt;hr /&gt;  &lt;p&gt;&lt;/p&gt;  &lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:096c8573-818f-4a5d-a7f3-5b1acada0bbf" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/ASP.NET" rel="tag"&gt;ASP.NET&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Visual+Studio+2008" rel="tag"&gt;Visual Studio 2008&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Visual+Studio+2005" rel="tag"&gt;Visual Studio 2005&lt;/a&gt;,&lt;a href="http://technorati.com/tags/.NET+Framework" rel="tag"&gt;.NET Framework&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5734935016600069480-4538246709947873348?l=nickotech2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nickotech2000.blogspot.com/feeds/4538246709947873348/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5734935016600069480&amp;postID=4538246709947873348&amp;isPopup=true' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5734935016600069480/posts/default/4538246709947873348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5734935016600069480/posts/default/4538246709947873348'/><link rel='alternate' type='text/html' href='http://nickotech2000.blogspot.com/2009/02/checking-net-framework-installed-using.html' title='Checking .NET framework installed using ASP.NET'/><author><name>Nicko Satria Utama</name><uri>http://www.blogger.com/profile/13954117740118688905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5734935016600069480.post-5127466850510578205</id><published>2009-01-28T20:52:00.001-08:00</published><updated>2009-01-28T21:21:33.623-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Globalization'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><category scheme='http://www.blogger.com/atom/ns#' term='Culture'/><title type='text'>Problem overriding Page.InitializeCulture in ASP.NET</title><content type='html'>&lt;p&gt;Some articles on MSDN said that you can do some magic things using culture. You can see it in &lt;a href="http://msdn.microsoft.com/en-us/library/bz9tc508.aspx" target="_blank"&gt;http://msdn.microsoft.com/en-us/library/bz9tc508.aspx&lt;/a&gt;. It is good when inherited page that does not use master page and the ASP.NET page is directly derived from Page class. &lt;/p&gt;  &lt;p&gt;It will be a problem if you are not directly inherit from a page class expecially if you define a contentplaceholder in your masterpage, and use it in your inherited page. &lt;/p&gt;  &lt;p&gt;Quick example:&lt;/p&gt;  &lt;p&gt;File : Masterpage.master&lt;/p&gt;  &lt;pre class="csharpcode"&gt;&lt;span class="asp"&gt;&amp;lt;%@ Master Language=&amp;quot;C#&amp;quot; AutoEventWireup=&amp;quot;true&amp;quot; Codebehind=&amp;quot;MasterPage.Master.cs&amp;quot;&lt;br /&gt;    Inherits=&amp;quot;Yourpage.Master&amp;quot; %&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;!&lt;/span&gt;&lt;span class="html"&gt;DOCTYPE&lt;/span&gt; &lt;span class="attr"&gt;html&lt;/span&gt; &lt;span class="attr"&gt;PUBLIC&lt;/span&gt; &lt;span class="kwrd"&gt;&amp;quot;-//W3C//DTD XHTML 1.0 Transitional//EN&amp;quot;&lt;/span&gt; &lt;span class="kwrd"&gt;&amp;quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;html&lt;/span&gt; &lt;span class="attr"&gt;xmlns&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;http://www.w3.org/1999/xhtml&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;head&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;    &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;title&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;Your Master Page&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;title&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;head&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;body&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;form&lt;/span&gt; &lt;span class="attr"&gt;id&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;form1&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;         &lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:ContentPlaceHolder&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;cph1&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;                                &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:ContentPlaceHolder&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;   &lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;form&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;body&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;File: Inherited.cs&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="border-right: black 1px solid; border-top: black 1px solid; overflow: scroll; border-left: black 1px solid; width: 100%; border-bottom: black 1px solid"&gt;&lt;br /&gt;  &lt;div style="background-color: #e2ecf6"&gt;Public Class Inherited : System.Web.UI.Page &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;  &lt;div style="background-color: #ffccff"&gt;{ &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;  &lt;div style="background-color: #e2ecf6"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Protected &lt;span style="color: blue"&gt;override&lt;/span&gt;&amp;#160;&lt;span style="color: blue"&gt;void&lt;/span&gt;&amp;#160; InitializeCulture() &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;  &lt;div style="background-color: #ffccff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; { &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;  &lt;div style="background-color: #e2ecf6"&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: blue"&gt;base&lt;/span&gt;.InitializeCulture(); &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;  &lt;div style="background-color: #ffccff"&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: blue"&gt;do&lt;/span&gt; it your own &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;  &lt;div style="background-color: #e2ecf6"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; } &lt;/div&gt;&lt;br /&gt;&lt;br /&gt;  &lt;div style="background-color: #ffccff"&gt;} &lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;File: YourASP.aspx&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="csharpcode"&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="asp"&gt;&amp;lt;%@ Page Language=&amp;quot;C#&amp;quot; MasterPageFile=&amp;quot;~/MasterPage.Master&amp;quot; AutoEventWireup=&amp;quot;true&amp;quot;    Codebehind=&amp;quot;YourASP.aspx.cs&amp;quot; Inherits=&amp;quot;&amp;quot;YourASP&amp;quot; Title=&amp;quot;Untitled Page&amp;quot; %&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;  &lt;pre class="alt"&gt;&lt;span class="kwrd"&gt;&amp;lt;&lt;/span&gt;&lt;span class="html"&gt;asp:Content&lt;/span&gt; &lt;span class="attr"&gt;ID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;Content1&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;ContentPlaceHolderID&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;cp1&amp;quot;&lt;/span&gt; &lt;span class="attr"&gt;runat&lt;/span&gt;&lt;span class="kwrd"&gt;=&amp;quot;server&amp;quot;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="html"&gt;asp:Content&lt;/span&gt;&lt;span class="kwrd"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;File: YourASP.aspx.cs&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="border-right: black 1px solid; border-top: black 1px solid; overflow: scroll; border-left: black 1px solid; width: 100%; border-bottom: black 1px solid"&gt;&lt;br /&gt;  &lt;div style="background-color: #e2ecf6"&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt;&amp;#160;&lt;span style="color: blue"&gt;partial&lt;/span&gt;&amp;#160;&lt;span style="color: blue"&gt;class&lt;/span&gt; YourASP : Inherited&amp;#160; &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;  &lt;div style="background-color: #ffccff"&gt;{&amp;#160; &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;  &lt;div style="background-color: #e2ecf6"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: gray"&gt;/// Make it your own methods or whatever &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;    &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;  &lt;div style="background-color: #ffccff"&gt;}&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;The problem is when I add any ASP.NET controls into Content1, The control will not be displayed. I already make some debug and find out in watch that Template_cp1 is null. You can see it in debug visualization. Just browse its visualization to instance of the Master property of that page, drill down to ASP.Masterpage_master, you can see that Template is set to null. &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;That is solved when I am not overriding InitializeCulture. In Template property, it will set to System.Web.UI.CompiledTemplateBuilder instance, so any controls you define in Content1 will be displayed.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;To provide your own culture mechanism, do not override InitializeCulture methods. You can use any override methods like OnPreInit or OnInit or others to initialize your own culture mechanism.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="wlWriterEditableSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:0ce1e29b-4a6e-4f22-b74d-f074bb0d5500" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/ASP.NET" rel="tag"&gt;ASP.NET&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Culture" rel="tag"&gt;Culture&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Globalization" rel="tag"&gt;Globalization&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5734935016600069480-5127466850510578205?l=nickotech2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nickotech2000.blogspot.com/feeds/5127466850510578205/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5734935016600069480&amp;postID=5127466850510578205&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5734935016600069480/posts/default/5127466850510578205'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5734935016600069480/posts/default/5127466850510578205'/><link rel='alternate' type='text/html' href='http://nickotech2000.blogspot.com/2009/01/problem-overriding-pageinitializecultur.html' title='Problem overriding Page.InitializeCulture in ASP.NET'/><author><name>Nicko Satria Utama</name><uri>http://www.blogger.com/profile/13954117740118688905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5734935016600069480.post-8738744923961610918</id><published>2008-10-13T19:59:00.001-07:00</published><updated>2008-10-13T19:59:20.705-07:00</updated><title type='text'>Immutable state and fluent interface</title><content type='html'>&lt;p&gt;Based on the video from Anders in&amp;#160; &lt;a target="_blank" href="http://jaoo.blip.tv/#1324214" rel="video"&gt;Anders' keynote on language futures&lt;/a&gt; , one of the issue is about functional programming. One aspect of functional programming is avoiding mutable state. It is possible for imperative programming like C# or VB to avoid it with adopting functional style.&lt;/p&gt;  &lt;p&gt;Fluent interface is an object oriented construct that defines a behavior capable of relaying the instruction context of a subsequent call. Based on &lt;a target="_blank" href="http://www.martinfowler.com/bliki/FluentInterface.html" rel="article"&gt;Martin Fowler bliki of DSL&lt;/a&gt;, we can provide a more fluid feel to the code. This has an advantage that the coder will write code easier to read because the semantic is clear.&lt;/p&gt;  &lt;p&gt;The combination of them will produce more functional &lt;/p&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: none; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:486ad926-c275-4b94-9aaf-af7644d9251c" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Functional+Programming" rel="tag"&gt;Functional Programming&lt;/a&gt;,&lt;a href="http://technorati.com/tags/C%23" rel="tag"&gt;C#&lt;/a&gt;,&lt;a href="http://technorati.com/tags/.NET" rel="tag"&gt;.NET&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Fluent+Interface" rel="tag"&gt;Fluent Interface&lt;/a&gt;,&lt;a href="http://technorati.com/tags/DSL" rel="tag"&gt;DSL&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Internal+DSL" rel="tag"&gt;Internal DSL&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Immutable+state" rel="tag"&gt;Immutable state&lt;/a&gt;&lt;/div&gt;  &lt;p&gt;and readable code. Below is my example of both combination.&lt;/p&gt;  &lt;p&gt;Meeting class&lt;/p&gt;  &lt;div style="border-bottom: black 1px solid; border-left: black 1px solid; width: 100%; height: 308px; overflow: scroll; border-top: black 1px solid; border-right: black 1px solid"&gt;   &lt;div style="background-color: #e2ecf6"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: gray"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: gray"&gt;/// Define meeting&lt;/span&gt;      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: gray"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;public&lt;/span&gt;&amp;#160;&lt;span style="color: blue"&gt;class&lt;/span&gt; Meeting      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&gt;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;private&lt;/span&gt;&amp;#160;&lt;span style="color: blue"&gt;readonly&lt;/span&gt; DateTime? startTime;      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;private&lt;/span&gt;&amp;#160;&lt;span style="color: blue"&gt;readonly&lt;/span&gt; DateTime? finishTime;      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&gt;     &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: gray"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: gray"&gt;/// Default Constructor&lt;/span&gt;      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: gray"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&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; Meeting()      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&gt;     &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&gt;     &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: gray"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: gray"&gt;/// Constructor &lt;/span&gt;      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: gray"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: gray"&gt;/// &amp;lt;param name=&lt;span style="color: red"&gt;&amp;quot;start&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: gray"&gt;/// &amp;lt;param name=&lt;span style="color: red"&gt;&amp;quot;finish&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;internal&lt;/span&gt; Meeting(DateTime? start, DateTime? finish)      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&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: blue"&gt;this&lt;/span&gt;.startTime = start;      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&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: blue"&gt;this&lt;/span&gt;.finishTime = finish;      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&gt;     &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: gray"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: gray"&gt;/// Define start meeting&lt;/span&gt;      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: gray"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: gray"&gt;/// &amp;lt;param name=&lt;span style="color: red"&gt;&amp;quot;start&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: gray"&gt;/// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&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; Meeting Start(DateTime start)      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; DateTime? temp = &lt;span style="color: blue"&gt;this&lt;/span&gt;.finishTime;      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Meeting meet = &lt;span style="color: blue"&gt;null&lt;/span&gt;;      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&gt;     &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&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: blue"&gt;if&lt;/span&gt; (temp != &lt;span style="color: blue"&gt;null&lt;/span&gt;)      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&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; meet = &lt;span style="color: blue"&gt;new&lt;/span&gt; Meeting(start, temp);      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&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: blue"&gt;else&lt;/span&gt;      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&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; meet = &lt;span style="color: blue"&gt;new&lt;/span&gt; Meeting(start, &lt;span style="color: blue"&gt;null&lt;/span&gt;);      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&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: blue"&gt;return&lt;/span&gt; meet;      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&gt;     &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: gray"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: gray"&gt;/// Define finish meeting&lt;/span&gt;      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: gray"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: gray"&gt;/// &amp;lt;param name=&lt;span style="color: red"&gt;&amp;quot;finish&amp;quot;&lt;/span&gt;&amp;gt;&amp;lt;/param&amp;gt;&lt;/span&gt;      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: gray"&gt;/// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;/span&gt;      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&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; Meeting Finish(DateTime finish)      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; DateTime? temp = &lt;span style="color: blue"&gt;this&lt;/span&gt;.startTime;      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Meeting meet = &lt;span style="color: blue"&gt;null&lt;/span&gt;;      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&gt;     &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&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: blue"&gt;if&lt;/span&gt; (temp != &lt;span style="color: blue"&gt;null&lt;/span&gt;)      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&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; meet = &lt;span style="color: blue"&gt;new&lt;/span&gt; Meeting(temp, finish);      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&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: blue"&gt;else&lt;/span&gt;      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&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; meet = &lt;span style="color: blue"&gt;new&lt;/span&gt; Meeting(&lt;span style="color: blue"&gt;null&lt;/span&gt;, finish);      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&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: blue"&gt;return&lt;/span&gt; meet;      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&gt;     &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: gray"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: gray"&gt;/// &lt;/span&gt;      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: gray"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&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; DateTime? StartTime      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&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: blue"&gt;get&lt;/span&gt; { &lt;span style="color: blue"&gt;return&lt;/span&gt;&amp;#160;&lt;span style="color: blue"&gt;this&lt;/span&gt;.startTime; }      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&gt;     &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: gray"&gt;/// &amp;lt;summary&amp;gt;&lt;/span&gt;      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: gray"&gt;/// &lt;/span&gt;      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: gray"&gt;/// &amp;lt;/summary&amp;gt;&lt;/span&gt;      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&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; DateTime? FinishTime      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&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: blue"&gt;get&lt;/span&gt; { &lt;span style="color: blue"&gt;return&lt;/span&gt;&amp;#160;&lt;span style="color: blue"&gt;this&lt;/span&gt;.finishTime; }      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&gt;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&lt;/div&gt; &lt;/div&gt;  &lt;p&gt;Main Class&lt;/p&gt;  &lt;div style="border-bottom: black 1px solid; border-left: black 1px solid; width: 100%; overflow: scroll; border-top: black 1px solid; border-right: black 1px solid"&gt;   &lt;div style="background-color: #e2ecf6"&gt;&lt;span style="color: blue"&gt;class&lt;/span&gt; Program      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&gt;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;static&lt;/span&gt;&amp;#160;&lt;span style="color: blue"&gt;void&lt;/span&gt; Main(&lt;span style="color: blue"&gt;string&lt;/span&gt;[] args)      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Meeting meet = &lt;span style="color: blue"&gt;new&lt;/span&gt; Meeting().Start(DateTime.Now).Finish(DateTime.Now.AddDays(20));      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(&lt;span style="color: red"&gt;&amp;quot;StartTime = &amp;quot;&lt;/span&gt; + meet.StartTime);      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.WriteLine(&lt;span style="color: red"&gt;&amp;quot;FinishTime = &amp;quot;&lt;/span&gt; + meet.FinishTime);      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; Console.ReadLine();     &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&gt;&amp;#160;&amp;#160;&amp;#160; }&lt;/div&gt; &lt;/div&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;In the meeting class, I use readonly field, so the state of the field can be accessed only on constructor. This code style I just copy from Anders video. &lt;/p&gt;  &lt;p&gt;Method Start and Finish is fluent interface style. Those methods use in main class; you can see in the statement “Meeting meet = &lt;span style="color: blue"&gt;new&lt;/span&gt; Meeting().Start(DateTime.Now).Finish(DateTime.Now.AddDays(20));”&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5734935016600069480-8738744923961610918?l=nickotech2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nickotech2000.blogspot.com/feeds/8738744923961610918/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5734935016600069480&amp;postID=8738744923961610918&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5734935016600069480/posts/default/8738744923961610918'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5734935016600069480/posts/default/8738744923961610918'/><link rel='alternate' type='text/html' href='http://nickotech2000.blogspot.com/2008/10/immutable-state-and-fluent-interface.html' title='Immutable state and fluent interface'/><author><name>Nicko Satria Utama</name><uri>http://www.blogger.com/profile/13954117740118688905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5734935016600069480.post-4859557030634250525</id><published>2008-09-12T03:42:00.001-07:00</published><updated>2008-09-12T03:42:34.227-07:00</updated><title type='text'>Web development skill</title><content type='html'>&lt;p&gt;Today we face many technologies to build a web application; from simple static html to complex business application. Even there are many consortium / organization that make standard web, but it is still complex. People ask about studying web are really &amp;quot;bloody hell&amp;quot;. That's true.. even I am web developer right now, I still have to learn a web.&lt;/p&gt;  &lt;p&gt;There are basic thing that you MUST study in a web development.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;HTML. This is most important think to study. It is because the HTML describes structure of the document. It can be HTML or XHTML. &lt;/li&gt;    &lt;li&gt;CSS. After you can make a document in HTML, you need to know it. It is because the CSS describe presentation of the document. You can make a nice layout, color and font there.&lt;/li&gt;    &lt;li&gt;Javascript. is one of the available script that you can use to manipulate the documents. The other is VBScript that comes only in Internet Explorer.&lt;/li&gt;    &lt;li&gt;DOM. Describe element in HTML. This is required by Javascript to inspect and modify page dynamically.&lt;/li&gt;    &lt;li&gt;HTTP Principle. It is stateless protocol. So after you get the whole page from server, you disconnected.&lt;/li&gt; &lt;/ul&gt;  &lt;div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:25b95880-9187-4fc1-ae82-01afa60c2733" class="wlWriterSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Web" rel="tag"&gt;Web&lt;/a&gt;,&lt;a href="http://technorati.com/tags/HTML" rel="tag"&gt;HTML&lt;/a&gt;,&lt;a href="http://technorati.com/tags/CSS" rel="tag"&gt;CSS&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Javascript" rel="tag"&gt;Javascript&lt;/a&gt;,&lt;a href="http://technorati.com/tags/DOM" rel="tag"&gt;DOM&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5734935016600069480-4859557030634250525?l=nickotech2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nickotech2000.blogspot.com/feeds/4859557030634250525/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5734935016600069480&amp;postID=4859557030634250525&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5734935016600069480/posts/default/4859557030634250525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5734935016600069480/posts/default/4859557030634250525'/><link rel='alternate' type='text/html' href='http://nickotech2000.blogspot.com/2008/09/web-development-skill.html' title='Web development skill'/><author><name>Nicko Satria Utama</name><uri>http://www.blogger.com/profile/13954117740118688905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5734935016600069480.post-9096698186754311767</id><published>2008-08-10T08:43:00.000-07:00</published><updated>2008-08-10T10:54:48.602-07:00</updated><title type='text'>Reading RSS from Blogger, display to ASP.NET</title><content type='html'>Blogger use 2 type of syndication :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;RSS 2.0&lt;/li&gt;&lt;li&gt;Atom&lt;/li&gt;&lt;/ul&gt;to read and display it to ASP.NET, I use XSLT to transform the RSS into HTML.&lt;br /&gt;below is a sample of my XSLT file.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;?xml version="1.0"?&amp;gt;&lt;br /&gt;&amp;lt;xsl:stylesheet version="1.0" xsl="http://www.w3.org/1999/XSL/Transform"&amp;gt;&lt;br /&gt;&amp;lt;xsl:output method="html"&amp;gt;&lt;br /&gt;&amp;lt;xsl:template match="/"&amp;gt;&lt;br /&gt;&amp;lt;style&amp;gt;&lt;br /&gt;&amp;lt;xsl:comment&amp;gt;&lt;br /&gt;&amp;lt;/xsl:comment&amp;gt;&lt;br /&gt;&amp;lt;/style&amp;gt;&lt;br /&gt;&amp;lt;xsl:apply-templates select="/rss/channel"&amp;gt;&lt;br /&gt;&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;&amp;lt;!-- Blogger Information --&amp;gt;&lt;br /&gt;&amp;lt;xsl:template match="/rss/channel"&amp;gt;&lt;br /&gt;&amp;lt;div class="blogreader"&amp;gt;&lt;br /&gt;&amp;lt;h1&amp;gt;&lt;br /&gt;&amp;lt;a href="{link}"&amp;gt;&lt;br /&gt; &amp;lt;xsl:value-of select="title"&amp;gt;&lt;br /&gt;&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;/h1&amp;gt;&lt;br /&gt;&amp;lt;xsl:apply-templates select="item"&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;&amp;lt;!--Blogger Items--&amp;gt;&lt;br /&gt;&amp;lt;xsl:template match="/rss/channel/item"&amp;gt;&lt;br /&gt;&amp;lt;div class="item"&amp;gt;&lt;br /&gt;&amp;lt;h3&amp;gt;&lt;br /&gt;&amp;lt;a href="{link}"&amp;gt;&lt;br /&gt; &amp;lt;xsl:value-of select="title"&amp;gt;&lt;br /&gt;&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;/h3&amp;gt;&lt;br /&gt;&amp;lt;hr/&amp;gt;&lt;br /&gt;&amp;lt;span class="date"&amp;gt;&lt;br /&gt;Publication date : &amp;lt;xsl:value-of select="pubDate"&amp;gt;&lt;br /&gt;&amp;lt;/span&amp;gt;&lt;br /&gt;&amp;lt;br/&amp;gt;&lt;br /&gt;&amp;lt;xsl:value-of select="description"&amp;gt;&lt;br /&gt;&amp;lt;/div&amp;gt;&lt;br /&gt;&amp;lt;span&amp;gt;&lt;br /&gt;&amp;lt;a class="top" href="#top"&amp;gt;Go to top&amp;lt;/a&amp;gt;&lt;br /&gt;&amp;lt;/span&amp;gt;&lt;br /&gt;&amp;lt;/xsl:template&amp;gt;&lt;br /&gt;&amp;lt;/xsl:stylesheet&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;That XSLT above will be used in the code using XslTransform.&lt;br /&gt;RSS file will be loaded using XmlDocument class and XSLT using XSLTransform class; and do it some transform. Here is a quick sample of my code.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;internal static string ReadXmlToHTML(string path, string xslpath)&lt;br /&gt;{&lt;br /&gt;   StringBuilder strBuilder = new StringBuilder();&lt;br /&gt;   TextWriter strWriter = new StringWriter(strBuilder);&lt;br /&gt;&lt;br /&gt;   Uri uri = null;&lt;br /&gt;&lt;br /&gt;   if (Uri.TryCreate(path, UriKind.RelativeOrAbsolute, out uri))&lt;br /&gt;   {&lt;br /&gt;       Stream stream = null;&lt;br /&gt;       if (uri != null &amp;amp;&amp;amp; uri.Scheme == Uri.UriSchemeHttp)&lt;br /&gt;       {&lt;br /&gt;           WebClient client = new WebClient();&lt;br /&gt;           byte[] datas = client.DownloadData(uri);&lt;br /&gt;           stream = new MemoryStream(datas);&lt;br /&gt;       }&lt;br /&gt;       if (stream != null)&lt;br /&gt;       {&lt;br /&gt;           XmlDocument document = new XmlDocument();&lt;br /&gt;           document.Load(stream);&lt;br /&gt;&lt;br /&gt;           XslTransform xslt = new XslTransform();&lt;br /&gt;           xslt.Load(HttpContext.Current.Server.MapPath(xslpath));&lt;br /&gt;           xslt.Transform(document, null, strWriter);&lt;br /&gt;       }&lt;br /&gt;   }&lt;br /&gt;   return strBuilder.ToString();&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;It will return a string that contain HTML that can be used in the ASP.NET&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5734935016600069480-9096698186754311767?l=nickotech2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nickotech2000.blogspot.com/feeds/9096698186754311767/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5734935016600069480&amp;postID=9096698186754311767&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5734935016600069480/posts/default/9096698186754311767'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5734935016600069480/posts/default/9096698186754311767'/><link rel='alternate' type='text/html' href='http://nickotech2000.blogspot.com/2008/08/reading-rss-from-blogger-display-to.html' title='Reading RSS from Blogger, display to ASP.NET'/><author><name>Nicko Satria Utama</name><uri>http://www.blogger.com/profile/13954117740118688905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5734935016600069480.post-4571088061696983142</id><published>2008-07-15T21:44:00.001-07:00</published><updated>2008-07-15T21:44:04.706-07:00</updated><title type='text'>Test my plugs ins for windows live writer</title><content type='html'>&lt;p&gt;Since I make my plug ins for windows live writer, I want to know it is works well or not. &lt;/p&gt;  &lt;p&gt;In C#&lt;/p&gt;  &lt;div style="border-right: black 1px solid; border-top: black 1px solid; overflow: scroll; border-left: black 1px solid; width: 100%; border-bottom: black 1px solid"&gt;   &lt;div style="background-color: #e2ecf6"&gt;&lt;span style="color: blue"&gt;public&lt;/span&gt;&amp;#160;&lt;span style="color: blue"&gt;static&lt;/span&gt;&amp;#160;&lt;span style="color: blue"&gt;string&lt;/span&gt; GetProductName(&lt;span style="color: blue"&gt;bool&lt;/span&gt; withTag)      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&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: blue"&gt;string&lt;/span&gt; bareProductName = GetBareProductName();      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&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: blue"&gt;string&lt;/span&gt; productNameFormat = PdnResources.GetString(&lt;span style="color: red"&gt;&amp;quot;Application.ProductName.Format&amp;quot;&lt;/span&gt;);      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&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: blue"&gt;string&lt;/span&gt; tag;      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&gt;     &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&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: blue"&gt;if&lt;/span&gt; (withTag)      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;span style="color: blue"&gt;string&lt;/span&gt; tagFormat = PdnResources.GetString(&lt;span style="color: red"&gt;&amp;quot;Application.ProductName.Tag.Format&amp;quot;&lt;/span&gt;);      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&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; tag = &lt;span style="color: blue"&gt;string&lt;/span&gt;.Format(tagFormat, GetAppConfig());      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&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: blue"&gt;else&lt;/span&gt;      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; {     &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&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; tag = &lt;span style="color: blue"&gt;string&lt;/span&gt;.Empty;      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }     &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&gt;     &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&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: blue"&gt;string&lt;/span&gt; version = GetVersionNumberString(GetVersion(), 2);      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&gt;     &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&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: blue"&gt;string&lt;/span&gt; productName = &lt;span style="color: blue"&gt;string&lt;/span&gt;.Format(      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&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; productNameFormat,     &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&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; bareProductName,     &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&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; version,     &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&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; tag);     &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&gt;     &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&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: blue"&gt;return&lt;/span&gt; productName;      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; }&lt;/div&gt; &lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;In VB&lt;/p&gt;  &lt;div style="border-right: black 1px solid; border-top: black 1px solid; overflow: scroll; border-left: black 1px solid; width: 100%; border-bottom: black 1px solid"&gt;   &lt;div style="background-color: #e2ecf6"&gt;&lt;span style="color: blue"&gt;Public&lt;/span&gt;&amp;#160;&lt;span style="color: blue"&gt;Sub&lt;/span&gt; SomeMethods      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&gt;     &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&gt;&lt;span style="color: blue"&gt;Dim&lt;/span&gt; baseProductName &lt;span style="color: blue"&gt;As&lt;/span&gt;&amp;#160;&lt;span style="color: blue"&gt;String&lt;/span&gt; = GetBareProductName()      &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #ffccff"&gt;     &lt;br /&gt;&lt;/div&gt;    &lt;div style="background-color: #e2ecf6"&gt;&lt;span style="color: blue"&gt;End&lt;/span&gt;&amp;#160;&lt;span style="color: blue"&gt;Sub&lt;/span&gt;&amp;#160;&lt;/div&gt; &lt;/div&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:cf8d0ab9-70ba-4b5d-98ae-4a58b8465753" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Windows%20Live%20Writer" rel="tag"&gt;Windows Live Writer&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Test" rel="tag"&gt;Test&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5734935016600069480-4571088061696983142?l=nickotech2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nickotech2000.blogspot.com/feeds/4571088061696983142/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5734935016600069480&amp;postID=4571088061696983142&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5734935016600069480/posts/default/4571088061696983142'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5734935016600069480/posts/default/4571088061696983142'/><link rel='alternate' type='text/html' href='http://nickotech2000.blogspot.com/2008/07/test-my-plugs-ins-for-windows-live.html' title='Test my plugs ins for windows live writer'/><author><name>Nicko Satria Utama</name><uri>http://www.blogger.com/profile/13954117740118688905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5734935016600069480.post-2293046346527255595</id><published>2008-06-20T03:37:00.001-07:00</published><updated>2008-06-23T19:20:31.337-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Controls'/><category scheme='http://www.blogger.com/atom/ns#' term='Components'/><category scheme='http://www.blogger.com/atom/ns#' term='UI'/><title type='text'>Choosing third party UI component / control</title><content type='html'>&lt;p&gt;Software development today is more complex than before. Some of the software development company want to focus to its business process / logic while they try to skip the complex logic of UI control by using third party UI controls.   &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;Of course there are many providers that supplies controls for you, but what controls are suites for the project. Some controls is built nice; They have many features to manipulate by developer and end user and others have limited feature. Some controls are expensive while others are free or open source.   &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;Here are tips :&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Test controls by following them like the tutorial or demos&lt;/strong&gt;. Try to create a small/simple project or recreate a demos to test it.    &lt;br /&gt;What to test :    &lt;br /&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Time to learn and use it. &lt;/li&gt;    &lt;li&gt;The features are working well. &lt;/li&gt;    &lt;li&gt;The features are matching to documentation. &lt;/li&gt;    &lt;li&gt;The features are expecting to be used in the project. &lt;/li&gt;    &lt;li&gt;Complete online or offline documentation &lt;/li&gt;    &lt;li&gt;Support from customer support or forums to ask &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;From simple test, I expect:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;productivity when use the controls &lt;/li&gt;    &lt;li&gt;any support to help &lt;/li&gt;    &lt;li&gt;feature that are really needed &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Test controls by supplying properties from value types to complex reference types&lt;/strong&gt;. Value types like integer, simple reference type like array, Color or just IEnumerable, complex reference type like datatable or dataset.    &lt;br /&gt;&lt;/p&gt;  &lt;p&gt;What to test:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Assign properties with its data type &lt;/li&gt;    &lt;li&gt;Assign properties with array or IEnumerable if its datatype is implementing IEnumerable &lt;/li&gt;    &lt;li&gt;Assign properties with datatable or dataset if possible &lt;/li&gt;    &lt;li&gt;Handle error on unmatch datatypes or unknown datatypes &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;From datatype test, I expect:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Controls run on multiple/many scenarios &lt;/li&gt;    &lt;li&gt;Controls will not run while datatypes error or unmatch &lt;/li&gt;    &lt;li&gt;Error handles when datatype error or inconsistence &lt;/li&gt;    &lt;li&gt;Check if the control is a provider agnostic control. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Test controls by supplying fake data&lt;/strong&gt;. Data can be single data or complex data.    &lt;br /&gt;What to test:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Performance to parse data dan display data &lt;/li&gt;    &lt;li&gt;Performance to manipulate data &lt;/li&gt;    &lt;li&gt;Exception and error happens when manipulating &lt;/li&gt;    &lt;li&gt;Handle null data, zero data, incosistent data &lt;/li&gt;    &lt;li&gt;Handle controls state &lt;/li&gt;    &lt;li&gt;Controls responsiveness &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;From data test, I expect:   &lt;br /&gt;&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Controls performance &lt;/li&gt;    &lt;li&gt;Handle data state and control state &lt;/li&gt;    &lt;li&gt;Error handles when data &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;Test controls by supplying real data&lt;/strong&gt;. This is the same as fake data, but can be tested against thousand or maybe billions of records. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Test controls in a small projects&lt;/strong&gt;. This project can be archieved projects or running projects. It will make me sure that controls can run well and easily composed.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Test controls in a running projects with a small team&lt;/strong&gt; and use branching mechanism in software development. The controls will be used in the main project in the next iteration. &lt;/p&gt;  &lt;p&gt;A new release of the controls will be tested again.&lt;/p&gt;  &lt;p&gt;   &lt;/p&gt;&lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:70cd3e6f-788b-41c5-bc13-cefdd3c8d48a" style="margin: 0px; padding: 0px; display: inline;"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/UI" rel="tag"&gt;UI&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Controls" rel="tag"&gt;Controls&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Components" rel="tag"&gt;Components&lt;/a&gt;&lt;/div&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5734935016600069480-2293046346527255595?l=nickotech2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nickotech2000.blogspot.com/feeds/2293046346527255595/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5734935016600069480&amp;postID=2293046346527255595&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5734935016600069480/posts/default/2293046346527255595'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5734935016600069480/posts/default/2293046346527255595'/><link rel='alternate' type='text/html' href='http://nickotech2000.blogspot.com/2008/06/choosing-third-party-ui-component.html' title='Choosing third party UI component / control'/><author><name>Nicko Satria Utama</name><uri>http://www.blogger.com/profile/13954117740118688905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5734935016600069480.post-650186898499489493</id><published>2008-05-20T06:37:00.000-07:00</published><updated>2008-05-20T22:06:57.162-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Notebook'/><category scheme='http://www.blogger.com/atom/ns#' term='Dream'/><title type='text'>Dream Notebook</title><content type='html'>Several hours in internet cafe,&lt;br /&gt;I found notebooks that I want&lt;br /&gt;&lt;br /&gt;High End notebook&lt;br /&gt;&lt;br /&gt;1. Custom Alienware type: &lt;span&gt;&lt;span id="ctl00_ItemDetails_QuickForm_ctl00_ctl01_lbItemDetails"&gt;&lt;b&gt;Area-51® m17x&lt;br /&gt;&lt;/b&gt;Specification :&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span id="ctl00_ItemDetails_QuickForm_ctl00_ctl01_lbItemDetails"&gt;&lt;b&gt;Video/Graphics Card&lt;/b&gt;: Dual 512MB NVIDIA® GeForce® Go 8700M GT – SLI Enabled&lt;br /&gt;&lt;b&gt;Display&lt;/b&gt;: 17" WideUXGA 1920 x 1200 LCD with Clearview Technology – Black&lt;br /&gt;&lt;em&gt;Includes &lt;b&gt;Non-Illuminated Keyboard&lt;/b&gt; – Exclusive Design!&lt;/em&gt;&lt;br /&gt;&lt;b&gt;System Lighting&lt;/b&gt;: Alienware® AlienFX® System Lighting - Blue&lt;br /&gt;&lt;b&gt;Processor&lt;/b&gt;: Intel® Core™ 2 Duo T9500 2.6GHz (6MB Cache 800MHz FSB)&lt;br /&gt;&lt;b&gt;Memory&lt;/b&gt;: 4GB Dual Channel DDR2 SO-DIMM at 667MHz – 2 x 2048MB&lt;br /&gt;&lt;b&gt;Operating System (Office software not included)&lt;/b&gt;: Windows Vista® Ultimate with Service Pack 1&lt;br /&gt;&lt;b&gt;Notebook Tuners and Remotes&lt;/b&gt;: Without Media Center Remote Control or TV Tuner&lt;br /&gt;&lt;b&gt;System Drive&lt;/b&gt;: Extreme Performance (RAID 0) - 500GB (250GB x 2) 7,200RPM (8MB Cache) w/ &lt;info&gt;Free Fall Protection&lt;/info&gt;&lt;br /&gt;&lt;b&gt;Optical Drives &lt;/b&gt;: Dual Layer Blu-ray Disc Reader (BD-ROM, DVD±RW, CD-RW)&lt;br /&gt;&lt;b&gt;Wireless&lt;/b&gt;: Internal Intel® Wireless 4965 a/b/g/Draft-N Mini-Card&lt;br /&gt;&lt;b&gt;Sound Card &lt;/b&gt;: Internal High-Definition Audio with surround sound&lt;br /&gt;&lt;b&gt;Warranty&lt;/b&gt;: 1-Year AlienCare Toll-Free 24/7 Phone Support w/ Onsite Service&lt;br /&gt;&lt;b&gt;Alienware Extras&lt;/b&gt;: Alienware® Mesh Cap&lt;br /&gt;&lt;b&gt;Alienware Extras&lt;/b&gt;: Alienware® Mousepad&lt;br /&gt;&lt;b&gt;Alienware Extras&lt;/b&gt;: Alienware® Mobile Binder&lt;br /&gt;&lt;b&gt;Alienware Extras&lt;/b&gt;: Alienware® Personalized Nameplate&lt;br /&gt;&lt;b&gt;Alienware Extras&lt;/b&gt;: Owner Identification Card&lt;br /&gt;&lt;b&gt;Alienware Extras&lt;/b&gt;: Area-51® m17x Protective Cloth Sleeve&lt;br /&gt;&lt;b&gt;Alienware Extras&lt;/b&gt;: Area-51® m17x Keyboard Diagram Overlay&lt;br /&gt;&lt;b&gt;Alienware Extras&lt;/b&gt;: Area-51® m17x Smooth Mylar Touchpad&lt;br /&gt;&lt;br /&gt;2. MacBook Pro&lt;br /&gt;I like 17" inch LCD Screen.&lt;br /&gt;You can see the specification in : &lt;a href="http://www.apple.com/macbookpro/specs.html"&gt;http://www.apple.com/macbookpro/specs.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Middle end notebook/ I have money but think twice about your stomach&lt;br /&gt;&lt;br /&gt;1. Asus G1S22LU&lt;br /&gt;Specification&lt;br /&gt;Processor Type    :Intel Core 2 Duo Processor&lt;br /&gt;Processor Onboard    :Intel® Core™ 2 Duo Processor T7500 (2.2 GHz, FSB 800, Cache 4 MB)&lt;br /&gt;Chipset    :Intel 965PM&lt;br /&gt;Standard Memory    :2 GB (2x 1 GB) DDR2 SDRAM PC-5300&lt;br /&gt;Max. Memory    :4 GB (2 DIMMs)&lt;br /&gt;Video Type    :NVIDIA GeForce 8600M GT 256 MB&lt;br /&gt;Display Size    :15.4" WXGA TFT&lt;br /&gt;Display Max. Resolution    :1680 x 1050&lt;br /&gt;Display Technology    :ColorShine TFT&lt;br /&gt;Audio Type    :Integrated&lt;br /&gt;Speakers Type    :Integrated&lt;br /&gt;Hard Drive Type    :250 GB Serial ATA 5400 RPM&lt;br /&gt;Optical Drive Type    :DVD±RW&lt;br /&gt;Modem    :Integrated&lt;br /&gt;Networking    :Integrated&lt;br /&gt;Network Speed    ;10 / 100 / 1000 Mbps&lt;br /&gt;Wireless Network Type    :Intel PRO/Wireless 3945ABG&lt;br /&gt;Wireless Network Protocol    :IEEE 802.11a, IEEE 802.11b, IEEE 802.11g&lt;br /&gt;Wireless Bluetooth    :Integrated&lt;br /&gt;Keyboard Type    :Ergonomics 88 keys&lt;br /&gt;Input Device Type    :Touch Pad&lt;br /&gt;Slot Provided    :ExpressCard/ 34/ 54&lt;br /&gt;Card Reader Provided    :SD, MMC, Memory Stick / Stick PRO&lt;br /&gt;Interface Provided    :4x USB 2.0, Firewire, VGA, LAN, Audio&lt;br /&gt;O/S Provided    :Microsoft Windows Vista Ultimate&lt;br /&gt;Battery Type     :Rechargeable Lithium-ion Battery&lt;br /&gt;Power Supply    :External AC Adapter&lt;br /&gt;Dimension (WHD)    :324 x 37.4 x 284 mm&lt;br /&gt;Weight    :3.1 kg&lt;br /&gt;Standard Warranty    :2-year Limited Warranty by Authorized Distributor&lt;br /&gt;Bundled Peripherals    :Carrying Case&lt;br /&gt;Others    :Integrated 1.3 Mega Pixels Camera&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="thememedium" style="font-weight: bold;font-size:2em;" &gt;&lt;span id="ctl00_content_lblSeri"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span id="ctl00_ItemDetails_QuickForm_ctl00_ctl01_lbItemDetails"&gt;2. Asus M50Sv&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span id="ctl00_ItemDetails_QuickForm_ctl00_ctl01_lbItemDetails"&gt;&lt;br /&gt;Specification:&lt;br /&gt;&lt;br /&gt;Processor Type    :Intel Core 2 Duo Processor&lt;br /&gt;Processor Onboard    :Intel® Core™ 2 Duo Processor T9300 (2.50 GHz, FSB 800, Cache 6 MB)&lt;br /&gt;Chipset    :Intel 965PM&lt;br /&gt;Standard Memory    :2 GB (2x 1 GB) DDR2 SDRAM PC-5300&lt;br /&gt;Max. Memory    :4 GB (2 DIMMs)&lt;br /&gt;Video Type    :NVIDIA GeForce 9500M G 512 MB&lt;br /&gt;Display Size    :15" WXGA TFT&lt;br /&gt;Display Max. Resolution    :1440 x 900&lt;br /&gt;Display Technology    :ColorShine TFT&lt;br /&gt;Audio Type    :Integrated&lt;br /&gt;Speakers Type    :Integrated&lt;br /&gt;Hard Drive Type    :300 GB Serial ATA 4200 rpm&lt;br /&gt;Optical Drive Type    :DVD±RW&lt;br /&gt;Modem    :Integrated&lt;br /&gt;Networking    :Integrated&lt;br /&gt;Network Speed    :10 / 100 Mbps&lt;br /&gt;Wireless Network Type    :Intel PRO/Wireless 4965AGN&lt;br /&gt;Wireless Network Protocol    :IEEE 802.11a, IEEE 802.11b, IEEE 802.11g&lt;br /&gt;Wireless Bluetooth    :Integrated&lt;br /&gt;Keyboard Type    :QWERTY 88 keys&lt;br /&gt;Input Device Type    :Touch Pad&lt;br /&gt;Slot Provided    :Optional&lt;br /&gt;Card Reader Provided    :SD, Memory Stick, MMC, xD-picture Card, Memory Stick Pro&lt;br /&gt;Interface Provided    :4x USB 2.0, Firewire, VGA, LAN, Audio&lt;br /&gt;O/S Provided    :Microsoft Windows Vista Home Premium&lt;br /&gt;Battery Type     :Rechargeable Lithium-ion Battery&lt;br /&gt;Power Supply    :External AC Adapter&lt;br /&gt;Dimension (WHD)    :37.5 x 4.4 x 26.9 cm&lt;br /&gt;Weight    :3 kg&lt;br /&gt;Standard Warranty    :2-year Limited Warranty by Authorized Distributor&lt;br /&gt;Bundled Peripherals    :Carrying Case&lt;br /&gt;Others    :Built-in 1.3 Mega Pixel swivel web camera&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5734935016600069480-650186898499489493?l=nickotech2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nickotech2000.blogspot.com/feeds/650186898499489493/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5734935016600069480&amp;postID=650186898499489493&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5734935016600069480/posts/default/650186898499489493'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5734935016600069480/posts/default/650186898499489493'/><link rel='alternate' type='text/html' href='http://nickotech2000.blogspot.com/2008/05/dream-notebook.html' title='Dream Notebook'/><author><name>Nicko Satria Utama</name><uri>http://www.blogger.com/profile/13954117740118688905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5734935016600069480.post-8309732844134022475</id><published>2008-05-06T00:31:00.000-07:00</published><updated>2008-05-12T02:43:40.225-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2005'/><title type='text'>Simple IEnumerable generic operation : Sort, Filter and Map</title><content type='html'>&lt;p&gt;In .NET 3.5, there is a static class that implement functions to manipulate IEnumerable&amp;lt;T&amp;gt; like sorting, filtering and mapping. You can see that method as orderby, where and select in System.Linq.Enumerable class from assembly of System.Code.dll&lt;/p&gt;  &lt;p&gt;I try to find in .NET 2.0 but I cannot find any methods. So I try to use reflector to disassembled System.Core.DLL and look what happen. It still confusing to look at the result from it. So I try to reproduce it by writing code myself in C#.&lt;/p&gt;  &lt;p&gt;First I write the delegate generic that is similar to delegate generic of Func&amp;lt;T,TResult&amp;gt; in .NET 3.5.&lt;/p&gt;  &lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;delegate&lt;/span&gt; B &lt;span style="color: rgb(43,145,175)"&gt;MyFunction&lt;/span&gt;&amp;lt;A, B&amp;gt;(A input);&lt;/pre&gt;&lt;br /&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h5&gt;Mapped(select)/Projection&lt;/h5&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;It is simply mapping from source IEnumerable generic to target IEnumerable&amp;lt;T&amp;gt;. The result of IEnumerable &amp;lt;T&amp;gt; target is not the same type as IEnumerable&amp;lt;T&amp;gt;source.The delegate generic MyFunction will specify the mapping mechanism from source to target.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;static&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;IEnumerable&lt;/span&gt;&amp;lt;XTarget&amp;gt; Mapped&amp;lt;XSource, XTarget&amp;gt;(&lt;span style="color: rgb(43,145,175)"&gt;IEnumerable&lt;/span&gt;&amp;lt;XSource&amp;gt; source,&lt;br /&gt;    &lt;span style="color: rgb(43,145,175)"&gt;MyFunction&lt;/span&gt;&amp;lt;XSource, XTarget&amp;gt; function)&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: rgb(0,0,255)"&gt;foreach&lt;/span&gt; (XSource item &lt;span style="color: rgb(0,0,255)"&gt;in&lt;/span&gt; source)&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color: rgb(0,0,255)"&gt;yield&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;return&lt;/span&gt; function(item);&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h5&gt;Filter(where)&lt;/h5&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;It is simply make a filter from source IEnumerable&amp;lt;T&amp;gt; to target IEnumerable&amp;lt;T&amp;gt;. The result of IEnumerable generic target is the same type as IEnumerable&amp;lt;T&amp;gt;source but the item inside can be different.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;static&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;IEnumerable&lt;/span&gt;&amp;lt;XSource&amp;gt; Filter&amp;lt;XSource&amp;gt;(&lt;span style="color: rgb(43,145,175)"&gt;IEnumerable&lt;/span&gt;&amp;lt;XSource&amp;gt; source,&lt;br /&gt;    &lt;span style="color: rgb(43,145,175)"&gt;MyFunction&lt;/span&gt;&amp;lt;XSource, &lt;span style="color: rgb(0,0,255)"&gt;bool&lt;/span&gt;&amp;gt; function)&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: rgb(0,0,255)"&gt;foreach&lt;/span&gt; (XSource item &lt;span style="color: rgb(0,0,255)"&gt;in&lt;/span&gt; source)&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color: rgb(0,0,255)"&gt;if&lt;/span&gt; (function(item))&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: rgb(0,0,255)"&gt;yield&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;return&lt;/span&gt; item;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;h5&gt;Sort (orderby)&lt;/h5&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;It simply make a sorting from source IEnumerable&amp;lt;T&amp;gt;to target IEnumerable&amp;lt;T&amp;gt;. It is intended to sort object that have many properties. The properties can be string or valuetype.&amp;#160; For example; I have a collection of user that&amp;#160; has properties of Name and Age.&amp;#160; Name is a type of string and Age is a type of integer.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;First we need a class that implement an IComparer&amp;lt;T&amp;gt;.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;class&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;CompareDefinition&lt;/span&gt;&amp;lt;X, Y&amp;gt; : &lt;span style="color: rgb(43,145,175)"&gt;IComparer&lt;/span&gt;&amp;lt;X&amp;gt; &lt;span style="color: rgb(0,0,255)"&gt;where&lt;/span&gt; Y : &lt;span style="color: rgb(43,145,175)"&gt;IComparable&lt;/span&gt;&amp;lt;Y&amp;gt;&lt;br /&gt;    {&lt;br /&gt;        &lt;span style="color: rgb(0,0,255)"&gt;private&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;MyFunction&lt;/span&gt;&amp;lt;X,Y&amp;gt; function = &lt;span style="color: rgb(0,0,255)"&gt;null&lt;/span&gt;;&lt;br /&gt;        &lt;span style="color: rgb(0,0,255)"&gt;private&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;bool&lt;/span&gt; descending = &lt;span style="color: rgb(0,0,255)"&gt;false&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: rgb(128,128,128)"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt; &lt;/span&gt;&lt;span style="color: rgb(128,128,128)"&gt;&amp;lt;summary&amp;gt;&lt;br /&gt;&lt;/span&gt;        &lt;span style="color: rgb(128,128,128)"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt; &lt;br /&gt;&lt;/span&gt;        &lt;span style="color: rgb(128,128,128)"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt; &lt;/span&gt;&lt;span style="color: rgb(128,128,128)"&gt;&amp;lt;/summary&amp;gt;&lt;br /&gt;&lt;/span&gt;        &lt;span style="color: rgb(128,128,128)"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt; &lt;/span&gt;&lt;span style="color: rgb(128,128,128)"&gt;&amp;lt;param name=&amp;quot;kembali&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;br /&gt;&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;public&lt;/span&gt; CompareDefinition(&lt;span style="color: rgb(43,145,175)"&gt;MyFunction&lt;/span&gt;&amp;lt;X,Y&amp;gt; function):&lt;span style="color: rgb(0,0,255)"&gt;this&lt;/span&gt;(function,&lt;span style="color: rgb(0,0,255)"&gt;false&lt;/span&gt;)&lt;br /&gt;        {&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: rgb(128,128,128)"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt; &lt;/span&gt;&lt;span style="color: rgb(128,128,128)"&gt;&amp;lt;summary&amp;gt;&lt;br /&gt;&lt;/span&gt;        &lt;span style="color: rgb(128,128,128)"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt; &lt;br /&gt;&lt;/span&gt;        &lt;span style="color: rgb(128,128,128)"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt; &lt;/span&gt;&lt;span style="color: rgb(128,128,128)"&gt;&amp;lt;/summary&amp;gt;&lt;br /&gt;&lt;/span&gt;        &lt;span style="color: rgb(128,128,128)"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt; &lt;/span&gt;&lt;span style="color: rgb(128,128,128)"&gt;&amp;lt;param name=&amp;quot;kembali&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;br /&gt;&lt;/span&gt;        &lt;span style="color: rgb(128,128,128)"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt; &lt;/span&gt;&lt;span style="color: rgb(128,128,128)"&gt;&amp;lt;param name=&amp;quot;descending&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;br /&gt;&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;public&lt;/span&gt; CompareDefinition(&lt;span style="color: rgb(43,145,175)"&gt;MyFunction&lt;/span&gt;&amp;lt;X, Y&amp;gt; function,&lt;span style="color: rgb(0,0,255)"&gt;bool&lt;/span&gt; descending)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: rgb(0,0,255)"&gt;this&lt;/span&gt;.function = function;&lt;br /&gt;            &lt;span style="color: rgb(0,0,255)"&gt;this&lt;/span&gt;.descending = descending;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0,0,255)"&gt;        #region&lt;/span&gt; IComparer&amp;lt;XSource&amp;gt; Members&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: rgb(128,128,128)"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt; &lt;/span&gt;&lt;span style="color: rgb(128,128,128)"&gt;&amp;lt;summary&amp;gt;&lt;br /&gt;&lt;/span&gt;        &lt;span style="color: rgb(128,128,128)"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt; Compare methods&lt;br /&gt;&lt;/span&gt;        &lt;span style="color: rgb(128,128,128)"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt; &lt;/span&gt;&lt;span style="color: rgb(128,128,128)"&gt;&amp;lt;/summary&amp;gt;&lt;br /&gt;&lt;/span&gt;        &lt;span style="color: rgb(128,128,128)"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt; &lt;/span&gt;&lt;span style="color: rgb(128,128,128)"&gt;&amp;lt;param name=&amp;quot;x&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;br /&gt;&lt;/span&gt;        &lt;span style="color: rgb(128,128,128)"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt; &lt;/span&gt;&lt;span style="color: rgb(128,128,128)"&gt;&amp;lt;param name=&amp;quot;y&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;&lt;br /&gt;&lt;/span&gt;        &lt;span style="color: rgb(128,128,128)"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt; &lt;/span&gt;&lt;span style="color: rgb(128,128,128)"&gt;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;br /&gt;&lt;/span&gt;        &lt;span style="color: rgb(0,0,255)"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;int&lt;/span&gt; Compare(X x, X y)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: rgb(0,0,255)"&gt;int&lt;/span&gt; result = 0;&lt;br /&gt;            Y value = function(x);&lt;br /&gt;            &lt;span style="color: rgb(0,0,255)"&gt;if&lt;/span&gt; (value != &lt;span style="color: rgb(0,0,255)"&gt;null&lt;/span&gt;)&lt;br /&gt;            {&lt;br /&gt;                &lt;span style="color: rgb(0,0,255)"&gt;if&lt;/span&gt; (value &lt;span style="color: rgb(0,0,255)"&gt;is&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt;)&lt;br /&gt;                {&lt;br /&gt;                    result = &lt;span style="color: rgb(43,145,175)"&gt;StringComparer&lt;/span&gt;.OrdinalIgnoreCase.Compare(value, function(y));&lt;br /&gt;                }&lt;br /&gt;                &lt;span style="color: rgb(0,0,255)"&gt;else&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;if&lt;/span&gt; (value &lt;span style="color: rgb(0,0,255)"&gt;is&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;ValueType&lt;/span&gt;)&lt;br /&gt;                {&lt;br /&gt;                    result = value.CompareTo(function(y));&lt;br /&gt;                }&lt;br /&gt;                &lt;span style="color: rgb(0,0,255)"&gt;else&lt;br /&gt;&lt;/span&gt;                {&lt;br /&gt;                    &lt;span style="color: rgb(0,0,255)"&gt;throw&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;ArgumentException&lt;br /&gt;&lt;/span&gt;                        (&lt;span style="color: rgb(163,21,21)"&gt;&amp;quot;The object is not string or valuetype that implements IComparable&amp;quot;&lt;/span&gt;);&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color: rgb(0,0,255)"&gt;return&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;this&lt;/span&gt;.descending ? -result : result;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0,0,255)"&gt;        #endregion&lt;br /&gt;&lt;/span&gt;    }&lt;/pre&gt;&lt;br /&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;This class define how the content to be compared. The X is the object and Y is the property to compare. The method Compare will compare string and any valuetype. If it finds string, than it will use StringComparer to compare the strings. I use OrdinalIgnoreCase compare just in case of quick coding. If it finds, than it will use their own CompareTo methods.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;static&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;IEnumerable&lt;/span&gt;&amp;lt;XSource&amp;gt; Sorting&amp;lt;XSource, XKey&amp;gt;(&lt;span style="color: rgb(43,145,175)"&gt;IEnumerable&lt;/span&gt;&amp;lt;XSource&amp;gt; source,&lt;br /&gt;             &lt;span style="color: rgb(43,145,175)"&gt;MyFunction&lt;/span&gt;&amp;lt;XSource, XKey&amp;gt; function, &lt;span style="color: rgb(0,0,255)"&gt;bool&lt;/span&gt; IsDsc) &lt;span style="color: rgb(0,0,255)"&gt;where&lt;/span&gt; XKey : &lt;span style="color: rgb(43,145,175)"&gt;IComparable&lt;/span&gt;&amp;lt;XKey&amp;gt;&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: rgb(0,0,255)"&gt;if&lt;/span&gt; (source != &lt;span style="color: rgb(0,0,255)"&gt;null&lt;/span&gt;)&lt;br /&gt;            {&lt;br /&gt;                XSource[] array = (XSource[])source;&lt;br /&gt;&lt;br /&gt;                &lt;span style="color: rgb(43,145,175)"&gt;Array&lt;/span&gt;.Sort(array, &lt;span style="color: rgb(0,0,255)"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;CompareDefinition&lt;/span&gt;&amp;lt;XSource, XKey&amp;gt;(function, IsDsc));&lt;br /&gt;&lt;br /&gt;                &lt;span style="color: rgb(0,0,255)"&gt;foreach&lt;/span&gt; (XSource item &lt;span style="color: rgb(0,0,255)"&gt;in&lt;/span&gt; array)&lt;br /&gt;                {&lt;br /&gt;                    &lt;span style="color: rgb(0,0,255)"&gt;yield&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;return&lt;/span&gt; item;&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        }&lt;/pre&gt;&lt;br /&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Method above explain how to sort IEnumerable &amp;lt;T&amp;gt;. For simple use I just cast from IEnumerable&amp;lt;T&amp;gt; to array of T; to use Sort method. The sort method above will sort the array and use my compare definition.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;To use the code. I give a small sample.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="code"&gt;        &lt;span style="color: rgb(0,0,255)"&gt;static&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;void&lt;/span&gt; Main(&lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt;[] args)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: rgb(0,128,0)"&gt;// Get All process from this computer&lt;br /&gt;&lt;/span&gt;            &lt;span style="color: rgb(43,145,175)"&gt;IEnumerable&lt;/span&gt;&amp;lt;&lt;span style="color: rgb(43,145,175)"&gt;Process&lt;/span&gt;&amp;gt; procss = &lt;span style="color: rgb(43,145,175)"&gt;Process&lt;/span&gt;.GetProcesses();&lt;br /&gt;&lt;br /&gt;            &lt;span style="color: rgb(0,128,0)"&gt;// Soring descending by process name&lt;br /&gt;&lt;/span&gt;            &lt;span style="color: rgb(43,145,175)"&gt;IEnumerable&lt;/span&gt;&amp;lt;&lt;span style="color: rgb(43,145,175)"&gt;Process&lt;/span&gt;&amp;gt; descendingProcess =&lt;br /&gt;                Sorting&amp;lt;&lt;span style="color: rgb(43,145,175)"&gt;Process&lt;/span&gt;, &lt;span style="color: rgb(43,145,175)"&gt;String&lt;/span&gt;&amp;gt;(procss,&lt;br /&gt;                    &lt;span style="color: rgb(0,0,255)"&gt;delegate&lt;/span&gt;(&lt;span style="color: rgb(43,145,175)"&gt;Process&lt;/span&gt; p) { &lt;span style="color: rgb(0,0,255)"&gt;return&lt;/span&gt; p.ProcessName; }&lt;br /&gt;            ,&lt;br /&gt;            &lt;span style="color: rgb(0,0,255)"&gt;true&lt;br /&gt;&lt;/span&gt;            );&lt;br /&gt;&lt;br /&gt;            &lt;span style="color: rgb(0,128,0)"&gt;// filter the process only working set more than 1MB&lt;br /&gt;&lt;/span&gt;            &lt;span style="color: rgb(43,145,175)"&gt;IEnumerable&lt;/span&gt;&amp;lt;&lt;span style="color: rgb(43,145,175)"&gt;Process&lt;/span&gt;&amp;gt; filteredProcess =&lt;br /&gt;                Filter&amp;lt;&lt;span style="color: rgb(43,145,175)"&gt;Process&lt;/span&gt;&amp;gt;(descendingProcess,&lt;br /&gt;                &lt;span style="color: rgb(0,0,255)"&gt;delegate&lt;/span&gt;(&lt;span style="color: rgb(43,145,175)"&gt;Process&lt;/span&gt; p) { &lt;span style="color: rgb(0,0,255)"&gt;return&lt;/span&gt; p.WorkingSet64 &amp;gt; (1024 * 1024); });&lt;br /&gt;&lt;br /&gt;            &lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt; processNameTitle = &lt;span style="color: rgb(163,21,21)"&gt;&amp;quot;Process Name&amp;quot;&lt;/span&gt;;&lt;br /&gt;            &lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt; memoryUsedTitle = &lt;span style="color: rgb(163,21,21)"&gt;&amp;quot;Memory Used&amp;quot;&lt;/span&gt;;&lt;br /&gt;            &lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt; processIDTitle = &lt;span style="color: rgb(163,21,21)"&gt;&amp;quot;Process ID &amp;quot;&lt;/span&gt;;&lt;br /&gt;            &lt;span style="color: rgb(43,145,175)"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: rgb(163,21,21)"&gt;&amp;quot;Sorting descending and Filter process only working set more than 1MB&amp;quot;&lt;/span&gt;);&lt;br /&gt;            &lt;span style="color: rgb(43,145,175)"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: rgb(163,21,21)"&gt;&amp;quot;{0}                   {1}                    {2}&amp;quot;&lt;/span&gt;, &lt;br /&gt;                processNameTitle, memoryUsedTitle, processIDTitle);&lt;br /&gt;            &lt;span style="color: rgb(0,0,255)"&gt;foreach&lt;/span&gt; (&lt;span style="color: rgb(43,145,175)"&gt;Process&lt;/span&gt; proc &lt;span style="color: rgb(0,0,255)"&gt;in&lt;/span&gt; filteredProcess)&lt;br /&gt;            {&lt;br /&gt;                &lt;span style="color: rgb(43,145,175)"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: rgb(163,21,21)"&gt;&amp;quot;{0}                   {1}                         {2}&amp;quot;&lt;/span&gt;, &lt;br /&gt;                    proc.ProcessName, proc.WorkingSet64,proc.Id);&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color: rgb(43,145,175)"&gt;Console&lt;/span&gt;.ReadLine();&lt;br /&gt;            &lt;span style="color: rgb(0,128,0)"&gt;// show only process id&lt;br /&gt;&lt;/span&gt;            &lt;span style="color: rgb(43,145,175)"&gt;IEnumerable&lt;/span&gt;&amp;lt;&lt;span style="color: rgb(0,0,255)"&gt;int&lt;/span&gt;&amp;gt; mapping =&lt;br /&gt;               Mapped&amp;lt;&lt;span style="color: rgb(43,145,175)"&gt;Process&lt;/span&gt;, &lt;span style="color: rgb(0,0,255)"&gt;int&lt;/span&gt;&amp;gt;(filteredProcess,&lt;br /&gt;               &lt;span style="color: rgb(0,0,255)"&gt;delegate&lt;/span&gt;(&lt;span style="color: rgb(43,145,175)"&gt;Process&lt;/span&gt; p) { &lt;span style="color: rgb(0,0,255)"&gt;return&lt;/span&gt; p.Id; });&lt;br /&gt;&lt;br /&gt;            &lt;span style="color: rgb(43,145,175)"&gt;Console&lt;/span&gt;.WriteLine(&lt;span style="color: rgb(163,21,21)"&gt;&amp;quot;Show Process ID only from above&amp;quot;&lt;/span&gt;);&lt;br /&gt;            &lt;span style="color: rgb(0,0,255)"&gt;foreach&lt;/span&gt; (&lt;span style="color: rgb(0,0,255)"&gt;int&lt;/span&gt; item &lt;span style="color: rgb(0,0,255)"&gt;in&lt;/span&gt; mapping)&lt;br /&gt;            {&lt;br /&gt;                &lt;span style="color: rgb(43,145,175)"&gt;Console&lt;/span&gt;.WriteLine(item);&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color: rgb(43,145,175)"&gt;Console&lt;/span&gt;.ReadLine();&lt;br /&gt;        }&lt;/pre&gt;&lt;br /&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Get all process from this machine assign them to IEnumerable of Process. The result in IEnumerable&amp;lt;Process&amp;gt; will sort descending by process name and produce IEnumerable&amp;lt;Process&amp;gt; too. After that, it will be filtered and produce IEnumerable&amp;lt;Process&amp;gt;. The result will be displayed in console.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;IEnumerable&amp;lt;Process&amp;gt; will be mapped into IEnumerable&amp;lt;int&amp;gt;. The result will be displayed in console and only the process ID will be displayed&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:126a4e67-c25f-4c03-be2c-d30877e95130" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/.NET%202.0" rel="tag"&gt;.NET 2.0&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Visual%20Studio%202005" rel="tag"&gt;Visual Studio 2005&lt;/a&gt;,&lt;a href="http://technorati.com/tags/IEnumerable&amp;lt;T&amp;gt;" rel="tag"&gt;IEnumerable&amp;lt;T&amp;gt;&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Data%20Manipulation" rel="tag"&gt;Data Manipulation&lt;/a&gt;&lt;/div&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5734935016600069480-8309732844134022475?l=nickotech2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nickotech2000.blogspot.com/feeds/8309732844134022475/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5734935016600069480&amp;postID=8309732844134022475&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5734935016600069480/posts/default/8309732844134022475'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5734935016600069480/posts/default/8309732844134022475'/><link rel='alternate' type='text/html' href='http://nickotech2000.blogspot.com/2008/05/simple-ienumerable-generic-operation.html' title='Simple IEnumerable generic operation : Sort, Filter and Map'/><author><name>Nicko Satria Utama</name><uri>http://www.blogger.com/profile/13954117740118688905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5734935016600069480.post-8948475647311214478</id><published>2008-03-31T03:31:00.001-07:00</published><updated>2008-05-06T03:00:45.306-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Interop'/><category scheme='http://www.blogger.com/atom/ns#' term='COM'/><category scheme='http://www.blogger.com/atom/ns#' term='Windows SDK'/><title type='text'>Make .NET Assembly from an IDL(Interface Definition Language)</title><content type='html'>&lt;p&gt;Sometimes, I want to make a .NET assembly from IDL file since some component vendors still delivers on COM technology. &lt;/p&gt;  &lt;p&gt;To do that we need Microsoft Windows SDK that you can download one of these SDK&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;- Windows SDK for Windows Server 2008 and .NET Framework 3.5&lt;/strong&gt;(SDK for Windows Server 2008/Windows Vista/Windows Server 2003/Windows XP)&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.microsoft.com/downloads/details.aspx?FamilyId=F26B1AA4-741A-433A-9BE5-FA919850BDBF&amp;amp;displaylang=en" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=F26B1AA4-741A-433A-9BE5-FA919850BDBF&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=F26B1AA4-741A-433A-9BE5-FA919850BDBF&amp;amp;displaylang=en&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;- &lt;b&gt;Windows SDK Update for Windows Vista and .NET Framework 3.0&lt;/b&gt; (SDK for all editions of Windows Vista/Windows XP/Windows Server 2003)&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.microsoft.com/downloads/details.aspx?familyid=ff6467e6-5bba-4bf5-b562-9199be864d29&amp;amp;displaylang=en" href="http://www.microsoft.com/downloads/details.aspx?familyid=ff6467e6-5bba-4bf5-b562-9199be864d29&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?familyid=ff6467e6-5bba-4bf5-b562-9199be864d29&amp;amp;displaylang=en&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;- &lt;b&gt;Windows Server 2003 R2 Platform SDK&lt;/b&gt; (SDK for all editions of Windows 2000/Windows XP/Windows Server 2003)&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.microsoft.com/downloads/details.aspx?FamilyId=E15438AC-60BE-41BD-AA14-7F1E0F19CA0D" href="http://www.microsoft.com/downloads/details.aspx?FamilyId=E15438AC-60BE-41BD-AA14-7F1E0F19CA0D"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyId=E15438AC-60BE-41BD-AA14-7F1E0F19CA0D&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;After you download and install the SDK, run the command shell from the SDK. For now, I will use bits.idl as a sample.&lt;/p&gt;  &lt;p&gt;In the Command Shell, run "midl bits.idl", without quote, to make the type library from the idl. it will produce some .h, c files and a bits.tlb file.&lt;/p&gt;  &lt;p&gt;Convert the tlb file to dll file using tlbimp. for example:&lt;/p&gt;  &lt;p&gt;run "tlbimp bits.tlb /out:bits.dll /namespace:Nicko.Bits.COM" without quote. So the assembly bits.dll with namespace Nicko.Bits.COM is ready as a assembly reference in Visual Studio .NET.&lt;/p&gt;  &lt;p&gt;Happy coding &lt;img alt="smile_teeth" src="http://spaces.live.com/rte/emoticons/smile_teeth.gif" /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5734935016600069480-8948475647311214478?l=nickotech2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nickotech2000.blogspot.com/feeds/8948475647311214478/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5734935016600069480&amp;postID=8948475647311214478&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5734935016600069480/posts/default/8948475647311214478'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5734935016600069480/posts/default/8948475647311214478'/><link rel='alternate' type='text/html' href='http://nickotech2000.blogspot.com/2008/03/make-net-assembly-from-idlinterface.html' title='Make .NET Assembly from an IDL(Interface Definition Language)'/><author><name>Nicko Satria Utama</name><uri>http://www.blogger.com/profile/13954117740118688905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5734935016600069480.post-2678090328133898627</id><published>2008-03-26T00:41:00.001-07:00</published><updated>2008-05-06T03:09:38.320-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='C# 3.0'/><title type='text'>Mathematical function in VS 2008</title><content type='html'>&lt;p&gt;In Visual Studio 2008, we can make a function like mathematics.&lt;/p&gt;  &lt;p&gt;For example, I have a function like :&lt;/p&gt;  &lt;p&gt;f(x) = x +1, x is element of integer,&lt;/p&gt;  &lt;p&gt;You can make in the VS 2008 like :&lt;/p&gt;  &lt;p&gt;&lt;span style="color: rgb(43, 145, 175);"&gt;Func&lt;/span&gt;&amp;lt;&lt;span style="color: rgb(0, 0, 255);"&gt;int,int&lt;/span&gt;&amp;gt; f = (x) =&amp;gt; x + 1;&lt;/p&gt;  &lt;p&gt;I think it is a nice feature, since we can make many mathematics function in the short statement. The declaration above using new feature of Lambda Expression that is available in the Visual Studio 2008. You can just use the function above like:&lt;/p&gt;  &lt;pre class="code"&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;int&lt;/span&gt; result = f(3);&lt;/pre&gt;&lt;br /&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5734935016600069480-2678090328133898627?l=nickotech2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nickotech2000.blogspot.com/feeds/2678090328133898627/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5734935016600069480&amp;postID=2678090328133898627&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5734935016600069480/posts/default/2678090328133898627'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5734935016600069480/posts/default/2678090328133898627'/><link rel='alternate' type='text/html' href='http://nickotech2000.blogspot.com/2008/03/mathematical-function-in-vs-2008.html' title='Mathematical function in VS 2008'/><author><name>Nicko Satria Utama</name><uri>http://www.blogger.com/profile/13954117740118688905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5734935016600069480.post-4970380729954155110</id><published>2008-02-27T02:58:00.001-08:00</published><updated>2008-02-27T18:51:37.922-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2005'/><category scheme='http://www.blogger.com/atom/ns#' term='Development'/><title type='text'>Step by Step building a project template and wizard in VS 2005</title><content type='html'>&lt;p&gt;Project template is a template that contains classes,resource files, or any files that come together into a project. They usually use to accelerate development process by providing reusable projects and&amp;#160; items so the developer can remove repetitive task to create projects from scratch. &lt;/p&gt;  &lt;p&gt;Project template can use wizard to get input from user. Developer only implements IWizard interface and simple Windows Form. &lt;/p&gt;  &lt;p&gt;This step by step assume that you&amp;#160; know how to use Visual Studio 2005, .NET 2.0 Configuration, and Windows Explorer.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Step 1, Create class library project as template project&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;First thing to do builds a blank projects with classes or any files that you want and give parameters do you like. The parameters can be reserved or custom; and case sensitive. For reserve and custom template you can see in the MSDN.&amp;#160; For the sample, I use 1 class and 1 text file.&lt;/p&gt;  &lt;p&gt;Sample Class File : Class1.cs&lt;/p&gt;  &lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;using&lt;/span&gt; System;&lt;br /&gt;&lt;span style="color: rgb(0,0,255)"&gt;using&lt;/span&gt; System.Collections.Generic;&lt;br /&gt;&lt;span style="color: rgb(0,0,255)"&gt;using&lt;/span&gt; System.Text;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0,0,255)"&gt;namespace&lt;/span&gt; $safeprojectname$&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: rgb(128,128,128)"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt; &lt;/span&gt;&lt;span style="color: rgb(128,128,128)"&gt;&amp;lt;summary&amp;gt;&lt;br /&gt;&lt;/span&gt;    &lt;span style="color: rgb(128,128,128)"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt; This class is build at $time$&lt;br /&gt;&lt;/span&gt;    &lt;span style="color: rgb(128,128,128)"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt; By: $usercreated$&lt;br /&gt;&lt;/span&gt;    &lt;span style="color: rgb(128,128,128)"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0,128,0)"&gt; &lt;/span&gt;&lt;span style="color: rgb(128,128,128)"&gt;&amp;lt;/summary&amp;gt;&lt;br /&gt;&lt;/span&gt;    &lt;span style="color: rgb(0,0,255)"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;class&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;Class1&lt;br /&gt;&lt;/span&gt;    {&lt;br /&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;Sample text file : readme.txt&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;em&gt;Project name : $projectname$ &lt;br /&gt;    &lt;br /&gt;Motivation : $motivation$&lt;/em&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Remember, that project above cannot compile because of the parameters.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;On the sample above, there are 5 template parameters; $safeprojectname$, $time$, and $projectname$ are reserved template parameters and, $usercreated$ and&amp;#160; $motivation$ are custom template parameters.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;After all class is ready, just export the template using menu File --&amp;gt; Export Template and choose project template. When it finish, just unload it from Visual Studio 2005. Look the result in C:\Documents and Settings\&amp;quot;username&amp;quot;\My Documents\Visual Studio 2005\My Exported Templates, when User name is your current user folder in my document.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Step 2, Create Windows Application project&lt;/strong&gt; &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;In the Form1, You can add textbox as an input in the Form designer, give a nice name to the control like txtProjectName; and button to accept it.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Add a property as a collection of parameters.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;private&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;Dictionary&lt;/span&gt;&amp;lt;&lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt;,&lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt;&amp;gt; parameters;&lt;br /&gt;&lt;span style="color: rgb(0,0,255)"&gt;public&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;Dictionary&lt;/span&gt;&amp;lt;&lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt;,&lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt;&amp;gt; Parameters&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: rgb(0,0,255)"&gt;get&lt;/span&gt; { &lt;span style="color: rgb(0,0,255)"&gt;return&lt;/span&gt; parameters; }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;In the button click, added all value from textbox into collection.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;private&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;void&lt;/span&gt; btnOK_Click(&lt;span style="color: rgb(0,0,255)"&gt;object&lt;/span&gt; sender, &lt;span style="color: rgb(43,145,175)"&gt;EventArgs&lt;/span&gt; e)&lt;br /&gt;{&lt;br /&gt;    parameters = &lt;span style="color: rgb(0,0,255)"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;Dictionary&lt;/span&gt;&amp;lt;&lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt;, &lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt;&amp;gt;();&lt;br /&gt;    Parameters.Add(&lt;span style="color: rgb(163,21,21)"&gt;&amp;quot;$projectname$&amp;quot;&lt;/span&gt;, &lt;span style="color: rgb(0,0,255)"&gt;this&lt;/span&gt;.txtProjectName.Text);&lt;br /&gt;    Parameters.Add(&lt;span style="color: rgb(163,21,21)"&gt;&amp;quot;$usercreated$&amp;quot;&lt;/span&gt;, &lt;span style="color: rgb(0,0,255)"&gt;this&lt;/span&gt;.txtUserCreated.Text);&lt;br /&gt;    Parameters.Add(&lt;span style="color: rgb(163,21,21)"&gt;&amp;quot;$safeprojectname$&amp;quot;&lt;/span&gt;, &lt;span style="color: rgb(0,0,255)"&gt;this&lt;/span&gt;.txtSafeProjectName.Text);&lt;br /&gt;    Parameters.Add(&lt;span style="color: rgb(163,21,21)"&gt;&amp;quot;$time$&amp;quot;&lt;/span&gt;, &lt;span style="color: rgb(0,0,255)"&gt;this&lt;/span&gt;.txtTime.Text);&lt;br /&gt;    Parameters.Add(&lt;span style="color: rgb(163,21,21)"&gt;&amp;quot;$motivation$&amp;quot;&lt;/span&gt;, &lt;span style="color: rgb(0,0,255)"&gt;this&lt;/span&gt;.txtMotivation.Text);&lt;br /&gt;    &lt;span style="color: rgb(0,0,255)"&gt;this&lt;/span&gt;.DialogResult = &lt;span style="color: rgb(43,145,175)"&gt;DialogResult&lt;/span&gt;.OK&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Just compile and run it, and try it if there is error.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Step 3, Create Class Library Project&lt;/strong&gt;.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Add reference of EnvDTE and Microsoft.VisualStudio.TemplateWizardInterface.dll, System.Drawing and&amp;#160; System.Windows.Forms. Rename the Class1 to a better name like WizardImplementation and implement IWizard interface. &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Copy the Form1 above into this projects.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;The code in the WizardImplementation.cs&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="code"&gt;&lt;span style="color: rgb(0,0,255)"&gt;namespace&lt;/span&gt; Class.Wizard&lt;br /&gt;{&lt;br /&gt;    &lt;span style="color: rgb(0,0,255)"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;class&lt;/span&gt; WizardImplementation:&lt;span style="color: rgb(43,145,175)"&gt;IWizard&lt;br /&gt;&lt;/span&gt;    {&lt;br /&gt;&lt;span style="color: rgb(0,0,255)"&gt;        #region&lt;/span&gt; IWizard Members&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: rgb(0,0,255)"&gt;void&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;IWizard&lt;/span&gt;.BeforeOpeningFile(&lt;span style="color: rgb(43,145,175)"&gt;ProjectItem&lt;/span&gt; projectItem)&lt;br /&gt;        {&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: rgb(0,0,255)"&gt;void&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;IWizard&lt;/span&gt;.ProjectFinishedGenerating(&lt;span style="color: rgb(43,145,175)"&gt;Project&lt;/span&gt; project)&lt;br /&gt;        {&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: rgb(0,0,255)"&gt;void&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;IWizard&lt;/span&gt;.ProjectItemFinishedGenerating(&lt;span style="color: rgb(43,145,175)"&gt;ProjectItem&lt;/span&gt; projectItem)&lt;br /&gt;        {&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: rgb(0,0,255)"&gt;void&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;IWizard&lt;/span&gt;.RunFinished()&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: rgb(43,145,175)"&gt;MessageBox&lt;/span&gt;.Show(&lt;span style="color: rgb(163,21,21)"&gt;&amp;quot;Finish&amp;quot;&lt;/span&gt;, &lt;span style="color: rgb(163,21,21)"&gt;&amp;quot;Info&amp;quot;&lt;/span&gt;, &lt;span style="color: rgb(43,145,175)"&gt;MessageBoxButtons&lt;/span&gt;.OK, &lt;span style="color: rgb(43,145,175)"&gt;MessageBoxIcon&lt;/span&gt;.Information);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: rgb(0,0,255)"&gt;void&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;IWizard&lt;/span&gt;.RunStarted(&lt;span style="color: rgb(0,0,255)"&gt;object&lt;/span&gt; automationObject, &lt;span style="color: rgb(43,145,175)"&gt;Dictionary&lt;/span&gt;&amp;lt;&lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt;, &lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt;&amp;gt; replacementsDictionary, &lt;span style="color: rgb(43,145,175)"&gt;WizardRunKind&lt;/span&gt; runKind, &lt;span style="color: rgb(0,0,255)"&gt;object&lt;/span&gt;[] customParams)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: rgb(0,0,255)"&gt;try&lt;br /&gt;&lt;/span&gt;            {&lt;br /&gt;                &lt;span style="color: rgb(43,145,175)"&gt;Form1&lt;/span&gt; form = &lt;span style="color: rgb(0,0,255)"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;Form1&lt;/span&gt;();&lt;br /&gt;                &lt;span style="color: rgb(43,145,175)"&gt;DialogResult&lt;/span&gt; dlg = form.ShowDialog();&lt;br /&gt;                &lt;span style="color: rgb(0,0,255)"&gt;if&lt;/span&gt; (dlg == &lt;span style="color: rgb(43,145,175)"&gt;DialogResult&lt;/span&gt;.OK)&lt;br /&gt;                {&lt;br /&gt;                    &lt;span style="color: rgb(0,0,255)"&gt;foreach&lt;/span&gt; (&lt;span style="color: rgb(43,145,175)"&gt;KeyValuePair&lt;/span&gt;&amp;lt;&lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt;, &lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt;&amp;gt; pair &lt;span style="color: rgb(0,0,255)"&gt;in&lt;/span&gt; form.Parameters)&lt;br /&gt;                    {&lt;br /&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;if&lt;/span&gt; (!replacementsDictionary.ContainsKey(pair.Key))&lt;br /&gt;                            replacementsDictionary.Add(pair.Key, pair.Value);&lt;br /&gt;                        &lt;span style="color: rgb(0,0,255)"&gt;else&lt;br /&gt;&lt;/span&gt;                            replacementsDictionary[pair.Key] = pair.Value;&lt;br /&gt;                    }&lt;br /&gt;                }&lt;br /&gt;                form.Close();&lt;br /&gt;            }&lt;br /&gt;            &lt;span style="color: rgb(0,0,255)"&gt;catch&lt;/span&gt; (&lt;span style="color: rgb(43,145,175)"&gt;Exception&lt;/span&gt; ex)&lt;br /&gt;            {&lt;br /&gt;                &lt;span style="color: rgb(43,145,175)"&gt;MessageBox&lt;/span&gt;.Show(&lt;span style="color: rgb(163,21,21)"&gt;&amp;quot;Error : &amp;quot;&lt;/span&gt;+ex.Message,&lt;span style="color: rgb(163,21,21)"&gt;&amp;quot;Error&amp;quot;&lt;/span&gt;,&lt;span style="color: rgb(43,145,175)"&gt;MessageBoxButtons&lt;/span&gt;.OK,&lt;span style="color: rgb(43,145,175)"&gt;MessageBoxIcon&lt;/span&gt;.Error);&lt;br /&gt;            }&lt;br /&gt;            &lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        &lt;span style="color: rgb(0,0,255)"&gt;bool&lt;/span&gt; &lt;span style="color: rgb(43,145,175)"&gt;IWizard&lt;/span&gt;.ShouldAddProjectItem(&lt;span style="color: rgb(0,0,255)"&gt;string&lt;/span&gt; filePath)&lt;br /&gt;        {&lt;br /&gt;            &lt;span style="color: rgb(0,0,255)"&gt;return&lt;/span&gt; &lt;span style="color: rgb(0,0,255)"&gt;true&lt;/span&gt;;&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0,0,255)"&gt;        #endregion&lt;br /&gt;&lt;/span&gt;    }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;a href="http://11011.net/software/vspaste"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Sign the assembly using strong name. You can add it from the project properties, find the tab signing and create a new strong name key file if you don;t have one. Compile and make it sure there is no compile error.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Step 4, Create Setup Project&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Open File System views, it will show 2 panel, left panel is the folder and right panel is the files. Goto left panel and add special folder --&amp;gt; Global Assembly Cache folder. Click the GAC folder and right click to choose add Project output. Choose the wizard project from step 3. Exclude all output/assembly/files except the primary output. Build the setup project and try to install it.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Step 5, Write the assembly in the GAC Information&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Open .NET Framework 2.0 Configuration, and choose Assembly cache from the tree view, view the list and search for the assembly of the wizard. Open the assembly properties like sample below : &lt;br /&gt;  &lt;br /&gt;&lt;a href="http://lh4.google.com/nickotech2000/R8VCHKvqmeI/AAAAAAAAABo/nPsUa9WMsVE/image%5B3%5D"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="309" alt="image" src="http://lh3.google.com/nickotech2000/R8VCR6vqmfI/AAAAAAAAABw/7OH4PPJJG8E/image_thumb%5B1%5D" width="289" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="wlWriterSmartContent" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:3c135c95-1c7e-4717-943c-396748f1dc76" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/Visual%20Studio%202005" rel="tag"&gt;Visual Studio 2005&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Wizard" rel="tag"&gt;Wizard&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Project%20Template" rel="tag"&gt;Project Template&lt;/a&gt;,&lt;a href="http://technorati.com/tags/IWizard" rel="tag"&gt;IWizard&lt;/a&gt;,&lt;a href="http://technorati.com/tags/vstemplate" rel="tag"&gt;vstemplate&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Write all information above the note and just close it.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Step 6, Rewrite vstemplate file&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Find the file from Step 1, usually in the C:\Documents and Settings\&amp;quot;username&amp;quot;\My Documents\Visual Studio 2005\My Exported Templates. Extract the zip files and edit the .vstemplate&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Add WizardExtension to :&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&amp;lt;VSTemplate Version=&amp;quot;2.0.0&amp;quot; xmlns=&amp;quot;&lt;a href="http://schemas.microsoft.com/developer/vstemplate/2005" ?="?"&gt;http://schemas.microsoft.com/developer/vstemplate/2005&amp;quot;&lt;/a&gt; Type=&amp;quot;Project&amp;quot;&amp;gt; &lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&amp;#160; &amp;lt;TemplateData&amp;gt; &lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ... &lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&amp;#160; &amp;lt;/TemplateData&amp;gt; &lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&amp;#160; &amp;lt;TemplateContent&amp;gt; &lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ... &lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&amp;#160; &amp;lt;/TemplateContent&amp;gt; &lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;&amp;#160; &lt;strong&gt;&amp;lt;WizardExtension&amp;gt; &lt;br /&gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;Assembly&amp;gt;Quick.Template.Wizard, Version=1.0.0.0, Culture=neutral, PublicKeyToken=3542a3b786264129, Custom=null&amp;lt;/Assembly&amp;gt; &lt;br /&gt;&lt;br /&gt;    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;FullClassName&amp;gt;Quick.Template.Wizard.WizardImplementation&amp;lt;/FullClassName&amp;gt; &lt;br /&gt;&lt;br /&gt;    &lt;br /&gt;&amp;#160; &amp;lt;/WizardExtension&amp;gt; &lt;br /&gt;&lt;br /&gt;    &lt;br /&gt;&lt;/strong&gt;&amp;lt;/VSTemplate&amp;gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;I just use the information from properties above to fill the assembly and full class name. Save the vstemplate file.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Select the extracted files, right click --&amp;gt; choose Sent to --&amp;gt;Compressed(zipped) folder.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Move the result zip files to C:\Documents and Settings\Nicko\My Documents\Visual Studio 2005\Templates\ProjectTemplates\Visual C#&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;Step 7, Use the template&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;From the solutions, add new project and choose your template project from Visual C# My Templates. You can see that the form that implement wizard will shown.&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fnickotech2000.blogspot.com%2f2008%2f02%2fstep-by-step-building-project-template.html"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fnickotech2000.blogspot.com%2f2008%2f02%2fstep-by-step-building-project-template.html" border="0" alt="kick it on DotNetKicks.com" /&gt;&lt;/a&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5734935016600069480-4970380729954155110?l=nickotech2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nickotech2000.blogspot.com/feeds/4970380729954155110/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5734935016600069480&amp;postID=4970380729954155110&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5734935016600069480/posts/default/4970380729954155110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5734935016600069480/posts/default/4970380729954155110'/><link rel='alternate' type='text/html' href='http://nickotech2000.blogspot.com/2008/02/step-by-step-building-project-template.html' title='Step by Step building a project template and wizard in VS 2005'/><author><name>Nicko Satria Utama</name><uri>http://www.blogger.com/profile/13954117740118688905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5734935016600069480.post-3770599672491916162</id><published>2008-02-13T00:20:00.001-08:00</published><updated>2008-02-29T18:37:38.559-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Development'/><title type='text'>Small and Lightweight Reuse Library for .NET</title><content type='html'>&lt;p&gt;I started an open source project in the codeplex.  The project name is &lt;span id="ctl00_ctl00_Content_TabContentPanel_Content_wikiSourceLabel"&gt;&lt;b&gt;Small and Lightweight Reuse Library for .NET&lt;/b&gt;&lt;/span&gt;. It contains classes that encapsulate some of the .NET classes, make it &lt;strong&gt;simple&lt;/strong&gt; and &lt;strong&gt;reuseable&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;The feature for this development:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Encapsulate .NET Policy. (completed) &lt;/li&gt;    &lt;li&gt;Encapsulate Cryptography (beginning) &lt;/li&gt;    &lt;li&gt;Encapsulate Certificate (beginning) &lt;/li&gt;    &lt;li&gt;Encapsulate Directory Services (think) &lt;/li&gt;    &lt;li&gt;Encapsulate Directory Services - Active Directory (Windows platform) (think) &lt;/li&gt;    &lt;li&gt;Encapsulate Remoting (think) &lt;/li&gt;    &lt;li&gt;Encapsulate Transaction (think) &lt;/li&gt;    &lt;li&gt;Encapsulate Networking (think) &lt;/li&gt;    &lt;li&gt;Encapsulate Regular Expression and make user define expression (think) &lt;/li&gt;    &lt;li&gt;Encapsulate Database and Table Schema (think) &lt;/li&gt;    &lt;li&gt;Encapsulate Threading (think) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;I use Visual Studio 2005 SP1 and .NET Framework 2.0 SP1 for development. Some of them will be compiled in VS 2008&lt;/p&gt;&lt;p&gt;The project URL  &lt;a href="http://www.codeplex.com/reuselibrary"&gt;http://www.codeplex.com/reuselibrary&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5734935016600069480-3770599672491916162?l=nickotech2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.codeplex.com/reuselibrary' title='Small and Lightweight Reuse Library for .NET'/><link rel='replies' type='application/atom+xml' href='http://nickotech2000.blogspot.com/feeds/3770599672491916162/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5734935016600069480&amp;postID=3770599672491916162&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5734935016600069480/posts/default/3770599672491916162'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5734935016600069480/posts/default/3770599672491916162'/><link rel='alternate' type='text/html' href='http://nickotech2000.blogspot.com/2008/02/very-small-reuse-library.html' title='Small and Lightweight Reuse Library for .NET'/><author><name>Nicko Satria Utama</name><uri>http://www.blogger.com/profile/13954117740118688905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5734935016600069480.post-3996305531190750246</id><published>2008-02-06T00:12:00.001-08:00</published><updated>2008-02-27T18:58:13.697-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2008'/><title type='text'>Web Deployment Project for VS 2008 Released</title><content type='html'>&lt;p&gt;Web Deployment Project for VS 2008 Released. It is useful since you can easily deploy the web project. You can use the command line aspnet_compiler.exe as a compiler that includes in .NET Framework 2.0 and aspnet_merge.exe that includes in the installation of Web Deployment Project for VS 2008&lt;/p&gt;  &lt;p&gt;You can download the web deployment project for vs 2008 in &lt;a title="http://www.microsoft.com/Downloads/details.aspx?FamilyID=0aa30ae8-c73b-4bdd-bb1b-fe697256c459&amp;amp;displaylang=en" href="http://www.microsoft.com/Downloads/details.aspx?FamilyID=0aa30ae8-c73b-4bdd-bb1b-fe697256c459&amp;amp;displaylang=en"&gt;http://www.microsoft.com/Downloads/details.aspx?FamilyID=0aa30ae8-c73b-4bdd-bb1b-fe697256c459&amp;amp;displaylang=en&lt;/a&gt;.&lt;/p&gt;  &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5734935016600069480-3996305531190750246?l=nickotech2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nickotech2000.blogspot.com/feeds/3996305531190750246/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5734935016600069480&amp;postID=3996305531190750246&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5734935016600069480/posts/default/3996305531190750246'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5734935016600069480/posts/default/3996305531190750246'/><link rel='alternate' type='text/html' href='http://nickotech2000.blogspot.com/2008/02/web-deployment-project-for-vs-2008.html' title='Web Deployment Project for VS 2008 Released'/><author><name>Nicko Satria Utama</name><uri>http://www.blogger.com/profile/13954117740118688905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5734935016600069480.post-8779931171978594816</id><published>2008-02-03T23:08:00.001-08:00</published><updated>2008-05-06T03:13:49.191-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2005'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2008'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio policy'/><title type='text'>Visual Studio Policy is not available in the Visual Studio 2008?</title><content type='html'>&lt;p&gt;Today I open MSDN for Visual Studio 2005 and MSDN for Visual Studio 2008. I want to find article about Visual Studio policy that is available in the Visual Studio .NET 2003 and Visual Studio 2005.&lt;/p&gt;  &lt;p&gt;First I look in the MSDN for Visual Studio 2005 offline and MSDN for Visual Studio 2008 offline. In the VS 2005 version, I saw Visual Studio policy exist there in the Visual Studio template documentation and in the VS 2008 not. And then I check the online version of &lt;a title="http://msdn2.microsoft.com/en-us/library/default.aspx" href="http://msdn2.microsoft.com/en-us/library/default.aspx"&gt;http://msdn2.microsoft.com/en-us/library/default.aspx&lt;/a&gt;; When I open the Visual Studio 2005 section, it is existed and Visual Studio 2008 is not. &lt;/p&gt;  &lt;p&gt;Could it be that the Microsoft will not support / remove the Visual Studio Policy from Visual Studio 2008.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5734935016600069480-8779931171978594816?l=nickotech2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nickotech2000.blogspot.com/feeds/8779931171978594816/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5734935016600069480&amp;postID=8779931171978594816&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5734935016600069480/posts/default/8779931171978594816'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5734935016600069480/posts/default/8779931171978594816'/><link rel='alternate' type='text/html' href='http://nickotech2000.blogspot.com/2008/02/visual-studio-policy-is-not-available.html' title='Visual Studio Policy is not available in the Visual Studio 2008?'/><author><name>Nicko Satria Utama</name><uri>http://www.blogger.com/profile/13954117740118688905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5734935016600069480.post-8753633301431807361</id><published>2008-01-27T08:09:00.001-08:00</published><updated>2008-01-27T08:25:31.741-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2005'/><category scheme='http://www.blogger.com/atom/ns#' term='Development'/><category scheme='http://www.blogger.com/atom/ns#' term='Visual Studio 2008'/><title type='text'>Cheap development cost in .NET</title><content type='html'>&lt;p&gt;I always hear that many people in Indonesia said that develop in .NET platform is expensive. That because you have to buy many tools from vendors, but some tools is not actually used in the production. Many companies spend on the very expensive tools, controls or library to accelerate development process.   &lt;br /&gt;The only software you have to buy is Windows, such as Windows XP, 2003 Server, Vista or 2008, depends on the project.&lt;/p&gt;  &lt;p&gt;If you have enough budget, you can buy Visual Studio professional or the team edition. For starter software development company and doesn't have enough budget, you can easily use many free tools.&lt;/p&gt;  &lt;p&gt;First thing to buy is a windows operating system. It is the heard of everything. You need this to make your computer live :). Choosing the right windows version for you is more important. Below is the suggested matrix that you can use as a reference.&lt;/p&gt;  &lt;p&gt;&lt;span style="color:#00ff00;"&gt;Green box&lt;/span&gt; means the suggested operating system for the project.&lt;/p&gt;  &lt;table border="1" cellpadding="2" cellspacing="1" width="725"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="80"&gt; &lt;/td&gt;        &lt;td valign="top" width="80"&gt; &lt;/td&gt;        &lt;td valign="top" width="80"&gt; &lt;/td&gt;        &lt;td valign="top" width="80"&gt; &lt;/td&gt;        &lt;td valign="top" width="80"&gt; &lt;/td&gt;        &lt;td valign="top" width="80"&gt; &lt;/td&gt;        &lt;td valign="top" width="80"&gt; &lt;/td&gt;        &lt;td valign="top" width="80"&gt; &lt;/td&gt;        &lt;td valign="top" width="80"&gt; &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="80"&gt; &lt;/td&gt;        &lt;td valign="top" width="80"&gt;         &lt;p&gt;Windows XP Home&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="80"&gt;         &lt;p&gt;Windows XP Prof&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="80"&gt;         &lt;p&gt;Windows Vista Home Basic&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="80"&gt;         &lt;p&gt;Windows Vista Home Premium&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="80"&gt;         &lt;p&gt;Windows Vista Business&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="80"&gt;         &lt;p&gt;Windows Vista Ultimate&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="80"&gt;         &lt;p&gt;Windows Server 2003&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="80"&gt;         &lt;p&gt;Windows Server 2008&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="80"&gt;         &lt;p&gt;Windows Form with data&lt;/p&gt;       &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="80"&gt; &lt;/td&gt;        &lt;td valign="top" width="80"&gt; &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="80"&gt; &lt;/td&gt;        &lt;td valign="top" width="80"&gt; &lt;/td&gt;        &lt;td valign="top" width="80"&gt; &lt;/td&gt;        &lt;td valign="top" width="80"&gt; &lt;/td&gt;        &lt;td valign="top" width="80"&gt; &lt;/td&gt;        &lt;td valign="top" width="80"&gt; &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="80"&gt;         &lt;p&gt;Windows Form tools&lt;/p&gt;       &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="80"&gt; &lt;/td&gt;        &lt;td valign="top" width="80"&gt; &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="80"&gt; &lt;/td&gt;        &lt;td valign="top" width="80"&gt; &lt;/td&gt;        &lt;td valign="top" width="80"&gt; &lt;/td&gt;        &lt;td valign="top" width="80"&gt; &lt;/td&gt;        &lt;td valign="top" width="80"&gt; &lt;/td&gt;        &lt;td valign="top" width="80"&gt; &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="80"&gt;         &lt;p&gt;Windows Form client-server&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="80"&gt; &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="80"&gt; &lt;/td&gt;        &lt;td valign="top" width="80"&gt; &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="80"&gt; &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="80"&gt; &lt;/td&gt;        &lt;td valign="top" width="80"&gt; &lt;/td&gt;        &lt;td valign="top" width="80"&gt; &lt;/td&gt;        &lt;td valign="top" width="80"&gt; &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="80"&gt;         &lt;p&gt;Windows Form consuming web service&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="80"&gt; &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="80"&gt;         &lt;p&gt;&lt;strong&gt;IIS must be installed&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="80"&gt; &lt;/td&gt;        &lt;td valign="top" width="80"&gt; &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="80"&gt;         &lt;p&gt;&lt;strong&gt;IIS must be installed&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="80"&gt;         &lt;p&gt;&lt;strong&gt;IIS must be installed&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="80"&gt;         &lt;p&gt;&lt;strong&gt;IIS must be installed&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="80"&gt;         &lt;p&gt;&lt;strong&gt;IIS must be installed&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="80"&gt;         &lt;p&gt;Windows Services application&lt;/p&gt;       &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="80"&gt; &lt;/td&gt;        &lt;td valign="top" width="80"&gt; &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="80"&gt; &lt;/td&gt;        &lt;td valign="top" width="80"&gt; &lt;/td&gt;        &lt;td valign="top" width="80"&gt; &lt;/td&gt;        &lt;td valign="top" width="80"&gt; &lt;/td&gt;        &lt;td valign="top" width="80"&gt; &lt;/td&gt;        &lt;td valign="top" width="80"&gt; &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="80"&gt;         &lt;p&gt;Windows Form consuming remoting &lt;/p&gt;       &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="80"&gt;         &lt;p&gt;&lt;strong&gt;Cannot use HTTP Channel&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="80"&gt; &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="80"&gt;         &lt;p&gt;&lt;strong&gt;Cannot use HTTP Channel&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="80"&gt;         &lt;p&gt;&lt;strong&gt;Cannot use HTTP Channel&lt;/strong&gt;&lt;/p&gt;       &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="80"&gt; &lt;/td&gt;        &lt;td valign="top" width="80"&gt; &lt;/td&gt;        &lt;td valign="top" width="80"&gt; &lt;/td&gt;        &lt;td valign="top" width="80"&gt; &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="80"&gt;         &lt;p&gt;Windows Form component and controls&lt;/p&gt;       &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="80"&gt; &lt;/td&gt;        &lt;td valign="top" width="80"&gt; &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="80"&gt; &lt;/td&gt;        &lt;td valign="top" width="80"&gt; &lt;/td&gt;        &lt;td valign="top" width="80"&gt; &lt;/td&gt;        &lt;td valign="top" width="80"&gt; &lt;/td&gt;        &lt;td valign="top" width="80"&gt; &lt;/td&gt;        &lt;td valign="top" width="80"&gt; &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="80"&gt;         &lt;p&gt;Windows Form using Direct X&lt;/p&gt;       &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="80"&gt; &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="80"&gt; &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="80"&gt; &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="80"&gt; &lt;/td&gt;        &lt;td valign="top" width="80"&gt; &lt;/td&gt;        &lt;td valign="top" width="80"&gt; &lt;/td&gt;        &lt;td valign="top" width="80"&gt; &lt;/td&gt;        &lt;td valign="top" width="80"&gt; &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="80"&gt;Windows Presentation Foundation&lt;/td&gt;        &lt;td valign="top" width="80"&gt; &lt;/td&gt;        &lt;td valign="top" width="80"&gt; &lt;/td&gt;        &lt;td valign="top" width="80"&gt; &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="80"&gt; &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="80"&gt; &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="80"&gt; &lt;/td&gt;        &lt;td valign="top" width="80"&gt; &lt;/td&gt;        &lt;td valign="top" width="80"&gt; &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;table 1: Matrix for common Windows form or WPF project type&lt;/p&gt;  &lt;p&gt; &lt;/p&gt;  &lt;table border="1" cellpadding="2" cellspacing="1" width="725"&gt;&lt;tbody&gt;     &lt;tr&gt;       &lt;td valign="top" width="96"&gt; &lt;/td&gt;        &lt;td valign="top" width="72"&gt; &lt;/td&gt;        &lt;td valign="top" width="77"&gt; &lt;/td&gt;        &lt;td valign="top" width="78"&gt; &lt;/td&gt;        &lt;td valign="top" width="78"&gt; &lt;/td&gt;        &lt;td valign="top" width="78"&gt; &lt;/td&gt;        &lt;td valign="top" width="78"&gt; &lt;/td&gt;        &lt;td valign="top" width="78"&gt; &lt;/td&gt;        &lt;td valign="top" width="78"&gt; &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="96"&gt; &lt;/td&gt;        &lt;td valign="top" width="72"&gt;         &lt;p&gt;Windows XP Home&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="77"&gt;         &lt;p&gt;Windows XP Prof&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="77"&gt;         &lt;p&gt;Windows Vista Home Basic&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="78"&gt;         &lt;p&gt;Windows Vista Home Premium&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="78"&gt;         &lt;p&gt;Windows Vista Business&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="78"&gt;         &lt;p&gt;Windows Vista Ultimate&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="78"&gt;         &lt;p&gt;Windows Server 2003&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="78"&gt;         &lt;p&gt;Windows Server 2008&lt;/p&gt;       &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="96"&gt;         &lt;p&gt;Common Web Application&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="72"&gt; &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="78"&gt; &lt;/td&gt;        &lt;td valign="top" width="77"&gt; &lt;/td&gt;        &lt;td valign="top" width="77"&gt; &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="77"&gt; &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="77"&gt; &lt;/td&gt;        &lt;td valign="top" width="77"&gt; &lt;/td&gt;        &lt;td valign="top" width="77"&gt; &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="96"&gt;         &lt;p&gt;Web Application with AJAX&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="72"&gt; &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="78"&gt; &lt;/td&gt;        &lt;td valign="top" width="77"&gt; &lt;/td&gt;        &lt;td valign="top" width="77"&gt; &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="77"&gt; &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="77"&gt; &lt;/td&gt;        &lt;td valign="top" width="77"&gt; &lt;/td&gt;        &lt;td valign="top" width="77"&gt; &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="96"&gt;         &lt;p&gt;Web Services as producers&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="72"&gt; &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="78"&gt; &lt;/td&gt;        &lt;td valign="top" width="77"&gt; &lt;/td&gt;        &lt;td valign="top" width="77"&gt; &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="77"&gt; &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="77"&gt; &lt;/td&gt;        &lt;td valign="top" width="77"&gt; &lt;/td&gt;        &lt;td valign="top" width="77"&gt; &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="96"&gt;         &lt;p&gt;Web Application consuming web services&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="72"&gt; &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="78"&gt; &lt;/td&gt;        &lt;td valign="top" width="77"&gt; &lt;/td&gt;        &lt;td valign="top" width="77"&gt; &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="77"&gt; &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="77"&gt; &lt;/td&gt;        &lt;td valign="top" width="77"&gt; &lt;/td&gt;        &lt;td valign="top" width="77"&gt; &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="96"&gt;         &lt;p&gt;Web services as orchestrator&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="72"&gt; &lt;/td&gt;        &lt;td valign="top" width="78"&gt; &lt;/td&gt;        &lt;td valign="top" width="77"&gt; &lt;/td&gt;        &lt;td valign="top" width="77"&gt; &lt;/td&gt;        &lt;td valign="top" width="77"&gt; &lt;/td&gt;        &lt;td valign="top" width="77"&gt; &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="77"&gt; &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="77"&gt; &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="96"&gt;         &lt;p&gt;Web Application using Silverlight&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="72"&gt; &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="78"&gt; &lt;/td&gt;        &lt;td valign="top" width="77"&gt; &lt;/td&gt;        &lt;td valign="top" width="77"&gt; &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="77"&gt; &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="77"&gt; &lt;/td&gt;        &lt;td valign="top" width="77"&gt; &lt;/td&gt;        &lt;td valign="top" width="77"&gt; &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="96"&gt;         &lt;p&gt;Web Component and Controls&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="72"&gt; &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="78"&gt; &lt;/td&gt;        &lt;td valign="top" width="77"&gt; &lt;/td&gt;        &lt;td valign="top" width="78"&gt; &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="78"&gt; &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="78"&gt; &lt;/td&gt;        &lt;td valign="top" width="78"&gt; &lt;/td&gt;        &lt;td valign="top" width="78"&gt; &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="96"&gt;         &lt;p&gt;Web with design focus&lt;/p&gt;       &lt;/td&gt;        &lt;td valign="top" width="72"&gt; &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="78"&gt; &lt;/td&gt;        &lt;td valign="top" width="77"&gt; &lt;/td&gt;        &lt;td valign="top" width="78"&gt; &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="78"&gt; &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="78"&gt; &lt;/td&gt;        &lt;td valign="top" width="78"&gt; &lt;/td&gt;        &lt;td valign="top" width="78"&gt; &lt;/td&gt;     &lt;/tr&gt;      &lt;tr&gt;       &lt;td valign="top" width="96"&gt;WPF XBAP&lt;/td&gt;        &lt;td valign="top" width="72"&gt; &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="78"&gt; &lt;/td&gt;        &lt;td valign="top" width="77"&gt; &lt;/td&gt;        &lt;td valign="top" width="78"&gt; &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="78"&gt; &lt;/td&gt;        &lt;td bgcolor="#90ee90" valign="top" width="78"&gt; &lt;/td&gt;        &lt;td valign="top" width="78"&gt; &lt;/td&gt;        &lt;td valign="top" width="78"&gt; &lt;/td&gt;     &lt;/tr&gt;   &lt;/tbody&gt;&lt;/table&gt;  &lt;p&gt;table 2: Matrix for common Web Form project type&lt;/p&gt;  &lt;p&gt;If you want to develop on .NET Framework 2.0, you can download the free IDE of Visual Studio 2005 Express edition in &lt;a title="http://www.microsoft.com/express/2005/" href="http://www.microsoft.com/express/2005/"&gt;http://www.microsoft.com/express/2005/&lt;/a&gt; , but I suggest you download the latest version of Visual Studio 2008 Express edition in &lt;a title="http://www.microsoft.com/express/" href="http://www.microsoft.com/express/"&gt;http://www.microsoft.com/express/&lt;/a&gt;. In the Visual Studio 2008 Express Edition, you can easily switch the target from .NET Framework 2.0, 3.0 and 3.5 in the projects.&lt;/p&gt;  &lt;p&gt;The next step is getting the latest Windows SDK and .NET Framework. Until today, There is Windows SDK for Windows Vista has released. You can download on &lt;a title="http://www.microsoft.com/downloads/details.aspx?FamilyID=ff6467e6-5bba-4bf5-b562-9199be864d29&amp;amp;DisplayLang=en" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=ff6467e6-5bba-4bf5-b562-9199be864d29&amp;amp;DisplayLang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=ff6467e6-5bba-4bf5-b562-9199be864d29&amp;amp;DisplayLang=en&lt;/a&gt;. For .NET Framework 3.5 runtime you can download on  &lt;a title="http://download.microsoft.com/download/6/0/f/60fc5854-3cb8-4892-b6db-bd4f42510f28/dotnetfx35.exe" href="http://download.microsoft.com/download/6/0/f/60fc5854-3cb8-4892-b6db-bd4f42510f28/dotnetfx35.exe"&gt;http://download.microsoft.com/download/6/0/f/60fc5854-3cb8-4892-b6db-bd4f42510f28/dotnetfx35.exe&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;While developing a solutions, you need a documentation. You can download the offline version of MSDN on &lt;a title="http://www.microsoft.com/downloads/details.aspx?FamilyID=6ff3bc60-32c8-4c22-8591-a20bf8dff1a2&amp;amp;DisplayLang=en" href="http://www.microsoft.com/downloads/details.aspx?FamilyID=6ff3bc60-32c8-4c22-8591-a20bf8dff1a2&amp;amp;DisplayLang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=6ff3bc60-32c8-4c22-8591-a20bf8dff1a2&amp;amp;DisplayLang=en&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Web deployment is not so easy since in the Visual Web Developer 2008 Express, there is no web publishing function available. There are small command line tools from Microsoft to help web deployment. The aspnet_compiler.exe is the compiler that come from .NET Framework 2.0. You can find it in the directory: Windows --&amp;gt; Microsoft.NET --&amp;gt; Framework --&amp;gt; v2.0.50727. The other is web deployment project. You can download in the &lt;a title="http://msdn2.microsoft.com/en-us/asp.net/aa336619.aspx" href="http://msdn2.microsoft.com/en-us/asp.net/aa336619.aspx"&gt;http://msdn2.microsoft.com/en-us/asp.net/aa336619.aspx&lt;/a&gt;. This tools will help to publish web application and web site project using command line tools of aspnet_merge.exe&lt;/p&gt;  &lt;p&gt;You can use MSBuild to automate build the project.&lt;/p&gt;  &lt;p&gt;To make a setup or installation, you can use WIX.&lt;/p&gt;  &lt;p&gt;The other free tools that can help:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Free office application that can help to make documentation or manual from open office &lt;a title="http://www.openoffice.org/" href="http://www.openoffice.org/"&gt;http://www.openoffice.org/&lt;/a&gt;.&lt;/li&gt;    &lt;li&gt;Free and simple web bug tracking and issue tools from BugTracker.NET on &lt;a title="http://ifdefined.com/bugtrackernet.html" href="http://ifdefined.com/bugtrackernet.html"&gt;http://ifdefined.com/bugtrackernet.html&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Free version control using Subversion can be downloaded on &lt;a title="http://subversion.tigris.org/" href="http://subversion.tigris.org/"&gt;http://subversion.tigris.org/&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Free database server of SqlServer 2005 express edition on &lt;a title="http://www.microsoft.com/sql/editions/express/default.mspx" href="http://www.microsoft.com/sql/editions/express/default.mspx"&gt;http://www.microsoft.com/sql/editions/express/default.mspx&lt;/a&gt;;  &lt;/li&gt;    &lt;li&gt;Free database server of Oracle database express edition on &lt;a title="http://www.oracle.com/technology/software/products/database/xe/index.html" href="http://www.oracle.com/technology/software/products/database/xe/index.html"&gt;http://www.oracle.com/technology/software/products/database/xe/index.html&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Free database server of IBM DB/2 Express-C on &lt;a title="http://www.ibm.com/db2/express" href="http://www.ibm.com/db2/express"&gt;http://www.ibm.com/db2/express&lt;/a&gt;&lt;/li&gt;    &lt;li&gt;Free database server of MySQL on &lt;a href="http://www.mysql.com/"&gt;http://www.mysql.com&lt;/a&gt;&lt;/li&gt; &lt;/ul&gt;                    &lt;p&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt; &lt;a href="http://www.dotnetkicks.com/kick/?url=http%3a%2f%2fnickotech2000.blogspot.com%2f2008%2f01%2fcheap-development-cost-in-net.html"&gt;&lt;img src="http://www.dotnetkicks.com/Services/Images/KickItImageGenerator.ashx?url=http%3a%2f%2fnickotech2000.blogspot.com%2f2008%2f01%2fcheap-development-cost-in-net.html" alt="kick it on DotNetKicks.com" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5734935016600069480-8753633301431807361?l=nickotech2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nickotech2000.blogspot.com/feeds/8753633301431807361/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5734935016600069480&amp;postID=8753633301431807361&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5734935016600069480/posts/default/8753633301431807361'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5734935016600069480/posts/default/8753633301431807361'/><link rel='alternate' type='text/html' href='http://nickotech2000.blogspot.com/2008/01/cheap-development-cost-in-net.html' title='Cheap development cost in .NET'/><author><name>Nicko Satria Utama</name><uri>http://www.blogger.com/profile/13954117740118688905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5734935016600069480.post-6965862271477521957</id><published>2008-01-14T23:01:00.001-08:00</published><updated>2008-01-14T23:06:36.233-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='WPF'/><category scheme='http://www.blogger.com/atom/ns#' term='Video OnDemand'/><category scheme='http://www.blogger.com/atom/ns#' term='ASP.NET'/><title type='text'>Using ASP.NET as a source of MediaElement to play video on demand</title><content type='html'>&lt;p&gt;I search on the internet about to load video to use MediaElement dinamically and still not found. I have come the idea to use an aspx file as an media source. The aspx itself will produce binary stream that can feed as a source for MediaElement.  &lt;br /&gt;First prepare the aspx file and wmv/mpg files. The aspx will act as contents&lt;/p&gt;  &lt;pre class="code"&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;&amp;lt;summary&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt; Read Video&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;&amp;lt;/summary&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;&amp;lt;param name="videoID"&amp;gt;&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt;Video ID, assume you have more than one video&lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;&amp;lt;/param&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;&amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;private&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;byte&lt;/span&gt;[] ReadVideo(&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt; videoID)&lt;br /&gt;{&lt;br /&gt;   &lt;span style="color: rgb(0, 0, 255);"&gt;byte&lt;/span&gt;[] bufferTemp = &lt;span style="color: rgb(0, 0, 255);"&gt;null&lt;/span&gt;;&lt;br /&gt;   &lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt; videofilePath = &lt;span style="color: rgb(163, 21, 21);"&gt;""&lt;/span&gt;;&lt;br /&gt;   &lt;span style="color: rgb(0, 0, 255);"&gt;switch&lt;/span&gt; (videoID)&lt;br /&gt;   {&lt;br /&gt;      &lt;span style="color: rgb(0, 0, 255);"&gt;case&lt;/span&gt; &lt;span style="color: rgb(163, 21, 21);"&gt;"1"&lt;/span&gt;: { videofilePath = &lt;span style="color: rgb(163, 21, 21);"&gt;"WinVideo-Winforms-MenusToolbarsandStatus.wmv"&lt;/span&gt;; &lt;span style="color: rgb(0, 0, 255);"&gt;break&lt;/span&gt;; }&lt;br /&gt;      &lt;span style="color: rgb(0, 0, 255);"&gt;case&lt;/span&gt; &lt;span style="color: rgb(163, 21, 21);"&gt;"2"&lt;/span&gt;: { videofilePath = &lt;span style="color: rgb(163, 21, 21);"&gt;""&lt;/span&gt;; &lt;span style="color: rgb(0, 0, 255);"&gt;break&lt;/span&gt;; }&lt;br /&gt;      &lt;span style="color: rgb(0, 0, 255);"&gt;default&lt;/span&gt;: &lt;span style="color: rgb(0, 0, 255);"&gt;break&lt;/span&gt;;&lt;br /&gt;   }&lt;br /&gt;   &lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt; (!&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;.IsNullOrEmpty(videofilePath))&lt;br /&gt;   {&lt;br /&gt;      videofilePath = Server.MapPath(videofilePath);&lt;br /&gt;      bufferTemp = &lt;span style="color: rgb(43, 145, 175);"&gt;File&lt;/span&gt;.ReadAllBytes(videofilePath);&lt;br /&gt;   }&lt;br /&gt;   &lt;span style="color: rgb(0, 0, 255);"&gt;return&lt;/span&gt; bufferTemp;&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;The code above will read the file and convert to the video data (array of byte). You can use many of video in the sample. Just add to the switch of the video file name.&lt;/p&gt;&lt;p align="left"&gt;&lt;/p&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt; &lt;/span&gt;&amp;lt;summary&amp;gt;&lt;br /&gt;&lt;pre class="code"&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt; Write Video as an aspx file&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;&amp;lt;/summary&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;///&lt;/span&gt;&lt;span style="color: rgb(0, 128, 0);"&gt; &lt;/span&gt;&lt;span style="color: rgb(128, 128, 128);"&gt;&amp;lt;param name="videoData"&amp;gt;&amp;lt;/param&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;private&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;void&lt;/span&gt; WriteToPage(&lt;span style="color: rgb(0, 0, 255);"&gt;byte&lt;/span&gt;[] videoData)&lt;br /&gt;{&lt;br /&gt;  &lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt; (videoData.Length &amp;gt; 0)&lt;br /&gt;  {&lt;br /&gt;      &lt;span style="color: rgb(0, 0, 255);"&gt;this&lt;/span&gt;.Response.ContentType = &lt;span style="color: rgb(163, 21, 21);"&gt;"video/x-ms-wmv"&lt;/span&gt;;&lt;br /&gt;      &lt;span style="color: rgb(43, 145, 175);"&gt;BinaryWriter&lt;/span&gt; binWriter = &lt;span style="color: rgb(0, 0, 255);"&gt;new&lt;/span&gt; &lt;span style="color: rgb(43, 145, 175);"&gt;BinaryWriter&lt;/span&gt;(&lt;span style="color: rgb(0, 0, 255);"&gt;this&lt;/span&gt;.Response.OutputStream);&lt;br /&gt;      binWriter.Write(videoData);&lt;br /&gt;      binWriter.Close();&lt;br /&gt;  }&lt;br /&gt;}&lt;/pre&gt;&lt;p&gt;&lt;/p&gt;The code above will write the video data to the aspx file. Don't forget to add ContentType (MIME Type) of this aspx, so it can automatically recognize by the agent. If you want to play another format such as MPEFG file or AVI, you have to change the MIME type in the ContentType property.&lt;br /&gt;&lt;br /&gt;&lt;pre class="code"&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;protected&lt;/span&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;void&lt;/span&gt; Page_Load(&lt;span style="color: rgb(0, 0, 255);"&gt;object&lt;/span&gt; sender, &lt;span style="color: rgb(43, 145, 175);"&gt;EventArgs&lt;/span&gt; e)&lt;br /&gt;{&lt;br /&gt;  &lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt; (Request.QueryString.Count &amp;gt; 0)&lt;br /&gt;  {&lt;br /&gt;      &lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt; (!&lt;span style="color: rgb(0, 0, 255);"&gt;string&lt;/span&gt;.IsNullOrEmpty(Request.QueryString[&lt;span style="color: rgb(163, 21, 21);"&gt;"videoid"&lt;/span&gt;]))&lt;br /&gt;      {&lt;br /&gt;          &lt;span style="color: rgb(0, 0, 255);"&gt;byte&lt;/span&gt;[] bufferTemp = ReadVideo(Request.QueryString[&lt;span style="color: rgb(163, 21, 21);"&gt;"videoid"&lt;/span&gt;]);&lt;br /&gt;          &lt;span style="color: rgb(0, 0, 255);"&gt;if&lt;/span&gt; (bufferTemp.Length &amp;gt; 0)&lt;br /&gt;          {&lt;br /&gt;              WriteToPage(bufferTemp);&lt;br /&gt;          }&lt;br /&gt;      }&lt;br /&gt;  }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;The code above will read the query string. It will search videoid. If not found just show the blank pages. If it is found, it will call ReadVideo method and WriteToPage method. For example in the browser, I write : http://localhost/ShowVideo.aspx?videoid=1 in the browser, It will launch Windows Media Player to play the video.&lt;/p&gt;After I finish with the ASPX file, I create an WPF Application project. I add the code below in the Window1.xaml:&lt;br /&gt;&lt;br /&gt;&lt;pre class="code"&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;Window&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; x&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Class&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="WpfApplication1.Window1"&lt;br /&gt;&lt;/span&gt;   &lt;span style="color: rgb(255, 0, 0);"&gt; xmlns&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="http://schemas.microsoft.com/winfx/2006/xaml/presentation"&lt;br /&gt;&lt;/span&gt;   &lt;span style="color: rgb(255, 0, 0);"&gt; xmlns&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;:&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;x&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="http://schemas.microsoft.com/winfx/2006/xaml"&lt;br /&gt;&lt;/span&gt;   &lt;span style="color: rgb(255, 0, 0);"&gt; Title&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="Window1"&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; Height&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="300"&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; Width&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="300"&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;Grid&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;        &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;MediaElement&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; Source&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="http://localhost/ShowVideo.aspx?videoid=1"&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; Height&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="200"&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; Width&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;="200" /&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;    &lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;Grid&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;&lt;br /&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: rgb(163, 21, 21);"&gt;Window&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&amp;gt;&lt;/span&gt;&lt;/pre&gt;The MediaElement call the ShowVideo.aspx with the query string of videoid. If the video is exist then MediaElement will read the aspx as a video stream.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5734935016600069480-6965862271477521957?l=nickotech2000.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://nickotech2000.blogspot.com/feeds/6965862271477521957/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5734935016600069480&amp;postID=6965862271477521957&amp;isPopup=true' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5734935016600069480/posts/default/6965862271477521957'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5734935016600069480/posts/default/6965862271477521957'/><link rel='alternate' type='text/html' href='http://nickotech2000.blogspot.com/2008/01/using-aspnet-as-source-of-mediaelement.html' title='Using ASP.NET as a source of MediaElement to play video on demand'/><author><name>Nicko Satria Utama</name><uri>http://www.blogger.com/profile/13954117740118688905</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
