Ajax vs. Silverlight and .NET

My thoughts on questions along the lines of Ajax vs. Silverlight, and independent of the debate, how .NET spans the gamut of application development platforms...

I get the Silverlight vs. Ajax question all the time, whether it is at a conference, over email, or over on discussion forums. In the interest of seeding a broader discussion, and hearing what other people think, I thought this would be an interesting blog post, along with the side benefit of having a ready-made answer the next time the topic comes up.

There have been a number of blog posts pitching Ajax vs. RIA (whether its Flash or Silverlight) such as this one here. Personally, I think Ajax and Silverlight complement each other, and the "vs." is a bit misplaced. Furthermore, the way I see it, there is a continuum, with a number of sweet spots representing specific classes of applications. This perspective is perhaps directly reflected in the makeup of the UIFX team that I work on at Microsoft - the team is spread across ASP.NET, Ajax, Silverlight and RIA frameworks all at once actively working on cool stuff in each of these areas (i.e. lots to look forward to).


User-facing Application Spectrum

Reach and Rich
The diagram represents a spectrum of application development approaches and technologies/platforms with increasing reach on one end, and increasing capabilities on the other. Applications have distinct scenarios and correspondingly gravitate toward a sweet spot. Some apps lie squarely on the left, with the need to first and foremost prioritize universal reach. At the same time, some apps have experience or functionality as the high order bit, where it is necessary to leverage a more capable platform, even if it means somewhat reduced reach. Still, the best apps will probably be those that leverage multiple front-end options to follow the user, with a common back-end (sort of a software and a service model).

One thing is sure - users are expecting more, and apps are trying to differentiate by meeting them. For example, the Ajax hype has given way to broad mainstream and pragmatic use of the technology (hence I call the older style of Web apps as "Classic" in the diagram).

RIA Islands
At the same time, the reality is a number of applications are no longer "pure" Ajax, i.e. just HTML and Script-based. Ajax applications are increasingly relying on plugins such as Silverlight, Google Gears, and Flash to incrementally enrich the experience they can offer (ideally, in a manner such that they gracefully degrade). These plugins let Ajax applications do interesting things like use local storage, access user's files, integrate rich media and vector graphics, background processing etc. Just like ASP.NET server controls make it quite easy to incorporate Ajax functionality, they are also nicely positioned to simplify the "Islands of Silverlight" scenario. Imagine a data-bound server control that renders a Silverlight chart, and degrades to a static image dynamically rendered on the server without requiring the app developer to learn several new technologies. I've spoken on this at recent conferences, and will be blogging more on this end. Wilco blogged about Silverlight Interop to cover the use of Silverlight to implement HTML code-behind and creating a better file uploader for Ajax apps.

Trends
The second thing that is also interesting about the diagram are the trends in effect. The reach platform, starting to be referred to as the Open Web by some, is bound to get richer in terms of the execution engine, the presentation stack, and its framework capabilities. HTML 5 promises to improve some core pieces of the browser-based platform, and all the browsers (yes, that includes IE) are already stepping up to improving the state of the art in their next versions. The interesting question is when we will see ubiquity around the next batch of incremental improvements like the ubiquity of XMLHTTP that fueled the Ajax wave a couple or so years ago. RIA technologies are becoming more ubiquitous, and starting to become a viable or required choice for development in the next generation of Web apps. Over time as what is considered "rich" today gets commoditized by the reach platform, the platforms on the right need to constantly redefine themselves by finding new ways and value offerings in order to differentiate, which always keeps them interesting and in the forefront. It's a constant tug-of-war ... and it doesn't seem like either Ajax or the RIA approach is going to all out win any time soon.

A .NET Theme
So if you agree, the world isn't Ajax vs. RIA, but is rather Ajax and RIA (and Desktop), and there is room for them to co-exist, the final thing I'll point out is how the Microsoft platform plays out in this space. Clearly, the consistent theme across the board is .NET and managed code, which allows developer skills, as well as in many cases, common code that can be shared and leveraged as apps transition or grow. Ray Ozzie spoke to this when referring to connected development at MIX 08. We have .NET on the server providing that common backend, .NET on Web/Ajax front with ASP.NET and even . NET-flavored scripting with technologies like Script#, and of course, .NET on the client with WPF. Silverlight 2 brings .NET to the RIA space. In fact, the simple introduction of managed code into the browser is perhaps one of the most eagerly anticipated feature.

