Structure et architecture d’un projet Angular
Structure et architecture d’un projet Angular
- 
Objectifs
 - Etre capable de créer un projet Angular
 - Connaitre la structure et l’architecture d’un projet Angular
 - 
Présentation
 - Angular est un Framework pour créer la partie Front End des applications web en utilisant HTML et JavaScript ou TypeScript compilé en JavaScript.Une application Angular se compose de :
 - Un à plusieurs modules dont un est principal.
 - Chaque module peut inclure :
 - Des composant web : La partie visible de la ‘application Web (IHM)
 - Des services pour la logique applicative. Les composants peuvent utiliser les services via le principe de l’injection des dépendances.
 - Les directives : un composant peut utiliser des directives
 - Les pipes: utilisés pour formater l’affichage des données dans els composants.
 - 
Les modules
 - Le module est le bloc de code conçu pour effectuer une seule tâche. Nous pouvons exporter le module sous forme de classe. Les applications Angular ont un ou plusieurs modules.
 - Chaque application Angular possède un module racine et de nombreux autres modules en vedette.
 - Un module peut représenter le tout ou une partie de votre application
 - Ce bloc peut contenir les éléments suivants : Component, Service, Directive ou Pipe
 - Il peut être dépendant d’un ou plusieurs autre(s) module(s)
 - Chaque application Angular doit avoir au moins un module. Si l’application angulaire ne contient qu’un seul module, il s’agit du module racine.
 - Un module peut être partagé à d’autres modules
 - Angular possède son propre système de modularité appelé modules angulaires ou NgModules.
 - Chaque application Angular possède au moins une classe de module angulaire: le module racine, appelé classiquement
AppModule. - Pour angulaire un module est une classe avec un décorateur @NgModule.
 - Les décorateurs sont des fonctions qui modifient les classes JavaScript.
 - Angular possède de nombreux décorateurs qui attachent des métadonnées aux classes pour configurer et donner le sens à ces classes.
 -  Exemple: 
src/app/app.module.ts - Les propriétés les plus importantes sont:
 - Les déclarations : la classe représentant le module. Angular a trois types de classes de modules: components, directives, et pipes.
 - 
exports– Pour exporter les classes utilisables dans d’autres modules. -  Les 
imports– Pour importer d’autres modules. - Les 
providers– Pour déclarer les fabriques de services. bootstrap– Pour declarer le corposant Racine du module. Seul le module racine doit définir cette propriété.- 
Le Component
 - L’architecture d’Angular Component
 - Dans Angular, tout est composant: Un composant est une balise HTML personnalisée (ex: app-root, app-shop, app-login etc.)
 - Définit par : 1 sélecteur (le nom de la balise), 1 template , 1 ou plusieurs fichiers de style CSS (facultatif)
 - Représenté par : 1 fichier Typescript (.ts), 1 fichier HTML (.html), 1 ou plusieurs fichiers de style CSS (facultatif)
 - Un component peut utiliser d’autres components
 - 
Le package.json
 - Le fichier package.json situé à la racine de l’application définit les bibliothèques qui seront installées node_modules lors de l’exécution npm install.
 

import { 
BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
@NgModule({
  declarations: [AppComponent],
    imports: [
    BrowserModule,AppRoutingModule],
    providers: [],
    bootstrap: [AppComponent]})
export class AppModule { }
Lorsque vous déployez votre application, vous distribuez uniquement la génération résultante, pas les fichiers source ou les outils de génération.
