Vous êtes sur la page 1sur 21

Introduction aux

Frameworks
Table des
matières

Objectifs

Introduction

I - Présentation des frameworks

1. Notion de Framework

2. Les différents Frameworks


2.1. Les frameworks Front-end
2.2. Les Frameworks Backend

II - Exercice : Activité d'Auto-évaluation 1

III - Introduction au Framework NestJs

1. Présentation de NestJs

2. Installation de NestJs

3. Création d'un projet NestJs

IV - Exercice : Activité d'Auto-évaluation 2

Solutions des exercices


Objectifs

A la fin de ce chapitre, l'apprenant sera capable de :


Définir un Framework, ses avantages et variétés
Décrire et installer le Framework NestJs
Introduction

- Le développement d'une application informatique robuste, sécurisée et professionnelle est très complexe et
nécessite beaucoup de temps. Afin de réduire cette complexité et de gagner en temps et en performance, les
Frameworks ont vu le jour.
- Ces derniers permettent aux développeurs d'avoir une bonne architecture de projet et de se concentrer que sur
la partie métier en mettant à priori à leur disposition un certain nombre de codes et fonctionnalités prêts à
l'emploi.
- Aussi, permettent-ils aux développeurs de facilement partager du code et de collaborer sur un même projet en
suivant les mêmes principes de développement.
Dans ce cours, nous allons présenter les Frameworks en général et apprendre en particulier à travailler avec le
Framework NestJs.
Présentation des frameworks
Présentation des frameworks

Présentation des
frameworks I

Objectifs
A la fin de cette section, vous serez capable de :
Définir un Framework, ses avantages et catagories
Découvrir les différents types de framework et de les décrire

Notion de Framework
Notion de Framework

1. Notion de Framework
Définition : C'est quoi un Framework ?
- Un Framework désigne un cadre de travail (un espace de travail modulaire) permettant de créer
rapidement des applications robustes et professionnelles.
- Il propose une architecture, un ensemble de bibliothèques, de composants, de fonctionnalités et d'outils
permettant aux développeurs de développer facilement des applications professionnelles en fonction de
leurs besoins.
- L'objectif d'un framework est de simplifier et d'uniformiser le travail des développeurs.

Les Avantages des frameworks

- un gain de temps et d'efficacité pour le développeur : les frameworks disposent de bibliothèques et


