tastejs/todomvc — pull request #654 by abhinavgujjar (2013-08-08 09:54:25+00:00)
Title: Added Durandal framework

There have been a couple of requests for creating a durandal example in here. This [discussion ](https://github.com/tastejs/todomvc/issues/518) was closed a few months back with a note to reopen when there is a spec-compliant implementation. This is the spec compliant implementation.

Another [request for durandal](https://github.com/tastejs/todomvc/issues/634) was made a few weeks back.

As for why include Durandal - EisenbergEffect (also one of the main contributers to durandal) has outlined the framework well in this [comment ](https://github.com/tastejs/todomvc/issues/518#issuecomment-15951713).

I see durandal gathering a fair bit of steam in the past few months, and we're close to production with our durandal based financial services site from our organization.

As mentioned in the comments, durandal uses a combination of knockout and sammy to provide a high level framework for single page applications.

My code borrows heavily from the knockout js example for all the data binding, but to demonstrate the capabilities of durandal illustrates the following concepts

* Composition - The html is composed from multiple modules - entry and list.
* Communication - The implementation demonstrates durandals eventing system by making the entry module agnostic of the list module. the entry module simply broadcasts the addition of a new task which is then picked up by the
* Module Lifecycle - the list module has an activation event which is triggered by the durandal framework. On activation, the tasks are retrieved from the local storage and initialized in the observable array.

I think I've adhered to all the coding guidelines, but the only issue is that since I didn't want to disturb the learn.json file in the root directory, the page does not show the helper on the left hand side. let me know what i need to do to make that work.