It almost seems like every other week there is a new MVC web front-end framework. The front-end dev community is incredibly vibrant and projects are moving rapidly; introducing new features all the time, changing development paradigms and experimenting with new ES6 language features. You probably have heard of Backbone, Marionette, React, Flux, Angular, Web Components, Ionic, Cordova, WinJS, Ember and tons of other frameworks. It’s overwhelming trying to decide which one is the right one and there’s often a fear over choosing the wrong framework. Let me show you how I decide which web front-end framework to use.
- If my project is mostly-focused on iOS or Android or Windows Apps:
- If I care a lot about a native look and feel as well as strong performance and I am willing to learn a completely different way of building web apps: I would go with Ionic or WinJS (both use Cordova).
- If I want to support mobile first but I also care about the desktop: Angular + Bootstrap + Cordova.
If I decide to go desktop-only, I have multiple options: Angular, Backbone, Marionette, React, Flux, Angular, Web Components, etc… Right off the bat, I include a Web Components library like X-Tag which supports all major browsers. This gives me next generation features in my web applications. I would also choose between Bootstrap and Foundation for my CSS framework.
- If I want to use a reactive programming model, I would go with React + Flux.
- If I want to build a complex app (think Outlook or Office365 level of complexity):
- If I want to build a simple MVC app with a framework I could learn in under 30 minutes, I would go with Backbone.
I am not expecting everyone who reads this article to agree with my decision making process. In fact, I would like to challenge you to name me alternatives following the same type of thought process as above. For example; if you have an alternative to Topcoat, simply tweet @ramisayar and I will include it.
You can stay up to date by following my twitter account @ramisayar.