Update (3 December 2009): Concrete has now been renamed Entwine.
We'd like to announce the release of the Entwine and Selector libraries for jQuery.
Although initially developed for use with client sites, the library has proven so useful that it's been spun off into an independent project. It lets developers write frontend web-application code in a clean and extendable manner—which is important in SilverStripe to ensure that, when the system needs extending for a particular site, the architecture doesn't get in the way.
For the techies in the room:
We’re taking ideas from Prototype’s Behavior and Low Pro libraries and jQuery’s Effen and Live Query libraries. However, we're extending the concepts of those libraries to provide a complete alternative to traditional OO design; self-aware methods, inheritance, polymorphism, constructors and destructors, namespacing, and getter/setter style properties, all without a single class definition.
Compared to jQuery.plugins and jQuery.UI widgets, Entwine provides:
- code clarity — the code structure leads to more readable code
- extensibility — specificity-based method selection allows the injection of logic almost anywhere without monkey patching
- greater organisational capabilities — syntax promotes modularity
- reduced name clashes — powerful refactoring-free namespacing eliminates name pollution
A key component of Entwine is Selector - a CSS selector engine developed in conjunction with Entwine to give it maximum performance. For the use patterns it is designed for, it can out-perform jQuery's native Sizzle selector engine by an order of magnitude.
As well as the source and a tutorial, there is an 18-minute screencast available to help introduce the new concepts: