SlideShare uma empresa Scribd logo
1 de 39
MEAN Stack
Kako i kada?
Nenad Pećanac
Serengeti
Sadržaj
1) O MEAN-u
2) Mongo DB
3) Node.JS & Express
4) Angular
5) Kada koristiti MEAN?
6) Kada ne koristiti MEAN?
7) Mean.IO & Mean JS
8) Reference
1) O MEAN-u
MEAN
MEAN je Full stack JS framework - potpuni razvojni okvir
za izradu modernih web stranica i aplikacija.
Sastoji se od 4 tehnologije:
Mongo DB, Express, Angular i Node.JS.
Naziv je 2013. godine smislio Valeri Karpov, član
razvojnog tima Mongo DB-a.
MEAN omogućava ubrzan razvoj JavaScript aplikacija.
MEAN
MEAN je pogodan za brzu izradu prototipova aplikacija.
JS se koristi na serverskoj i klijentskoj strani,
podaci u bazi zapisani su u JSON formatu.
Unaprijed konfigurirani projekti dostupni su
za preuzimanje na
MEAN.JS i MEAN.IO stranicama.
Yeoman – alat za generiranje predložaka
za razvoj internetskih aplikacija.
2) Mongo DB
Mongo DB
Mongo DB – najraširenija NoSQL baza podataka.
Podaci se zapisuju u binarnom JSON formatu – BSON.
BSON - efikasan format za spremanje i pretraživanje podataka.
Mongo DB
Svaki podatak u bazi zapisan je kao Dokument:
Dokumenti se spremaju u Kolekcije.
Kolekcije imaju funkciju kao tablice u relacijskim bazama.
Kolekcije omogućavaju fleksibilniji podatkovni model.
Mongo DB
Kolekcije nemaju kolone kao tablice, ne definiraju stroge
hijerarhijske odnose među podacima.
Podatkovni model moguće je realizirati ugrađivanjem
ili referenciranjem podataka.
Podatkovni modeli koji koriste ugrađivanje
- denormalizirani, omogućavaju brže čitanje.
Podatkovni modeli koji koriste referenciranje
- normalizirani, koriste se za izgradnju hijerarhije.
Mongo DB
Ugrađivanje podataka:
Mongo DB
Referenciranje podataka:
Mongo DB
Nad kolekcijama se grade indeksi i vrše upiti:
Mongo DB
Operacije za agregiranje/sortiranje koriste Map/Reduce
algoritme, čime se postižu visoke performanse.
Mongo DB ima ugrađenu podršku za klastering,
replikaciju, backup, monitoring i HA.
Mongo DB usluge dostupne su u cloudu:
Amazon, IBM, Red Heat, VMWare, MongoLab ...
NoSQL baza nije primjerena kod programskih rješenja
koja zahtjevaju strogu hijerarhiju
i kontrolu nad podacima.
U MEAN-u ju je npr. moguće zamijeniti sa MySQL-om.
3) Node.JS & Express
Node JS
Node.JS je platforma za izradu brzih i skalabilnih mrežnih
aplikacija, izgrađena na Chrome-ovom JS V8 runtime-u.
Node.JS je platforma za server-side JS.
Sadrži asinhrone biblioteke za upravljanje datotekama,
soketima, te za HTTP komunikaciju.
Node.JS koristi efikasan, neblokirajući I/O model obrade podataka.
Prikladan je za brzu razmjenu velike količine podataka
i izradu aplikacija za rad u realnom vremenu,
distribuiranih na različitim uređajima.
Node JS
Node.JS izgrađen je kao platforma, koja se sastoji od raznih
modula, koji implementiraju određene funkcionalnosti.
Npr. za obradu HTTP zahtjeva, potrebno je koristiti HTTP modul:
var http = require('http');
NPM (Node package manager ) je Node-ov upravljač
modulima, koristi se iz komandne linije.
Instaliranje novog modula:
npm install module_name
Node JS
Primjer >Node.JS HTTP server:
// file: http.js:
var http = require("http");
http.createServer(function (request, response) {
request.on("end", function () {
response.writeHead( 200, { 'Content-Type': 'text/plain' });
response.end('Hello HTTP!');
});
}).listen(8080);
// exec: node http.js
Express
Express je minimalističan, brz i efikasan razvojni okvir za izradu
internet aplikacija na Node.JS-u.
Express podržava sve potrebne funkcionalnosti za izradu
single-page, multi-page ili hibridnih web aplikacija.
Također implementira dodatne funkcionalnosti za:
• korištenje ostalih protokola pored HTTP-a
• za autentifikaciju korisnika
• upravljanje greškama
• parsiranje POST zahtjeva
...
Express
Primjer >Node.JS + Express HTTP server:
var express = require('express');
var app = express();
app.get('/helloworld', function(req, res){
res.send('Hello World');
});
var server = app.listen(3000, function() {
console.log('Listening on port %d', server.address().port);
});
Node JS - performanse
Trajanje operacija na serveru:
Node JS - performanse
Mrežne operacije traju višestruko duže od svih ostalih.
Razlog tome je čekanje na izvršavanje I/O operacija na serveru.
Node.JS obrađuje I/O operacije asinkrono, korištenjem
internog thread-poola ili asinkronih I/O API-ja OS-a.
Node JS - performanse
Node.JS ima najbolje performanse kad obrada zahtjeva ne
uključuje CPU intenzivne operacije.
4) Angular
Angular
Google-ov JS MVC framework za razvoj SPA aplikacija.
Angular je zasnovan na pretpostavci da prikaz podataka treba
biti izražen deklarativno, a poslovna logika imperativno.
Angular dorađuje statitčki HTML dodavanjem dinamičkih
atributa i sintakse za predloške, kojima se omogućava
preslikavanje modela podataka na sučelje aplikacije.
Ciljevi:
• Razdvajanje serverskog i klijentskog koda.
• Razdvajanje koda za manipulaciju DOM-om od koda
za upravljanje poslovnom logikom
• Poboljšavanje podrške za testiranje – Karma, Protractor
Angular
Preslikavanje je dvosmjerno, sinkronizacija se odvija automatski.
Komunikacija sa serverom odvija se pozadinski Ajax-om,
podaci se prenose u JSON formatu.
Angular
https://angularjs.org/
<html ng-app>
<head><script src=“angular.js"></script></head>
<body>
<div>
<label>Name:</label>
<input type="text" ng-model="yourName"
placeholder="Enter a name here">
<h1>Hello {{yourName}}!</h1>
</div>
</body>
</html>
Angular
http://tutorialzine.com/2013/08/learn-angularjs-5-examples/
Angular
<form ng-app ng-controller="OrderFormController">
<h1>Services</h1>
<ul><li ng-repeat="service in services"
ng-click="toggleActive(service)"
ng-class="{active:service.active}"> {{service.name}}
<span>{{service.price | currency}}</span>
</li></ul>
<div class="total">Total:
<span>{{total() | currency}}</span>
</div>
</form>
5) Kada koristiti MEAN?
Kada koristiti MEAN?
Prilikom izrade prototipova aplikacija.
Ukoliko se koristi u produkciji, potrebno je ukloniti
CPU-intenzivne operacije iz Event-Loopa
i veliku pažnju posvetiti obradi grešaka,
koja ukoliko je neispravno implementirana može
srušiti server.
Za izradu višekorisničkih, real-time aplikacija kao npr. CHAT.
Za izradu CRUD aplikacija, npr. BLOG.
Za izradu Data-streaming aplikacija.
Za izradu Proxy-a.
6) Kada ne koristiti MEAN?
Kada ne koristiti MEAN?
Za izradu enterprise aplikacija.
Kada su potrebne transakcijske servisne operacije.
Kada je potrebno obavljati CPU-intenzive operacije na serveru.
Kad se zahtjeva stroga relacijska hijerarhija nad modelom
podataka (može se, ali vjerojatno nije dobra ideja).
Node.JS je “mlada” tehnologija, trenutna verzija je 0.10.26.
Mnoga rješenja koja su u drugim tehnologijama standarna
još nisu podržana na Node-u.
7) MEAN.IO & MEAN.JS
MEAN.IO
MEAN.JS
MEAN.JS
Instalacija:
• MongoDB
• Node + NPM
• Git
Postavljanje osnovnog projekta:
• Download Zip arhive projekta
• Kloniranje GitHub projekta
• Yeoman generatori
Yeoman
Generiranje projekta iz komandne linije:
$ npm install -g yo
$ npm install -g generator-meanjs
$ yo meanjs
$ grunt
Generator:
• Skripta za preuzimanje koda i konfiguriranje projekta
• Interakcija s korisnikom
• Prema korisnikovim uputama se konfigurira projekt
• Npr. MeanJS generator nudi opciju instaliranja
osnovnog CRUD modula
8) Reference
Reference
MEAN.IO: http://www.mean.io/
MEAN.JS: http://meanjs.org/
MONGO DB: http://www.mongodb.org/
NODE JS: http://nodejs.org/
EXPRESS: http://expressjs.com/
ANGULAR: https://angularjs.org/
YEOMAN.IO: http://yeoman.io/
SCOTCH.IO: http://scotch.io/

