Angular introduction | introduction of Angular

What is Angular?

• Angular is a client side framework, which is used to create web applications. 
The framework provides skeleton of the project and specifies clear guidelines,
 where to write which type of code.
• Angular can be used in combination with any server side platform such as Java, 
NodeJS, Asp.Net, PHP, Python etc.
• Angular is developed using "TypeScript" language, which is a superset of JavaScript 
• Angular is the most-used client side framework.
• Angular was developed by Google.
• Angular is free-to-use (commercially too).
• Angular is open-source. That means the source code of angular is available online 
for free of cost.
• Angular is cross-platform. That means it works in all the operating systems.
• Angular is cross-browser compatible. That means it works in all the browsers, 
except less than IE 9 (which is completely out-dated).
• Angular is mainly used to create "data bindings". That means, we establish 
relation between a variable and
html element; When the value of the variable is changed, the same will be automatically effected in the
corresponding html element; and vice versa. So that the developer need not write any
 code for DOM
manipulations (updating values of html tags, based on user requirements. for example,
 updating the list of
categories when a new category added by the user). Thus the developer can fully 
concentrate on the
application logic, instead of writing huge code for DOM manipulations. So we can 
achieve clean separation
between "application logic" and "DOM manipulations".
• Angular mainly works based on "Components". The component is a class, which 
reprensets a specific
section (part) of the web page.

Goals of Angular
• Separation of DOM manipulation from application logic.
• Separation of HTML logic from application logic.
• Make SPA (Single Page Appliation) development easier. SPA provides client-side 
navigation system; but can
communicate with server only through AJAX; the web page never gets refreshed fully.
 Ex: Gmail.
• Separation of business logic from application logic.
• Enable Unit testing. The components can be unit tested individually.

Versions of Angular
• Angular 2 : Sep 14th 2016
• Angular 4 : Mar 23rd 2017 [Angular 3.0 was skipped due to misalignment of router 
package 3.3.0]
• Angular 5 : Nov 1st 2017
• Angular 6 : May 4th 2018
 Angular 7   : October 18, 2018
 • Angular 8 : May 28, 2019
 • Angular 9 : Feb 7, 2020	

Features of Angular
• TypeScript based: Pre-defined code and User-defined code is developed based on TypeScript language.
• Faster performance: “Angular 2+” executes faster than “AngularJS 1”.
• Modular: Angular is divided into multiple small parts called “packages”. For example, "core", "common",
"forms", "router" etc. The developer can use any of those modules based on the requirement.
Browser Compatibility of Angular 2+
• Angular 2+ supports the following browsers:
Browser Supported Version
Google Chrome Any Version
Mozilla Firefox Any Version
MS Internet Explorer 9+
MS Edge 13+
Safari 7+
Android Browser 4.1+
Angular Fundamentals
Building Blocks of Angular
• Angular is composed with the following “building blocks”:
1. Component : Application state + Application logic
2. Metadata : Details about the component / module etc.
3. Template : Design logic (HTML)
4. Data Binding : Connection between HTML element and Component property
5. Module : Group of components, directives and pipes.
6. Service : Re-usable code / business logic.
7. Dependency Injection : Injecting (loading) Service objects into Components.
8. Directive : Manipulating DOM elements
9. Pipe : Transforming values before displaying