MEAN STACK
TOPICS
• Introduction
• What is LAMP?
• Requirements for a modern web
• What is MEAN?
• What is MongoDB?
• What is Express?
• What is Angular JS?
• What is Node.JS?
• Disadvantages of MEAN STACK
• Conclusion
• Any Questions?
INTRODUCTION
• MEAN is an opinionated full stack JavaScript
framework which simplifies and accelerates web
application development.
• MEAN represents a major shift in architecture
and mental models — from relational databases
to NoSQL and from server-side Model-View-
Controller to client-side, single-page applications.
• MEAN is an acronym for Mongo DB, Express JS,
Angular JS and Node. Js.
WHAT IS LAMP?
• Linux
• Apache
• MySQL
• PHP
• LAMP stack is a popular open source web platform
commonly used to run dynamic web sites and servers.
• It includes Linux, Apache, MySQL, and PHP/Python/Perl
and is considered by many the platform of choice for
development and deployment of high performance
web applications which require a solid and reliable
foundation.
PROBLEMS WITH LAMP
• Apache is not the fastest web server around
• It’s hard to write good-to-read, reusable and
fast PHP code
• Frontend works with other languages than
the backend
• Too many conversions (XML to PHP to HTML,
model to SQL)
• There is no separated server-side and client-
side development
WHAT IS MEAN STACK?
• MEAN Stack is a full-stack JavaScript solution
that helps you build fast, robust and
maintainable production web applications
using MongoDB, Express, AngularJS, and
Node.js.
PROCESSING MODEL
MONGO DB
• MongoDB is a cross-platform document-
oriented database - classified as a NoSQL
database which eschews the traditional table-
based relational database structure in favour
of JSON-like documents with dynamic
schemas.
WHAT IS MONGO DB
STACK?
• Developed by software company 10gen (now
MongoDB Inc.)
• Fast NoSQL schemaless database written in C++
• Document-Oriented Storage o JSON-style
documents with dynamic schemas
• Full Index Support o Index on any attribute o
Replication & High Availability
• Auto-Sharding o Scale horizontally without
compromising functionality
MONGODB RDBMS
Collection Table
Document Row
Index Index
Embedded Document Join
Reference Foreign Key
EXAMPLE
• db.mycol.insert({ _id:
ObjectId(7df78ad8902c), title: 'MongoDB
Overview', description: 'MongoDB is no sql
database', by: 'tutorials point', url:
'http://www.tutorialspoint. com', tags:
['mongodb', 'database', 'NoSQL'], likes: 100 })
Simple Collection
ADVANTAGES &
DISADVANTAGES
Advantages
• Lightening fast.
• Auto sharding.
• Replication is very easy.
• You can perform rich queries, can create on
the fly indexes with a single command.
Disadvantages
• Very unreliable
• Indexes take up a lot of RAM. o B-tree indexes
Express JS
• Express is a minimal and flexible node.js web
application framework, providing a robust set
of features for building single and multi-page,
and hybrid web applications.
WHAT IS EXPRESS?
• Node JS based web framework
• Based on connect middleware
• Makes usage of Node JS even easier
• Easy to implement REST API
• Easy to implement session management
• Supports several template rendering engines
(Jade, EJS) o Supports partials -> so you can split
your HTML in fragments
• Asynchronous
• Implements MVC pattern
EXAMPLE
var express = require('express');
var app = express();
app.get('/', function (req, res) { res.send('Hello
World!'); });
app.listen(3000, function () {
console.log('Example app listening on port
3000!'); });
ADVANTAGES &
DISADVANTAGES
Advantages
.Regardless of complexity, there should be very few
roadblocks if you know JavaScript well.
• Supports concurrency well.
• Fast and the performance is comparable with Golang
micro frameworks and Elixir's Phoenix.
Disadvantages
There is no built in error handling methods.
WHAT IS ANGULAR?
• AngularJS is an open-source JavaScript
framework, maintained by Google, that assists
with running single-page applications.
• Its goal is to augment browser-based
applications with model–view–controller
(MVC) capability, in an effort to make both
development and testing easier.
ANGULAR JS
• JavaScript framework developed by Google
• • Based on Model-View-* Pattern (client-side)
o MVC/MVVM
o Bi-Directional Data Binding
• Declarative Programming (focus on what – not the how!)
o Directives are integrated in HTML directly
o DOM Manipulations completely hidden
• Great for Frontend development
o Great for SPA (Single Page Applications)
o Great for mobile apps
• Very modular and extensible
o Makes testing an ease
• Great Browser support (> IE8)
ANGULAR Directives
• ng-app
o Declares an element as a root element of the application allowing
behaviour to be modified through custom HTML tags.
• ng-bind
o Automatically changes the text of a HTML element to the value of
a given expression.
• ng-model
o Similar to ng-bind, but allows two-way data binding between the
view and the scope.
• ng-controller
o Specifies a JavaScript controller class that evaluates HTML
expressions.
-Advantages
Fast development
Makes developing SPA easy
Awesome performance
Make apps scalable
-Disadvantages
Good for IO driven apps only (not games)
NODE JS
• Node.js is a platform built on Chrome's
JavaScript runtime for easily building fast,
scalable network applications.
• Node.js uses an event-driven, non-blocking
I/O model that makes it lightweight and
efficient, perfect for data-intensive real-time
applications that run across distributed
devices.
WHAT IS NODEJS
• Written in C/C++ o Can also use C libraries
• Built on top of Chrome’s V8 engine – so pure
JavaScript!
o Therefore based on latest ECMAScript 5
• Framework to build asynchronous I/O
applications
• Single Threaded – no concurrency bugs – no
deadlocks!
o Not internally though – but we’ll get to that
• One node process = one CPU Core
EXAMPLE
var http = require('http');
http.createServer(function (req, res)
{ res.writeHead(200, {'Content-Type':
'text/plain'});
res.end('HelloWorldn'); }).listen(80);
console.log('Server listening on port 80');
ADVANTAGES &
DISADVANTAGES
-Advantages
• Node.js is fast
• The ever-growing NPM
• Real-time web apps
• Productivity
-Disadvantages
• JavaScript's semantics and culture
DISADVANTAGES OF
MEAN STACK
• There are still no general JS coding guidelines
• MongoDB is not as robust as an SQL server o
This security is what they sacrifice to gain
speed
• Once you’ve created the first site with this
technology, it’s hard to go back to the old
approach
CONCLUSION
• In the end, Mean is a full stack, Javascript,
web application framework. If you require a
fast, easy, simple way to create a modern,
responsive, dynamic web site then MEAN
would be a great solution.
REFERENCES
• http://www.mean.io
• https://angularjs.org
• http://mongodb.org
• https://nodejs.org
• http://expressjs.com
• http://slideshare.net
ANY QUESTIONS?
THANK YOU

Mean stack

  • 1.
  • 2.
    TOPICS • Introduction • Whatis LAMP? • Requirements for a modern web • What is MEAN? • What is MongoDB? • What is Express? • What is Angular JS? • What is Node.JS? • Disadvantages of MEAN STACK • Conclusion • Any Questions?
  • 3.
    INTRODUCTION • MEAN isan opinionated full stack JavaScript framework which simplifies and accelerates web application development. • MEAN represents a major shift in architecture and mental models — from relational databases to NoSQL and from server-side Model-View- Controller to client-side, single-page applications. • MEAN is an acronym for Mongo DB, Express JS, Angular JS and Node. Js.
  • 4.
    WHAT IS LAMP? •Linux • Apache • MySQL • PHP • LAMP stack is a popular open source web platform commonly used to run dynamic web sites and servers. • It includes Linux, Apache, MySQL, and PHP/Python/Perl and is considered by many the platform of choice for development and deployment of high performance web applications which require a solid and reliable foundation.
  • 5.
    PROBLEMS WITH LAMP •Apache is not the fastest web server around • It’s hard to write good-to-read, reusable and fast PHP code • Frontend works with other languages than the backend • Too many conversions (XML to PHP to HTML, model to SQL) • There is no separated server-side and client- side development
  • 6.
    WHAT IS MEANSTACK? • MEAN Stack is a full-stack JavaScript solution that helps you build fast, robust and maintainable production web applications using MongoDB, Express, AngularJS, and Node.js.
  • 7.
  • 8.
    MONGO DB • MongoDBis a cross-platform document- oriented database - classified as a NoSQL database which eschews the traditional table- based relational database structure in favour of JSON-like documents with dynamic schemas.
  • 9.
    WHAT IS MONGODB STACK? • Developed by software company 10gen (now MongoDB Inc.) • Fast NoSQL schemaless database written in C++ • Document-Oriented Storage o JSON-style documents with dynamic schemas • Full Index Support o Index on any attribute o Replication & High Availability • Auto-Sharding o Scale horizontally without compromising functionality
  • 10.
    MONGODB RDBMS Collection Table DocumentRow Index Index Embedded Document Join Reference Foreign Key
  • 11.
    EXAMPLE • db.mycol.insert({ _id: ObjectId(7df78ad8902c),title: 'MongoDB Overview', description: 'MongoDB is no sql database', by: 'tutorials point', url: 'http://www.tutorialspoint. com', tags: ['mongodb', 'database', 'NoSQL'], likes: 100 })
  • 12.
  • 13.
    ADVANTAGES & DISADVANTAGES Advantages • Lighteningfast. • Auto sharding. • Replication is very easy. • You can perform rich queries, can create on the fly indexes with a single command. Disadvantages • Very unreliable • Indexes take up a lot of RAM. o B-tree indexes
  • 14.
    Express JS • Expressis a minimal and flexible node.js web application framework, providing a robust set of features for building single and multi-page, and hybrid web applications.
  • 15.
    WHAT IS EXPRESS? •Node JS based web framework • Based on connect middleware • Makes usage of Node JS even easier • Easy to implement REST API • Easy to implement session management • Supports several template rendering engines (Jade, EJS) o Supports partials -> so you can split your HTML in fragments • Asynchronous • Implements MVC pattern
  • 16.
    EXAMPLE var express =require('express'); var app = express(); app.get('/', function (req, res) { res.send('Hello World!'); }); app.listen(3000, function () { console.log('Example app listening on port 3000!'); });
  • 17.
    ADVANTAGES & DISADVANTAGES Advantages .Regardless ofcomplexity, there should be very few roadblocks if you know JavaScript well. • Supports concurrency well. • Fast and the performance is comparable with Golang micro frameworks and Elixir's Phoenix. Disadvantages There is no built in error handling methods.
  • 18.
    WHAT IS ANGULAR? •AngularJS is an open-source JavaScript framework, maintained by Google, that assists with running single-page applications. • Its goal is to augment browser-based applications with model–view–controller (MVC) capability, in an effort to make both development and testing easier.
  • 19.
    ANGULAR JS • JavaScriptframework developed by Google • • Based on Model-View-* Pattern (client-side) o MVC/MVVM o Bi-Directional Data Binding • Declarative Programming (focus on what – not the how!) o Directives are integrated in HTML directly o DOM Manipulations completely hidden • Great for Frontend development o Great for SPA (Single Page Applications) o Great for mobile apps • Very modular and extensible o Makes testing an ease • Great Browser support (> IE8)
  • 20.
    ANGULAR Directives • ng-app oDeclares an element as a root element of the application allowing behaviour to be modified through custom HTML tags. • ng-bind o Automatically changes the text of a HTML element to the value of a given expression. • ng-model o Similar to ng-bind, but allows two-way data binding between the view and the scope. • ng-controller o Specifies a JavaScript controller class that evaluates HTML expressions.
  • 21.
    -Advantages Fast development Makes developingSPA easy Awesome performance Make apps scalable -Disadvantages Good for IO driven apps only (not games)
  • 22.
    NODE JS • Node.jsis a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. • Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.
  • 23.
    WHAT IS NODEJS •Written in C/C++ o Can also use C libraries • Built on top of Chrome’s V8 engine – so pure JavaScript! o Therefore based on latest ECMAScript 5 • Framework to build asynchronous I/O applications • Single Threaded – no concurrency bugs – no deadlocks! o Not internally though – but we’ll get to that • One node process = one CPU Core
  • 24.
    EXAMPLE var http =require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('HelloWorldn'); }).listen(80); console.log('Server listening on port 80');
  • 25.
    ADVANTAGES & DISADVANTAGES -Advantages • Node.jsis fast • The ever-growing NPM • Real-time web apps • Productivity -Disadvantages • JavaScript's semantics and culture
  • 26.
    DISADVANTAGES OF MEAN STACK •There are still no general JS coding guidelines • MongoDB is not as robust as an SQL server o This security is what they sacrifice to gain speed • Once you’ve created the first site with this technology, it’s hard to go back to the old approach
  • 27.
    CONCLUSION • In theend, Mean is a full stack, Javascript, web application framework. If you require a fast, easy, simple way to create a modern, responsive, dynamic web site then MEAN would be a great solution.
  • 28.
    REFERENCES • http://www.mean.io • https://angularjs.org •http://mongodb.org • https://nodejs.org • http://expressjs.com • http://slideshare.net
  • 29.
  • 30.