Mais conteúdo relacionado

Destaque

International School Of Media
International School Of MediaInternational School Of Media
International School Of MediaINSM India
 
Технология сооружения пролетных строений из композитных материалов
Технология сооружения пролетных строений из композитных материаловТехнология сооружения пролетных строений из композитных материалов
Технология сооружения пролетных строений из композитных материаловDanny Golnik
 
Ubw APRESENTACAO - Ultimate Business World NO bRASIL
Ubw APRESENTACAO - Ultimate Business World NO bRASILUbw APRESENTACAO - Ultimate Business World NO bRASIL
Ubw APRESENTACAO - Ultimate Business World NO bRASILAna Carter
 
Reverse ajax in 2014
Reverse ajax in 2014Reverse ajax in 2014
Reverse ajax in 2014Nenad Pecanac
 
Implications of Climate Change
Implications of Climate ChangeImplications of Climate Change
Implications of Climate ChangeTanmay Srivastava
 
Microservice Architecture JavaCro 2015
Microservice Architecture JavaCro 2015Microservice Architecture JavaCro 2015
Microservice Architecture JavaCro 2015Nenad Pecanac
 

Destaque (9)

Champions yacht club ppt
Champions yacht club pptChampions yacht club ppt
Champions yacht club ppt
 
International School Of Media
International School Of MediaInternational School Of Media
International School Of Media
 
