Yesterday, I read couple of chapters on ASP.NET Ajax and jQuery from my ASP.NET 4 book and I found those frameworks pretty interesting and decide to learn more about them.

Today, I borrowed some books from library on Ajax and JavaScript. It seems ASP.NET Ajax is different from Ajax and jQuery seems like the "new" JavaScript.

Does it mean that I can skip JavaScript and learn jQuery directly?

On the other hand, the non-ASP.NET Ajax book I borrowed seems to apply to the client side web programming only and looks quite different from what I learned from ASP.NET Ajax. If I'm an ASP.NET developer, I guess I should stick with ASP.NET Ajax instead of client side Ajax right? What about PHP? Is there a "PHP Ajax" similar to ASP.NET Ajax?

It's not that I'm lazy to learn other tools, but I just want to focus on the right ones.

This question appears to be off-topic. The users who voted to close gave this specific reason:

"Questions seeking career or education advice are off topic on Programmers. They are only meaningful to the asker and do not generate lasting value for the broader programming community. Furthermore, in most cases, any answer is going to be a subjective opinion that may not take into account all the nuances of a (your) particular circumstance." – gnat, MichaelT, Simon

7 Answers
7

This is a complicated subject but here's my attempt to distill what all of these things are and how they relate.

AJAX: This is a concept that involves pulling data asynchronously into a web application without reloading the entire page. It allows for dynamic UIs such as Google Mail that act like desktop applications but run in a browser.

ASP.NET AJAX: This is a library authored by Microsoft that attempts to make the AJAX concept accessible to developers that have an ASP.NET background. It provides methods that are similar to .NET Framework methods such as String.Format and others. It has some overlap with JQuery but they can both be used in harmony together as they have different strengths and weaknesses. It is important to remember that this is a client-side library and doesn't actually have a dependency on ASP.NET. You could use ASP.NET AJAX with any server-side technology.

jQuery: This is a JavaScript library that provides a framework to make AJAX applications easy to write. It provides a powerful selection model using a CSS-like syntax for interacting with the browser DOM. It also abstracts away many of the differences between the different browsers and versions. So you are almost always better off coding against jQuery as opposed to browser-specific DOM or AJAX APIs. There is a rich ecology of jQuery plugins available which can add all sorts of powerful behavior to your web applications, without a lot of work on your part.

JavaScript: This is an interpreted language implemented by all major browsers that allows for dynamic, client-side behavior on web sites. The language itself is pretty solid, but the different APIs that the different browsers provide make it complicated to write "raw" JavaScript effectively. That is why there are all these libraries on top of it.

Now, as to the question of what you should learn as an ASP.NET developer. I would recommend getting familiar with the functionality of both ASP.NET AJAX and jQuery. Microsoft endorses both, and both are included with VS 2010. They have different strengths and weaknesses and if you understand what those are you will be more effective with using them.

You don't have to use AJAX to do ASP.NET websites, but your websites will be more powerful and more user-friendly if you do. And if you develop a sense for when AJAX is effective and when it isn't, you will be a better web developer.

Oh, and stay away from UpdatePanels. That was MS's first answer to AJAX, but they are generally bad and go against a lot of the concepts that make AJAX good. They give you a short term benefit but in the long term they are a maintainability nightmare in my experience.

The only thing that I would add is that ASP.NET AJAX also hides some of the details on the client side. The library is still all client-side, but it provides convenient ways to link up the client and server side without having to know all the details. If you really want a better understanding about web programming, you might want to start out using jQuery and calling into your ASP.NET methods to gain an understanding of how it all works.
–
Bryan RehbeinDec 17 '10 at 16:49

1

+1 Very nice summary. Minor quibble jQuery was included with VS2008 as well
–
Conrad FrixDec 17 '10 at 17:16

If you have to do client development learn first pure javascript. Then learn jQuery. If you start with just jQuery you will miss important javascript concepts and you will be basically doing cut&paste programming.

JavaScript and jQuery are the universal and standardized tools that can be used almost in any HTML development. PHP programmers use js+jq when doing client things, Ruby programmers use js+jq etc.

Now, as far as I know, ASP.NET AJAX is even a higher level JavScript framework that is suited to work with ASP.NET, because ASP.NET, as you probably know, is itself a pretty hight abstraction from HTML. That's why they have a specific JS things. Basically it's ment to play well with the server-side ASP.NET components and enhance them. Also, ASP.NET AJAX started in times where it wasn't that clear that jQuery will be defacto-standard. Or, it was clear, but not to Microsoft ;-) - they actually planned to create their own middle-level JS library (like jQuery is).

