Programming Microsoft ASP.NET 4 - Dino Esposito [11]
What about developers?
We probably completed the step of understanding what kind of Web applications we want to serve to our users. We don’t yet have an effective set of developer tools to make the creation of modern Web applications quick, easy, and productive—in one word, effective. So we’re in search of the perfect framework. Developers need to build user interfaces to be served and consumed over the Web and within a Web browser. Such a framework must simplify a number of common tasks. Here’s a list of the capabilities we expect:
The user interface must be dynamic and adjust itself as the user interacts. This means, for example, hiding or showing panels and buttons as the user makes a choice.
The user interface must be responsive and perform quick cross-checks on data displayed, and it must perform remote validation whenever possible and required.
It should be possible to start a remote operation and update the current view even with a new user interface if necessary.
It should be possible to display dialog boxes on top of the existing pages.
It should be possible to request data for remote application-specific endpoints.
In terms of technologies, we definitely need a rich client infrastructure, a simple controller component to parse HTTP requests and dispatch commands to the back end, and we need a layered architecture to keep business tasks separate from presentation and data access.
The development team is directly responsible for the architecture and for adding as many layers as they think are necessary. The framework, on the other hand, should simplify the other aspects and provide smooth integration between client and server code and naturally and effectively process the incoming requests. We don’t yet have the perfect framework. It will probably take a couple more years for this to materialize. But we see all around signs of libraries and tools being consolidated.
The family of jQuery libraries (including the jQuery UI library and various plug-ins) seems to be the catalyst for dynamic user interfaces; ASP.NET MVC seems to be the simpler framework to start with and to build new made-to-measure abstractions. Abstraction is still important because it’s only via abstraction that you build productivity.
Whatever emerges as the ideal ASP.NET framework for the next decade, my guess is that it will build on jQuery and most of the principles and solutions in ASP.NET MVC. ASP.NET Web Forms today is in the middle of a transition. It is neither the future nor the past. It can be adapted and still be effective. It requires an awareness of the changes, in business and subsequently architecture, we are experiencing.
AJAX as a Built-in Feature of the Web
The biggest challenge of ASP.NET development today is unifying the programming model, which is currently split in two: ASP.NET Web Forms on one side and ASP.NET MVC on the other side. The biggest challenge of Web development in general, though, is removing the label “AJAX” from the term “Web.”
Because it started such a huge paradigm shift, AJAX can’t simply be considered an umbrella term to refer to a specific set of software capabilities. AJAX today is a constituent part of the Web. We would like to be able to write the next generation of Web applications using a framework in which AJAX is just part of the deal. You might be asked to configure it once, and then enjoy it free of charge and without any additional cost of writing specific code.
As a built-in feature of a Web framework, AJAX requires you to have an API to code against that just does AJAX without needing developers to think about it. ASP.NET offered a common and familiar programming model for writing Web applications, and this was one of the keys to its rapid adoption. Before ASP.NET, there were various ways of writing Web applications and different