Marionette Version 3 Discussions
This past Friday the Marionette Team got together and did some v3 planning for the next release of Marionette. The focus of our conversation was on adding the missing pieces of the application layer that are very much needed within Marionette. Over the past few years there has been a community effort to establish patterns that allow people to build large applications in Marionette. We are exploring ways that we can codify those concepts into the core.
@jmeas has done some great work in this area via the creation of a library called base-router. We want to build on top of this work to create a router that has some new concepts such as state based routing and named routes. There will most likely be more features, inspired both from the ember router and angular ui router.
We then moved onto talking about the
Application layer of Marionette. Currently it does several things but is still generic and does not integrate automatically with the concepts that Marionette already has baked in - just look at the amount of code needed to kick off a marionette app demo. We are planning on more tightly coupling the router to the Application object as well as hardening the concept of an application having a life-cycle.
There was talk of investigating the ability for an application to contain “sub applications” which are just application objects that are started and stopped automatically depending on their parent app state. This concept should make it straightforward to allow you to add significant app complexity without having to engineer a bespoke way to manange application life cycle.
Thoughts, concerns? Want to come chat V3? Come join us!
Note that these are early discussions and the final result may be different than what is listed above.