I framework javascript MVC
Come scegliere il giusto framework javascript MVC? This site is optimized with the Yoast SEO plugin v3.4 - https://yoast.com/wordpress/plugins/seo/ / Yoast SEO plugin. analytics // node log heroku c9.io localhost end node log →<!-- ebay [if IE]> <![endif][if lt IE 9]> <![endif][if IE 9]> <link rel="stylesheet" type="text/css" media="all" href="http://www.pensando.it/wp/wp-content/themes/woohoo/css/ie9.css" /> <![endif][if IE 8]> <link rel="stylesheet" type="text/css" media="all" href="http://www.pensando.it/wp/wp-content/themes/woohoo/css/ie8.css" /> <![endif][if IE 7]> <link rel="stylesheet" type="text/css" media="all" href="http://www.pensando.it/wp/wp-content/themes/woohoo/css/ie7.css" /> <![endif]
StartFragment
Come scegliere il giusto framework javascript MVC?
In questo articolo cercheremo di capire quali sono i principali framework javascript e soprattutto quali sono le risorse da consultare per meglio capire (e quindi scegliere) un framework javascript MVC (model-view-controller).
Come scegliere il giusto framework javascript MVC? This site is optimized with the Yoast SEO plugin v3.4 - https://yoast.com/wordpress/plugins/seo/ / Yoast SEO plugin. analytics // node log heroku c9.io localhost end node log →<!-- ebay [if IE]> <![endif][if lt IE 9]> <![endif][if IE 9]> <link rel="stylesheet" type="text/css" media="all" href="http://www.pensando.it/wp/wp-content/themes/woohoo/css/ie9.css" /> <![endif][if IE 8]> <link rel="stylesheet" type="text/css" media="all" href="http://www.pensando.it/wp/wp-content/themes/woohoo/css/ie8.css" /> <![endif][if IE 7]> <link rel="stylesheet" type="text/css" media="all" href="http://www.pensando.it/wp/wp-content/themes/woohoo/css/ie7.css" /> <![endif]
StartFragment
Prima di iniziare, perché proprio javascript?
Perché javascript presenta una serie di vantaggi non da poco che lo rendono decisamente interessante nel panorama dei linguaggi di programmazione attuali, quali:
Full stack development: possibilità di utilizzare il medesimo linguaggio di programmazione per tutta la filiera applicativa: client (Es. backbone.js, Angular.js, jquery), server (node.js) e data base (Es. mongoDB)
E’ Portabile: semplice portabilità di una webapp javascript su dispositivi mobili (smartphone/tablet/desktop) attraverso l’utilizzo di framework quali phonegap e cordova
E’ Popolare: è uno dei linguaggi di programmazione più conosciuti e diffusi al mondo (se non il più popolare), questo lo rende molto “appetibile” per l’industria informatica del momento e fa si che attorno ad esso ci sia un continuo interesse da parte della community mondiale di sviluppatori.
E’ Responsive: perfettamente integrato con HTML5, è parte integrante del web 2.0
E’ Veloce: per sua natura javascript è un linguaggio veloce e performante, orientato agli eventi o anche event-driven, nativamente nella sua versione server (node.js) ma anche nella versione client se ben strutturato (es. jquery)
Questi sono solo alcuni dei vantaggi di javascript, ne potrei citare molti altri così come potrei citare anche alcuni difetti, primo fra tutti il fatto che non essendo compilato, se mal utilizzato, potrebbe davvero far danni e risultare poco sicuro.
Fatta questa breve premessa torniamo ai vari framework javascript in circolazione.
Come scegliere il giusto framework javascript MVC? This site is optimized with the Yoast SEO plugin v3.4 - https://yoast.com/wordpress/plugins/seo/ / Yoast SEO plugin. analytics // node log heroku c9.io localhost end node log →<!-- ebay [if IE]> <![endif][if lt IE 9]> <![endif][if IE 9]> <link rel="stylesheet" type="text/css" media="all" href="http://www.pensando.it/wp/wp-content/themes/woohoo/css/ie9.css" /> <![endif][if IE 8]> <link rel="stylesheet" type="text/css" media="all" href="http://www.pensando.it/wp/wp-content/themes/woohoo/css/ie8.css" /> <![endif][if IE 7]> <link rel="stylesheet" type="text/css" media="all" href="http://www.pensando.it/wp/wp-content/themes/woohoo/css/ie7.css" /> <![endif]
StartFragment
I javascript framework MVC
Alla domanda: “ma quanti framework javascript ci sono in circolazione?”
Come scegliere il giusto framework javascript MVC? This site is optimized with the Yoast SEO plugin v3.4 - https://yoast.com/wordpress/plugins/seo/ / Yoast SEO plugin. analytics // node log heroku c9.io localhost end node log →<!-- ebay [if IE]> <![endif][if lt IE 9]> <![endif][if IE 9]> <link rel="stylesheet" type="text/css" media="all" href="http://www.pensando.it/wp/wp-content/themes/woohoo/css/ie9.css" /> <![endif][if IE 8]> <link rel="stylesheet" type="text/css" media="all" href="http://www.pensando.it/wp/wp-content/themes/woohoo/css/ie8.css" /> <![endif][if IE 7]> <link rel="stylesheet" type="text/css" media="all" href="http://www.pensando.it/wp/wp-content/themes/woohoo/css/ie7.css" /> <![endif]
StartFragment
La risposta che potremmo dare è: “tanti, forse troppi!”
Questi sono solo alcuni dei principali:
Backbone.js – http://backbonejs.org/
AngularJS – https://angularjs.org/
Ember.js – http://emberjs.com/
KnockoutJS – http://knockoutjs.com/
Dojo – http://dojotoolkit.org/
YUI – http://yuilibrary.com/
Agility.js – http://agilityjs.com/
Knockback.js – http://kmalakoff.github.io/knockback/
CanJS – http://canjs.com/
Maria – http://peter.michaux.ca/maria/
Polymer – https://www.polymer-project.org/
React – http://facebook.github.io/react/
Mithril – http://lhorie.github.io/mithril/
Ampersand – https://ampersandjs.com/
Flight – https://flightjs.github.io/
Vue.js – http://vuejs.org/
Come potete ben immagine la risposta su “quale scegliere” non è semplice, dipende da molti fattori che potremmo riassumere in questo modo:
Scelta in funzione del Know How del team di sviluppo
Scelta in funzione dell’affinità (predilezione) che un programmatore potrebbe avere nei confronti di un framework
Scelta sulla base del più affermato sul mercato
Scelta sulla base della documentazione presente online
Scelta sulla base della robustezza e completezza del framework
Insomma potremmo scegliere il framework usando uno (o più) dei criteri appena citati, fatto sta che è importante scegliere e scegliere bene.
Se volete farvi un’idea di come ognuno dei framework appena descritti “lavora” su una medesima applicazione (ToDo app) allora non potete non consultare il seguente link:
http://todomvc.com/
Una raccolta di codice, documentazione ed esempi in relazione a numerosi framework javascript basati tutti sulla medesima applicazione, appunto un’ app che gestisce le cose “da fare” (ToDo)
Gli esempi sono raccolti per:
framework in puro javascript
framework che compilano in javascript
framework beta in puro javascript
In tutti e tre i casi vengono ulteriormente suddivisi per framework:
mvc
realtime
server side (node.js)
applicazioni realizzate con implementazioni “non framework”
E’ quindi un utile strumento di comparazione ed analisi tra framework.
Come scegliere il giusto framework javascript MVC? This site is optimized with the Yoast SEO plugin v3.4 - https://yoast.com/wordpress/plugins/seo/ / Yoast SEO plugin. analytics // node log heroku c9.io localhost end node log →<!-- ebay [if IE]> <![endif][if lt IE 9]> <![endif][if IE 9]> <link rel="stylesheet" type="text/css" media="all" href="http://www.pensando.it/wp/wp-content/themes/woohoo/css/ie9.css" /> <![endif][if IE 8]> <link rel="stylesheet" type="text/css" media="all" href="http://www.pensando.it/wp/wp-content/themes/woohoo/css/ie8.css" /> <![endif][if IE 7]> <link rel="stylesheet" type="text/css" media="all" href="http://www.pensando.it/wp/wp-content/themes/woohoo/css/ie7.css" /> <![endif]
StartFragment
I framework più conosciuti
Detto ciò non posso non citare i principali ossia i più usati e conosciuti tra quelli elencati e sui quali, a mio avviso, è bene porre una particolare attenzione:
AngularJS – https://angularjs.org/
Backbone.js – http://backbonejs.org/
Ember.js – http://emberjs.com/
EndFragment
EndFragment
EndFragment
Come scegliere il giusto framework javascript MVC? This site is optimized with the Yoast SEO plugin v3.4 - https://yoast.com/wordpress/plugins/seo/ / Yoast SEO plugin. analytics // node log heroku c9.io localhost end node log →<!-- ebay [if IE]> <![endif][if lt IE 9]> <![endif][if IE 9]> <link rel="stylesheet" type="text/css" media="all" href="http://www.pensando.it/wp/wp-content/themes/woohoo/css/ie9.css" /> <![endif][if IE 8]> <link rel="stylesheet" type="text/css" media="all" href="http://www.pensando.it/wp/wp-content/themes/woohoo/css/ie8.css" /> <![endif][if IE 7]> <link rel="stylesheet" type="text/css" media="all" href="http://www.pensando.it/wp/wp-content/themes/woohoo/css/ie7.css" /> <![endif]
StartFragmentAngularJSEndFragment
StartFragment
Il primo è il framework di casa Google, probabilmente (ad oggi) il framework con l’appeal migliore tra i tre, di certo quello che presenta una curva di apprendimento più alta ma di sicuro il più richiesto ad oggi sul mercato ed anche il più completo e documentato.
Non ha dipendenze con altre librerie ed è concesso con licenza MIT, questi alcuni riferimenti:
Documentazione ufficiale Google
https://docs.angularjs.org/guide
Tre ottimi tutorial sulle best practice Angular
http://www.artandlogic.com/blog/2013/05/ive-been-doing-it-wrong-part-1-of-3/ http://www.artandlogic.com/blog/2013/05/angularjs-best-practices-ive-been-doing-it-wrong-part-2-of-3/ http://www.artandlogic.com/blog/2013/05/angularjs-best-practices-ive-been-doing-it-wrong-part-3-of-3/
Altro interessante tutorial su come costruire una webapp partendo da un template standard
http://code.tutsplus.com/tutorials/building-a-web-app-from-scratch-in-angularjs–net-32944
EndFragment
EndFragment
This site is optimized with the Yoast SEO plugin v3.4 - https://yoast.com/wordpress/plugins/seo/ / Yoast SEO plugin. analytics // node log heroku c9.io localhost end node log →<!-- ebay [if IE]> <![endif][if lt IE 9]> <![endif][if IE 9]> <link rel="stylesheet" type="text/css" media="all" href="http://www.pensando.it/wp/wp-content/themes/woohoo/css/ie9.css" /> <![endif][if IE 8]> <link rel="stylesheet" type="text/css" media="all" href="http://www.pensando.it/wp/wp-content/themes/woohoo/css/ie8.css" /> <![endif][if IE 7]> <link rel="stylesheet" type="text/css" media="all" href="http://www.pensando.it/wp/wp-content/themes/woohoo/css/ie7.css" /> <![endif]
StartFragmentBackbone.jsEndFragment
StartFragment
Il molti non lo considerano un vero e proprio framework ma più un’ottimo strumento per modellare e strutturare il codice.
Questo è (in parte) vero anche se, a mio avviso, è proprio questa caratteristica a rendere backbone una scelta interessante proprio perché lascia più spazio al programmatore e meno al framework.
Questo a me piace, ma le mie sono solo opinioni ed “affinità” personali.
Fatto è che Backbone, a differenza di Angular, da solo non serve a molto, lo si deve abbinare obbligatoriamente a underscore.js e jquery, inoltre è consigliato abbinarvi altre piccole librerie per “customizzarlo” e renderlo effettivamente un buon prodotto.
Come detto dipende da underscore.js anche se è consigliato includere jquery per il supporto di alcune funzionalità, è concesso con licenza MIT e questi sono alcuni riferimenti:
Documentazione
http://backbonejs.org/#introduction
Alcuni tutorial
http://backbonetutorials.com
This site is optimized with the Yoast SEO plugin v3.4 - https://yoast.com/wordpress/plugins/seo/ / Yoast SEO plugin. analytics // node log heroku c9.io localhost end node log →<!-- ebay [if IE]> <![endif][if lt IE 9]> <![endif][if IE 9]> <link rel="stylesheet" type="text/css" media="all" href="http://www.pensando.it/wp/wp-content/themes/woohoo/css/ie9.css" /> <![endif][if IE 8]> <link rel="stylesheet" type="text/css" media="all" href="http://www.pensando.it/wp/wp-content/themes/woohoo/css/ie8.css" /> <![endif][if IE 7]> <link rel="stylesheet" type="text/css" media="all" href="http://www.pensando.it/wp/wp-content/themes/woohoo/css/ie7.css" /> <![endif]
StartFragmentEmber.jsEndFragment
StartFragment
Relativamente giovane, lo si può approcciare nel caso in cui non si conosca nessun framework e non si abbia il tempo per imparare Angular.js.
Dipende solo da jquery e Handlebars per il templating, è concesso con licenza MIT e questi sono alcuni riferimenti:
Documentazione ufficiale
http://emberjs.com/guides/
Riferimenti ad alcuni tutorial
http://emberjs.com/community/#footer
http://jonathanmh.com/best-javascript-mvc-frameworks-2013-2014/
Come abbiamo visto la scelta di un javascript framework MVC non è semplice per una serie di fattori tra cui la numerosità delle opzioni a disposizione, le caratteristiche del framework stesso, le peculiarità del team di sviluppo e molto altro ancora.
E tu quale framework javascript utilizzi? sapresti consigliarne uno? e perché?
EndFragment
EndFragment