Omar AL Zabir blog on ASP.NET Ajax and .NET 3.5
Working hard to enrich millions of peoples' lives
-
Reduce website download time by heavily compressing PNG and JPEG
PNG and JPEG are two most popular formats for web graphics. JPEG is used for photographs, screenshots and backgrounds where PNG is used for all other graphics need including cliparts, buttons, headers, footers, borders and so on. As a result, these two types of graphics file usually take up 80% of the total graphics used in a website. Of course, there's the GIF, which is very popular. But as it supports only 256 colors, it is losing its popularity day by day. PNG seems to be a all rounder winner for all kinds of graphics need. As all browsers support PNG well enough and PNG supports alpha transparency, it's surely the best format so far on the web for all purpose graphics need for websites. So, if you can optimize all PNG and JPEG on your website and compress them rigorously, you can easily shed off several seconds of load time from your website without doing any coding. Especially if your website is graphics rich like Pageflakes, 30% reduction in total size of graphics throughout the website is a big performance win.
-
Fast page loading by moving ASP.NET AJAX scripts after visible content
ASP.NET ScriptManager control has a property LoadScriptsBeforeUI, when set to false, should load all AJAX framework scripts after the content of the page. But it does not effectively push down all scripts after the content. Some framework scripts, extender scripts and other scripts registered by Ajax Control Toolkit still load before the page content loads. The following screen taken from www.dropthings.com shows several script tags are still added at the beginning of <form> which forces them to download first before the page content is loaded and displayed on the page. Script tags pause rendering on several browsers especially in IE until the scripts download and execute. As a result, it gives user a slow loading impression as user stares at a white screen for some time until the scripts before the content download and execute completely. If browser could render the html before it downloads any script, user would see the page content immediately after visiting the site and not see a white screen. This will give user an impression that the website is blazingly fast (just like Google homepage) because user will ideally see the page content, if it's not too large, immediately after hitting the URL.
-
HTML and IFRAME widget for Dropthings
I made two new widgets for Dropthings - one is an HTML widget, that allows you to put any HTML content inside a widget and the other one is an IFRAME widget that allows you to host an IFRAME to any URL. You can see example of these widgets from www.dropthings.com.
-
Desktop RSS Feed Aggregator client with Outlook Integration
Back in 2005, I built an open source RSS Feed Aggregator Desktop client which has been quite popular since its release. It has 48,672 downloads so far. From the activity I see on sourceforge statistics, it's being used about 20,000 times per day.
-
10 ASP.NET Performance and Scalability Secrets
-
My first book - Building a Web 2.0 Portal with ASP.NET 3.5
My first book "Building a Web 2.0 Portal with ASP.NET 3.5" from O'Reilly is published and available in the stores. This book explains in detail the architecture design, development, test, deployment, performance and scalability challenges of my open source web portal http://dropthings.omaralzabir.com. Dropthings is a prototype of a web portal similar to iGoogle or Pageflakes. But this portal is developed using recently released brand new technologies like ASP.NET 3.5, C# 3.0, Linq to Sql, Linq to XML, and Windows Workflow foundation. It makes heavy use of ASP.NET AJAX 1.0. Throughout my career I have built several state-of-the-art personal, educational, enterprise and mass consumer web portals. This book collects my experience in building all of those portals.
-
Silverlight Pagecast - Keep an eye on Silverlight stuffs
It looks like a lot is happening on the web related to Silverlight. It's pretty difficult to keep track of all the websites, blogs, videos, del.icio.us links that get published every day or so. So, I created a Silverlight Pagecast (www.pageflakes.com/silverlight) to stay on top of everything's related to Silverlight. In one page, you get to see Silverlight.net website, MSDN's Silverlight Page, read most popular blogs on Silverlight, rss feeds from Silverlight websites, delicious bookmarks made by community on Silverlight, any blog mention on the web about Silverlight, videos on Silverlight and many more. As I discover more and more stuffs, I will keep adding them on this pagecast.
-
Linq to SQL: How to Attach object to a different data context
After upgrading to Visual Studio 2008 RTM, you will have trouble updating Linq to SQL Classes which are read from one data context and then updated into another data context. You will get this exception during update:
-
Making best use of cache for high performance website
Use URLs consistently
-
On-demand UI loading on AJAX websites
AJAX websites are all about loading as many features as possible into the browser without having any postback. If you look at the Start Pages like Pageflakes, it's only one single page that gives you all the features of the whole application with zero postback. A quick and dirty approach for doing this is to deliver every possible html snippets inside hidden divs during page load and then make those divs visible when needed. But this makes first time loading way too long and browser gives sluggish performance as too much stuff is on the DOM. So, a better approach is to load html snippet and necessary javascript on-demand. In my dropthings project, I have shown an example how this is done.