---
sidebar_position: 2
title: Déroulement
---

## Présentation de Blazor

* Etapes
	* Structure
	* Pages
	* Navigation
	* Emplacement du code
	* Binding
	* Use Html / Css / JS

## Créer un nouveau projet Blazor Server

* Etapes
	* Création d'un nouveau projet avec Visual Studio
	
## Afficher des données avec Blazor

* Etapes
	* Création d'une nouvelle page
	* Génération de fausse données
	* Utiliser les données
	* Utiliser un tableau HTML
	* Utiliser Blazorise
	* Utiliser la pagination avec Blazorise
* Notions
	* Layout
	* Serialization
	* Événements de cycle de vie
	* NuGet

## Ajouter un nouvel item

* Etapes
	* Stocker nos données dans le LocalStorage
	* Création d'une nouvelle page
	* Ajouter un bouton `Ajouter`
	* Création du model d'ajout
	* Création du formulaire
	* Redirection vers la page de liste
	* Affichage de l'image téléchargé
* Notions
	* Blazor Storage
	* Routage
	* Data Annotation
	* Formulaire et validation
	* Uri et assistance d’état de navigation


## DI & IOC

* Etapes
	* Création d'un service de données
* Notions
	* Injection de dépendances (DI)
	* Inversion de contrôle (IOC)

## Editer un item

* Etapes
	* Modification du service de données
	* Ajouter l'action Editer
	* Création page editer
	* Création du formulaire d'édition
	* Utilisation du modèle
	* Utiliser le Pattern Factory
* Notions
	* Paramètres d'URL
	* Paramètres de composant
	* Factory Pattern

## Supprimer un item

* Etapes
	* Modification du service de données
	* Ajouter l'action Supprimer
	* Installer Blazored.Modal
	* Création d'une popup de confirmation
* Notions
	* Paramètres en cascade

## Globalisation & Localisation

* Etapes
	* Sélection de la langue utilisateur
	* Traduire le site grâce aux ressources
* Notions
	* Contrôleurs
	* Fichiers de ressources
	* Culture

## Composant Razor

* Etapes
	* Création d'un composant générique
	* Création d'un composant complexe
		* Description du composant
		* Classes annexe du composant
		* Création de l'élément du composant `item`
		* Création de l'élément du composant `craft`
		* Utilisation du composant
* Notions
	* RenderFragment
	* Event handling
	* IJSRuntime
	* CascadingValue & CascadingParameter

## API

* Etapes
	* Effectuer des requêtes HTTP
* Notions
	* IHttpClientFactory

## Configuration

* Etapes
	* Utilisation de la configuration

## Logger

* Etapes
	* Utilisation de logs

:::info

Partie Bonus (susceptible d'évoluer dans le temps)

:::

## Utilisation API graphQL / Grpc

* Etapes
	* Gestion de filtres

## Utilisation Websocket

* Etapes
	* Notification Client

## Authentication

* Etapes
	* Création d'une page d'authentification
	* Utiliser l'authentification avec les API

## Divers

* Etapes
	* Dockerisation du projet ou d'une partie du projet 
	* Utilisation SonarQube
	* Utilisation OpenId Connect et/ou OAuth 
	* Mise en place d'un serveur d'identité (Identity Server 4 par exemple) 
	* MVVM