The fun, and simultaneously challenging thing, is working on the multiple sweet spots along the current application platform spectrum, balancing the feature set, and making sure we have messaging for how they evolve, complement, and differentiate to address specific scenarios at the same time.


[ Tags: | | | ]
Posted on Tuesday, 4/8/2008 @ 9:03 AM | #Silverlight


Comments

49 comments have been posted.

Josh Coswell

Posted on 4/8/2008 @ 12:47 PM
Great insight blog.

Josh Coswell

Malcolm Sheppard

Posted on 4/8/2008 @ 1:40 PM
Great post. When I look at your continuum graphic, I also see overlaid on top a skill sets continuum where there are a ton of developers at each end and not nearly as many towards the center. The trick is how we migrate individuals towards the sweet spot you highlight.

Mike

Posted on 4/8/2008 @ 2:40 PM
Please be realistic, Microsoft is only interested in .NET, not in Ajax. Want proof? Look at the ASP.NET Ajax 3.5 release, it's pathetic compared to what Yahoo, Ext and many others are developing. Almost 1.5 years after the release and we're being told that drag and drop is a so called 'futures' thing? That's to be expected when Microsoft pulls developers off the ASP.NET project to work on Silverlight. Same goes for the Ajax Control Toolkit, it's on Codeplex (which is more like where software project go to get punished) and all it has to show is bugfixes for the last year.

I've given up on ASP.NET Ajax. And to hell with Silverlight, it's being forced down my throat every step it take, be it MSDN, or trying to download something from Microsoft. That's a nice way to build an install base no doubt. But after IE, VBA and WMP it's just a matter of time before they cancel all Silverlight for Mac OS X and where does that leave us? In the dust.

At least be honest and don't pretend like your manager would approve of a kick ass cross platform HTML + CSS + JavaScript framework, because that's just a threat to his yearly stock options (and yours). Your last paragraph is nothing but weasel words that perfectly illustrate this.

Ken Jones

Posted on 4/8/2008 @ 5:54 PM
Nice post. I can definitely put this to good use.

Mike,
Sorry you feel this way. Check out Telerik and DevExpress. Their demos offer a great example of what you can do with ASP.NET AJAX. Of coarse they have gone the extra mile or two.

Nikhil Kothari

Posted on 4/8/2008 @ 7:23 PM
Malcolm - interesting observation. You're right, that the middle of the spectrum is somewhat more bleeding edge than the ends, which have been around for longer. This is exactly where we're spending quite a bit of energy on the platform, application frameworks, and tools ends. A lot of the work we're doing on the RIA front is building the necessary pieces to make it approachable by mainstream developer audiences.

Mike - the real question not whether a kick ass cross platform HTML + CSS + JavaScript framework would be approved or not, because as the post hopefully conveys the question is not about Ajax vs. Silverlight. Each of them have interesting scenarios, and are optimized for certain kinds of app experiences or development experiences. There could be more stuff on the Ajax front, and for now, I'll say we do indeed have a roadmap thats got some super interesting stuff to look forward to, and that we will be publishing that hopefully soon. In fact, I demo'd just one small bit of it at MIX08 as part of hinting at the future in my Real World Ajax talk - specifically templating - that I will try to blog about as well, and that got an applause and resonated with the audience. And as Ken adds, we are definitely in the business of creating a platform that empowers the ecosystem to run further with it.

