This project is read-only.
ASP.NET AJAX CodePlex Preview 3 Release Notes

In Preview 3 of ASP.NET AJAX 4.0, we are introducing a client-side data story. Crucial to this story is support for ADO.NET Data Services, which is included

in a new script library, MicrosoftAjaxAdoNet.js. We support typical operations such as insert, query, update, and remove in the ADO.NET client-side library,

and also enable verb tunneling and optimistic concurrency scenarios. In this preview, we support read-only integration of data sources (ADO.NET Data

Services, and ASMX and WCF Web services) with the DataView (Read/Write coming in the next preview). We are also introducing a command bubbling model with

DataView support for custom commands, and built-in support for item selection, which makes implementing Master-Detail scenarios much more intuitive than


This document describes the features in the MicrosoftAjaxTemplates.js and MicrosoftAjaxAdoNet.js libraries. The goal of this release is to give you

visibility into our design process, to allow you to test the technology early in the product cycle, and for you to give us feedback on the implementation.

Note: This release replaces ASP.NET AJAX CodePlex Previews 1 and 2, as well as the existing AJAX Client Library for ADO.NET Data Services on CodePlex


What's New?
  • ADO.NET Data Services Support (Read/Write), including Verb Tunneling and Optimistic Concurrency.
  • DataView now supports client data features (Read Only).
  • The DataView now supports a placeholder and separate item template.
  • Added support to declaratively specify a bubbled command for the click event of an element, using sys:command and sys:commandargument. The DataView

onCommand event enables handing of custom commands.
  • The DataView now supports selection with selectedIndex, initialSelectedIndex, selectedData, and selectedItemClass properties, and automatically handles

select events bubbled up from sys:command, setting selectedIndex and selectedData appropriately.

This release fixes many Preview 2 bugs and includes the following changes:

ADO.NET Data Services
  • Client side support for insert, invoke (for calling custom service operations on the ADO.NET Data Service), query, update, and remove operations
  • ActionSequence support for executing multiple actions
  • QueryBuilder for easy construction of queries
  • AdoNetInvokeParametersBuilder
  • Support for optimistic concurrency (eTags or Entity Tags)
  • POST Verb Tunneling enabled (PUT and DELETE requests are done as the X-HTTP-Method of POST)

  • Added Client Data related features to DataView. New properties: dataSource, autoFetch, serviceUri, query, httpMethod, parameters, timeout.
  • DataView behavior regarding the placeholder and its item template has been overhauled. The template may still be the same as the dataview element. But if a

layout template is required with a placeholder, the content of the dataview acts as the layout template and placeholder, and the item template must be

specified separately and be external to the dataview. Previously it could be nested within the dataview. Also, items now replace the placeholder rather than

get added within it, similar to the functionality of the server-side ListView control.
  • Added DataView property to give you access to the instantiated items: get_items().
  • Added DataView properties related to selection: selectedItemIndex selectedIndex, initialSelectedIndex, selectedData, selectedItemClass.
  • DataView template property renamed itemTemplate.

  • TemplateResult renamed TemplateContext
  • TemplateContext now has helpers for retrieving elements within the instantiated template result: getElementById, getItemByKey.
  • TemplateContext now has fields instead of property getters containing all the data available normally within a template's markup.
  • Added ability to declaratively specify a bubbled command event for the click event of an element, via sys:command and sys:commandargument. Also works

outside of templates.
  • Template.createInstance renamed to instantiateIn
  • Added parameter to Template.instantiateIn to allow you to specify the child node in the container before which the template elements are appended, rather

than always at the end of the container.
  • ITemplateContext property parentContext renamed to templateContext.
  • MarkupExtensions such as {binding} that exist in text nodes no longer need to be the entire text node value -- they can now contain whitespace before and

after the extension.

  • sys-key now works across different nodes listed in the sys:activate attribute.
  • Removed IMarkupExtension and GenericMarkupExtension. Application.registerMarkupExtension now only supports function references.
  • Mixed case properties now correctly set by bindings.
  • Added Client Data features. New components Sys.Data.DataSource, Sys.Data.AdoNetDataSource, support component based interaction with services.
  • Added ability to raise a bubble event from a DOM element that does not have a control attached to it.
  • Event attributes such as "onfoo" now correctly map to the "foo" event of the component.
  • Add implementation for CommandEventArgs on the client side.
  • Fix binding bug with data still get updated in onetime binding mode after the initial update.
  • Fix bug with binding on style:display causing an error.
  • Binding now allows twoWay mode on non-input DOM elements when we have Sys.Observer.
  • Fix bug with value not handled correctly for DataView's properties starting with 'on' (like: dv:onfoo).
  • Fix bug with binding to element with no tag.

Release Contents
This release contains a preview version of the following features. These features are also described in our Roadmap document at the following location:
  • ADO.NET Data Services support
  • Client UI Templates
  • Declarative instantiation of client-side controls and behaviors
  • Observable pattern for plain JavaScript objects
  • Live Bindings
  • Markup Extensions
  • DataView and DataSource controls
  • Command Bubbling

Compatible Browsers
This release has been tested on the following browsers:
  • Microsoft Internet Explorer 6
  • Microsoft Internet Explorer 7
  • Microsoft Internet Explorer 8 Beta 2
  • Mozilla Firefox 2 and 3
  • Apple Safari 3
  • Opera 9.6

The release might work on other browsers as well. More browser support will be added in future previews.

How to Use the Preview Scripts
This preview consists of release and debug versions of MicrosoftAjaxTemplates.js, and MicrosoftAjaxAdoNet.js. To use the new features in a Web page, you

must have enabled the Microsoft Ajax Library on the page, by using the server-side ScriptManager control (with version 3.5 SP1 of the .NET Framework), or a

<script> tag that references MicrosoftAjax.js corresponding to .NET Framework 3.5 SP1. You must then include the new script files by adding script references

to the ScriptManager control or by adding <script> tags that point to MicrosoftAjaxTemplates.js and MicrosoftAjaxAdoNet.js.

Known Issues
  • JavaScript switch statements must be in the same code blocks as the associated case statement. Break and case must also be in the same block.
  • Sys:id is being treated as the regular id attribute in Visual Studio.
  • Cannot insert code blocks with elements that are not closed off.
  • Using a localized namespace fails in Chrome 0.2 for Windows
  • There isn’t a good declarative way to databind the selected item or selected value on a select element.
  • Using code blocks to selectively render rows in tables does not work in IE unless <tbody> is explicitly included.
  • Code block in a select element within a template is not inserted.
  • Calling fetchData on a DataView whose datasource query has an underscore in it causes a failure in Opera 9.6.
  • In IE8 Beta 2, dynamically inserted content inside nested Divs does not render properly (not directly related to this release).

What's Next
The next preview release for ASP.NET AJAX will be available in December. Possible features that will be previewed include:
  • Read/Write support for Data Service from the Datasource
  • Splitting the existing Ajax Library into smaller script files
  • Using ScriptManager without including MicrosoftAjax.js
  • Configuration-based, scalable script combination
  • WAI-ARIA support
  • Server integration of client data
  • Support for non-Gregorian calendars
  • Support for new browser and HTML 5 features
  • Multiple and "duck" types for parameters

Last edited Feb 12, 2009 at 1:34 AM by ScottGal, version 1


No comments yet.