The development of rich Internet applications is still a very young topic, and there are many different approaches, every day more and more appear. In addition, JavaScript is a completely different language that enterprise developers are used to.
What you imho should NOT do is try to avoid developing in JavaScript directly. Of course, there are many frameworks that seem to help you get around the JS part (GWT and .NET Framework AJAX work well), but you can never use the full potential of the language itself and your rich Internet application will be forever tied to your server language / language structure and its capabilities, which is completely optional and, in my opinion, poor design. I would separate server programming as much as possible from client programming. Unlike old school web applications, you can request and process any data asynchronously, so it is not necessary for your web server to generate (generated, I mean generating HTML with the server language) any HTML code in general. With server-side data sharing and client-side presentation, you will lose most of the complexity that RIA can create with other approaches (for example, trying to click on it in one of the old-fashioned server-side MVC structures).
On the client side, you will be depending on your loved ones that you choose. There are many different frameworks that follow different ideas. You can focus on DOM manipulation , based on components with a focus on GUI elements or in the following figure the client-side MVC pattern ... etc.
source share