Binding library which is also a part of Durandal, i think it’s a good solution for basic binding needs, but not quite the type of solution i hoped for. Anyway on to the next…
The grandpa of JS mvc frameworks. I haven’t looked at it much since everyone says it’s pretty basic, you need plugins like marionette (good/bad), and from what i gathered everyone’s transitioning to play with the newer kids on the block. For a guy that came from Silverlight, using Caliburn.micro with conventions and MVVM, when i saw a lot of “boilerplate” written next to it’s name i hardly gave a serious thought to it any more. FINAL VERDICT: Oldie but goldie. Speaking of new kids on the block…
Definitely the one i was most interested in, i really think it’s an amazing solution. It’s a paradigm shift and a way of thinking that really resonates with me. I love the tools, philosophies and extensions people are developing around it (like Om, Clojurescript support ). But it lacks battle proof. As a .NET guy, i don’t like the tooling story just yet. Altough you can get MVC5 supported nuget packages, JSX Visual studio support (judging from my Google search) is non-existant. If i was a sublime text guy, i would absolutely consider it. The other problem i have with it, i’m not quite sure how it would behave with data intensive applications with grids and forms, and i don’t see how to integrate it with some out-of-box components, like syncfusion or kendo. I absolutely love the principle of js-only components, doing away with templating etc. I just need to see more examples, better support, bigger community etc. FINAL VERDICT: Up and coming and very promising, something to keep an eye on, but more examples and support needed. Strong backing, and judging by how they treat ASP.NET, a very bright future is in it for a .NET guy. Speaking of support….
Aaand we have our first JS MVC war victim (and as always, the innocent suffer first). Durandal.js was my favourite just a few months ago. It looked extremely solid, and it was built by a guy who was into UI frameworks for the last XY years, the father of Caliburn and Caliburn.Micro, Rob Eisenberg. I fell completely in love with Caliburn.Micro, it’s the best code i’ve ever seen and having a same guy do a JS framework… well, i was completely sold. Until 2 weeks ago that is. Turns out Rob is now in bed with the enemy.He joined the Angular 2.0 team and they are building the next generation of web. Which honestly is kind of relief because that leaves me with less to choose from. FINAL VERDICT: Silverlight-inspired framework going the way of silverlight:(. So now that would make Rob’s biggest “enemy”….
That would be my second favourite. I’m always keeping an eye on what’s going on over the fence, and since Ember is a brainchild of Rail-heads, I was very intrigued by a prospect of integrating Ember with my ASP.NET MVC app. The opinionated nature, the convention based development, the battle-proved worthiness, the genuine open-source nature of the project, the pit-of-success enforced structure resonated very much with my way of thinking. I still feel it’s the most complete solution, and the one that has the best feature set and performance, and it’s an ideal one…. for a rails developer. Or even for a python dev, or php. It’s just not that great for a .net dev. The main issue is the fact that Ember owns your data model and therefore it makes it harder to use data library like Breeze. And Ember-data doesn’t support OData, which i may or may not use (haven’t decided yet). Other than that, when searching for a kendo-ember integration, results came out pretty scarce. There are some Ember-specific girds and controls, but i really don’t want to be framework-bound when choosing my controls. FINAL VERDICT: Fantastic framework with the right idea, but without appropriate following, support and mindshare. And speaking of mind share…
It’s a pretty safe bet your Angular skills will be in high demand, and learning the concepts and quirks should pay off in the long run. And to all the PMs, the Angular talent should be the easiest to find in the future.
FINAL VERDICT: King of the hill, whatever you might think of that.
So that would be my recommendation for a JS MVC framework. Keep an eye on React, try out Ember to learn the proper way to structure a JS app, forget about Durandal, for widgets and smaller stuff try Backbone or Knockout, but keep your Angular strong.