🇵🇸 Call for a #CeasefireNOW 🇵🇸

Act Now

Consultants’ Skills: Story Telling

You have to listen to two words only before Cristian Prieto grasp your attention till the very end of his talk, even if it was about cats! everybody just goes silent, listening carefully, staring and waiting for more!…and the secret behind it, as I see it, is HE IS A PERFECT STORY-TELLER! Let’s face it, people like stories; we watch movies, we read novels, even news sounds much more interesting when there is a “story” behind it! it is the nature of humans. ...

June 7, 2013 · Emad Alashi

ASP.NET Routing & MVC Presentation

Last week I delivered my first talk in Melbourne: “ASP.NET Routing & 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 that much :D. Here are the slides: https://www.slideshare.net/slideshow/aspnet-routing-mvc/15438666

December 1, 2012 · Emad Alashi

Speed Reading Is Nice…But

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 Reading. 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! It is a tool like every tool we have; suitable for some scenarios, and not suitable for others! For example, it’s good for the following scenarios: ...

November 1, 2012 · Emad Alashi

Performance Counters For Multiple Processes With Same Name

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). 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: ...

October 13, 2012 · Emad Alashi

Microsoft.Web.Administration for IIS

Update: In addition to this post, you can check as well the valuable post of Stuart Cullinans’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’s purpose in its own page above; what I will list here are three points I noticed while dealing with the library: I couldn’t find where to download, or install the library from, it appeared to be residing in “C:\Windows\SysWOW64\inetsrv\Microsoft.Web.Administration.dll” and yes my OS is 64-bit I am not sure where you can find that on a 32-bit machine The main class ServerManager reads data the moment it’s created only, it will NOT maintain a valid state after the initial read; for example, consider the following snippet: static WorkerProcess currentWP; static void Main(string[] args) { currentWP = new ServerManager().ApplicationPools[0].WorkerProcesses[0]; while (!Console.ReadLine().Equals("quit")) { Console.WriteLine(currentWP.ProcessId.ToString()); } } 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). ...

September 11, 2012 · Emad Alashi

Working for Readify

And finally I have the time to post about my new job, yes I changed jobs and now it’s Readify. I have never seen anything like it! Readify’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’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! ...

August 22, 2012 · Emad Alashi

Working with Windows 8 on Parallels 7

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 use these corners because Parallels menu would pop up the minute your mouse touches the top edge! 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 > Full Screen. Check the following screen shot: ...

July 24, 2012 · Emad Alashi

Html.EditorFor, Model Property vs RouteData Value

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( "Default", // Route name "{controller}/{action}/{id}", // URL with parameters new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults ); and this simple action method: ...

May 13, 2012 · Emad Alashi

ثلاثاء عمان التقني – الذكرى الثانية

ثلاثاء عمان التقني لمن لا يعرفه هو لقاء تقني يعقد كل أول يوم ثلاثاء من كل شهر، يتناول مواضيع مختلفة في كل مرة تحوم كلها حول التقنية و استخداماتها، يتم فيه استضافة متخصصين في موضوع تقني معين يطرحون آراءهم في أهم المستجدات في الموضوع المختار أمام جمهور كبير من المتحمسين. يقوده طليعة من الشباب الفطن الجاد. ...

May 5, 2012 · Emad Alashi

How Html.Action() Work

Let’s take the example: @Html.Action("Latest", "Episode") 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” and “controller” respectively. 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. ...

March 23, 2012 · Emad Alashi