Wednesday, April 25, 2007
My Project went live.
Today, I'm happy to announce that the web application project for Showtime Arabia that I lead since December last year has finally seen the light of the day.
I cannot explain in words how much I enjoyed developing this project, my team displayed a great effort and did their best to ensure that the application performs well in all aspects and I'm waiting to see the positive outcome of all those crazy hours, those weekends that we spent building this application.
Update 6/7/2007 - Check out this link from Albert Dias my Technical Lead for more on the functional aspects of the website.
I cannot explain in words how much I enjoyed developing this project, my team displayed a great effort and did their best to ensure that the application performs well in all aspects and I'm waiting to see the positive outcome of all those crazy hours, those weekends that we spent building this application.
Update 6/7/2007 - Check out this link from Albert Dias my Technical Lead for more on the functional aspects of the website.
Saturday, April 21, 2007
VS 'Orcas' Beta 1 Release
Just when I installed a VPC VS 'Orcas' March CTP and decided to play with it over the weekend, Microsoft announced the 'beta 1' release. I don't really know the difference between the March CTP build and the Beta 1, usually the only difference during these builds are bug fixes.
If you want to try out the new features in 'Orcas' here's the link to download.
If you want to try out the new features in 'Orcas' here's the link to download.
Wednesday, April 18, 2007
Microsoft Silverlight (previously WPF/E)
Another day, another renaming 'WPF/E(verywhere)' to Silverlight.
This is an interesting read, where the author Rick Strahl highlights the missing features in WPF/E.
Here I summarize few of the points mentioned in the post.
WPF/E is a subset of full-blown WPF which is a desktop technology, therefore it lacks the full power and capabilities of WPF.
I have seen some samples of WPF/E in action in the past, but all of this can be achieved using Flash today, WPF/E faces it's own issues such as lack of cross-browser support, inability to provide rich UI out-of-the-box and relying on AJAX for communication.
In addition to that, WPF lacks good developer-centric tools and that the Expression studio products (Blend, Web etc) are designer focused and Visual Studio's XAML support lacks stability.
Although the technology is not mature yet, but going forward if it has to compete with those emerging in the RIA space (Apollo etc) it has to address all it's shortcomings.
This is an interesting read, where the author Rick Strahl highlights the missing features in WPF/E.
Here I summarize few of the points mentioned in the post.
WPF/E is a subset of full-blown WPF which is a desktop technology, therefore it lacks the full power and capabilities of WPF.
I have seen some samples of WPF/E in action in the past, but all of this can be achieved using Flash today, WPF/E faces it's own issues such as lack of cross-browser support, inability to provide rich UI out-of-the-box and relying on AJAX for communication.
In addition to that, WPF lacks good developer-centric tools and that the Expression studio products (Blend, Web etc) are designer focused and Visual Studio's XAML support lacks stability.
Although the technology is not mature yet, but going forward if it has to compete with those emerging in the RIA space (Apollo etc) it has to address all it's shortcomings.
Monday, April 16, 2007
Cache Access Pattern and updating it frequently
I came across a technique to effectively retrieve any object from the Cache with Steven Smith's Cache Access Pattern.
Say you need to access a DataTable from the Cache, you should first cast it into an object and then check if the object is not 'null'. You can then cast a DataTable from this object, therefore avoid hitting the cache twice.
Here is a link to a post from Scott Cate, where he describes how the Cache Access Pattern help solve a 'Object Not Set' exception issue on KbAlertz.com.
In addition to retrieving the objects from Cache, when a Cache object is updated frequently, another trick is to lock the Cache object. In the code below notice that we obtain a lock on the static string, this is much cheaper than locking the entire Cache object itself.
private static string lockString = "";
System.Web.Caching.Cache objCache = HttpContext.Current.Cache;
lock (lockString)
{
objCache.Insert(...);
}
For a high performance website, this is critical where multiple threads need to update the cache, we ensure that only one thread has write access to the Cache object while other threads wait before making an update.
Say you need to access a DataTable from the Cache, you should first cast it into an object and then check if the object is not 'null'. You can then cast a DataTable from this object, therefore avoid hitting the cache twice.
Here is a link to a post from Scott Cate, where he describes how the Cache Access Pattern help solve a 'Object Not Set' exception issue on KbAlertz.com.
In addition to retrieving the objects from Cache, when a Cache object is updated frequently, another trick is to lock the Cache object. In the code below notice that we obtain a lock on the static string, this is much cheaper than locking the entire Cache object itself.
private static string lockString = "";
System.Web.Caching.Cache objCache = HttpContext.Current.Cache;
lock (lockString)
{
objCache.Insert(...);
}
For a high performance website, this is critical where multiple threads need to update the cache, we ensure that only one thread has write access to the Cache object while other threads wait before making an update.