RSS 2.0
Journal / Blog
Wednesday, April 09, 2008
The ASP.NET AJAX Learning Curve
The ASP.NET AJAX framework comes with a lot of baggage err... I mean... a huge learning curve when compared to other AJAX Frameworks like JQuery, YUI, Dojo, Prototype / Scriptaculous.

Here's a running list of the technologies, and concepts you'll encounter when digging into ASP.NET AJAX:
  • ASP.NET
    • The Page Life Cycle
    • The Control Life Cycle
    • Web Controls
    • User Controls
    • View State
    • Session State
    • Events
  • .NET / Classical Language
    • Interfaces
    • Inheritance
    • Delegates
    • Multicast Delegates
    • Assemblies
    • Properties (Get / Set)
    • Constructors
In addition to these, you also have the technologies universal to all JavaScript libraries:
  • JavaScript:
    • Closures
    • Object Literals
    • JSON
    • Events
    • DOM Manipulation
    • Prototypical Inheritance
    • Constructors
    • XMLHttpRequest
  • Cascading Style Sheets (CSS):
  • Web Services
The ASP.NET AJAX Framework is more complex than other AJAX frameworks, I'm continually lost in it's ambiguity as it attempts to skirt around the JavaScript language - I think this learning curve (and all it's confusion) is precisely why Silverlight has so much potential.

I'm still diving into the low-level details, but my first impressions of the ASP.NET AJAX Framework are:
  • Obscure, ambiguous, no clear vision - it offers multiple (resource intensive) ways to avoid writing JavaScript, but then requires that you write JavaScript anyways
  • Too server centric
  • Too heavy weight (I'm not appreciating how they're trying to turning JavaScript into a Java, C#, .NET clone, the overhead within the browser for these conversions seems like a huge performance bottleneck)
  • Has the potential for poor performance
Most of the other AJAX libraries have been written with performance, browser responsiveness, and User Experience as their number one priorities - I'm still not sure about ASP.NET AJAX.

How many ways can we try to avoid writing JavaScript? If an AJAX library doesn't enhance the User Experience then why use it? Regardless, I'm still digging deeper.

Wednesday, April 16, 2008 3:48:50 PM (GMT Standard Time, UTC+00:00)
I wish I could disagree with you, but your observations are right on the mark, and one of the chief reasons why I'm investing in learning Silverlight 2. There are plenty of good javascript frameworks for beautifying the UI (ExtJs, jQuery, et al.) and the entire control toolkit paradigm, even aside from raw ASP.NET AJAX is lost as soon as we want to embrace MVC (which we do). ASP.NET AJAX does make it easy to consume web services by emitting the proxies for you, but we still have to optimize those resources ourselves. The framework payload is huge. Combine that with the UpdatePanel, which pretends to ease the transition but actually performs a sleight-of-hand on full postbacks; the developer thinks they're programming in AJAX, but they're taking massive performance hits and ignoring the client-centric model completely. One of my ASP.NET AJAX projects is in its tenth month and I don't think my technology choices have little to do with the slow delivery.
Wednesday, April 16, 2008 7:47:54 PM (GMT Standard Time, UTC+00:00)
Yep, bloated is the keyword. I like to hand-code my AJAX calls, thank you. I think it's alot of hype too. AJAX has it's purpose, but people use it too much when it really does more harm than good.
Monday, April 21, 2008 8:38:04 PM (GMT Standard Time, UTC+00:00)
Thanks for the feedback, it's good to know I'm not alone. :)
Name
E-mail
Home page

Comment (Some html is allowed: a@href@title, b, blockquote@cite, i, img@src, strike, u) where the @ means "attribute." For example, you can use <a href="" title=""> or <blockquote cite="Scott">.  

Enter the code shown (prevents robots):

Live Comment Preview
Page rendered at Tuesday, January 06, 2009 3:47:33 AM (GMT Standard Time, UTC+00:00)