d'outils intégrés, le temps nécessaire au développement est moindre. Les développeurs se concentrent
uniquement sur la partie métier puisque toutes les couches techniques sont déjà intégrées dans le
framework ;
- les composants et les bibliothèques proposés sont réutilisables à souhait : modules, bundles, plugins
etc. Le framework a pour rôle d'inciter les développeurs à réutiliser les composants et à réutiliser le code
d'autres développeurs. En effet, pourquoi réinventer la roue si ce que je souhaite coder existe déjà et
fonctionne bien ?
- une architecture plus robuste : en choisissant un bon framework, l'architecture est bien pensée et
garantit une application avec un bon fonctionnement, adaptée aux besoins de chaque entreprise
- Suivre les bonnes pratiques de codage : Les frameworks suivent généralement les meilleures pratiques
de codage.
- Ils vous obligent à organiser le code d'une manière plus propre, plus nette et plus facile à
maintenir.
- Les frameworks ont également leurs propres conventions de dénomination des entités que vous
devez suivre.
- Un meilleur travail d'équipe :
Les projets avec plusieurs développeurs peuvent se tromper s'il n'y a pas de clarté au sujet de :
- La documentation
- Les décisions du design
- Les normes du code
L'utilisation d'un framework définit des règles de base claires pour votre projet. Même si un autre
développeur n'est pas familier avec le framework, il devrait être capable d'apprendre rapidement les ficelles
du métier et de travailler en collaboration.
- Moins de code à écrire : L'utilisation de fonctions intégrées au framework permet de ne pas avoir à écrire
autant de code original.
- Meilleure gestion de la sécurité (Plus sûr que d'écrire vos propres applications sans framework) : l existe
de nombreuses menaces à la sécurité, notamment les scripts cross-sites, les attaques par injection SQL et
les falsifications de requêtes cross-sites. Si vous ne prenez pas les bonnes mesures pour sécuriser votre
code, vos applications web seront vulnérables. L'utilisation d'un framework ne remplace pas l'écriture d'un
code sécurisé, mais elle minimise les risques d'exploitation par des pirates. Les bons frameworks intègrent
un nettoyage des données et des défenses contre les menaces courantes mentionnées ci-dessus.
- la facilité de maintenir et faire évoluer le code: Les frameworks PHP encouragent le remaniement du
code et favorisent le développement DRY (Don't Repeat Yourself). La base de code ainsi allégée nécessite
moins de maintenance.
- Une communauté active avec des mises à jours régulières : quand on opte pour développer son site
web avec un framework on a alors accès à une large communauté de contributeurs active qui corrigent
régulièrement les failles ou les lacunes du framework.

Les différentes catégories de frameworks

On trouve différents types de frameworks :


- framework d'infrastructure système : pour développer des systèmes d'exploitation, des interfaces
graphiques, des outils de communication (exemple : Framework .Net, Struts) ;
- framework d'intégration intergicielle (middleware) : pour fédérer des applications hétérogènes. Pour
mettre à disposition différentes technologies sous la forme d'une interface unique ;
- frameworks d'entreprise : pour développer des applications spécifiques au secteur d'activité de
l'entreprise. (Ce que nous verrons dans ce cours).
- frameworks de gestion de contenu : ils sont les fondations d'un système de gestion de contenu pour la
création, la collecte, le classement, le stockage et la publication de « biens numérisés ».

Framework vs Bibliothèque

- Une bibliothèque ou librairie est une collection de routines (classe ou de méthodes), pouvant être
appelées par le code d'un développeur pour exécuter des actions spécifiques.
- Un framework quand à lui propose un cadre de travaille avec généralement une architecture projet, et un
ensemble cohérent de composants logiciels ; un framework est composé lui-même d'un ensemble de
bibliothèques.
- Un framework est plus robuste et plus complexe qu'une bibliothèque, mais une bibliothèque est plus
flexible au niveau de l'utilisation.

Quels frameworks choisir

Voici quelques critères à prendre en compte dans le choix d'un Framework :


- La maturité du framework ;
- La rapidité de mise en œuvre, c'est-à-dire le temps nécessaire pour l'installation du framework et celui
entre l'installation et le moment où le framework est opérationnel.
- La courbe d'apprentissage, qui est le temps nécessaire pour apprendre à maîtriser le framework.
- L'acceptation par le framework des conventions de programmation et des best practices.
- La capacité du framework à s'adapter à l'évolution des technologies : en clair, mature ne veut pas dire
fossilisé, il faut que le framework évolue avec son temps.
La communauté : l'ensemble des utilisateurs/développeurs prête à venir en aide au membre en difficulté
- grâce aux forums de discussion, à la documentation, aux ressources...

Les différents Frameworks


Les différents Frameworks

2. Les différents Frameworks


Ils permettent de créer une interface pour que l'utilisateur puisse utiliser l'application. Ils utilisent des langages
clients tels que le langage HTML, CSS ou Javascript.

2.1. Les frameworks Front-end

Frameworks CSS et HTML

- Materialize,
- Semantic UI.
- Bootstrap,

Frameworks Javscript

- Angular.js et Angular
- React.js et NextJs
- VueJs et NudeJs

2.2. Les Frameworks Backend

Fonctionnement

Un framework back-end s'exécute coté serveur et permet à l'application de communiquer avec la base de données,
de gérer les stockages de fichiers, les sessions utilisateurs.

2.2.1. Les Frameworks PHP

Laravel Framework

Laravel est l'un des frameworks PHP les plus populaire pour son excellente architecture. Laravel est un cadre de
développement Web complet qui offre des capacités pour gérer des applications Web à grande échelle.
Avec sa possibilité d'organiser les API et le code du site Web dans des dossiers bien séparés, Laravel vous aide à
mieux organiser le code.
Voici les principales fonctionnalités de Laravel :
- Offre une solution MVC complète,
- Conception d'API web
- Il est livré avec son propre ORM qui prend en charge une génération de modèle facile
- Pris en charge par un référentiel de middleware qui facilite les tâches telles que l'autorisation
- Il prend en charge les migrations de bases de données faciles à l'aide de l'interface de ligne de commande
- Le développement local est facilité par CLI Artisan qui offre la possibilité d'exécuter directement un
serveur local
- Prend en charge la création de modèles de blaze hors de la boîte
- Ainsi, Laravel simplifie le développement web en modularisant le code. Cela permet une coordination plus
facile entre les développeurs frontend et backend.

Symfony Framework

Symfony est l'un des frameworks PHP les plus populaire pour son excellente architecture. Il est un ensemble de
nombreux composants PHP pré-construits. C'est le cadre de base du framework Laravel décrit ci-dessus. Symfony
vous offre plus de flexibilité avec le même nombre de fonctionnalités.
Symphony dispose des fonctionnalités ci-dessous:
- Une pile indépendante de la base de données prise en charge par son propre ORM
- Offrez une solution MVC complète
- Conception d'API web
- Le développement local est facilité par CLI Composer qui offre la possibilité d'exécuter directement un
serveur local
- Il prend en charge les migrations de bases de données faciles à l'aide de l'interface de ligne de commande
- Une base bare metal pour les développeurs avancés pour commencer
- Intégration facile avec des frameworks populaires comme Drupal
- Redondance de code réduite avec un code mieux organisé
- Pris en charge avec plus de 30 composants réutilisables
- Livré avec un site Web analysant le profil pour obtenir facilement un site Web de code de haut niveau

Zend Framework

Zend est un excellent framework orienté objet conçu pour fonctionner selon la méthodologie agile. Il est
disponible pour une installation rapide sur presque tous les CPanel. Cela facilite également le travail sur n'importe
quelle plate-forme d'hébergement.
Les fonctionnalités ci-dessous en font un cadre souhaitable pour les développeurs PHP:
Le framework Zend offre un haut niveau de sécurité avec les cryptages basés sur bcrypt et AES-256 pour les mots
de passe et les données respectivement
C'est un framework complètement orienté objet
Il est pris en charge par une énorme liste d'intergiciels
Il suit strictement le modèle de conception MVC

Cake PHP

CAKE PHP est un autre framework qui fournit un framework MVC de bout en bout pour vous permettre de
démarrer rapidement. Il est facile à apprendre et devenu très populaire pour créer rapidement des API.
Les principales raisons de choisir Cake PHP sont:
- La courbe d'apprentissage presque plate avec un code facile à comprendre
- Petite empreinte de code - Il suffit d'un serveur Web et d'un code de cadre pour commencer
- Programmation CRUD plus facile avec des composants intégrés
- Protection intégrée contre les attaques par injection CSRF et SQL

Phalcon Framework

Phalcon est un framework PHP unique en son genre fourni sous forme d'extension C. Cela signifie que le
framework a été initialement codé en langage de programmation C et C ++, puis converti pour être compatible
avec PHP en tant qu'extension.
Ce noyau léger aide le framework à être très rapide dans sa réponse et son traitement. Les avantages de
l'utilisation du framework Phalcon incluent:
- Excellent temps de traitement grâce au traitement backend basé sur le langage C
- L'approche basée sur les composants facilite la création de vues
- Prise en charge de la création rapide de formulaires dynamiques avec des modèles de contrôle de
formulaire
- Une utilisation efficace de la mémoire améliore les performances globales de l'application
- Prend en charge les moteurs de modèles prêts à l'emploi

CodeIgniter

CodeIgniter est utilisé par les petites et grandes organisations, CodeIgniter est un framework basé sur PHP qui
aide les développeurs à créer rapidement de nouveaux projets. Il ne s'agit pas d'un framework restrictif et peut être
utilisé comme une boîte à outils accélérant le développement. Il est connu pour sa rapidité et sa légèreté.
Si la plupart des frameworks PHP exigent que vous suiviez l'approche MVC, CodeIgniter ne fait que l'encourager
sans pour autant l'imposer.
Il offre en outre :
- Une mise en cache,
- la prise en charge de plusieurs bases de données,
- le routage
- d'autres fonctionnalités courantes dans les applications web modernes, parfaitement intégrées et pouvant
être utilisées de manière flexible.

Slim : un micro framework PHP

Slim est un micro framework PHP publié sous licence MIT. Il est léger, simple et s'exécute rapidement. Offrant
une excellente courbe d'apprentissage, les développeurs peuvent rapidement le maîtriser. Sa documentation a la
réputation d'être claire et complète.
Il se rapproche d'autres micro frameworks comme Silex, issu de Symfony, ou Lumen qui vient du mode de
Laravel, ou Zend Expressive (par Zend).
Pour faire simple, Slim se comporte comme un dispactcher. À réception d'une requête HTTP, il invoque une
fonction d'appel et retourne une réponse HTTP. Il implémente la norme PSR-7 et supporte les injections de
dépendances.

2.2.2. Les Frameworks NodeJs

Notion de NodeJs

Node.js est un outil JavaScript open-source basé sur le moteur JavaScript de Google Chrome.
- Il est utilisé pour créer des applications réseaux évolutives avec une architecture d'E/S non bloquante,
rapide et efficace, pilotée par les événements. Tant du côté serveur que du côté client,
- il permet aux développeurs de créer du code dans un seul langage (JavaScript).
- NPM (Node Package Manager) est le seul gestionnaire de Node.js, ce qui permet de réduire le temps de
développement et d'obtenir des résultats optimaux. Celui-ci est hébergé sur le moteur JavaScript V8.
- Node.js comprend une grande collection de modules JavaScript qui facilitent le processus de
développement d'applications.
Les caractéristiques de Node.js :
- Single-Threaded : Nodejs utilise un style monofilaire mais évolutif associé à un modèle de boucle
d'événements. L'une des plus grandes attractions de cette configuration est qu'elle est capable de traiter des
demandes multiples. Avec la boucle d'événement, Nodejs peut effectuer des opérations d'entrée-sortie non
bloquantes.
- Hautement évolutif : Les applications développées avec Node.js sont très évolutives car la plateforme
fonctionne de manière asynchrone. Elle fonctionne sur un seul thread, ce qui permet au système de traiter
plusieurs demandes simultanément. Une fois que chaque réponse est prête, elle est retransmise au client.
- Pas de mise en mémoire tampon : Les applications Node.js réduisent tout le temps nécessaire au
traitement en sortant les données par blocs à l'aide de la fonction call back. Elles ne mettent aucune
donnée en mémoire tampon.
- Open Source : Cela signifie simplement que la plateforme est libre d'utilisation et ouverte aux
contributions de développeurs bien intentionnés.
- Performances : Puisque Node.js est construit sur le moteur JavaScript V8 de Google Chrome, il permet
une exécution plus rapide du code. Tirant parti de la programmation asynchrone et des concepts non
bloquants, il est capable d'offrir des performances à grande vitesse. Le moteur V8 JS rend l'exécution et la
mise en œuvre du code plus facile, plus rapide et plus efficace en compilant le code JavaScript au format
machine.
- Mise en cache : La plateforme se distingue également par sa capacité de mise en cache. Elle met en cache
les modules et rend la récupération des pages Web plus rapide et plus facile. Grâce à la mise en cache, il
n'est pas nécessaire de ré-exécuter les codes après la première demande. Le module peut être récupéré
facilement et de manière transparente dans la mémoire de l'application.

ExpressJs

Express est l'un des meilleurs frameworks Node.js. Son approche minimaliste en fait un outil classique et simple
pour le codage.
Son architecture rapide, robuste et asynchrone s'accorde bien avec Node : Express s'aligne en effet sur les
opérations d'entrée/sortie à grande vitesse et sur la nature monofilaire de Node.
Quelles sont les caractéristiques d‘Express.js ?
- Paquets de programmation rapide côté serveur- le framework a de nombreuses caractéristiques Node.js
comme fonctions et accélère le processus avec peu de lignes de code.
- Haute performance – de multiples opérations sont exécutées indépendamment les unes des autres en
utilisant la programmation asynchrone.
- Une couverture de test super élevée aide à construire des applications avec une testabilité maximale.
- Une multitudes d'aides HTTP – elles rendent les programmes plus intelligibles et réutilisables.
- Une meilleure négociation du contenu – elle permet d'améliorer la communication entre le client et le
serveur en fournissant des en-têtes HTTP aux URL, qui récupèrent les informations exactes pour les
utilisateurs/clients.
- Modèle architectural MVC.

Koa.js – Framework Node.js de nouvelle génération

- Koa.js est l'un des frameworks Node.js les plus dominants, il fait des merveilles en matière de création de
différents services Web, appelés API. Avec Koa, la construction de ces API devient super amusante et
facile car il peut traiter efficacement les intergiciels HTTP avec une méthode de type pile.
- Il normalise les défauts de Node de manière constructive. Avec ce framework, vous pouvez gérer
différentes formes de contenu présenté aux utilisateurs avec la même URL, comme la traduction d'une
page, la personnalisation du contenu dans les sites de commerce électronique, l'utilisation de différents
formats d'images, et bien plus encore.
- Un autre avantage de Koa est qu'il est assez similaire à Express. Vous pouvez toujours profiter de la
flexibilité d'Express avec plus de liberté et moins de complexités lors de l'écriture du code. Cela réduit la
portée des erreurs sur l'ensemble de la pile de l'application.
Quelles sont les caractéristiques de Koa.js ?
- Il s'agit d'un framework personnalisable et futuriste – il est considéré comme une version légère d'Express.
- Gère les erreurs de manière exceptionnelle
- Possède un intergiciel en cascade (personnalisation de l'expérience utilisateur).
- Normalise les incohérences de nœuds propres et aide à la maintenance du code
- Nettoie le cache, prend en charge le proxy et la négociation du contenu
- Offre plus d'options de personnalisation ; permet de créer des applications à partir de rien.

Nest.js– A Nestling of Code

- NestJs est un framework Node.js progressif permettant de créer des applications d'entreprise dynamiques
et évolutives et offrant une flexibilité totale grâce à ses nombreuses bibliothèques.
- C'est l'exemple parfait d'un booster de productivité backend. Vous pouvez utiliser ce framework pour
créer des applications d'entreprise multicouches, car Nest.js ne vous empêchera pas d'utiliser ses
nombreuses bibliothèques.
- Il s'en tient à l'architecture de code propre tout en maintenant la complexité du code des applications à
grande échelle. De plus, Nest offre une excellente intégration avec des frameworks similaires comme
Fastify et Express.
- Nest est la meilleure combinaison de programmation orientée objet et de programmation fonctionnelle
réactive (FRP). Il permet donc de doubler la productivité des développeurs et les performances des
applications tout en leur faisant gagner un temps précieux.
Quelles sont les caractéristiques de Nest.js ?
- CLI pour une structure et des fonctionnalités modulaires
- Courbe d'apprentissage fluide
- FRP pour simplifier les interfaces graphiques complexes (ex. jeux, robotique)
- Bibliothèques externes faciles à utiliser grâce à la disposition systématique du code
- Haute compatibilité avec Angular sur le front-end

Hapi.js- Secure than Ever

Hapi est un serveur disponible dans le commerce et un framework open-source pour les applications web. Il est
connu pour le développement de serveurs proxy, d'API REST et d'autres applications de bureau, car ce framework
est fiable et riche en aspects sécuritaires. Il dispose d'un vaste ensemble de plugins intégrés, de sorte que vous
n'avez pas à vous soucier de l'utilisation d'intergiciels non officiels.
Quelles sont les caractéristiques de Hapi.js ?
- Applications évolutives
- Frais généraux minimes
- Valeurs par défaut sécurisées
- Riche écosystème
- Correction rapide et facile des bogues
- Compatible avec MySQL, MongoDB et d'autres bases de données
- Compatible avec les API Rest et les applications proxy HTTPS
- Mise en cache, authentification et validation des entrées par défaut

Sails.js – Framework MVC orienté données modernisé

- Sails.js ressemble au modèle d'architecture MVC de frameworks comme Ruby on Rails et prend en charge
le développement modernisé et orienté données. Il est compatible avec toutes les bases de données et
flexible dans l'intégration des frameworks Javascript.
- C'est donc le framework le plus approprié pour créer des applications personnalisées haut de gamme. Ses
politiques d'écriture de code spécifiques aident à réduire la quantité de code requise, permettant
l'intégration de modules npm en étant plus flexible et ouvert.
- Sails est une plateforme front-end-agnostique-backend. Toutefois, ce framework léger utilise Express pour
les requêtes HTTP et Socket.io pour les WebSockets.
Quelles sont les caractéristiques de Sails.js ?
- Génération automatique d'API REST
- Politiques de sécurité réutilisables
- Agnostique du front-end
- ORM (Object Relational Mapping) pour la compatibilité du framework avec les bases de données
- Intégration d'Express pour les requêtes HTTP et de Socket.io pour les WebSockets.

2.2.3. Les Framework Java

Spring

- Spring est le framework le plus utilisé et le plus connu du monde Java. C'est une inversion du conteneur et
contrôlée par le langage de programmation Java, il intégre des fonctionnalités avancées, des ressources et
des utilitaires.
- Il est utilisé pour effectuer des tâches récurrentes dans la programmation telles que le traitement des
données, la messagerie et la sécurité. Vous pourrez peut-être produire la logique métier du développement.
La configuration du framework Spring est très compliquée par rapport aux autres frameworks, mais il
possède de nombreuses fonctionnalités avancées pour fournir des applications d'édition d'entreprise utiles.
Avantages
- Capacité de test facile et compatibilité descendante
- Injection de dépendance
- Prend en charge un grand nombre de packages et de classes
- Fournit un écosystème et une communauté efficaces
- Documentation utile pour apprendre le framework plus efficacement
- Permet de diriger une base de code flexible comme les objets Java simples (POJO)

Hibernate

Hibernate est un autre framework Java le plus populaire. Il est également appelé framework ORM (Object
Relational Mapping) de Java et largement utilisé pour construire des structures de base de données. Hibernate
fournit un langage de requête pour la gestion de base de données appelé HQL
Ce cadre permet une intégration fluide entre les bases de données et les applications Web Java.
Avantages
- Fournit une base d'applications sécurisée et robuste
- HQL intégré aux commandes de base de données indépendantes
- Il propose des collections telles que Set, Map et List pour améliorer les applications
- Simple à changer les données dans plusieurs bases de données.

Struts

Struts est un framework gratuit, open-source et MVC, qui permet de construire élégant et àtractive Applications
Java. Il est utilisé MVC, c'est-à-dire Model View Controller, pour développer des applications Java-web
interactives.
Avantages
- Il fonctionne efficacement avec les API SOAP, AJAX et REST
- Intégration possible avec d'autres frameworks via des plugins
- Créez des applications Web à l'aide d'actions POJO simples
- Prend en charge différents types de modèles et de thèmes
- Cadre bien testé et stable

Java Server Face (JSF)

Java Server Faces (JSF), développé et maintenu par Oracle, est un autre framework Web MVC basé sur des
composants qui possède des composants d'interface utilisateur réutilisables pour créer des interfaces utilisateur
enrichissantes pour les applications basées sur serveur. Dans ce cadre stable, il y a en fait l'encapsulation de
diverses technologies côté client telles que HTML, CSS et JavaScript.
Certaines des principales caractéristiques de JSF sont énumérées ci-dessous :
Cadre d'interface utilisateur basé sur les composants
- Compatibilité inter-framework
- Excellente prise en charge des outils et des bibliothèques
- Prise en charge AJAX intégrée
- Modèles et annotations de bean

2.2.4. Les frameworks Python

Django
Django est un framework gratuit et complet de de haut niveau permettant de développer rapidement des API et
des applications web.
On peut citer certaines fonctionnalités populaires de Django comme :
- le système d'authentification,
- Les fonctionnalités de sécurité telles que la prévention XSS, la prévention CRSF, etc., sont appliquées
automatiquement.
- un routage d'URL puissant,
- l'ORM (Object Relationnal Mapper) pratique et agréable, avec des migrations créées et appliquées
automatiquement par le framework.
- le moteur de modèle,
- Échafaudage pour la génération automatique de panneau d'administration en fonction de vos modèles.
- Prise en charge des cookies, sessions, middleware, modèles, etc.
- la migration de schémas de bases de données, etc.
- Scaffolding pour la génération automatique de panneau d'administration en fonction de vos modèles.

Flask

Disponible sous la licence BSD, Flask est un framemork Python qui convient aux petits projets et qui s'appuie sur
la boite à outils WSGI (Web Server Gateway Interface) de Werkzeug et sur le modèle de template Jinja2.
Voici quelques fonctionnalités qu'il propose :
- un serveur de développement et débogueur rapides intégrés,
- le support intégré aux tests unitaires,
- le traitement de requêtes HTTP,
- la prise en charge de cookies sécurisés,
- la conformité à la norme WSGI 1.0,
- un framework basé sur l'Unicode,
- fonctionne avec n'importe quel ORM branché, etc.
- Routage, création de modèles, gestion de session et autres fonctionnalités utiles.
- Une architecture minimale et enfichable
- Prise en charge REST de première classe
- Prise en charge des Blueprints, la vision unique de Flask sur l'architecture pour les petites applications
Web

Pyramid

Pyramid est une application web basée sur Python, en open-source, et le deuxième framework le plus populaire.
Son but est de faire le plus possible avec un minimum de complexité. Fonctionnant sous Python 3, Pyramid suit
les progrès technologiques.
La caractéristique la plus frappante de Pyramid est sa capacité à bien fonctionner avec de petites et grandes
applications. Voici quelques-unes des grandes caractéristiques de Pyramid :
- Applications à fichier unique
- Génération d'URL
- Configuration extensible
- Modèles globaux et spécifications des actifs
- Authentification et autorisation souples
- Test, soutien et documentation complète sur les données
- Prédictions de vue et nombreuses vues par itinéraire
- Prédicats
- Renderers
Avec Pyramid, un développeur peut décider du langage de template, des bibliothèques de génération et de la
couche de base de données.
Exercice : Activité d'Auto-évaluation 1
Exercice : Activité d'Auto-évaluation 1

Exercice : Activité d'Auto-


évaluation 1 II
[solution n°1 ]
[*]

Exercice : Notion de Framework


Qu'est-ce qu'un Framework ?

 Un ensemble de bibliothèques

 Un cadre de développement d'application

 Un design pattern pour le développement d'application

 Une suite logicielle

 Aucun
Exercice : Objectif d'un framework
Quel est l'objectif d'une framework ?

 Réduire le temps de programmation

 Développer des paradigmes de programmation

 Créer un cadre de sécurité

 Simplifier uniformiser le travail des développeurs.

 Aucun
Exercice : Quelques Frameworks
Lesquels des logiciels suivants sont-ils des frameworks ?

 Django

 Trance

 MacApp

 Wordpress

 ReactJs

 Laravel
Introduction au Framework NestJs
Introduction au Framework NestJs

Introduction au
Framework NestJs III

Objectifs
A la fin de cette section, vous serez capable de :
Définir le Framework NestJs, ses avantages et caractéristiques
D'installer le Framework NestJs

Présentation de NestJs
Présentation de NestJs

1. Présentation de NestJs
C'est quoi NestJs ?

Selon la page officielle https://nestjs.com : NestJs is "A progressive Node.js framework for building efficient,
reliable and scalable server-side applications".
Pour ceux qui ne comprennent pas la langue de Shakespeare, un tour rapide sur Google traduction donne : NestJs
est "Un framework Node.js progressif pour créer des applications côté serveur efficaces, fiables et
évolutives".

Caractéristiques

- Extensible : Vous offre une véritable flexibilité en permettant l'utilisation de n'importe quelle autre
bibliothèque grâce à une architecture modulaire.
- Polyvalence : Nest fournit un écosystème pour la création de tout type d'applications côté serveur.
- Progressive : Tire parti des dernières fonctionnalités JavaScript, apportant des modèles de conception et
des solutions matures au monde Node.js.

Avantages

- Extensible, progressive, polyvalence, robustesse, sécurité,


- Nest offre une bonne architecture de projet,
- Dispose d'une CLI (Command-Line Interface) appelée Nest facilitant la création et le développement de
projet,
- Est basé sur Typescript qui est la version orientée objet de Javascript (langage plébiscité sur le web),
- Tire profit des forces de NodeJs et de sa forte communauté,
- Nest.js utilise les bibliothèques existantes et matures utilisées depuis longtemps par les développeurs
Node.js, telles que Express.js et TypeORM,
- Bonne documentation : https://docs.nestjs.com

Prérequis
- Connaître le Javascript ou TypeScript,
- Être familiariser à l'environnement NodeJs (facultatif),
- Avoir les notions de base en database
Installation de NestJs
Installation de NestJs

2. Installation de NestJs
Installation de NodeJs

- Pour installer Nest, il faut d'abord installer NodeJs, car n'est est basé sur NodeJs
- Pour ceux qui n'ont pas encore nodejs sur leur machine, rendez vous sur la page officielle de
téléchargement pour le télécharger et l'installer : https://nodejs.org/fr/download
- Après installation, ouvrez votre terminale (console ou invite de commande), puis tapez : node -v ou bien
node --version pour voir la version de node installée. Chez moi c'est v16.14.0
- Nodejs vient avec un gestionnaire de package qui est npm (c'est lui qui va permettre pendant le
développement d'un projet d'installer les modules ou dépendances du projet et automatiser certains
traitements), pour voir la version de npm installée tapez : npm --version, chez moi la version affichée est :
8.3.1

Installation de NestJs

- Pour installer Nest, il n'y a rien de plus simple que de taper une commande dans la console : npm i -g
@nestjs/cli
- Pour s'assurer que tout s'est bien passé et voir la version installée, il faut taper la commande : nest -v ,
chez moi la version affichée est 8.2.1
Création d'un projet NestJs
Création d'un projet NestJs

3. Création d'un projet NestJs


Commande de création d'un projet NestJs

- Pour créer un projet Nest, créez un dossier vide devant contenir votre projet, puis placez vous à l'aide de
votre terminale sur le dossier et tapez la commande : nest new project-name,
- project-name représente le nom de votre projet, Ex : nest new myShop
- Pendant la création, une question vous sera posée : "Which package manager would you ❤️ to use?". Dans
les propositions faites, choisissez npm qui est le choix par défaut en cliquant sur la touche entrée.

- Notre projet s'est bien créé :

Comprendre la structure d'un projet NestJs

Faisons un tour voir la structure de notre projet que nous venons de créer :
L'architecture de NestJs est inspirée de l'architecture des projets ou frameworks nodeJs. A la racine du projet,
nous avons les éléments suivants :
node_modules : comme tout projet nodeJs, c'est le dossier qui contient toutes les dépendances ou
- modules utilisés par le projets
- src : c'est le dossier qui contient la logique applicative du projet (le code source). C'est là que nous allons
passer plus de temps.
- package.json : comme tout projet nodejs, c'est le fichier de configuration du projet,
- nest-cli.json : c'est le fichier de configuration de la CLI de nest,
- tests : Dossier des tests unitaires (ignoré le, nous n'allons pas nous intéressé à ça dans ce cours),
- etc. (les autres sont moins importants).
Rentrons dans le dossier src, nous avons les fichiers suivants :
- app.controller.ts : c'est le contrôleur de base de l'application, le point d'entrée (routeur) des requêtes http.
Nous aborderons la notion de contrôleur dans le prochain chapitre.
- app.module.ts : c'est le module racine de l'application, il permet de spécifier les controllers, services et
modules utilisés par le projet. Nous aborderons la notion de module dans le prochain chapitre.
- app.service.ts : c'est le service de base de l'application. Nous aborderons la notion de service dans le
prochain chapitre
- app.controller.spec.ts : Fichier de test unitaire pour app.controller (les tests unitaires ne seront pas abordés
dans ce cours)
- main.ts : c'est fichier d'entrée de l'application, il permet le démarrage de l'application. Il utilise la fonction
principale NestFactory de Nest pour créer une instance d'application. Le port sur lequel démarrer le
serveur de l'application est spécifié dans ce fichier, et peut être changé si on souhaite, Nest utilise par
défaut le port 3000. Ci-dessous le contenu du main.ts :

1 import { NestFactory } from '@nestjs/core';


2 import { AppModule } from './app.module';
3
4 async function bootstrap() {
5 const app = await NestFactory.create(AppModule);
6 await app.listen(3000);
7}
8 bootstrap();
9

Exécuter un projet NestJs

- Pour lancer ou exécuter un projet nest, il faut se placer à l'aide de la console à la racine du projet et lancer
la commande : npm run start:dev ou bien tout simplement npm run start, mais je vous recomande
npm run start:dev lorsque vous êtes en mode développement, car il vous permet de prendre en compte
les modifications des fichiers dans le rendu navigateur sans avoir besoin de relancer le serveur.

- Ouvrez votre navigateur et accédez à l'adresse : http://localhost:3000/ pour voir le rendu du projet. Pour
le moment c'est juste un simple message "Hello World!"

- Ouvrez le fichier app.service, puis changez le message "Hello world !" en "Bonjour guys !", puis
enregistrer le fichier et rafraîchissez la page navigateur.
- Pour arrêter le serveur tapez Ctrl + C (sous Windows)
Remarque : IDE
Il est conseillé pour travailler avec un framework d'utiliser un IDE assez complet avec les fonctionnalité d'auto-
complétion, d'import automatique des dépendances, etc, afin de faciliter le codage. Je vous conseille comme IDE
Visual Studio code (VS code), Intellij IDEA, sublime Text, etc,
Exercice : Activité d'Auto-évaluation 2
Exercice : Activité d'Auto-évaluation 2

Exercice : Activité d'Auto-


évaluation 2 IV
[solution n°2 ]
[*]

Exercice : Le type de framework Nestjs


NestJs est une framework

 Java

 Python

 NodeJs

 Php

 Aucun
Exercice : Prérequis avant l'installation de NestJs
Pour installer NestJs, il faut d'abord installer :

Exercice : La CLI de NestJs


La CLI de NestJs s'appelle :

 Nest

 Npm

 Node

 JsCLI

 Aucun
Solutions des exercices
Solutions des exercices

Solutions des exercices

> Solution n°1 Exercice p.


Exercice : Notion de Framework
Qu'est-ce qu'un Framework ?

 Un ensemble de bibliothèques

 Un cadre de développement d'application

 Un design pattern pour le développement d'application

 Une suite logicielle

 Aucun
Exercice : Objectif d'un framework
Quel est l'objectif d'une framework ?

 Réduire le temps de programmation

 Développer des paradigmes de programmation

 Créer un cadre de sécurité

 Simplifier uniformiser le travail des développeurs.

 Aucun
Exercice : Quelques Frameworks
Lesquels des logiciels suivants sont-ils des frameworks ?

 Django

 Trance

 MacApp

 Wordpress

 ReactJs

 Laravel

> Solution n°2 Exercice p.


Exercice : Le type de framework Nestjs
NestJs est une framework

 Java
 Python

 NodeJs

 Php

 Aucun
Exercice : Prérequis avant l'installation de NestJs
Pour installer NestJs, il faut d'abord installer :
NodeJs
Exercice : La CLI de NestJs
La CLI de NestJs s'appelle :

 Nest

 Npm

 Node

 JsCLI

 Aucun

Vous aimerez peut-être aussi