Seven Reasons Web Developers Should Learn AngularJS

1.  AngularJS supports single page applications

Single page applications are becoming more popular for a good reason. They fill a very specific need. More functionality is being moved to the web, and the browser is finally realizing its potential as a distributed computing node. By design, SPA applications are far more responsive (even though some of that is perception) and can provide an experience that feels almost like a native app in the web. By rendering on the client they cut down load on the server as well as reduce network traffic, i.e. instead of sending a full page of markup, you can send a payload of data and turn it into markup at the client.

2.  AngularJS gives developers controls

One of the most common complaints I hear about moving to MVC is “what do we do with all these controls?” The perception was that controls do not work/would not function in the non-ASP.NET space, but web developers who use other platforms know that this is just not the case. There are a variety of ways to embrace reusable code on the web, from the concept of jQuery plugins to third-party control vendors like one of my favorites, KendoUI.

3.  AngularJS gives XAML developers a place to go to on the Web

A majority of developers using Angular probably have not touched XAML with a ten foot pole! 🙂  That’s okay as the reasons why XAML became popular in the Microsoft world was because of WPF, Silverlight etc.  Now Windows Store app development is important to look at because they translate quite well to Angular. If you are not familiar with XAML, it is a declarative language based on XML used to instantiate object graphs and set values. You can define various types of objects with properties and literally mark up a set that will get created. The most common types of objects to create are user interface elements such as panels and controls that create a display.

4.  AngularJS handles dependencies

Dependency injection is something Angular does quite well. I will admit that I was skeptical we even needed something like that on the client, but I was used to the key scenario being the dynamic loading of modules. Oh, wait – what did you say? That’s right! with libraries such as RequireJS you can dynamically load JavaScript, if and when you need it. Where dependency injection really shines, however,are two scenarios: testing and Single Page Applications.

5.  AngularJS allows developers to express UI declaratively and reduce side effects

There are many advantages to a declarative UI. I mentioned several when I discussed XAML earlier in this post, but HTML is in the same boat. Having a structured UI makes it easier to understand and manipulate. Designers who aren’t necessarily programmers can learn markup far easier than they can programming. Using jQuery you end up having to know a lot about the structure of your documents. This creates two issues: first, the result is a lot of unstable code working as “glue” that is tightly coupled to changes in the UI, and second, you end up with plenty “magic” because it’s not evident from looking at the markup just what the UI will do.

6.  AngularJS enables a design <—> development workflow

OK, who am I kidding, right? You can get this with HTML and CSS and other fun technologies. The reason this gets its own bullet, however, is because of just how well this works with Angular. The designer can add markup without completely breaking an application because it depends on a certain id or structure to locate an element and perform tasks. Instead, rearranging portions of code is as easy as moving elements around and the corresponding code that does the binding and filtering moves with it.

7.  AngularJS enables massively parallel development

One of the biggest issues we encountered early in the project was developers stepping on each other’s toes. Part of this is just a discipline, and even with raw JavaScript you can follow patterns that make it more modular, but Angular just took it to another level. That’s not to say it completely eliminates dependencies, but it certainly makes them easier to manage. As a specific case in point, there is a massive grid in the application that is used to drive several key operations.In a traditional JavaScript application it could have been a merge nightmare to scale this across a large team.

Author

  • Anup Singh

    He is a software engineer specialized in enterprise application development using Microsoft tools and languages, with focus in web applications, service oriented applications and, generally, in all the environments where scalability is a top priority. He is now focused on technologies like ASP.NET MVC, Design Pattern, Nhibernate ,Entity Framework, jQuery ,Angular and HTML5 and many more.