Take a trip with me back in time about three years ago. I remember building web controls that were dynamically inserted into the HTML of a page via AJAX and then rendered in place. We used the Prototype JavaScript library and the XMLHTTP Request object. Microsoft ATLAS has just been released.
After about three years of non web development work in Java, Compact Framework, some iOS etc ... and I find myself in a whole new world. Microsoft AJAX, the AJAX Control Toolkit, and jQuery. I find myself with a new project that has utilized some aspects of ASP.NET AJAX but mostly just the update panel and some client-side UI updates that jQuery now seems to make trivial.
So here is the question .. Is there still value in studying and becoming familiar with ASP.NET AJAX? Is it still used going forward? What about the AJAX Control Toolkit? Has this been abandoned my Microsoft in favor of a jQuery based infrastructure? Is jQuery coupled with JSON and web services the way to retrieve data?
It's still used in the WebForms world, however Microsoft has abandoned it in the MVC framework. So unless you're a diehard WebForms guy it doesn't make much sense. Especially considering you can use jQuery in WebForms projects as well.
This article gives a pretty good summary of the jQuery/Microsoft AJAX situation. Basically, jQuery is the way forward!
I think, from a career perspective, you'd be better off becoming familiar with jQuery (or a similar client-side JavaScript framework) and having that code interact with web services, WCF services (preferred, IMHO) or, if you're using ASP.NET MVC, JsonResults.
If you go to the Microsoft AJAX site (http://asp.net/ajax), they really don't mention their AJAX framework anymore, and the AJAX Control Toolkit is really there for people who don't want to work with JavaScript.
I started off, like you, using the AJAX Framework and the AJAX Control Toolkit and have made the transition to jQuery, JSON and other, more streamlined, ways of creating web applications. I'd recommend you'd follow the jQuery/JSON/services path instead of Microsoft AJAX.
Just my 2 cents.
Related
I've recently stumbled across a few blogs that say the ASP.NET Ajax Library is dead, in particular:
http://encosia.com/2010/10/04/understanding-jquerys-impact-on-microsoft-and-asp-net/
http://weblogs.asp.net/toddanglin/archive/2010/04/19/microsoft-ajax-client-library-is-dead-long-live-jquery.aspx
Is this generally true, technically and practically?
I've been to Microsoft talks on jQuery, and basically it sounded to me like they expected everyone to use jQuery for client-side-only DOM manipulation and ASP.NET Ajax was still used for it's Ajax components (like UpdatePanel) and as a basis for AJAX into .NET services made with WCF or just back to ASHX or other server code.
From being a component developer that targets ASP.NET, I can tell you that it's very much used by our customers, and we need to support it.
Yes, it is. Even for SharePoint developers (which uses ASP.net AJAX heavily) it's out of favor.
However, the SERVER SIDE ASP.net AJAX (UpdatePanel etc.) are alive and kicking. They have some shortcomings (UpdatePanel can send tons of viewstate back and forth).
But the Client Side Framework and ASP.net AJAX Library is dead.
Scalable comet ajax is more popular now. Try the samples of PokeIn library.
A technology can't die if it's customer base is so big!
I am dipping my feet into an app that uses both ASP.NET Ajax (ControlToolkit, etc.) as well as Jquery.
Are there any pros/cons to using the ASP.NET Ajax mechanics for calling JSON-serialized .NET web service methods ... vs. using JQuery .ajax()? (Or is it "6 and 1/2 dozen"?)
Thanks!
ASP.NET Ajax is deprecated and, I believe, no longer supported. It is pretty bulky too, as it tries to generate JavaScript objects instead of just using JSON. $.ajax is strongly recommended instead.
Here is a blog post that discusses the situation. It turns out ASP.NET Ajax is being moved into the Ajax Control Toolkit, which itself is shifting to a server-control focus. So if you're using ASP.NET WebForms and all the <asp:Whatever /> controls, Ajax Control Toolkit is OK... otherwise, e.g. if you're using ASP.NET MVC, definitely stick with jQuery.
just wanted to clarify the options for client presentation :
1) winforms - for windows client - older technology
2) wpf - for windows client - newer technology, uses xaml
3) jquery - for web client - uses javascript
4) asp.net ajax - for web client - older technology
5) silverlight - for web client - newer technology, uses xaml
for the web client, what are the pros and cons of option 3, 4, 5. is it better to learn jquery or asp.net ajax ? is silverlight mature enough to be used ?
In terms of desktop applications, you cannot go past WPF, the problem is there doesn't seem to be a huge knowledge or push for commercial projects using WPF.
I have been using it to write my companies in house applications and it is miles ahead of winforms, it brings all the UI templating and reuse that asp.net can have to desktop apps, plus a whole lot more.
Spend some time to play with it, especially look at the binding side the using Linq and a project like CLinq or BindableLinq to propagate changes to the base lists to the UI without handling any events.
jQuery and ASP.NET Ajax complement each other so I guess it's not an either or for them, at least not according to Microsoft.
The problem with Silverlight is not maturity but rather the low rate of installations. In an intranet scenario this might not be a problem. Also Silverlight suffers from the same problems as Flash. It's harder to get linkability, searchability and such.
I'd like to add MVC, it's part of asp.net depending on who you ask but it's so different that it's worth being on it's own.
I recently rebuild an old asp.net webapplication in asp.net mvc for a customer and he was very impressed with how much more intuitive and fast the application had become. I did not do any functional changes. Just the presentation part was changed. I'd say it's worth mentioning here.
These 2 blog entries from ASP.Net answers my question
http://weblogs.asp.net/paullitwin/archive/2009/03/30/the-four-pillars-of-asp-net.aspx
http://weblogs.asp.net/shijuvarghese/archive/2008/07/09/asp-net-mvc-vs-asp-net-web-form.aspx
My company has developed (and still continues to develope) a large ASP.NET business application. Our platform is ASP.NET 2.0 using some ASP.NET Ajax. We're extensively using third-party components, like webgrids, comboboxes, treeviews, calendar and scheduling controls etc.
Now, I don't know a lot of ASP.NET MVC and I'd like to know if there is a way to use these third-party-controls in the ASP.NET MVC model. Or do vendors have to rewrite their products in order to make them suitable for ASP.NET MVC?
If they use the ASP.NET Control Model (That will be about 99,9% of controls written by ASP.NET Control vendors), they have to rewrite their controls. How much work there is in that, is very different depending of there arhitecture of their controls - the more ajax they already use, the more posible it is that they easily can change it to MVC.
ASP.NET AJAX Control toolkit for exsample can work with MVC. You can see how to do this in a video on WWW.ASP.NET: http://www.asp.net/learn/mvc-videos/video-373.aspx
Much of the controls will need rewriting, as most of them need the postback model in class ic webforms. And there is no postback in asp.net mvc.
so: postback required for the component? -> won't work in asp.net mvc
For the record. I received the Telerik email newsletter with some interesting news:
"One of our most exciting product novelties is that RadControls for ASP.NET AJAX are able to work in the new Microsoft ASP.NET MVC framework." [...]
Link: Telerik RadControls in Microsoft ASP.NET MVC
The ISV market definitely has smoe catching up to do with MVC, but that makes sense - it isn't RTM yet (although the last preview at least had an explicit "go live" licence). Regular Webforms controls will pretty-much need re-writing.
I don't imagine it will take long for the major players to catch up, but if you are using something from a smaller company it could be hard getting it to prioritise MVC. One (really hacky) option might be using an IFRAME or AJAX to treat a portion of the page as a separate aspx page... really, really nasty.
You gotta question how interested the 3rd party market is in creating mvc controls when it has such a low market share. They seem to want to just focus on webforms and silverlight/wpf controls.
I am reviewing syncfusion tools for mvc (just downloaded it). It's worth a look-see. Seems to be actually designed to work for MVC.
Your backend could be PHP or Python but you want to use the controls from the ASP.NET toolkit is there a successful way to do this?
I don't think that it is possible.
The ASP.NET AJAX Toolkit is based on ASP.NET technique (what a surprise) and needs ASP.NET.
It contains server-side controls, which are translated to HTML and Javascript by the ASP.NET engine. It is not working without the engine.
However you can check the code itself to see how it is working, what it generates on the browser side and get ideas and Javascript codes to build into your application or framework.
Edit: I've just found an interesting project, which is in alpha stage, check this out.
Why do you want to use the ASP.NET AJAX Toolkit with PHP / Python?
Have you considered other non ASP.NET specific AJAX libraries like jQuery, Dojo, MooTools, YUI?
ASP.NET AJAX and the ASP.NET AJAX Toolkit is ASP.NET centric, you'll gain more flexibility using other AJAX libraries with PHP / Python.
are you talking about the ASP.NET AJAX Control Toolkit?
Have a look at this blogpost on Stephen Walther's blog:
ASP.NET MVC Tip #36 – Create a Popup Calendar Helper
In this post he shows how to use the 'script only' version of the AJAX Control Toolkit. This version of the AJAX Control Toolkit does not contain server-side controls or control extenders. It contains only the client-side files – JavaScript, CSS, images – required to use the client-side AJAX behaviors.
Stephen Walther is a Senior Program Manager at Microsoft who is responsible for ASP.NET MVC content and community (his job title is ASP.NET MVC Ninja).
I have found that much of the functionality in AJAX Control Toolkit can be accomplished via the javascript frameworks such as jQuery.