<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" version="2.0">

<channel>
	<title>Emad Alashi's Blog</title>
	
	<link>http://www.emadashi.com</link>
	<description />
	<lastBuildDate>Sat, 01 Dec 2012 08:33:31 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/eashi" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="eashi" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><geo:lat>32</geo:lat><geo:long>35</geo:long><item>
		<title>ASP.NET Routing &amp; MVC Presentation</title>
		<link>http://www.emadashi.com/2012/12/asp-net-routing-mvc-presentation/</link>
		<comments>http://www.emadashi.com/2012/12/asp-net-routing-mvc-presentation/#comments</comments>
		<pubDate>Sat, 01 Dec 2012 08:33:31 +0000</pubDate>
		<dc:creator>Emad Alashi</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[asp.net]]></category>
		<category><![CDATA[melbourne]]></category>
		<category><![CDATA[mvc]]></category>
		<category><![CDATA[routing]]></category>
		<category><![CDATA[vic.net]]></category>

		<guid isPermaLink="false">http://www.emadashi.com/2012/12/asp-net-routing-mvc-presentation/</guid>
		<description><![CDATA[Last week I delivered my first talk in Melbourne: “ASP.NET Routing &#38; MVC” with the .net user group VIC.NET.    Even though there was a problem with time control due to reasons out of hand, the audience stayed till the very end of the presentation; good to know that the presentation didn’t suck [...]]]></description>
			<content:encoded><![CDATA[<p>Last week I delivered my first talk in Melbourne: “ASP.NET Routing &amp; MVC” with the .net user group VIC.NET.    <br />Even though there was a problem with time control due to reasons out of hand, the audience stayed till the very end of the presentation; good to know that the presentation didn’t suck that much <img src='http://www.emadashi.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> .</p>
<p>Here are the slides:</p>
<p>  <iframe src="http://www.slideshare.net/slideshow/embed_code/15438666" width="476" height="400" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/eashi?a=ET83nHpPbsY:KWpDFcWB7fo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/eashi?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/eashi?a=ET83nHpPbsY:KWpDFcWB7fo:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/eashi?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/eashi?a=ET83nHpPbsY:KWpDFcWB7fo:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/eashi?i=ET83nHpPbsY:KWpDFcWB7fo:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/eashi?a=ET83nHpPbsY:KWpDFcWB7fo:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/eashi?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/eashi/~4/ET83nHpPbsY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.emadashi.com/2012/12/asp-net-routing-mvc-presentation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Speed Reading Is Nice…But</title>
		<link>http://www.emadashi.com/2012/11/speed-reading-is-nicebut/</link>
		<comments>http://www.emadashi.com/2012/11/speed-reading-is-nicebut/#comments</comments>
		<pubDate>Thu, 01 Nov 2012 08:29:13 +0000</pubDate>
		<dc:creator>Emad Alashi</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[speed reading]]></category>

		<guid isPermaLink="false">http://www.emadashi.com/2012/11/speed-reading-is-nicebut/</guid>
		<description><![CDATA[If you are in the software industry, you HAVE to read, read, and read; and it’s not only the “of course reading is essential”, it’s a matter of life and death…of your career!   And there is tons of material every day: books, blogs, news, articles,….etc., so how to manage? of course is Speed [...]]]></description>
			<content:encoded><![CDATA[<p>If you are in the software industry, you HAVE to read, read, and read; and it’s not only the “of course reading is essential”, it’s a matter of life and death…of your career!   <br />And there is tons of material every day: books, blogs, news, articles,….etc., so how to manage? of course is <a href="http://en.wikipedia.org/wiki/Speed_reading" target="_blank">Speed Reading</a>.</p>
<p>Once you master it, yes…you will use it for every reading situation, and at this point, my dear reader, you start doing it wrong!   <br />It is a tool like every tool we have; suitable for some scenarios, and not suitable for others!&#160; <br />For example, it’s good for the following scenarios:</p>
<ol>
<li>Unrelated topic: You are a web developer on the .net stack, and your feed reader brings you an article about 3D printing, cool stuff, but is it worth investing your time on? probably not</li>
<li>Filtering: You are looking for something, and you found too many articles in search results, so you filter them out and check which ones are worth thorough reading by speed reading </li>
<li>Extreme situation: someone pointed a gun on your head and ordered you to hack a bank system within 30 seconds and you are allowed to use Google… ok maybe less serious situations but you got the point <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://emadashi.com/wp-content/uploads/4989338d9caa_10537/wlEmoticon-smile.png" /></li>
</ol>
<p>And sometimes you just need to read really really slow! every letter, every word, and every statement probably several times, you need to “absorb” the meaning, to think it over, to go deep with the details, to comprehend, cases like:</p>
<ol>
<li>Applying: if you are going to use what you read to write code! never write a code after speed reading! you have to absolutely understand what your line of code is doing, and whether it is suitable for your case compared to the case of the article.</li>
<li>Judging: you want to buy a product, or want to know how to deal with someone/something/situation, you want to reply/comment on his article…etc. You need to have enough solid information in order to come to a conclusion on how to deal with it, you should NEVER judge or conclude on basis of speed reading.</li>
<li>Dealing with Sales/Marketing/Government/Agreements/Contracts: especially if it was an ad with extremely small text at the bottom that nukes the value of the ad up side down <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-openmouthedsmile" alt="Open-mouthed smile" src="http://emadashi.com/wp-content/uploads/4989338d9caa_10537/wlEmoticon-openmouthedsmile.png" /></li>
</ol>
<p>conclusion: sometimes, you have to read slowly <img style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" class="wlEmoticon wlEmoticon-smile" alt="Smile" src="http://emadashi.com/wp-content/uploads/4989338d9caa_10537/wlEmoticon-smile.png" /></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/eashi?a=D4XNWc6N9-c:tgfpKHecpgw:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/eashi?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/eashi?a=D4XNWc6N9-c:tgfpKHecpgw:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/eashi?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/eashi?a=D4XNWc6N9-c:tgfpKHecpgw:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/eashi?i=D4XNWc6N9-c:tgfpKHecpgw:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/eashi?a=D4XNWc6N9-c:tgfpKHecpgw:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/eashi?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/eashi/~4/D4XNWc6N9-c" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.emadashi.com/2012/11/speed-reading-is-nicebut/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Performance Counters For Multiple Processes With Same Name</title>
		<link>http://www.emadashi.com/2012/10/performance-counters-for-multiple-processes-with-same-name/</link>
		<comments>http://www.emadashi.com/2012/10/performance-counters-for-multiple-processes-with-same-name/#comments</comments>
		<pubDate>Sat, 13 Oct 2012 08:48:00 +0000</pubDate>
		<dc:creator>Emad Alashi</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[iis]]></category>
		<category><![CDATA[performance counter]]></category>
		<category><![CDATA[performance monitor]]></category>
		<category><![CDATA[w3wp]]></category>

		<guid isPermaLink="false">http://www.emadashi.com/2012/10/performance-counters-for-multiple-processes-with-same-name/</guid>
		<description><![CDATA[There are couple of posts talking about this subject: when you have multiple process’s with the same name, it’s not straightforward to figure out which performance counter instance represents which process. The suggestion would be to use the process ID and the “ID Process” performance counter (This is not the essence of this post, if [...]]]></description>
			<content:encoded><![CDATA[<p>There are couple of posts talking about this subject: when you have multiple process’s with the same name, it’s not straightforward to figure out which performance counter instance represents which process. The suggestion would be to use the process ID and the “ID Process” performance counter (This is not the essence of this post, if you know this already scroll down). </p>
<p>To explain this further let’s say we have two web applications with two different application pools that we wish to monitor their consumption of memory (though probably there are better ways to do it). The worker process for a web application on IIS is a w3wp.exe process, so for our two web applications we will have two w3wp.exe process’s running like the following:</p>
<p><a href="http://emadashi.com/wp-content/uploads/Performance-Counters-with-Same-Process-N_11A23/CropperCapture19.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="CropperCapture[19]" border="0" alt="CropperCapture[19]" src="http://emadashi.com/wp-content/uploads/Performance-Counters-with-Same-Process-N_11A23/CropperCapture19_thumb.jpg" width="259" height="222" /></a></p>
<p>When you want to create a performance counter for these processes, the Performance Monitor will use the name of the process as the name of the performance counter instance for first process only, as for the rest of the processes who got the same name, for each of these processes, the Performance Monitor will assign a suffix &quot;#N&quot; to the name of the instance, like the following:</p>
<p><a href="http://emadashi.com/wp-content/uploads/Performance-Counters-with-Same-Process-N_11A23/perfC.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="perfC" border="0" alt="perfC" src="http://emadashi.com/wp-content/uploads/Performance-Counters-with-Same-Process-N_11A23/perfC_thumb.jpg" width="330" height="361" /></a></p>
<p>But how to figure out which one is which? the answer as we stated in the introduction is to use the “ID Process” performance counter: </p>
<p><a href="http://emadashi.com/wp-content/uploads/Performance-Counters-with-Same-Process-N_11A23/CropperCapture16.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="CropperCapture[16]" border="0" alt="CropperCapture[16]" src="http://emadashi.com/wp-content/uploads/Performance-Counters-with-Same-Process-N_11A23/CropperCapture16_thumb.jpg" width="444" height="81" /></a></p>
<p><a href="http://emadashi.com/wp-content/uploads/Performance-Counters-with-Same-Process-N_11A23/CropperCapture17.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="CropperCapture[17]" border="0" alt="CropperCapture[17]" src="http://emadashi.com/wp-content/uploads/Performance-Counters-with-Same-Process-N_11A23/CropperCapture17_thumb.jpg" width="451" height="82" /></a></p>
<p>And here is a <a href="http://stackoverflow.com/questions/9115436/performance-counter-by-process-id-instead-of-name" target="_blank">Stackoverflow answer</a> that describes how to do it programmatically.</p>
<p>Now is my problem! <strong>and this is the essence of this post</strong>; what if the process “4468”<strong>,</strong> which is monitored by the performance counter instance “w3wp”, died? you’d think that the performance counter “w3wp” dies with it and the performance counter “w3wp#1” will still be there monitoring process <strong>“</strong>3744”….well….WRONG!</p>
<p>What will happen is that counters will shift by one counter up; the counter “w3wp#1”<strong> </strong>will disappear, and w3wp will pickup up process “3744”:</p>
<p><a href="http://emadashi.com/wp-content/uploads/Performance-Counters-with-Same-Process-N_11A23/CropperCapture20.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="CropperCapture[20]" border="0" alt="CropperCapture[20]" src="http://emadashi.com/wp-content/uploads/Performance-Counters-with-Same-Process-N_11A23/CropperCapture20_thumb.jpg" width="461" height="78" /></a></p>
<p><strong>Which will mess all your readings up!</strong></p>
<p>So the conclusion is that if you have multiple processes with the same name, and you want to monitor them in Performance Monitor, pay attention to the “ID Process” performance counter; if it changed (which means one of the processes died) then consider that all your subsequent readings are wrong. And if if you are doing it programmatically, I suggest to create the performance counter just before you want to read it; don’t hold on too long for a performance counter instance after creation.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/eashi?a=dr35FFHkVyk:zZ4DvX7cDVI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/eashi?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/eashi?a=dr35FFHkVyk:zZ4DvX7cDVI:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/eashi?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/eashi?a=dr35FFHkVyk:zZ4DvX7cDVI:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/eashi?i=dr35FFHkVyk:zZ4DvX7cDVI:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/eashi?a=dr35FFHkVyk:zZ4DvX7cDVI:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/eashi?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/eashi/~4/dr35FFHkVyk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.emadashi.com/2012/10/performance-counters-for-multiple-processes-with-same-name/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Microsoft.Web.Administration for IIS</title>
		<link>http://www.emadashi.com/2012/09/microsoft-web-administration-for-iis/</link>
		<comments>http://www.emadashi.com/2012/09/microsoft-web-administration-for-iis/#comments</comments>
		<pubDate>Tue, 11 Sep 2012 07:10:54 +0000</pubDate>
		<dc:creator>Emad Alashi</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[application pool]]></category>
		<category><![CDATA[iis]]></category>
		<category><![CDATA[microsoft.web.administration]]></category>
		<category><![CDATA[programmatically]]></category>
		<category><![CDATA[servermanager]]></category>

		<guid isPermaLink="false">http://www.emadashi.com/?p=433</guid>
		<description><![CDATA[Update: In addition to this post, you can check as well the valuable post of Stuart Cullinans&#8217;s.
One of the recent projects I worked on involved managing IIS programmatically, and I found the proper tool for it, meet “Microsoft.Web.Administration”.
You can read about this library&#8217;s purpose in its own page above; what I will list here are [...]]]></description>
			<content:encoded><![CDATA[<p><span style="color: #ff0000;">Update</span>: In addition to this post, you can check as well the valuable <a href="http://stuartcullinan.blogspot.com.au/2011/04/some-tips-on-using-microsoftwebadminist.html" target="_blank">post </a>of Stuart Cullinans&#8217;s.</p>
<p>One of the recent projects I worked on involved managing IIS programmatically, and I found the proper tool for it, meet “<a href="http://msdn.microsoft.com/en-us/library/microsoft.web.administration%28v=vs.90%29.aspx">Microsoft.Web.Administration</a>”.</p>
<p>You can read about this library&#8217;s purpose in its own page above; what I will list here are three points I noticed while dealing with the library:</p>
<ol>
<li>I couldn’t find where to download, or install the library from, it appeared to be residing in “<strong>C:\Windows\SysWOW64\inetsrv\Microsoft.Web.Administration.dll</strong>” and yes my OS is 64-bit I am not sure where you can find that on a 32-bit machine</li>
<li>The main class <strong>ServerManager</strong> reads data the moment it’s created only, it will <strong>NOT</strong> maintain a valid state after the initial read; for example, consider the following snippet:</li>
<div id="codeSnippetWrapper" style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; width: 97.5%; font-family: 'Courier New', courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; cursor: text; border: silver 1px solid; padding: 4px;">
<div id="codeSnippet" style="text-align: left; line-height: 12pt; background-color: #f4f4f4; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;">
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span id="lnum1" style="color: #606060">   1:</span> <span style="color: #0000ff">static</span> WorkerProcess currentWP;</pre>
<p><!--CRLF--></p>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span id="lnum2" style="color: #606060">   2:</span> <span style="color: #0000ff">static</span> <span style="color: #0000ff">void</span> Main(<span style="color: #0000ff">string</span>[] args)</pre>
<p><!--CRLF--></p>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span id="lnum3" style="color: #606060">   3:</span> {</pre>
<p><!--CRLF--></p>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span id="lnum4" style="color: #606060">   4:</span>     currentWP = <span style="color: #0000ff">new</span> ServerManager().ApplicationPools[0].WorkerProcesses[0];</pre>
<p><!--CRLF--></p>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span id="lnum5" style="color: #606060">   5:</span>     <span style="color: #0000ff">while</span> (!Console.ReadLine().Equals(<span style="color: #006080">"quit"</span>))</pre>
<p><!--CRLF--></p>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span id="lnum6" style="color: #606060">   6:</span>     {</pre>
<p><!--CRLF--></p>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span id="lnum7" style="color: #606060">   7:</span>         Console.WriteLine(currentWP.ProcessId.ToString());</pre>
<p><!--CRLF--></p>
<pre style="text-align: left; line-height: 12pt; background-color: #f4f4f4; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span id="lnum8" style="color: #606060">   8:</span>     }</pre>
<p><!--CRLF--></p>
<pre style="text-align: left; line-height: 12pt; background-color: white; margin: 0em; width: 100%; font-family: 'Courier New', courier, monospace; direction: ltr; color: black; font-size: 8pt; overflow: visible; border-style: none; padding: 0px;"><span id="lnum9" style="color: #606060">   9:</span> }</pre>
<p><!--CRLF--></div>
</div>
<p>This code snippet will get the first WorkerProcess of the first Application Pool in the local IIS. Run the code, enter bogus input just to make sure the loop works, and you will find on the Console the W3WP Process Id displayed (e.g. 4295).</p>
<p>Now open the Task Manager and kill that process, run the loop again you will find that the process ID is still being displayed, even though the process itself is gone!</p>
<p>The way you think this would act is to throw an exception when you access a property of the object after it’s invalidated, this doesn’t happen!</p>
<p>So you have to be careful not to hold for this library’s objects for long; for accurate reading, create them just before you need them.</p>
<li>
<div class="csharpcode"><strong>ServerManager</strong> is expensive! make sure you use the “<strong>using</strong>” block in order to dispose it after you’re done with it.</div>
</li>
</ol>
<p class="csharpcode">I believe these three notes could be in any library that have access to resources on the machine, so you better keep that in mind for any other library of the like.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/eashi?a=8oTob4tjA2g:mgJVeiJNWdE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/eashi?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/eashi?a=8oTob4tjA2g:mgJVeiJNWdE:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/eashi?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/eashi?a=8oTob4tjA2g:mgJVeiJNWdE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/eashi?i=8oTob4tjA2g:mgJVeiJNWdE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/eashi?a=8oTob4tjA2g:mgJVeiJNWdE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/eashi?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/eashi/~4/8oTob4tjA2g" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.emadashi.com/2012/09/microsoft-web-administration-for-iis/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Working for Readify</title>
		<link>http://www.emadashi.com/2012/08/working-for-readify/</link>
		<comments>http://www.emadashi.com/2012/08/working-for-readify/#comments</comments>
		<pubDate>Wed, 22 Aug 2012 22:34:14 +0000</pubDate>
		<dc:creator>Emad Alashi</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[australia]]></category>
		<category><![CDATA[Readify]]></category>

		<guid isPermaLink="false">http://www.emadashi.com/?p=430</guid>
		<description><![CDATA[And finally I have the time to post about my new job, yes I changed jobs and now it&#8217;s Readify.
I have never seen anything like it! Readify&#8217;s consultants are the top professionals in the IT industry working on the Microsoft stack; when I step in the office every morning, I sit in a room in [...]]]></description>
			<content:encoded><![CDATA[<p>And finally I have the time to post about my new job, yes I changed jobs and now it&#8217;s <a href="http://www.readify.net">Readify</a>.<a href="http://www.readify.net"><img style="margin: 10px 0px 10px 10px; display: inline" align="right" src="http://www.emadashi.com/misc/images/Readify_Logo.jpg" /></img></a></p>
<p>I have never seen anything like it! Readify&#8217;s consultants are the top professionals in the IT industry working on the Microsoft stack; when I step in the office every morning, I sit in a room in which there are two MVP&#8217;s (of 12 MVP’s work in Readify already!), two book authors and user group leads, couple of speakers, and many silent geniuses. And I am drinking knowledge from a fire hose!</p>
<p>Actually I was about to list some of the distinguished Readify consultants here, and I found myself listing them all! so just check Readify’s employees list on linkedin <a href="http://www.linkedin.com/search/fpsearch?type=people&amp;keywords=readify&amp;pplSearchOrigin=GLHD&amp;pageKey=fps_results">here</a>, and you will see what I am talking about!</p>
<p>In addition to that Readify is a leading company in sponsoring technical community activities; it’s been only 40 days and I have attended several community events that if not sponsored by Readify then at least you will find couple of speakers are Readify employees. Like <a href="http://readify.net/our-events">Readify Dev Day</a>, and <a href="http://dddmelbourne.com/">DDDMelbourne</a></p>
<p>And you know what? if you live outside Australia and willing to move into Australia, guess what, you can be part of all of this! Readify supports <a href="http://readify.net/work-with-us/international-candidates">International Candidates</a>, if you love software and you find yourself having a geek career, then you don’t want to miss this opportunity, <a href="http://readify.net/work-with-us/apply-online">apply now</a>!</p>
<p>Did I mention that Readify is 27th of the <a href="https://readify.net/who-we-are/news/2012/readify-named-brws-27th-best-place-to-work-in-australia">top 50 Best Places to Work in Australia</a>? <img src='http://www.emadashi.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Check Readify’s presence online:</p>
<p><a title="Facebook" href="http://www.facebook.com/pages/Readify/167664093343663">Facebook</a>, <a title="Twitter" href="http://twitter.com/readify">Twitter</a>, and <a title="Google Plus" href="http://plus.google.com/116464672301175916000">Google Plus</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/eashi?a=W7KdXP_DV6Q:qEuHB_UpeCY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/eashi?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/eashi?a=W7KdXP_DV6Q:qEuHB_UpeCY:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/eashi?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/eashi?a=W7KdXP_DV6Q:qEuHB_UpeCY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/eashi?i=W7KdXP_DV6Q:qEuHB_UpeCY:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/eashi?a=W7KdXP_DV6Q:qEuHB_UpeCY:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/eashi?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/eashi/~4/W7KdXP_DV6Q" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.emadashi.com/2012/08/working-for-readify/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Working with Windows 8 on Parallels 7</title>
		<link>http://www.emadashi.com/2012/07/working-with-windows-8-on-parallels-7/</link>
		<comments>http://www.emadashi.com/2012/07/working-with-windows-8-on-parallels-7/#comments</comments>
		<pubDate>Tue, 24 Jul 2012 23:46:50 +0000</pubDate>
		<dc:creator>Emad Alashi</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[corner]]></category>
		<category><![CDATA[ctrl]]></category>
		<category><![CDATA[parallels]]></category>
		<category><![CDATA[windows8]]></category>

		<guid isPermaLink="false">http://www.emadashi.com/?p=428</guid>
		<description><![CDATA[I have installed the latest Parallels update and created a new Windows 8 virtual machine. 
Being in all-touch universe right now, the guys behind Windows 8 decided to use corners of the screen to do certain actions like showing Start, active applications, or the settings flay-out.    The issue is that I couldn’t [...]]]></description>
			<content:encoded><![CDATA[<p>I have installed the latest Parallels update and created a new Windows 8 virtual machine. </p>
<p>Being in all-touch universe right now, the guys behind Windows 8 decided to use corners of the screen to do certain actions like showing Start, active applications, or the settings flay-out.    <br />The issue is that I couldn’t use these corners because Parallels menu would pop up the minute your mouse touches the top edge!</p>
<p>My work around was to enable “Active Screen Corners” on Parallels for my virtual machine and then assign them to nothing, access it by going to Configure &gt; Full Screen. Check the following screen shot:</p>
<p><a href="http://emadashi.com/misc/images/WorkingwithWindows8onParallels7_898B/ScreenShot20120724at4.36.37PM.png"><img title="Screen Shot 2012-07-24 at 4.36.37 PM" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="Screen Shot 2012-07-24 at 4.36.37 PM" src="http://emadashi.com/misc/images/WorkingwithWindows8onParallels7_898B/ScreenShot20120724at4.36.37PM_thumb.png" width="539" height="336" /></a> </p>
<p>The other thing I faced is that Ctrl+arrow key combination is used in Mac for the Mission Control, so I am not able to use the Ctrl to traverse between words in a text block, the work around for this is to disable the Mac shortcuts of Mission Control, Settings &gt; Keyboard &gt; Mission Control</p>
</p>
<p><a href="http://emadashi.com/misc/images/WorkingwithWindows8onParallels7_898B/ScreenShot20120724at4.42.11PM.png"><img title="Screen Shot 2012-07-24 at 4.42.11 PM" style="border-top: 0px; border-right: 0px; border-bottom: 0px; border-left: 0px; display: inline" border="0" alt="Screen Shot 2012-07-24 at 4.42.11 PM" src="http://emadashi.com/misc/images/WorkingwithWindows8onParallels7_898B/ScreenShot20120724at4.42.11PM_thumb.png" width="532" height="303" /></a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/eashi?a=-IKHns-VKac:_RqFCX5fsIY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/eashi?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/eashi?a=-IKHns-VKac:_RqFCX5fsIY:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/eashi?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/eashi?a=-IKHns-VKac:_RqFCX5fsIY:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/eashi?i=-IKHns-VKac:_RqFCX5fsIY:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/eashi?a=-IKHns-VKac:_RqFCX5fsIY:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/eashi?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/eashi/~4/-IKHns-VKac" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.emadashi.com/2012/07/working-with-windows-8-on-parallels-7/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Html.EditorFor, Model Property vs RouteData Value</title>
		<link>http://www.emadashi.com/2012/05/html-editorfor-model-property-vs-routedata-value/</link>
		<comments>http://www.emadashi.com/2012/05/html-editorfor-model-property-vs-routedata-value/#comments</comments>
		<pubDate>Sun, 13 May 2012 15:41:40 +0000</pubDate>
		<dc:creator>Emad Alashi</dc:creator>
				<category><![CDATA[Misc]]></category>
		<category><![CDATA[asp.net mvc]]></category>
		<category><![CDATA[html.editorfor]]></category>
		<category><![CDATA[route]]></category>
		<category><![CDATA[routedata]]></category>

		<guid isPermaLink="false">http://www.emadashi.com/index.php/2012/05/html-editorfor-model-property-vs-routedata-value/</guid>
		<description><![CDATA[The ASP.NET MVC team made our lives easier when they created the Html editor extension method Html.EditoFor(); you just pass the model property and it creates the right editor, filling it with the property’s value…but not always!
Let’s consider that we have the conventional route definition:


routes.MapRoute(

           [...]]]></description>
			<content:encoded><![CDATA[<p>The ASP.NET MVC team made our lives easier when they created the Html editor extension method <em><a href="http://msdn.microsoft.com/en-us/library/system.web.mvc.html.editorextensions.editorfor.aspx" target="_blank">Html.EditoFor()</a>; </em>you just pass the model property and it creates the right editor, filling it with the property’s value…but not always!</p>
<p>Let’s consider that we have the conventional route definition:</p>
<div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper">
<div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet">
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px">routes.MapRoute(</pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px">                <span style="color: #006080">&quot;Default&quot;</span>, <span style="color: #008000">// Route name</span></pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px">                <span style="color: #006080">&quot;{controller}/{action}/{id}&quot;</span>, <span style="color: #008000">// URL with parameters</span></pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px">                <span style="color: #0000ff">new</span> { controller = <span style="color: #006080">&quot;Home&quot;</span>, action = <span style="color: #006080">&quot;Index&quot;</span>, id = UrlParameter.Optional } <span style="color: #008000">// Parameter defaults</span></pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px">            );</pre>
<p><!--CRLF--></div>
</div>
<p>and this simple action method:</p>
<div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper">
<div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet">
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px"><span style="color: #0000ff">public</span> ActionResult MyAction(<span style="color: #0000ff">int</span>? id)</pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px">{</pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px">    var result = <span style="color: #0000ff">new</span> Person() { Id = 3, Name = <span style="color: #006080">&quot;My Name&quot;</span> };</pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px">&#160;</pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px">    <span style="color: #0000ff">return</span> View(result);</pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px">}</pre>
<p><!--CRLF--></div>
</div>
<p>and this form view:</p>
<div style="border-bottom: silver 1px solid; text-align: left; border-left: silver 1px solid; padding-bottom: 4px; line-height: 12pt; background-color: #f4f4f4; margin: 20px 0px 10px; padding-left: 4px; width: 97.5%; padding-right: 4px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; max-height: 200px; font-size: 8pt; overflow: auto; border-top: silver 1px solid; cursor: text; border-right: silver 1px solid; padding-top: 4px" id="codeSnippetWrapper">
<div style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px" id="codeSnippet">
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px">@using (Html.BeginForm())</pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px">{</pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px">    @Html.EditorFor( m =<span style="color: #0000ff">&gt;</span> m.Id )</pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px">    <span style="color: #0000ff">&lt;</span><span style="color: #800000">br</span> <span style="color: #0000ff">/&gt;</span></pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px">    @Html.EditorFor( m =<span style="color: #0000ff">&gt;</span> m.Name )</pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px">    <span style="color: #0000ff">&lt;</span><span style="color: #800000">br</span> <span style="color: #0000ff">/&gt;</span></pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: white; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px">    <span style="color: #0000ff">&lt;</span><span style="color: #800000">input</span> <span style="color: #ff0000">type</span><span style="color: #0000ff">=&quot;submit&quot;</span> <span style="color: #ff0000">value</span><span style="color: #0000ff">=&quot;Submit&quot;</span> <span style="color: #0000ff">/&gt;</span></pre>
<p><!--CRLF--></p>
<pre style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-height: 12pt; background-color: #f4f4f4; margin: 0em; border-left-style: none; padding-left: 0px; width: 100%; padding-right: 0px; font-family: &#39;Courier New&#39;, courier, monospace; direction: ltr; border-top-style: none; color: black; border-right-style: none; font-size: 8pt; overflow: visible; padding-top: 0px">}</pre>
<p><!--CRLF--></div>
</div>
<p>If you have noticed, in the action method “MyAction” I didn’t make use of the passed “id” parameter; I know this is a rare case, but maybe for a rare business scenario you want to return a very similar model rather than the requested one. In our case we will return the model with the id = 3 no matter what, just for the sake of the argument.</p>
<p>Now if you call for the request “<em>http://localhost:2085/MyController/MyAction</em>” everything works as expected, and you will have the following view result:</p>
<p><a href="http://emadashi.com/wp-content/uploads/Html.EditorFor_FE15/CropperCapture5.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="CropperCapture[5]" border="0" alt="CropperCapture[5]" src="http://emadashi.com/wp-content/uploads/Html.EditorFor_FE15/CropperCapture5_thumb.jpg" width="242" height="157" /></a>&#160;</p>
<p>But if&#160; you call for the request “<em>http://localhost:2085/MyController/MyAction/<strong><font color="#ff0000">5</font></strong></em>”, the result will be:</p>
<p><a href="http://emadashi.com/wp-content/uploads/Html.EditorFor_FE15/CropperCapture6.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="CropperCapture[6]" border="0" alt="CropperCapture[6]" src="http://emadashi.com/wp-content/uploads/Html.EditorFor_FE15/CropperCapture6_thumb.jpg" width="242" height="157" /></a></p>
<p><strong>As you have noticed, the Html.EditorFor ignored the value of the property “id” in the model, and instead used the RouteData value of the key “id” passed through the URL</strong>.</p>
<p>Most likely this is by design; I can’t think of how a bug in the code could produce this. But according to how I see things, this can be really confusing; I should be expecting the value of the property I passed instead of the routedata value.</p>
<p>What do YOU think?</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/eashi?a=3_3qWvaRRrs:U-2T-VHZ-8g:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/eashi?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/eashi?a=3_3qWvaRRrs:U-2T-VHZ-8g:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/eashi?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/eashi?a=3_3qWvaRRrs:U-2T-VHZ-8g:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/eashi?i=3_3qWvaRRrs:U-2T-VHZ-8g:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/eashi?a=3_3qWvaRRrs:U-2T-VHZ-8g:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/eashi?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/eashi/~4/3_3qWvaRRrs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.emadashi.com/2012/05/html-editorfor-model-property-vs-routedata-value/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>ثلاثاء عمان التقني – الذكرى الثانية</title>
		<link>http://www.emadashi.com/2012/05/%d8%ab%d9%84%d8%a7%d8%ab%d8%a7%d8%a1-%d8%b9%d9%85%d8%a7%d9%86-%d8%a7%d9%84%d8%aa%d9%82%d9%86%d9%8a-%d8%a7%d9%84%d8%b0%d9%83%d8%b1%d9%89-%d8%a7%d9%84%d8%ab%d8%a7%d9%86%d9%8a%d8%a9/</link>
		<comments>http://www.emadashi.com/2012/05/%d8%ab%d9%84%d8%a7%d8%ab%d8%a7%d8%a1-%d8%b9%d9%85%d8%a7%d9%86-%d8%a7%d9%84%d8%aa%d9%82%d9%86%d9%8a-%d8%a7%d9%84%d8%b0%d9%83%d8%b1%d9%89-%d8%a7%d9%84%d8%ab%d8%a7%d9%86%d9%8a%d8%a9/#comments</comments>
		<pubDate>Sat, 05 May 2012 08:39:08 +0000</pubDate>
		<dc:creator>Emad Alashi</dc:creator>
				<category><![CDATA[software management]]></category>
		<category><![CDATA[AmmanTT]]></category>
		<category><![CDATA[Jordan]]></category>
		<category><![CDATA[startups]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://www.emadashi.com/?p=421</guid>
		<description><![CDATA[
ثلاثاء عمان التقني لمن لا يعرفه هو لقاء تقني يعقد كل أول يوم ثلاثاء من كل شهر، يتناول مواضيع مختلفة في كل مرة تحوم كلها حول التقنية و استخداماتها، يتم فيه استضافة متخصصين في موضوع تقني معين يطرحون آراءهم في أهم المستجدات في الموضوع المختار أمام جمهور كبير من المتحمسين. يقوده طليعة من الشباب الفطن [...]]]></description>
			<content:encoded><![CDATA[<div dir="rtl">
<p align="right"><a href="http://www.ammantt.com"><img style="background-image: none; margin: 0px 7px 7px 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px; border: 0pt none;" title="548151_10150784486075210_599395209_11585084_1539081719_n" src="http://emadashi.com/wp-content/uploads/dccc017246ce_B002/548151_10150784486075210_599395209_11585084_1539081719_n_thumb.jpg" border="0" alt="548151_10150784486075210_599395209_11585084_1539081719_n" width="260" height="190" align="left" /></a><a href="http://ammantt.com/" target="_blank">ثلاثاء عمان التقني</a> لمن لا يعرفه هو لقاء تقني يعقد كل أول يوم ثلاثاء من كل شهر، يتناول مواضيع مختلفة في كل مرة تحوم كلها حول التقنية و استخداماتها، يتم فيه استضافة متخصصين في موضوع تقني معين يطرحون آراءهم في أهم المستجدات في الموضوع المختار أمام جمهور كبير من المتحمسين. يقوده طليعة من الشباب الفطن الجاد.</p>
<p align="right">و صادف الثلاثاء الماضي الذكرى الثانية لثلاثاء عمان التقني، الذي أقاموا فيه معرضا للشركات الناشئة، و الذي كنت من المحظوظين بزيارته.<br />
بصراحة لم أكن أتوقع ما رأيت؛ أكشاك متراصة لشركات ناشئة ذات حماس منقطع النظير! و لم يكن الحماس فقط ما ميزها، بل المستوى العالي من الاحترافية في منتجاتهم و خدماتهم –لأغلبها- و وضوح الرؤية، و بعد النظر، و إدراك السوق، و استيعاب فكرة التميز عن الأخرين في خصائص الخدمات، و قدرتهم على عرضها بشكل غير تقليدي و بجاذبية ملفتة للنظر.بالإضافة لبعض الأفكار الإلكتورنية الملموسة مثل “مجس الغاز” (تعريبي الخاص) و التحكم بالآلة من خلال <a href="http://www.xbox.com/en-US/kinect" target="_blank">Kinect</a>.<br />
فاجأني كل هذا و شعرت بفخر و أمل كبيرين.</p>
<p align="right">كنت أمر على الكشك و أستعرض خدمة الشركة الناشئة و ما تقدم، و من ثم أبادر بأسئلة أتحدى فيها وجودهم مثل : “كيف تتميزون عن غيركم و هناك من يعرض خدماتكم نفسها؟ ماذا لو كنت زبونا عندكم و حصل معي كذا، كيف تستجيبون لمثل هذا الإشكال؟ كيف أضمن جودة خدماتكم؟ ما هي خطوتكم التالية و ما هي رؤيتكم؟&#8221; و في المعظم كانت أجوبة متينة بالنسبة لشركة ناشئة، تظهر مدى تمسكهم و جديتهم بالاستمرار و النجاح.</p>
<p align="right">و لكن لا بد أيضا من سرد بعض الملاحظات و النصائح، و ها هي قائمتي:</p>
<ol>
<li>
<div>كان هناك أكشاك فارغة بأسماء شركات ناشئة لم تستغل فرصتها و لم تحضر المعرض، أضاعوا فرصة كبيرة لتسويق خدماتهم و شركاتهم، و أضاعوا الفرصة على غيرهم، و يشكك هذا بقدرتهم أصلا على إنتاج خدمات يستطيع الزبائن الثقة بها و الاعتماد عليها</div>
</li>
<li>
<div>إذا كنت صاحب كشك في معرض، لا تنتظر أن يتقدم أحدهم فيسأل، بادر أنت باستضافته، أظهر له الحماسة و الاهتمام به؛ إذا لم تكن مهتما و أنت صاحب الفكرة، فهل سيهتم عابر سبيل؟ رأيت أثر هذا علي مباشرة و أنا أمشي بين الأكشاك</div>
</li>
<li>
<div>إذا كنت صاحب كشك في معرض، لا تجعل بينك و بين الزوار حاجزا كطاولة مثلا، فأنت “مع” الزائر “أمام” المنتج، أنت في صفه و حليفه، و لست في الطرف الآخر، يبدو أمرا سخيفا لكن في الواقع له أهمية نفسية كبيرة</div>
</li>
<li>
<div>الألوان و التصاميم الجذابة تزداد أهمية يوما بعد يوم، و أثرها جد واضح في تكاثر الناس حولها. ابتعد عن التصاميم “الصلبة” التقليدية للشركات الكبرى، الآن عصر “الكاجوال” نوعا ما، لكن باتزان <img class="wlEmoticon wlEmoticon-smile" style="border-bottom-style: none; border-left-style: none; border-top-style: none; border-right-style: none" src="http://emadashi.com/wp-content/uploads/dccc017246ce_B002/wlEmoticon-smile.png" alt="Smile" /></div>
</li>
<li>
<div>من الأفضل أن تستثمر قليلا بالأوراق الدعائية، طباعة ذات جودة جيدة مع ألوان أفضل بكثير من A4 أبيض و أسود</div>
</li>
<li>
<div>استخدام الأفكار الجديدة في جلب الانتباه أمر جميل، لكن احذر من أن تكون مخترفة للخصوصية، أو مبهمة بحيت يتردد الزائر من الاشتراك فيها، فلن أقف لأتصور و أنا أرسم رسمة لا أفهم المغزى من رسمي لها دون أن تشرح لي (اسحب ورقة وارسمها) لماذا؟ كيف سيفيد هذا في دعايتكم و تعريفنا بكم و بخدمتكم؟</div>
</li>
<li>
<div>أنت لست بائعا متجولا، لا تختر طريقة عرض رتيبة و بكلمات مصطنعة مرتبة، كن تلقائيا و لتكن كلماتك من القلب، بعضهم نجح في ذلك حتى أنني وجدت أنه من اللائق أن أغادر كشكهم لأني أخذت من وقتهم و من وقت المهتمين الأخرين، لم أرد أترك المكان بسهولة</div>
</li>
<li>
<div>و أخيرا إذا كنت زائرا لمعرض، فاعلم أن وقتك ثمين، وستتعب من المشي، و حضر نفسك لحمل الكثير من الأوراق الداعئية التي ستثقل كاهلك</div>
</li>
</ol>
<p align="right">شكرا للقائمين على ثلاثاء عمان التقني، أبدعتم كالعادة و أكدتم أن الشباب العربي لديه القدرة، و الحماسة، و التصميم على إنتاج خدمات و شركات ذات جودة و رؤية ناضجة. شكرا شكرا.</p>
<p align="right">ملاحظة 1: في اللحظة التي سأحصل فيها على قائمة المشاركين سأجدد هذه التدوينة و أدرجها فيها، على كل حال الصورة في الأسفل تظهر بعضها</p>
<p align="right">ملاحظة 2: للأسف لم يتسن لي التقاط صور للمعرض، فسأكتفي بهذه الصورة التي تعرض بعض الأوراق الدعائية منه.</p>
<p align="right"><a href="http://emadashi.com/wp-content/uploads/dccc017246ce_B002/fliers.jpg"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="fliers" src="http://emadashi.com/wp-content/uploads/dccc017246ce_B002/fliers_thumb.jpg" border="0" alt="fliers" width="501" height="479" /></a></p>
</div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/eashi?a=dydJtD7Z3VI:Kdtok7EyF5w:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/eashi?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/eashi?a=dydJtD7Z3VI:Kdtok7EyF5w:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/eashi?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/eashi?a=dydJtD7Z3VI:Kdtok7EyF5w:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/eashi?i=dydJtD7Z3VI:Kdtok7EyF5w:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/eashi?a=dydJtD7Z3VI:Kdtok7EyF5w:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/eashi?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/eashi/~4/dydJtD7Z3VI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.emadashi.com/2012/05/%d8%ab%d9%84%d8%a7%d8%ab%d8%a7%d8%a1-%d8%b9%d9%85%d8%a7%d9%86-%d8%a7%d9%84%d8%aa%d9%82%d9%86%d9%8a-%d8%a7%d9%84%d8%b0%d9%83%d8%b1%d9%89-%d8%a7%d9%84%d8%ab%d8%a7%d9%86%d9%8a%d8%a9/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>How Html.Action() Work</title>
		<link>http://www.emadashi.com/2012/03/how-html-action-work/</link>
		<comments>http://www.emadashi.com/2012/03/how-html-action-work/#comments</comments>
		<pubDate>Fri, 23 Mar 2012 15:30:48 +0000</pubDate>
		<dc:creator>Emad Alashi</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[asp.net mvc]]></category>
		<category><![CDATA[html.action]]></category>
		<category><![CDATA[route]]></category>
		<category><![CDATA[routedata]]></category>
		<category><![CDATA[routevaluedictionary]]></category>

		<guid isPermaLink="false">http://www.emadashi.com/index.php/2012/03/how-html-action-work/</guid>
		<description><![CDATA[Let’s take the example:
@Html.Action(&#34;Latest&#34;, &#34;Episode&#34;)
What this will do is to invoke the “Latest” action method in the “Episode” controller. But what really happens behind the scenes is NOT a direct invoke; it will actually start from the beginning of the ASP.NET MVC execution pipeline using “Latest” and “Episode” as Route values for the keys “action” [...]]]></description>
			<content:encoded><![CDATA[<p>Let’s take the example:</p>
<pre style="line-height: normal; font-family: ; background: white; color: "><font face="Consolas"><span style="background-image: none; background-attachment: scroll; background-repeat: repeat; background-position: 0% 0%"><font style="background-color: #ffff00">@</font></span>Html.Action(<span style="color: "><font color="#a31515">&quot;Latest&quot;</font></span>, <span style="color: "><font color="#a31515">&quot;Episode&quot;</font></span>)</font></pre>
<p>What this will do is to invoke the “<em>Latest</em>” action method in the “<em>Episode</em>” controller. But what really happens behind the scenes is NOT a direct invoke; it will actually start from the beginning of the ASP.NET MVC execution pipeline using “<em>Latest</em>” and “<em>Episode</em>” as Route values for the keys “<em>action</em>” and “<em>controller</em>” respectively.</p>
<p>This means that you should pay very good attention to your Routes definition in the Application_Start() in Global.asax; Html.Action() will try to match the best route in your defined routes according to the RouteValueDictionary created above (action and controller) along with any additional route values provided in the overload. </p>
<p>So bottom line don’t assume that Html.Action will invoke action directly, and make sure that your Route unit tests always cover your back when you need to change your Route definitions, or your risk your Html.Action() methods to be ruined.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/eashi?a=NLOt83cGoKw:ml51Bruy9j8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/eashi?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/eashi?a=NLOt83cGoKw:ml51Bruy9j8:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/eashi?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/eashi?a=NLOt83cGoKw:ml51Bruy9j8:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/eashi?i=NLOt83cGoKw:ml51Bruy9j8:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/eashi?a=NLOt83cGoKw:ml51Bruy9j8:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/eashi?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/eashi/~4/NLOt83cGoKw" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.emadashi.com/2012/03/how-html-action-work/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The Magical Effect of Simple Encouraging Words</title>
		<link>http://www.emadashi.com/2012/03/the-magical-effect-of-simple-encouraging-words/</link>
		<comments>http://www.emadashi.com/2012/03/the-magical-effect-of-simple-encouraging-words/#comments</comments>
		<pubDate>Tue, 20 Mar 2012 22:16:14 +0000</pubDate>
		<dc:creator>Emad Alashi</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Misc]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[software management]]></category>
		<category><![CDATA[encouragement]]></category>
		<category><![CDATA[lead]]></category>
		<category><![CDATA[manage]]></category>
		<category><![CDATA[team]]></category>

		<guid isPermaLink="false">http://www.emadashi.com/index.php/2012/03/the-magical-effect-of-simple-encouraging-words/</guid>
		<description><![CDATA[Recently I had to go through some health checkup that included tests for my eye, one of these tests required from me to keep my eye open for a long period of time concentrating continuously into an extremely strong and annoying light.     During the test I kept receiving encouraging words from [...]]]></description>
			<content:encoded><![CDATA[<p align="left"><a href="http://school.discoveryeducation.com/clipart/clip/goodwork.html" target="_blank"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; float: right; border-top: 0px; border-right: 0px; padding-top: 0px" title="image credit goes for www.discoveryeducation.com/" border="0" alt="image credit goes for www.discoveryeducation.com/" align="right" src="http://emadashi.com/wp-content/uploads/The-Magic-Effect-of-Simple-Encouraging-W_F1A0/goodwork.gif" width="242" height="190" /></a>Recently I had to go through some health checkup that included tests for my eye, one of these tests required from me to keep my eye open for a long period of time concentrating continuously into an extremely strong and annoying light.     <br />During the test I kept receiving encouraging words from the examining doctor every couple of seconds: “Bravo Emad! very good concentration, keep it up, that’s it”.    <br />Even though it was a simple task and me being in my 30’s!… I still had a strong feeling that I was doing something right! and that I should keep doing what I was doing, to give more effort no matter how annoying and hurting this intense light was; and all of this was due to his words! the more he encouraged the wider I opened my eye and concentrated.</p>
<p align="left">The moral of the story is that if you are managing people never ever under estimate the simple words of encouragement, or discouragement!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/eashi?a=NPSGfBEiPhU:-lv_hA-TYlU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/eashi?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/eashi?a=NPSGfBEiPhU:-lv_hA-TYlU:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/eashi?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/eashi?a=NPSGfBEiPhU:-lv_hA-TYlU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/eashi?i=NPSGfBEiPhU:-lv_hA-TYlU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/eashi?a=NPSGfBEiPhU:-lv_hA-TYlU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/eashi?d=qj6IDK7rITs" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/eashi/~4/NPSGfBEiPhU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.emadashi.com/2012/03/the-magical-effect-of-simple-encouraging-words/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