Технология сооружения пролетных строений из композитных материалов
Технология сооружения пролетных строений из композитных материаловТехнология сооружения пролетных строений из композитных материалов
Технология сооружения пролетных строений из композитных материалов
 
Burdwan
BurdwanBurdwan
Burdwan
 
Ubw APRESENTACAO - Ultimate Business World NO bRASIL
Ubw APRESENTACAO - Ultimate Business World NO bRASILUbw APRESENTACAO - Ultimate Business World NO bRASIL
Ubw APRESENTACAO - Ultimate Business World NO bRASIL
 
ES6 - JavaCro 2016
ES6 - JavaCro 2016ES6 - JavaCro 2016
ES6 - JavaCro 2016
 
Reverse ajax in 2014
Reverse ajax in 2014Reverse ajax in 2014
Reverse ajax in 2014
 
Implications of Climate Change
Implications of Climate ChangeImplications of Climate Change
Implications of Climate Change
 
Microservice Architecture JavaCro 2015
Microservice Architecture JavaCro 2015Microservice Architecture JavaCro 2015
Microservice Architecture JavaCro 2015
 

Semelhante a Mean Stack JavaCro 2014

Panel diskusija - usporedba Web frameworka (IT Showoff)
Panel diskusija - usporedba Web frameworka (IT Showoff)Panel diskusija - usporedba Web frameworka (IT Showoff)
Panel diskusija - usporedba Web frameworka (IT Showoff)IT Showoff
 
