My friend Chau is a long-time Microsoft / .Net developer who has recently switched his company's focus to single-page apps (SPAs), especially web apps built using Angular. He's preparing to use Angular 2.0 now. I asked him to explain Angular a bit.
What is Angular?
A popular (frontend web) UI framework for single page applications (SPA) from Google.
What does it replace? There are a lot of JavaScript frameworks out there nowadays, so why this one?
We started out using Knockout for 2-way binding mostly but it didn't take care of anything outside of that. It made you have to implement your objects in Javascript a certain way.
We also used Underscore.js and Lodash. [JavaScript libraries not specific to web]
Angular is popular and has a good community. A lot of other frameworks are missing features.
What kind of features?
The MVC [mode-view-*] model and also the routing and navigation.
Others don't have the routing?
React.js is just about the view [V in MVC] and the controller [C] but doesn't take care of the routing.
Where does Angular fit in to your company's stack?
The frontend. purely frontend, not services.
What do you use for the backend then?
We use .Net or Node.js and Java too, depends on the client. actually, One client, we don't even know what they have, we just consume their (REST) API.
Are there any advantages to using both Javascript (via NodeJS) on the backend (server)
and the frontend (browser)?
The biggest advantage is skill set, you [the developers] don't have to learn more
languages. I think javascript is inherently async.
What does that mean (async)?
It means it's not blocking, it [execution] returns control back over to the thread.
What's the performance of Angular like?
A lot of the tools that come with Angular to package and build it are actually very nice and compact. It bundles a lot of files - Javascript, CSS, and HTML files. So the performance is pretty good. Loading it, everything is cached. [After loading the web app the first time]
I haven't had problems with performance yet. I haven't worked with pages with too much data.
Regarding React.js, a lot of people use it with Angular or instead of Angular because it's faster but I think Angular 2.0 is going to catch up with react's performance.
What about rendering? Since it's rendered in the browser
For our projects it hasn't been an issue but people who want to squeeze out more performance would use React.js.
Where does Angular fit in with mobile web? Does your company do mobile?
We've done a couple of Ionic frameworks. Ionic is built on Angular and they've actually been pretty involved with Angular 2.0. I guess when 2.0 comes out Ionic will be ready to use it.
About DNA:
DNA (.NET Architects, Inc. http://DNAfor.NET) was founded in 2004 in the USA and has partnered with an offshore team (CSS - Creative Software Solutions, VN) to bring you the best of onshore and offshore delivery models.
Technical skills in .NET/C#, HTML5, JQuery, CSS, AngularJS, NodeJS, Android, iOS, Cordoava/PhoneGap/Hybrid, Windows 8, Windows Phone, WPF/XAML, Silverlight, WebAPI/WCF/REST/OData, SQL Server, Azure/Cloud. We also use agile methodologies like scrum/XP.
Our consultants have worked at fortune 500 companies like Microsoft, Wells Fargo, HP/Compaq, Prudential, SanDisk, etc.