From LAMP to MEAN

MEAN – is more than a simple rearrangement of acronym letters in a new stack name. Understanding the role each technology plays behind each letter is crucial when moving from LAMP to MEAN for web development. Whether you’re looking for consolidation of technologies or to leverage in-house JavaScript expertise, the MEAN stack can offer a lot to a flexible web development organization

Let’s break down the alphabet soup and talk about some highlights for each of these components.

MongoDB

MongoDB is a new approach to data management. Instead of a structured relational database MongoDB brings a “document” focused approach to data. The transition from a traditional database, such as MySQL, to document-oriented NoSQL-store, such as MongoDB, represents a fundamental shift in the strategy of persistence. You spend less time on transformation logic, because MongoDB emits JavaScript Object Notation (JSON) natively. And, writing RESTful web services is easier than ever.

Express

Express allows you to control and routing / page generation on the server side, but now – thanks to AngularJS – emphasis on the presentation to the client. This change is not simply the transfer of your artifacts (Model-View-Controller (MVC)) from the server to the client device. It also provides primary benefits via these scripts to a simplified back-end architecture. For example, Express.js weighs in at only 1,143 lines of code – and a purely client-side presentation layer in AngularJS that can be easily embedded into any existing web application. And, perhaps most important – is the movement from page-based applications to the component-oriented applications.

AngularJS

AngularJS is an open source JavaScript-framework that uses pattern MVC. Actually, the use of MVC is one of its distinguishing features. This provides for a interaction with the interface using declarative programming and business logic separate from the UI code that improves application testability and scalability. Another distinctive feature of the framework is a two-way binding, allowing dynamic changes to the data in one place in the interface when the data model is in another. The result – AngularJS synchronizes the model and the view. Furthermore, AngularJS supports functionality such as Ajax, struktoroy control DOM, animation, templates, routing, and more. The strength of the framework, the availability of rich functionality is largely influenced by the fact that it finds its usage in an increasing number of Web applications and, at the moment, is probably one of the most popular javascript-frameworks.

NodeJS

Node.js replaces the Apache component of the LAMP stack and acts as a platform independent web server that is completely portable and highly configurable. But Node.js is much more than just a web server. In fact, a complete application is not deployed on a separate web server. Instead, the web server is included in the application and is automatically installed as part of the MEAN stack. As a result, the deployment process is greatly simplified, since the required version of web server is clearly defined, along with the rest of the run-time dependencies. But the main shift between the LAMP and MEAN is to move from traditional generation of pages on the server side to a focus on one-page application (SPA) execution on the client side.

Now that we have talked about what the components are, another key feature and value of the MEAN Stack is that it’s not “locked up” for mobile applications – this stack works equally well on desktops and laptops, smartphones and tablets, and even smart TVs. Importantly, this “works everywhere” approach is fundamental because the MEAN stack does not refer to new devices as second-class citizens. And testing is no longer an afterthought: using world-class test platforms such as MochaJS, JasmineJS and KarmaJS, you can write thorough and comprehensive test suites for its MEAN-applications.

So are you ready to master MEAN?

For more information and another take on the MEAN stack, check out

http://blog.backand.com/mean-vs-lamp/