I have a huge web project that include front-end (for clients) and back-end(for administration).
Here are the main points for this project:
website should be responsive (so mainly use of CSS3/HTML5)
multi language website (for now 4 different languages)
allow payment online (via paypal, CB, VISA, Wire transfer, and so on…)
to allow categories (like for services, competences, and so on…)
to allow newsletter management
to manager users (profiles, activation/disable, attachemed files,…)
to manage email sending and projects history
to obscure part of text in some comments end users could write based on some strings or characters
to interact with a MySQL database, and deals with more than 100,000 users
to be SEO
to have a nice and intuitive web interface
for all those reasons, i need to find 1 or more appropriate javascript framework.
My problem is that i’m coming from CMS world and the only Javascript frameworks i know are mootools and jQuery
Now i read that:
backbone.js is wonderful for database interaction and MVC architecture.
Angular.js is very good for forms
Modernizr.js for UI
now i know there are a lot more on the market, however i would be very happy to get your feedback on the most appropriate javascript framework for each task i need to perform, as it is a 6-12 months project and i can get it wrong.
I read those documents and i have an additional question:
Q1: what about security aspect ? especially with MongoDB. I read several post and slides where security is a concern for Full-stack and MongoDB.
As the website/webapp should be on internet with payment and sensitive data, i can’t allow such concern. Everybody who posted about AngularJS with MongoDB were scared about this topic.
It’s better to use server-side solutions where payments and sensitive data are concerned. You may find that it’s better to use a dedicated service for such things.
As an example, in New Zealand DPS is a very common one for providing a digital payment service.
Your question is “Which Javascript framework?” but most of your points have little to nothing to do with Javascript.
If you plan to be writing a lot of JavaScript jQuery is a sane choice, it’s a de-facto standard.
I would only consider Angular or Ember if you can see your application staying open in users browser windows all day - like Gmail.
This is the only time these types of applications really benefit the end users.
Even then, if it is a Gmail like app - I would start with Backbone because it has all the important components and starts small so you can understand each piece you add.
As far as my webhosting provider do not provide services with MongoDB, i will have to use PostgreSQL or MySQL.
As MySQL is standard DB for website i will go for that one. So it means that a server side language must be used to interact with Javascript frameworks as they do not do it directly.
So it will be PHP.
Therefore Javascript Frameworks would be used for UI improvement, because AFAIK i don’t see other possibility… Maybe i’m wrong and them please explain me.
Like #markbrown4 said unless the goal is to create a AJAX intensive web application avoiding page refreshes for all page state changes it is best to stare clear of things like Angular JS, ExtJS, and Backbone. Unless you really feel a JavaScript intense web application in the MVC form is the best route a server-side language with jQuery will do the job just fine. You could also float around the idea of building the admin as a JavaScript intensive web application but the front-end separately. The admin would probably benefit from JavaScript MVC frameworks much more so than a front end. Than again I don’t exactly know the details of the front-end. So I’m going by what is typically considered a “front-end” when compared to a “back-end” adminstrative area/system. Though one would also debate the practicality of a JavaScript intensive admin on mobile devices. Last time I tried using Sencha Touch 2 I ran into a whole host of issues due to imperfect/fast network connections and such. I haven’t used backbone or angular but reading over the documentation there are fair share of similarities to ExtJS.
Backbone is actually quite different to the others in that it’s a minimal framework, I kinda like it.
Though I agree the OP is better avoiding these types of frameworks and just starting with jQuery until it grows to a point when they need something else.