[update: I posted the post on templating. It is at http://www.nikhilk.net/Ajax-Templates.aspx.]

Steve

Posted on 4/8/2008 @ 8:36 PM
I just don't feel the tooling for Silverlight is anywhere near it needs to be to be useful. And don't bring in Blend. I can't see being productive writing xaml all day with no designer support & a serious lack of controls.

I think the foundation is there, but it will need some work to be usable for a developer to work with.

ie. I don't see a combobox for Silverlight, nor any masked input controls, etc... and a ton of RIA apps need good 'form' support. Validation controls, etc...

derk

Posted on 4/8/2008 @ 8:40 PM
Well Mike, the current situation is a lot like 15 years ago when Windows 3.0 came out. Ajax apps now are like DOS apps back then, and SilverLight 2 apps are like Windows 3 apps. You can pick whatever you like, but be VERY realistic please. It's plain to see which one is better when ego is not in the way of good judgment.

Miguel de Icaza

Posted on 4/8/2008 @ 8:44 PM
Nikhil,

In the last stage I believed you put Adobe AIR and WPF on the same bucket with all other desktop development platforms, and am not sure that this is correct.

There is a significant difference between WPF and AIR, the former is limited to Windows, while AIR runs additionally on the Mac and Linux and you get the same experience everywhere.

I for one, would like to see the Silverlight 2.0 graphics running on the standard .NET VM and made available on Mac and Linux. We have been using Silverlight ourselves (the Mono project) on standalone mode on the desktop, but its limited to Linux.

It would be great to bring that same experience to Windows and Mac developers and users.

Nikhil Kothari

Posted on 4/8/2008 @ 9:25 PM
Hi Miguel... great to see you comment on one of my posts.

I actually did think about where to put AIR on that spectrum, and at the end decided it goes further to the right. I know Adobe's messaging and intent is probably to position it in the RIA space. However, I personally don't see that quite the same way ... and yes thats an opinion, so let me explain. I didn't put something in the desktop apps space based on cross-platform nature as the deciding factor, but rather on the types of apps and especially around their security and footprint characteristics. An AIR app is very much an installed app, and executes as a full trust app. In their current incarnation, AIR apps aren't sandboxed, and are very much installed (i.e. aren't just executed out of some app cache), even though they could have been technically. That isn't necessarily a bad thing, but it just means the apps are more desktop-like.

The desktop mode is certainly technically possible... we've got some prototypes here. Some of the big questions here are what are the right set of APIs to expose esp. from a sandboxing perspective, but still being more capable than a web app by virtue of executing on the desktop. Partly the desire to run Silverlight 2 graphics on the standard .NET framework is addressed through compat with WPF (for Windows).

CC

Posted on 4/9/2008 @ 7:56 AM
Don't we have to factor in the impact of the new, very light weight machines (MIT, Asus, etc.) on the computing landscape? My guess is that it will add a new dimension to the spectrum above as the total audience expands and parts of the current audience move back to far less powerful machines.. The supportable RIA functionality on these machines will be less calling for even lighter weight pluggins, etc.

Nikhil Kothari

Posted on 4/9/2008 @ 8:24 AM
Certainly new app scenarios are going to pop up all the time, hence the continuum extends indefinitely on both ends. I'd probably put some plugins scenarios, including things like Sidebar/SideShow/Dashboard gadgets in the desktop category ... these are all existing light-weight plugins.

That said, I was mostly focusing on user-facing app scenarios. There are tons of other app scenarios (eg. embedded apps in devices etc.) that I wasn't too concerned about for this post.

Eric

Posted on 4/9/2008 @ 8:25 AM
I personally would like to see Silverlight apps replace HTML/CSS/Javascript, at least in the RIA space. There's nothing like being able to program in a single, compilable, testable, easily debugged language such as C#. It's kind of funny though... because we had all that 10 years ago with the original Sun JDK. Is history doomed to repeat itself? Or will Silverlight prosper because Microsoft controls the desktop and will be able to dictate what virtual machines are auto-updated (deployed) to each machine?

Ash

Posted on 4/9/2008 @ 6:27 PM
I second Eric.. yes history (Sun Applet) repeating again but sun jdk syntax and its slow execution sucks..
i am closley watching on silverlight to be our next web development to replace asp.net / ajax type web development simply because i spend more time for css styling and debuging than functional side.

In silverlight i cannot access FileStream directly. I understand silverlight blocked it due to web security.. how about in case of Intranet scenario, i think local file access should allow for trusted connections.

thanks for the post.
ash.

superjason

Posted on 4/10/2008 @ 6:12 AM
Good post, but in place of Flash, I would probably substitute Flex, or at least mention it. It's more along the lines of what someone would use to compete against Silverlight.

Nikhil Kothari

Posted on 4/10/2008 @ 12:22 PM
Superjason - I guess I tended to equate Flash/Flex, with Flex being a development methodology that targets the Flash runtime... but you're right, it probably makes more sense than "Flash" in that diagram's context.

Ash - technically trying to distinguish intranet from internet is frought with security issues, false detection could mean a ton of problems. To further worsen the problem, different platforms have differing degrees of OS-level APIs to distinguish domains into zones. Finally, if you have an intranet scenario, it might be equally interesting to look at things like ClickOnce...

Rob

Posted on 4/12/2008 @ 1:51 PM
Nit-picking but I don't consider asp.net a "classic" web app, especially alongside HTML alone. If you do that, then you have to put all scripting in there, too. Without scripting, asp.net just generates html so what's the diff?

Michael

Posted on 4/12/2008 @ 4:11 PM
What does RIA mean.

It would be polite to give meanings to these trersm when first used.

Some of us are luddites.

Nikhil Kothari

Posted on 4/12/2008 @ 6:30 PM
RIA = Rich Internet Applications. The expanded acronym itself doesn't tell much, and in fact there is a debate about whether its Rich Internet Applications or Rich Interactive Applications. The term "RIA" is itself more important than either expansion - it embodies the focus on using client-platforms and capabilities with client-side behavior to create more appealing, powerful and functional user interfaces, richer data visualization, and more intuitive user interface flow etc.

Rob - The underlying platform for classic web apps is HTML. And ASP.NET allows you to target that platform. ASP.NET also lets you create Ajax apps that target the HTML + script platform.

mike

Posted on 4/13/2008 @ 5:02 AM
"There could be more stuff on the Ajax front, and for now, I'll say we do indeed have a roadmap thats got some super interesting stuff to look forward to, and that we will be publishing that hopefully soon."

Let me help you out here:

There SHOULD be more stuff... ...publishing that CERTAINLY soon."

There, fixed that for you. Now if you could just make that a reality that would be great, otherwise, spare me the ifs, coulds, and how much you hope to release anything. Actions speak louder than words, and so far I've been staring at this thing called Futures for about 8 months now.

Meanwhile, reading a simple blog (yours) I noticed that it also communicates with silverlight.dlservice.microsoft.com so please stop the BS that it's not about Silverlight vs. Ajax because you know it is (like I said, it's forced upon us while we are waiting for any significant release of ASP.NET Ajax).

Nikhil Kothari

Posted on 4/13/2008 @ 10:39 AM
The reason my blog issues a request to the Silverlight site, is because I have a script that is gathering analytics data around what % of my readers have Silverlight installed. See here: http://www.nikhilk.net/Silverlight-Analytics.aspx. It doesn't however put up a modal prompt or something visible that is forcing a download.

Frank

Posted on 4/18/2008 @ 3:02 AM
The thing is, if Silverlight plugins become ubiquitous, then there is no reason for a .NET development manager to continue with HTML/CSS/JS at all. It will be much easier for the development manager to use C# people for both front and back ends, while moving markup people to tweaking XAML. SEO and such things that made Flash difficult will be much less of a problem for Silverlight apps, if at all. There is a discussion about this here: en.blog.ammado.com/technology/silverlight-is-a-big-deal/

alok

Posted on 4/22/2008 @ 8:39 AM
I am completely with Mike on this. Microsoft, pleI am completely with Mike on this. Microsoft, please stop shoveling crap down our neck.ase stop shoveling crap down our neck.

Carey

Posted on 4/22/2008 @ 7:12 PM
The problem with all this stuff is just that...there is ALL of this stuff...none of it does what you need it to do for a complete business case so instead of just making one of these technologies (or rather programming language mashups?) with all the bells and whistles we get 10!!!

Nobusiness manager is going to invest heavily in any of it.

How the heck are we supposed to keep up? No wonder there is not a lot of skillset in the middle of your spectrum...Too many technologies, scripting laguages, programming paradigms...No one can keep up, no one can possibly develop enough expertise in any of it to make it of any real value other than stupid little animations and one off closed stock quote ticker samples....

Good luck!!

Kelvin

Posted on 4/23/2008 @ 11:54 AM
It's amazing to me that most of the complaints here are focusing on a universal MARKETING tool, NOT a Microsoft tool. I don't see Mike or alok pointing out that Apple, Adobe, and Sun are all guilty of forcing crap down our throauts (and much more so than Microsoft). In fact, if I'm not mistaken Apple TELLS you "how you're going to do it", and "if you don't like it then don't buy it".

If you don't like the technology, don't use it. Pointing fingers because you're having a bad day makes no sense; if you're going to hate, make it universal. As you stated (Mike), Yahoo and others have great frameworks that you're more than welcome to use if you feel that AJAX.net is lagging so far behind.

Nikhil, excellent and informative post.

John C

Posted on 4/26/2008 @ 6:03 PM
I like Carey's comment..
"How the heck are we supposed to keep up? No wonder there is not a lot of skillset in the middle of your spectrum...Too many technologies, scripting laguages, programming paradigms...No one can keep up, no one can possibly develop enough expertise in any of it to make it of any real value other than stupid little animations and one off closed stock quote ticker samples"

You are very right, I spend way more time trying to learn this NEW stuff than I do developing anything usefull. What happened to the simplicity of the Visual Dbase days....where did those tool-guys go? Better find them and have them develop ONE simple to learn and use IDE.

John

Posted on 5/4/2008 @ 3:58 PM
I recently attended our city's annual .Net conference and the presenter on Silverlight 2.0 said, in these words (not quite verbatim) "the great thing about Silverlight is that you can program in C# or VB and won't have to ever worry about programming in that crap called Javascript". The guy is from one of the top .Net 3rd party companies doing Silverlight 2.0 programming.

Clint

Posted on 5/13/2008 @ 8:28 AM
Interesting take on "Ajax vs (or and) Silverlight" Nikhil. I believe the largest frustration around the RIA (however defined) movement is the fact that ASP.NET, and even JSP, largely remove the need for the end developer to focus on how content is generated to the end user. This has been implemented with great care and works well.

HTTP being stateless should not be a concern of a business software developer. RIA reintroduces the need for one to be intimately involved in how to present content to the user. This conflict is intrinsic to ASP.NET because the client is now partly responsible for maintaining state and content delivery (which had been completely maintained by the ASP.NET framework). "You guys" (the ASP.NET team) have made us lazy, by doing most of that work for us! That was supposed to be taken as a compliment.

I had hoped (apparently like others) that Silverlight would be an end to being concerned with state management, content presentation, and the endless perpetuation of changing client targets (ie browsers). There obviously would be some cross platform limitations; however we are already experiencing this today.

This shift toward client heavy interaction is akin to server side scripting placing us back in the day of classic ASP; in which php (cake), ruby (rails), etc are already providing a less painful experience for developing RIA. I really believe the ASP.NET/JSP framework teams have a substantial challenge when competing (purely AJAX speaking) against the others. There is more accountability (rightly so) for support/breaking changes when you have paying customers. This is sobering when you've been in those shoes. Too many critics with no-one providing solutions.

At the end of the day, my end user wants to complete the task at hand with automation help from me. I, in turn, want to deliver the best possible experience in a reasonable time frame. I do not want to have to master HTML/CSS/JavaScript/Cross-Browser/JavaScript Library skills and THEN have to make them work with ASP.NET. Whew! I have enough irons in the fire already!

What bothers me most is that a business software developers time should be spent solving the businesses needs; not tinkering with AJAX "decorative novelties".

Johm Smith

Posted on 5/21/2008 @ 5:01 PM
Interesting that everyone is willing to focus on an "plugin" that compensates for things the browser can't do. Kind of like a car that doesn't come with a stereo, why doesn't the car come with a stereo?

StormDetector

Posted on 7/19/2008 @ 11:08 PM
Where are "Web Standards" in this discussion and blog?

Where is CSS and XHTML and accessibility and 508 and all the things the www.W3C.org has been trying Microsoft and the rest of the Web dev world to start using in their browsers and products? Why is Internet Explorer STILL not XHTML compliant. Why is everyone pretending RIA is anything but a pipe dream and gimic on the web?

Anyone can proclaim JavaScript, AJAX and Silverlight as so-called viable solutions to some kind of "rich internet application", basing that on some acronymn-driven, propriatary web philosophy. But that junk doesnt have teeth. Why? The core foundation of the web is now XML and XHTML and CSS, not client-side technolgies, that in the past, always fail in the long term. Anyone or any site, like this one, that tries to argue virtues of Client-sdie scripts, XMLHTTPRequest and Ajax and yet another clunky Player in the browser (ie SilverLight) needs to have a severe wake-up call and go back and take a class on basic HTML and markup languages and relearn what the web is about. Just because your browser doesnt flash white or refresh because its AJAX-driven or some eye-candy is dazzling you in your plugin isnt an argument to use those technologies. They are NOT the web....they are a small piece of the web. In fact,l they are one of the failure of the web thats unfolding, which is to help people adopt standards instead or these flimsy client-side technologies. Those are purely technologies of convenience and format, not function or critical web application architecture like CSS and XHTML is. We need more blogs that talk about the importance of good clean, semantic markup design, and separation of content from layout, and less use of tables and table cells in layouts, and the purpose and repurposing of content using XHTML, XML, and XSLT in the future web thats coming. Those technologies are the bedrock foundation of the web. Yet we continue to have all these so-called web people chatting about proprietary, vendor-based junk, like Google API's and SIlverLight and Flash, which have NO purpose or added value other than icing on our web cake.

If more people would make ardent efforts to learn basic HTML, XHTML, and CSS and follow the recommendations of the W3C, we wouldnt have this crappy web filled and controlled by these crappy non-compliant parsers and browsers (ie IE). If Internet Exploer 8 does what its supposed to do, then we will be close to getting the full standards-based web we need client-side. Thats what people should be focused on. When you figure out how to design good CSS/XHTML sites, you will find in many cases you dont need XML HTTPRequests and AJAX calls, as the browsers naturally cache and redraw only parts of pages that have changed. Only then, can you layer in these "extra" technologies, that really dont provide any extra value to the core web architecture. They just enhance it. Its when people try and pretend those rich technologies and client-side scripting IS the solution, that we run into trouble. I mean, if current global stats say 11% of people have JavaScript disabled, and 60% of people dont have SilverLight, or the blind or disabled visit yoru site, or security software has shutdown Flash, or disabled scritping in yoru browser....what the is the value and "reach" of these RIA solutions????? The answer....nothing, but an ugly white page.

I encoruage everyone who wants to design powerful compliant sites to go visit the body that influences its real directions, the W3C.org. Start there, not with RIA, and you will go far. - stormdetector.com

Sebastian

Posted on 10/27/2008 @ 4:30 PM
StormDetector, I think you need some of this, www.colondrano.com

Ben

Posted on 12/2/2008 @ 5:25 AM
I think stormDetector has a validpoints but i dont agree with his conclusion...

HTML and all its extensions are so dated and poor they need to die. Its a royal mess. There are 2 fundamental issues
1) Non standard rendering and obsolete standards.
2) Difficulty in create interactive environments.

