Why MEAN.JS Matters to Enterprise

bluefletch changes

Many enterprise leaders today are struggling to make sense of the many options available within the modern web. Very powerful community solutions exist for common problems encountered in modern web development, but the trick is weaving these open source projects together to form a full-stack solution that allows the enterprise to focus on solving business problems.

MEAN.JS is an integrated solution built based on the community’s experience building full-stack JavaScript applications. It helps you build fast, robust and maintainable production web applications using MongoDB, Express, AngularJS, and Node.js. It also leverages Grunt, Bower, and NPM to integrate these technologies into a robust development platform. MEAN.JS will help you avoid useless grunt work and common pitfalls, while keeping your application organized. It will allow rapid prototyping to quickly determine the value of your application before you spend a lot of money on it. The stack only requires JavaScript skills and its technologies are hot- so finding talent will be easier.

MEAN.JS has matured, can handle enterprise demands and supports automated testing which will improve both your quality and agility.

Below is an overview of the primary technologies used by MEAN.JS:

Front End

AngularJS is a very popular MVC application framework for building dynamic applications. It controls Bootstrap views by reacting to user input and loading data from the backend via REST services.

Bootstrap 3 is the most popular front-end css framework for developing responsive, mobile first projects on the web. It is primarily used for creating views.

Back End

MongoDB is an open-source, document-oriented database designed for ease of development and scaling. It is the backing store for models that are exposed by the REST service. Mongoose is also included in the stack and helps translate data in the MongoDB database to JavaScript objects for use in your application.

Express is a minimal and flexible node.js web application framework, providing a robust set of features for building single / multi-page and hybrid web applications. It provides a simple web server to host your REST API and dynamically serves the root index page.

NodeJS 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. It provides the server side libraries that power Express and can be extended with additional NPM modules.

Tools

Grunt is the ultimate build tool that works seamlessly across Mac and Windows. The Grunt ecosystem is huge and it’s growing every day. With literally hundreds of plugins to choose from, you can use Grunt to automate just about anything with a minimum of effort.

Here are some common tasks where Grunt can help

  • Asset minification / bundling
  • ATL JS/CSS watch transpiler
  • Local Webserver
  • JS Hint
  • Auto-Testing
  • Custom Build Rules

Yeoman allows application scaffolding with code generators. The tool can save developers a lot of time and help encourage following best practices.

Bower is the package manager for web dependencies. It allows easy inclusion and versioning of libraries like JQuery, Underscore, etc…

NPM is the package manager for NodeJS dependencies. It makes upgrading/versioning NodeJS modules a breeze.

The Full Stack

Benefits

1) Save Time Getting Started

The research for combining various JavaScript libraries that work well together has been done for you. Time saved here will allow you to focus on building valuable applications for your organization.

2) Leverage Community Experience

The community has been building complex web applications using these JavaScript libraries for quite a while. MEAN.JS passes this experience on to you with an easily digestible template that shows you the best practices for organizing your application. Your team can avoid common pitfalls that the community endured as they applied these technologies.

3) Fail Quickly/Cheaply

A prototype can be rapidly created with MEAN.JS. The prototype can test the value of your application before you invest a lot in it. After you prove the value proposition you can have more confidence that further investment will be worthwhile. The MEAN.JS stack is scalable for solving many business problems. However, if your particular problem will not scale, you could plugin a different backing store or provider for your REST services. The architecture will enable this agility while also giving you early feedback on the value of your application.

4) Unify Front/Back End

Developers can use JavaScript on the front/back end. Code that translates from Java/C# models to JavaScript is no longer needed. Developers can specialize in JavaScript, which allows more flexible resource allocation and lower training cost.

5) Utilize Proven Technologies

The technologies in MEAN.JS are well established and ready to handle the challenges your business faces. Several large companies are leveraging NodeJS with great success. NodeJS has allowed these companies to rapidly develop scalable solutions that are easier to maintain.

6) Automated Testing

The architecture is setup to support automated testing. Automated testing can greatly increase the agility and quality of your applications. Developers can know instantly that a feature broke several test cases and make corrections immediately.

7) Stay Hip & Trendy

The technologies in the stack are all very popular and as such recruiting resources proficient in them will be easier. In addition talented developers will be attracted to your shop to work on these newer technologies which will drastically improve your chance of success. The Google trends graph below shows how AngularJS is rapidly becoming the most popular HTML5 framework.

Take Action

Visit MEAN.JS Docs to learn how to create your initial application. Our team of experts can also help make MEAN.JS a part of your organization. In addition, we can provide mobile know-how to deploy your application to various devices within your business.

-Matt

mattrhead