Honestly, I'm not a Microsoft guy and I would definitely stick to pure JavaScript + jQuery for as long as I could - if your employer/project does not exactly require ASP.NET AJAX. It will give you the most universally recognized knowledge of client-side programming.

(1) JQuery does not replace Javascript, It is a library that simplifies common JavaScript tasks. Any JQuery code is actually written in JavaScript.

(2) AJAX is just JavaScript code that manipulates the web page client-side and often pulls content down from the server without forcing a reload of the whole page. There are not multiple "Versions" of AJAX.

(3) Notwithsdanding #2 above. Both ASP.NET and JQuery have libraries or tools that simplify the task of creating AJAX driven websites. There are also a number of other tools that do this too. It is all the same AJAX, just different ways of generating it, or libraries encapsulating it.

(4) Which library should you learn? That's mostly a preference thing. If you like using Web controls a lot and the drag-drop web development with ASP.NET you might prefer just using the ASP.NET controls to do the same. I also am an ASP.NET developer, but I prefer using JQuery because it often gives me more fine grained control, even if it can be slightly more work sometimes. Also, if you learn the JQuery way, you can use it on any platform including PHP.

There are many ways to do AJAX, and if you're doing ASP.NET, ASP.NET AJAX is one of those ways. In recent years, I personally have gotten away from doing it that way in favor of jQuery and its implementation of AJAX.

If I'm a ASP.NET developer I guess I should stick with ASP.NET AJAX instead of client side AJAX right?

ASP.NET AJAX is still client-side ajax. Look for the (enormous) JavaScript libraries generated for you by ASP.NET AJAX (you'll see them while running in ScriptResource.axd or WebResource.axd.

Is that means I can skip javascript and learn jQUERY directly?

jQuery is just a library of JavaScript functions. You'll still need an understanding of JavaScript to use jQuery properly. jQuery does abstract away some tricky JavaScript, so jQuery is, in my opinion, a good way to start using and learning JavaScript (though you'd better at least know some JavaScript before you start using it).

Is there a "PHP AJAX" similar to ASP.NET AJAX?

There are a lot of JavaScript libraries to abstract AJAX away for you. jQuery is just one of them, but it is a very popular one, and a very robust one.

http://ajaxpatterns.org/PHP_Ajax_Frameworks lists various PHP Ajax frameworks though I don't know how well integrated they are like ASP.Net AJAX. Part of most AJAX frameworks will involve some client-side code as the J of AJAX is for Javascript.

There were other implementations for getting AJAX functionality before Microsoft put in ASP.Net AJAX where Anthem.Net is one example that I used years ago.

JavaScript is a client side interpreted language that gives you control over browser page components; i.e. the HTML document and also the browser it self. jQuery is a library of cross browser JavaScript functions that makes it easier to interact with the DOM.

ASP.NET and PHP are both server side scripting languages, where as an ASP.NET built page is compiled into a .NET assembly DLL, by the ASP.NET JIT (Just In Time) Compiler, a page built in PHP is interpreted.

Technically, ASP.NET is not really a language, it's a framework and a run time, that exposes APIs that can be accessed using C# or VB.NET. Thus to develop ASP.NET apps, you need to know either C# or VB.NET.

From my experience, I will advice that you take out the time and learn JavaScript, then proceed to learning jQuery. Off course you could also do cross learning, i.e both jQuery and core JavaScript.

AJAX is a client side asynchronous programming technology, that can be used in both jQuery and ASP.NET AJAX. ASP.NET AJAX is Microsoft's implementation of the AJAX technology.

Javascript is a client side scripting language and Jquery is a framework of javascript and is optional. Js, jquery works in your system itself and performs tasks like password validation, animation in the web page etc, they don't access the database.

Database will be MYSQL, ORACLE and exists in the web host; ASP,PHP are server side scripting languages. You can use ASP or PHP to access the database but SQL is also necessary to work on websites.

I have to agree, when I stumbled on this for reviewing it took me considerable effort to try to at least improve legibility. Its already under -3 votes so probably will go unnoticed (even worse for having conceptual errors with is up to the author to fix), but at least I hope it is more readable now and show the author how he could have gone about writing the answer.
–
Oeufcoque PenteanoApr 11 '12 at 16:37