While both can be overcome the testing of different platforms , browsers and overall difficulty result in applications that are simple and rediculously expensive. The "latest" web apps from yahoo and google take masses on manpower yet 10 years ago the employees in banks were turning out more powerfull , easier to use and less buggy apps with VB or powerbuilder is this progress ? W3C is a joke look how long it has been trying to get Divs excepted instead of tables and a lot of people still preffer tables ! And that was mainly Netscapes fault.

Building everything in XHTML/CSS is not the issue we are talking baout applications here and hence you are really looking at masses amount of Javascript ( easy to maintain and debug ..NOT) or keeping things really simple which is not an option for any decision maker . Ultimately content gets richer look at the ubiquitios UNIX/DOS once windows and MacOS gained a few apps everybody set it as the new standard the same happens on the web as we speak.


Silverlight ( and WPF solve the rendering problem) and is a revolution compared to the HTML standard. And its not IE , Opera , Safari and Firefox render things quite different ( and why do they render things differently on different platforms thats one issue IE never had on mac/PC) .

However im still concerned about how it solves the postback /Ajax issue as we are moving towards more partially connected environments and maintaining javascript on the client seems a bit of nightmare yet posting everything back to the server suffers from poor usability/user experience.

Steve Gentile

Posted on 3/10/2009 @ 8:08 PM
This is a good picture to soak in.

