Are we supposed to use these features (javascript, jQuery, AJAX, etc..)?
Depends on your requirements for building an application. Use the tools that provide acceptable solutions to your needs.
If so why does it make such big difference in the size of pages?
I'm not quite sure if you are looking at just the page or the entire request. Most of the JavaScript I would assume is in separate files that can be cached by the browser. So the first request might be big, but subsequent requests would be much smaller. (Also to take more load off your server, look into using a CDN)
Is it the way I have used them or is it a common problem (I've heard so).
?
Since you haven't provided us any code or examples, it could be the way you've used them. Or it could be the controls you've attempted to use. I've noticed that Telerik controls seem to be quite bloated, but that is my own opinion.
How do I balance page interactivity and server's load?
These are mostly independent from each other. It is possible to create a very interactive page that can be either more or less load on the server (load I assume is CPU/Disk time). In my opinion, AJAX for the most part simply reduces the number of times complete layouts have to be sent by the server to the client which; is less bandwidth and slightly less load on a server due to the lack "rendering" html.
What are priorities?
Highly depends on your application requirements. It sounds like you've jumped off a diving board into a big pool of web based opportunities, but don't know where to swim to.
I am mostly using JQuery
, which has a lot of very good useful features:
- DOM element selections
- DOM traversal and modification (including support for CSS 1-3)
- Events CSS
- manipulation Effects and animations
- Ajax
- Extensibility through plug-ins
- Utilities - such as browser
- version and the each function.
- Cross-browser support
Granted I have to program features myself.
jQuery a cross browser normalization tool. It gives you the following
- DOM utilities
- Event system
- Ajax
- Animations
- ES5 utilities
- some other thinge
Backbone/knockout/yada/yada are MVC-like libraries that are there to help you structure and write modular application. You only need these if you want their structure.
RequireJS/yada/yada are module loaders. You need some form of module loader if you want to write a modular application.
Where does JQuery fit-in with the various controller-frameworks mentioned above?
As mentioned, jQuery normalizes browsers. controller frameworks do not. You don't need jQuery but you need some way to normalize browsers.
Is JQuery used alongside each or do some of them have their own 'JQuery-styled version' baked-in?
Backbone / knockout / JavaScriptMVC do not have browser normalization baked in so you need a tool for that. I'm not sure about SproutCore it does seem to have a lot in there.
Are tools like RequireJS still needed if you implement one of the various controller-frameworks mentioned above?
These are only needed if you write to write modular applications. So pretty much yes.
There are three flavours of modular applications
- async require loaders like requireJS
- sync require loaders like modul8
- using namespaces and just including files
- packages like ender
Does the define and then capabilities baked-into JQuery now supercede the AMD Loader mentioned above?
No. the define capability baked into jQuery allows you to use it with an AMD loader without wrapping jQuery. You still need an AMD loader. The "then" capability is just some sugar of jQuery deferreds.
Which one seems most modular? (see notes below)
That's an opinionated question. My personal opinion is that all these frameworks including jQuery are bloated and not modular.
You want modular, write your own library, write your own architecture.
However if you want the lesser of evils I would choose backbone because it's simple and small or spine which is similar
Best Answer
It is not at all important to learn jQuery with ASP.Net. Many people find it useful, but the two are not even remotely related. It is entirely possible to build a full-featured, useful website with ASP.Net and not ever once touch jQuery. It is a common framework, and quite powerful if you have need of its capabilities, but it has nothing to do with .Net.
There are a lot of people on this site who are manic about jQuery in that they believe every site/page should have jQuery built in and used when, in truth, it's just a framework. If you have need of its capabilities, then it's absolutely recommended because it's quick, easy and understandable. If you aren't making use of it on a regular basis, then you're just wasting overhead on loading a framework that you don't need.
That being said, I would still recommend that you tough it out and make it through the chapter because you may find that jQuery holds framework functionality that you were unaware of but would find useful. It's not necessary, but i could be very, very helpful.
Edit: I forgot to answer your last question. Yes, it is a very popular framework that is so common that Microsoft included it in the ASP.Net MVC distributions as a standard.