The means for accomplishing this have been around for quite some time. Suddenly though, and thanks largely to applications like Google Maps, its all the rage.
Not to be left behind, Microsoft has announced project Atlas for ASP.NET 2.0 and for ASP.NET 1.1, we already have Michael Schwarz's Ajax.Net.
According to one Atlas project member, “What we’ve set out to do is to make it dramatically easier for anyone to build AJAX-style web applications that deliver rich, interactive, and personalized experiences. Developers should be able to build these applications without great expertise in client scripting; they should be able to integrate their browser UI seamlessly with the rest of their applications; and they should be able to develop and debug these applications with ease.”
Atlas is being developed on top of ASP.NET 2.0 and is slated to contain the following components:
Atlas Client Script Framework
The Atlas Client Script Framework will work on all modern browsers, and with any web server. It also won’t require any client software installations, only standard script references in the web page.
The Atlas Client Script Framework will include the following components:
- A base class library for common features such as rich string manipulation, timers, and running tasks
- A UI framework for attaching dynamic behaviors to HTML in a cross-browser way
- A network stack to simplify server connectivity and access to web services
- A set of controls for rich UI, such as auto-complete textboxes, popup panels, animation, and drag and drop
- A browser compatibility layer to address scripting behavior differences between browsers.
ASP.NET Server Controls for Atlas
For ASP.NET applications, a new set of AJAX-style ASP.NET Server Controls will be developed and the existing ASP.NET page framework and controls will be enhanced to support the Atlas Client Script Framework.
The Atlas Client Script Framework will fully support ASP.NET 2.0 client callbacks, but will enrich the level of integration between the browser and the server. For example, you will be able to data bind Atlas client controls to ASP.NET data source controls on the server, and you’ll be able to control personalization features of web parts pages asynchronously from the client.
ASP.NET Web Services Integration
Like any client application, an AJAX-style web application will usually need to access functionality on the web server. The model for connecting to the server for Atlas applications is the same as for the rest of the platform – through the use of Web services.
With ASP.NET Web Services Integration, Atlas applications will be able to access any ASP.NET-hosted ASMX or Indigo service directly through the Atlas Client Script Framework, on any browser that supports XMLHTTP. The framework will automatically handle proxy generation, and object serialization to and from script. With web services integration, you can use a single programming model to write your services, and use them in any application, from browser-based sites to full smart client applications.
ASP.NET Building Block Services for Atlas
With ASP.NET 2.0 Microsoft have built a set of building block services that make it easy to build personalized web applications. These building blocks reduce the amount of code you have to write for common web application scenarios, such as managing users, authorizing users by role, and storing profiles and personalized data.
With Atlas, these building blocks will be made accessible as web services that can be used from the client framework in the browser or from any client application.
Client Building Block Services
In addition to DHTML, JScript, and XMLHTTP, the Atlas project is looking at other services that allow websites to harness the power of the client to deliver an enriched experience.
The local browser cache is an example of such a service. When enabled, websites can store content in that cache and later retrieve it efficiently. The problem is that there is no API from the browser to store data in the cache. With Atlas, the plan is to provide programmable access to a local store/cache, so that applications can locally cache data easily, efficiently and securely.