Monday, April 30, 2012

Deprecation notice: Migrate from dart:dom to dart:html

Posted by Vijay Menon


We strive to improve the web development experience, and we’ve been working hard on a better DOM interface for browser programming. The Dart team has been developing the dart:html library and improving its performance for the past several months, and we believe that it provides a much better experience for Dart programmers than the old dart:dom library.

For example, dart:html handles cross-browser compatibility for various cases (with more compat work coming), provides a more jQuery like experience for querying the DOM, and makes interaction with the DOM feel natural to Dart developers.

We are now ready to deprecate dart:dom in favor of dart:html (tracked via Bug 2517).  This means that we will remove the dart:dom library from user facing code no sooner than Monday, May 7th. Please migrate your code to dart:html before this date, and report any problems at http://dartbug.com. Sometime soon after this date, you will not be able to access dart:dom.

The dart:html library attempts to clean up traditional DOM programming, but it also provides an “escape hatch” if you really need to drop to the traditional DOM API. Whenever the dart:html has removed or significantly changed a DOM API, it provides a legacy escape hatch of the form “$dom_OLD_API”. We don’t recommend using these methods unless you have a very good reason to, such as porting legacy code to Dart.

We suspect that most developers are already using dart:html, but if you aren’t please see Bob Nystrom’s article on Improving the DOM and the API docs for dart:html. As always, your feedback is very important. Please join the discussion in the Dart mailing list and let us know how your upgrade to dart:html went.