WebUG - Hibridne mobilne aplikacije
WebUG - Hibridne mobilne aplikacijeWebUG - Hibridne mobilne aplikacije
WebUG - Hibridne mobilne aplikacijeMatija Šmalcelj
 
Auditing of user activity through NoSQL database
Auditing of user activity through NoSQL databaseAuditing of user activity through NoSQL database
Auditing of user activity through NoSQL databaseKristijan Duvnjak
 
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 11.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 11. [TVZ računarstvo] Dinamičke web aplikacije, predavanje 11.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 11. Stipe Predanic
 
Angular 2 and TypeScript - 2016 Dump Day
Angular 2 and TypeScript - 2016 Dump DayAngular 2 and TypeScript - 2016 Dump Day
Angular 2 and TypeScript - 2016 Dump DayNETMedia
 
Mob Ellposs - projektna dokumentacija
Mob Ellposs - projektna dokumentacijaMob Ellposs - projektna dokumentacija
Mob Ellposs - projektna dokumentacijaSlaven Brumec
 
POSLOVNE PROGRAMSKE APLIKACIJE I MIGRACIJE BAZA.pptx
POSLOVNE PROGRAMSKE APLIKACIJE I MIGRACIJE BAZA.pptxPOSLOVNE PROGRAMSKE APLIKACIJE I MIGRACIJE BAZA.pptx
POSLOVNE PROGRAMSKE APLIKACIJE I MIGRACIJE BAZA.pptxLarlochLes
 
GraphQL & Laravel - Efikasni API servisi
GraphQL & Laravel - Efikasni API servisiGraphQL & Laravel - Efikasni API servisi
GraphQL & Laravel - Efikasni API servisiPedja Jevtic
 
JavaCro14: Pakiranje i instalacija JEE rješenja
JavaCro14: Pakiranje i instalacija JEE rješenjaJavaCro14: Pakiranje i instalacija JEE rješenja
JavaCro14: Pakiranje i instalacija JEE rješenjaMiroslav Resetar
 
Web App Security for Devs
Web App Security for DevsWeb App Security for Devs
Web App Security for DevsAxilis
 
Web App Security for Devs
Web App Security for DevsWeb App Security for Devs
Web App Security for DevsVedran Maršić
 
Zašto nam treba PaaS u Srcu?
Zašto nam treba PaaS u Srcu?Zašto nam treba PaaS u Srcu?
Zašto nam treba PaaS u Srcu?Denis Kranjčec
 

Semelhante a Mean Stack JavaCro 2014 (20)

Panel diskusija - usporedba Web frameworka (IT Showoff)
Panel diskusija - usporedba Web frameworka (IT Showoff)Panel diskusija - usporedba Web frameworka (IT Showoff)
Panel diskusija - usporedba Web frameworka (IT Showoff)
 
JavaCro'14 - Auditing of user activity through NoSQL database – Kristijan Duv...
JavaCro'14 - Auditing of user activity through NoSQL database – Kristijan Duv...JavaCro'14 - Auditing of user activity through NoSQL database – Kristijan Duv...
JavaCro'14 - Auditing of user activity through NoSQL database – Kristijan Duv...
 
Javantura Zagreb 2014 - Alfresco-Neo4j integracija - Damir Murat
Javantura Zagreb 2014 - Alfresco-Neo4j integracija - Damir MuratJavantura Zagreb 2014 - Alfresco-Neo4j integracija - Damir Murat
Javantura Zagreb 2014 - Alfresco-Neo4j integracija - Damir Murat
 
WebUG - Hibridne mobilne aplikacije
WebUG - Hibridne mobilne aplikacijeWebUG - Hibridne mobilne aplikacije
WebUG - Hibridne mobilne aplikacije
 