I'm currently viewing my app more in a 'Silverlight island' but I can see it expanding out.

I forsee I'll be struggling in 'how much should I put in 'one silverlight app' vs. breaking it out into different pages containing more island of a specific context

vplusplus

Posted on 3/11/2009 @ 7:28 PM
I see a common pattern with RIA platforms (Flex, Silverlight and JavaFX)
1. Extensible markup (MXML, XAML and JavaFX which is serves same purpose as other two, but using json style, and may be compiled)
2. Strongly typed and compiled language (ActionScript, .Net runtime/languages, compiled java)
3. Execution framework (Flex/AIR, Silverlight/Silverlight offline, don't know whats up with java)

Honestly, not sure where Google Gears will end-up in long run.
Not sure if GG should be compared in the same league.

Question:
Do you see possiblities of open bodies like W3C stepping in for a inter-operable direction?
Unified and extensible mark-up (as against making HTML more rich) and pluggable language runtime (ActionScript/C#/Java)

After all MXML, XAML and JavaFX seem to serve the same purpose... an extensible markup that represents an object graph with binding extensions.
Will HTML ever evolve into supporting extensible tags?

Would have been great if the vendors choose to work together.
I suspect, that will be too much to ask for from Adobe, MSFT and java community...

chan kun juan

Posted on 3/18/2009 @ 9:23 AM
Thanks the author and every comments for the great insight. Lets analyse this in another perspective other than the

Reachability and Interactivity

from HTML to WPF to Smart Client, the objective is the same - Accessing data using HTTP
What's wrong with TCP/IP in a fat client?
Nothing is wrong, so if you want anything not dependant on your broswer, the solution is already there decades ago. It's

richness is infinite.

Therefore....
The reason we want to use HTTP to access data are because of the deployment and reachability decision.

If security / membership is not a concern, then great...

BUT if you are working on a line of business Web Application, all the RESTful, MVC, Client to Server using WCF/WS via

js/ajax/as will really make your life difficult. SL/FLEX/WCF/Javascript-dhtml-ajax-xml Framework seriously is only good for

typical content hosting web site (i wouldnt say web application) which can impress the users anyday. Don't get me wrong,

there's still security in them inherit the Host's transport layer security (WCF's message based security serves only better

for server-to-server than client-to-server). If your services/model are hosted together with view, the session created from

the view will protect the service, this doesn't solve the problem if the model and view are hosted seperately especially

possible in a soa environment. There's a workaround through where u wrap the external message-based service with message-based security thus Converting an External soap ws into an internal restful ws. But nothing does best like ASP.NET which do that automatically in the service side.

My conclusion is we should really appreciate ASP.NET and the fact that it will not be replaced simply by any RIA in the near

future, since there's still demand for Line of Business Web Application. It can be AJAX and cliently getting data from REST/

ADO.NET Dataservices and make use of the host's transport layer security when it's using a service. Or if there's an external services provider, just bind it in a server-ly manner. All hail ASP.NET AJAX.

Sandbag

Posted on 3/18/2009 @ 7:22 PM
^ Quoted above
"SL/FLEX/WCF/Javascript-dhtml-ajax-xml Framework seriously is only good for typical content hosting web site (i wouldnt say web application) which can impress the users anyday". I think you made a typo mistake. You meant "SL/FLEX/<b>WPF</b>/Javascript-dhtml-ajax-xml Framework

Neha

Posted on 3/19/2009 @ 3:06 AM
hii..nikhil,
i hav a doubt, wen to use pure ajax & wen to use toolkit...
wat are advantages of using pure ajax??..

sandbag

Posted on 3/20/2009 @ 12:54 AM
Neha,
Why do you call these broswer plugins as toolkit?
There are things html and javascript cannot replicate. Like flash and video.

I don't know the definition of "pure" AJAX, i assume you mean built with purely javascript and html, without the aid of framework for server-side html rendering. The advantage is it's extremly cross-broswers and cross-platforms.

Abhishek Joshi

Posted on 4/16/2009 @ 10:25 PM
Great to find simple and informative source ...

Deep Ghosh

Posted on 5/27/2009 @ 6:53 PM
I sincerely hope AJAX dies it natural death to Sliverlight. Since my first experience with AJAX and Javascripts I did not like it. Why you need to program in two languages (Be it Java/Flex or Java/Javascript or C#/JavaScript). With Sliverlight we have full technology stack in one language C#. C# superceds Java as a language but this is not part of this conversation. (like why I cant to int i;i.toString() in Java, imagine explaining why int and Integer are different?) etc. So with
WCF/Silverlight/Vista, we got the best breed.

1. Best operating System. (Vista/7)
2. Best Language (C#)
3. Best Architecture (Silverlight/WCF/ADO)

Why settle for less and keep our life miserable (Javascript Debugger anyone?)

Why Microsoft would improve AJAX? Plain and simple, AJAX is obsolete and should go.

Deep Ghosh

Posted on 5/27/2009 @ 6:55 PM
Two correction..

1. You can use LINQ for ADO too.
2. With all these, if you want high reliability, and SQL Server does not work for you, Just use Oracle and a large unix machine at the back end where only some bearded people see it.

Flemming

Posted on 6/9/2009 @ 1:08 PM
You can do a lot of things with Silverlight even simulate entire windows system. Check this site www.windows4all.com. In future I think won’t be differences between Silverlight and WPF. You will customize Silverlight to run as WPF app.

Nick Kellett

Posted on 11/11/2009 @ 1:10 PM
Spot on, StormDetector. I'm a .NET web guy, use AJAX, and I'm not at all opposed to Flash and Silverlight (in their place). But to focus on them as "development platforms" means turning our backs on the core internet technologies - a proven, powerful, scalable set of technologies that has revolutionized human society. It means tossing out web standards, and wandering into a walled technological garden that is entirely proprietary. Yes HTML, CSS, and even JavaScript are "old", yes they are a pain in the @ss to program, but done right they allow deep linking, searchability, cross platform reach, they are an open standard, have no obvious shelf-life, and are in general very well understood. Other old technologies of note: the internal combustion engine and the telephone, and those things WORK EVERYWHERE.

But all that being said - great blog post Nikhil! Got a lot of discussion going :)

Chris

Posted on 11/15/2009 @ 8:49 AM
If you look at the history of the web it all started on the left hand side of the above graphic. Gradually things are moving closer to the right hand side. It seems to me that this trend has been continuing and every 5 or so years another step toward the right happens via some technology. I don't see any reason this trend won't continue and in the end it makes better business sense to develop your technologies as close to the right as possible (given the reach issue). This is because the ROI for apps developed closer to the right are higher. Why? Because it is easier to maintain and in the end affects the bottom line. The desire to earn a profit will keep pushing us to the right and new technologies such as WPF and Silverlight are just stepping stones in that direction.

Kumar

Posted on 12/21/2009 @ 7:26 AM
This is one of the finest post in Comparisons' :)

Thanks,
Kumar D

SingleCellMonkey

Posted on 1/13/2010 @ 12:12 PM
Happy New Year, all... good post, Chris 15-Nov. If your life depended on it, would you rather use Outlook for email or hotmail/gmail? For me it's the former because I am more effective on Outlook: it enables me to get the work done better, while I find hotmail fiddly and tiresome.

It's impossible to argue that a thin client is superior to a rich one. People use the web rather than a desktop because they have no choice. If I had FB/Youtube/Wikipedia/Expedia/GoogleMaps all on a Desktop plugin host then I'd say "to hell with the internet".

Should we all stick to standards or forge ahead regardless, beating down individual tracks in the great wilderness that is the internet? Um... the way it has worked in the past of course. Without the innovators there can be no standards. So that is a pointless argument. Do we need standards? Stupid question!

Internet technology is in a state of flux at the moment. And no opinion is wrong (although some are more wrong than others :-).

diseño web

Posted on 2/2/2010 @ 8:55 PM
The truth I do not create is possible to be compared Ajax versus. Silverlight and .NET

SpiritOfTheWeb

Posted on 2/23/2010 @ 5:23 PM
@SingleCellMonkey (1/13): I'd rather use web clients and forget about making sure the software I need is installed perfectly on every machine I touch. Even web-based IDE's are being worked on [1].

Still the hate for javascript, which is sad, given the advent of functional programming these days. Utter and complete FUD for the native tools of the web. Since most mature JS frameworks have the controls covered today, it is indeed a viable choice for client development. Take a look of the beta offerings of Office 2010 Online...completely written in HTML/CSS/JS, using Silverlight only to render advanced fonts / graphics - *if* it's available. Very telling, if you ask me (which, nobody has BTW).

Outside of the native offerings the plugins provide (such as video, etc), this entire conversation seems to boil down to folks not wanting to learn/use Javascript. Unfortunate...I've been using it for 10 years+, and can honestly it's one of the more useful tools in my toolbox, right beside C#, SQL, XAML, etc.

[1]: https://bespin.mozillalabs.com/

Anwar

Posted on 4/15/2010 @ 10:55 AM
Nice post
Deep Ghosh "With Sliverlight we have full technology stack in one language C#. C# superceds Java as a language"
Keep posting these kinde of things.

Dave Mackey

Posted on 5/18/2010 @ 3:56 PM
Nikhil - I was wondering if you would consider updating this article to reflect any changes that may have occurred in your thinking on this matter in the past two years, especially with the recent advent of Silverlight 4 and the RIA Toolkit. Has technology developed to a place where the audience that can utilize Silverlight is wide enough that AJAX is no longer a consideration?
Post your comment and continue the discussion.