Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I am working on Asp.net webform and it already provides me ready to user Ajax solution by using an update panel, so should I invest my time learning how Ajax really work ?

share|improve this question

closed as not a real question by Mark Trapp Nov 24 '11 at 5:32

It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center.If this question can be reworded to fit the rules in the help center, please edit the question.

add comment

4 Answers

up vote 12 down vote accepted

Yes, because:

  1. Update panel runs the entire Page Lifecycle at server, while Page Methods or Web Services (AJAX calls) don't.
  2. Update panel sends back the entire ViewState to the server even for small communications like getting the current server date value, while Manual AJAX is in your control and you can send (transfer) less data.
  3. Update panel causes the entire page at server to be rendered, but only returns the required section, while in AJAX you don't do such stupid actions.
  4. Update panels get messy when they want to be coordinated with each other. In other words, there are many times that you need to make an AJAX call, but then on successful response, you don't want to change the DOM of that zone. Rather you want to manipulate somewhere else. For example, in an Email client software, when someone clicks on an unread email item, you send an AJAX request to the server to get the email body, but then on success callback, you should also update the part of your screen where you announce the number of unread emails, and you should subtract one from that number. These coordinations really become tricky at server side.
  5. Microsoft's AJAX solutions (not Ajax Control Toolkit, but the Update Panel, Update Progress, and Timer) was so unintuitive to the web world, that it introduced MVC to keep its place in market.
  6. With Microsoft Ajax, the second call stops the first unfinished call. Many times you really need concurrent ajax calls to the server.

Stop using Update Panel. You will use AJAX someday, whenever you want to work professionaly. Thus, use it today.

share|improve this answer
add comment

WoW -- that's astonishing. first ask yourself these questions, and if your mind yells YES for any of these -- the answer to your original question is YES.

  • Do I need to learn HTML -- since Dreamweaver lets me create web pages anyway
  • Do I need to learn HTTP -- since browsers handle all HTTP automatically
  • Do I need to learn JavaScript -- since jQuery lets me do just about everything with cool "chains"
  • Do I need to learn Design Patterns -- since I can easily write good code without them
  • Do I need to learn SQL -- since my ORM does all the database talking I need
  • Do I need to learn Version Control -- since I can manually manage versions within the filesystem
  • Do I need to learn to have sex -- since I can adopt a baby if I want to grow my family
share|improve this answer
3  
The last bullet implies we should learn these technologies because they're enjoyable; that might be true to some extent, but the real reason to learn these technologies is because all of the higher level abstractions are ultimately leaky. You can't use Dreamweaver for long without having to open up the HTML source and do some modifications by hand. –  Charles Salvia Jul 17 '11 at 12:33
5  
Honest question: Do web devs still use dreamweaver? –  Steve Evers Jul 17 '11 at 15:00
    
@Sn0rfus: Actually do occasionally, it is a pretty damn good HTML/JS editor and opens a bit quicker than Visual Studio . . . –  Wyatt Barnett Jul 17 '11 at 18:20
add comment

The more powerful our tools and frameworks become, the less a lot of developers feel they need to learn...because its already done for them. But ignorance is definitely not bliss. What happens when you want to troubleshoot an ajax functionality? You know nothing about it. What happens when you want to build custom members off of it? You can't if you don't know how it works.

Think of a car mechanic. Just knowing how to change out an engine is insufficient. They need to know all about engines to be able to troubleshoot and prevent unneccessay work.

share|improve this answer
1  
This was definitely my experience with ASP.NET UpdatePanels. They made things soooo easy - until I hit the boundaries of their capabilities. Then I wished I'd just done it all much more "by hand" right from the start. –  Carson63000 Jul 17 '11 at 23:45
add comment

As a general rule of thumb I would say, that if you know how your development environment handles a certain task, this is enough to get your work done. Everything beyond that is either a matter of your curiosity (a very important mindset for a programmer) or your future expectations regarding your choice of tools. You or your company may choose to change to other languages or tools for some projects or you may find another job. But most of the time in such situations you will be able to learn things when you need them.

This said of course we are back at curiosity. You should explore everything that you find interesting since the process of exploring technologies alone will make you a better developer. And you may find, that you can do things with your current tools, that weren't immediately obvious without that knowledge. Especially in the Open Source culture, like Ruby on Rails for example, you will find that many people have a habit of reading source code of their tools. Even if they don't exactly need to know how their tools work in such detail, they see this as a kind of training and learning experience.

So by all means, if you have the time and find it interesting, then just learn it. If there are other things to learn that give you more value at the moment, then learn those first. Just keep learning...

share|improve this answer
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.