 <p><a href="http://deftjs.org/" rel="nofollow">http://deftjs.org/</a></p> <p>Essential extensions for enterprise web and mobile application development with Ext JS and Sencha Touch</p> <p>DeftJS enhances Ext JS and Sencha Touch’s APIs with additional building blocks that enable large development teams to rapidly build enterprise scale applications, leveraging best practices and proven patterns discovered by top RIA developers at some of the best consulting firms in the industry.</p> <p><strong>FEATURES</strong></p> <p><strong>IoC Container</strong></p> <ul> <li>Provides class annotation driven dependency injection.</li> <li>Maps dependencies by user-defined identifiers.</li> <li>Resolves dependencies by class instance, factory function or value.</li> <li>Supports singleton and prototype resolution of class instance and factory function dependencies.</li> <li>Offers eager and lazy instantiation of dependencies.</li> <li>Injects dependencies into Ext JS class configs and properties before the class constructor is executed.</li> </ul> <p><strong>MVC with View Controllers</strong></p> <ul> <li>Provides class annotation driven association between a given view and its view controller.</li> <li>Clarifies the role of the controller - i.e. controlling a view and delegating work to injected business services (ex. Stores).</li> <li>Supports multiple independent instances of a given view, each with their own view controller instance.</li> <li>Reduces memory usage by automatically creating and destroying view controllers in tandem with their associated views.</li> <li>Supports concise configuration for referencing view components and registering event listeners with view controller methods.</li> <li>Integrates with the view destruction lifecycle to allow the view controller to potentially cancel removal and destruction.</li> <li>Simplifies clean-up by automatically removing view and view component references and event listeners.</li> </ul> <p><strong>Promises and Deferreds</strong></p> <ul> <li>Provides an elegant way to represent a ‘future value’ resulting from an asynchronous operation.</li> <li>Offers a consistent, readable API for registering success, failure, cancellation or progress callbacks.</li> <li>Allows chaining of transformation and processing of future values.</li> <li>Simplifies processing of a set of future values via utility functions including all(), any(), map() and reduce().</li> <li>Implements the CommonJS Promises/A specification.</li> </ul>