Auditing of user activity through NoSQL database
Auditing of user activity through NoSQL databaseAuditing of user activity through NoSQL database
Auditing of user activity through NoSQL database
 
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 11.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 11. [TVZ računarstvo] Dinamičke web aplikacije, predavanje 11.
[TVZ računarstvo] Dinamičke web aplikacije, predavanje 11.
 
Uvod u aplikacije - Luka Mandić
Uvod u aplikacije - Luka MandićUvod u aplikacije - Luka Mandić
Uvod u aplikacije - Luka Mandić
 
Angular 2 and TypeScript - 2016 Dump Day
Angular 2 and TypeScript - 2016 Dump DayAngular 2 and TypeScript - 2016 Dump Day
Angular 2 and TypeScript - 2016 Dump Day
 
Mob Ellposs - projektna dokumentacija
Mob Ellposs - projektna dokumentacijaMob Ellposs - projektna dokumentacija
Mob Ellposs - projektna dokumentacija
 
SQL Azure
SQL AzureSQL Azure
SQL Azure
 
JavaCro'15 - Enterprise service bus - Juraj Ćutić
JavaCro'15 - Enterprise service bus - Juraj ĆutićJavaCro'15 - Enterprise service bus - Juraj Ćutić
JavaCro'15 - Enterprise service bus - Juraj Ćutić
 
Osnovno o HTM-u
Osnovno o HTM-uOsnovno o HTM-u
Osnovno o HTM-u
 
JavaCro'14 - Packaging and installing of the JEE solution – Miroslav Rešetar
JavaCro'14 - Packaging and installing of the JEE solution – Miroslav RešetarJavaCro'14 - Packaging and installing of the JEE solution – Miroslav Rešetar
JavaCro'14 - Packaging and installing of the JEE solution – Miroslav Rešetar
 
POSLOVNE PROGRAMSKE APLIKACIJE I MIGRACIJE BAZA.pptx
POSLOVNE PROGRAMSKE APLIKACIJE I MIGRACIJE BAZA.pptxPOSLOVNE PROGRAMSKE APLIKACIJE I MIGRACIJE BAZA.pptx
POSLOVNE PROGRAMSKE APLIKACIJE I MIGRACIJE BAZA.pptx
 
GraphQL & Laravel - Efikasni API servisi
GraphQL & Laravel - Efikasni API servisiGraphQL & Laravel - Efikasni API servisi
GraphQL & Laravel - Efikasni API servisi
 
JavaCro14: Pakiranje i instalacija JEE rješenja
JavaCro14: Pakiranje i instalacija JEE rješenjaJavaCro14: Pakiranje i instalacija JEE rješenja
JavaCro14: Pakiranje i instalacija JEE rješenja
 
Principi rada WWW-a
Principi rada WWW-aPrincipi rada WWW-a
Principi rada WWW-a
 
Web App Security for Devs
Web App Security for DevsWeb App Security for Devs
Web App Security for Devs
 
Web App Security for Devs
Web App Security for DevsWeb App Security for Devs
Web App Security for Devs
 
Zašto nam treba PaaS u Srcu?
Zašto nam treba PaaS u Srcu?Zašto nam treba PaaS u Srcu?
Zašto nam treba PaaS u Srcu?
 

Mean Stack JavaCro 2014

  • 1. MEAN Stack Kako i kada? Nenad Pećanac Serengeti
  • 2. Sadržaj 1) O MEAN-u 2) Mongo DB 3) Node.JS & Express 4) Angular 5) Kada koristiti MEAN? 6) Kada ne koristiti MEAN? 7) Mean.IO & Mean JS 8) Reference
  • 4. MEAN MEAN je Full stack JS framework - potpuni razvojni okvir za izradu modernih web stranica i aplikacija. Sastoji se od 4 tehnologije: Mongo DB, Express, Angular i Node.JS. Naziv je 2013. godine smislio Valeri Karpov, član razvojnog tima Mongo DB-a. MEAN omogućava ubrzan razvoj JavaScript aplikacija.
  • 5. MEAN MEAN je pogodan za brzu izradu prototipova aplikacija. JS se koristi na serverskoj i klijentskoj strani, podaci u bazi zapisani su u JSON formatu. Unaprijed konfigurirani projekti dostupni su za preuzimanje na MEAN.JS i MEAN.IO stranicama. Yeoman – alat za generiranje predložaka za razvoj internetskih aplikacija.
  • 7. Mongo DB Mongo DB – najraširenija NoSQL baza podataka. Podaci se zapisuju u binarnom JSON formatu – BSON. BSON - efikasan format za spremanje i pretraživanje podataka.
  • 8. Mongo DB Svaki podatak u bazi zapisan je kao Dokument: Dokumenti se spremaju u Kolekcije. Kolekcije imaju funkciju kao tablice u relacijskim bazama. Kolekcije omogućavaju fleksibilniji podatkovni model.
  • 9. Mongo DB Kolekcije nemaju kolone kao tablice, ne definiraju stroge hijerarhijske odnose među podacima. Podatkovni model moguće je realizirati ugrađivanjem ili referenciranjem podataka. Podatkovni modeli koji koriste ugrađivanje - denormalizirani, omogućavaju brže čitanje. Podatkovni modeli koji koriste referenciranje - normalizirani, koriste se za izgradnju hijerarhije.
  • 12. Mongo DB Nad kolekcijama se grade indeksi i vrše upiti:
  • 13. Mongo DB Operacije za agregiranje/sortiranje koriste Map/Reduce algoritme, čime se postižu visoke performanse. Mongo DB ima ugrađenu podršku za klastering, replikaciju, backup, monitoring i HA. Mongo DB usluge dostupne su u cloudu: Amazon, IBM, Red Heat, VMWare, MongoLab ... NoSQL baza nije primjerena kod programskih rješenja koja zahtjevaju strogu hijerarhiju i kontrolu nad podacima. U MEAN-u ju je npr. moguće zamijeniti sa MySQL-om.
  • 14. 3) Node.JS & Express
  • 15. Node JS Node.JS je platforma za izradu brzih i skalabilnih mrežnih aplikacija, izgrađena na Chrome-ovom JS V8 runtime-u. Node.JS je platforma za server-side JS. Sadrži asinhrone biblioteke za upravljanje datotekama, soketima, te za HTTP komunikaciju. Node.JS koristi efikasan, neblokirajući I/O model obrade podataka. Prikladan je za brzu razmjenu velike količine podataka i izradu aplikacija za rad u realnom vremenu, distribuiranih na različitim uređajima.
  • 16. Node JS Node.JS izgrađen je kao platforma, koja se sastoji od raznih modula, koji implementiraju određene funkcionalnosti. Npr. za obradu HTTP zahtjeva, potrebno je koristiti HTTP modul: var http = require('http'); NPM (Node package manager ) je Node-ov upravljač modulima, koristi se iz komandne linije. Instaliranje novog modula: npm install module_name
  • 17. Node JS Primjer >Node.JS HTTP server: // file: http.js: var http = require("http"); http.createServer(function (request, response) { request.on("end", function () { response.writeHead( 200, { 'Content-Type': 'text/plain' }); response.end('Hello HTTP!'); }); }).listen(8080); // exec: node http.js
  • 18. Express Express je minimalističan, brz i efikasan razvojni okvir za izradu internet aplikacija na Node.JS-u. Express podržava sve potrebne funkcionalnosti za izradu single-page, multi-page ili hibridnih web aplikacija. Također implementira dodatne funkcionalnosti za: • korištenje ostalih protokola pored HTTP-a • za autentifikaciju korisnika • upravljanje greškama • parsiranje POST zahtjeva ...
  • 19. Express Primjer >Node.JS + Express HTTP server: var express = require('express'); var app = express(); app.get('/helloworld', function(req, res){ res.send('Hello World'); }); var server = app.listen(3000, function() { console.log('Listening on port %d', server.address().port); });
  • 20. Node JS - performanse Trajanje operacija na serveru:
  • 21. Node JS - performanse Mrežne operacije traju višestruko duže od svih ostalih. Razlog tome je čekanje na izvršavanje I/O operacija na serveru. Node.JS obrađuje I/O operacije asinkrono, korištenjem internog thread-poola ili asinkronih I/O API-ja OS-a.
  • 22. Node JS - performanse Node.JS ima najbolje performanse kad obrada zahtjeva ne uključuje CPU intenzivne operacije.
  • 24. Angular Google-ov JS MVC framework za razvoj SPA aplikacija. Angular je zasnovan na pretpostavci da prikaz podataka treba biti izražen deklarativno, a poslovna logika imperativno. Angular dorađuje statitčki HTML dodavanjem dinamičkih atributa i sintakse za predloške, kojima se omogućava preslikavanje modela podataka na sučelje aplikacije. Ciljevi: • Razdvajanje serverskog i klijentskog koda. • Razdvajanje koda za manipulaciju DOM-om od koda za upravljanje poslovnom logikom • Poboljšavanje podrške za testiranje – Karma, Protractor
  • 25. Angular Preslikavanje je dvosmjerno, sinkronizacija se odvija automatski. Komunikacija sa serverom odvija se pozadinski Ajax-om, podaci se prenose u JSON formatu.
  • 26. Angular https://angularjs.org/ <html ng-app> <head><script src=“angular.js"></script></head> <body> <div> <label>Name:</label> <input type="text" ng-model="yourName" placeholder="Enter a name here"> <h1>Hello {{yourName}}!</h1> </div> </body> </html>
  • 28. Angular <form ng-app ng-controller="OrderFormController"> <h1>Services</h1> <ul><li ng-repeat="service in services" ng-click="toggleActive(service)" ng-class="{active:service.active}"> {{service.name}} <span>{{service.price | currency}}</span> </li></ul> <div class="total">Total: <span>{{total() | currency}}</span> </div> </form>
  • 30. Kada koristiti MEAN? Prilikom izrade prototipova aplikacija. Ukoliko se koristi u produkciji, potrebno je ukloniti CPU-intenzivne operacije iz Event-Loopa i veliku pažnju posvetiti obradi grešaka, koja ukoliko je neispravno implementirana može srušiti server. Za izradu višekorisničkih, real-time aplikacija kao npr. CHAT. Za izradu CRUD aplikacija, npr. BLOG. Za izradu Data-streaming aplikacija. Za izradu Proxy-a.
  • 31. 6) Kada ne koristiti MEAN?
  • 32. Kada ne koristiti MEAN? Za izradu enterprise aplikacija. Kada su potrebne transakcijske servisne operacije. Kada je potrebno obavljati CPU-intenzive operacije na serveru. Kad se zahtjeva stroga relacijska hijerarhija nad modelom podataka (može se, ali vjerojatno nije dobra ideja). Node.JS je “mlada” tehnologija, trenutna verzija je 0.10.26. Mnoga rješenja koja su u drugim tehnologijama standarna još nisu podržana na Node-u.
  • 33. 7) MEAN.IO & MEAN.JS
  • 36. MEAN.JS Instalacija: • MongoDB • Node + NPM • Git Postavljanje osnovnog projekta: • Download Zip arhive projekta • Kloniranje GitHub projekta • Yeoman generatori
  • 37. Yeoman Generiranje projekta iz komandne linije: $ npm install -g yo $ npm install -g generator-meanjs $ yo meanjs $ grunt Generator: • Skripta za preuzimanje koda i konfiguriranje projekta • Interakcija s korisnikom • Prema korisnikovim uputama se konfigurira projekt • Npr. MeanJS generator nudi opciju instaliranja osnovnog CRUD modula
  • 39. Reference MEAN.IO: http://www.mean.io/ MEAN.JS: http://meanjs.org/ MONGO DB: http://www.mongodb.org/ NODE JS: http://nodejs.org/ EXPRESS: http://expressjs.com/ ANGULAR: https://angularjs.org/ YEOMAN.IO: http://yeoman.io/ SCOTCH.IO: http://scotch.io/