Service Web .NET c#

Objectifs

L'objectif de ce cours est d'apprendre aux étudiants a créer un service web et d'intéragir avec celui-ci via un client léger.
Le language C# sera utilisé pour la réalisation du service web et du client léger.

A la fin de ce cours les étudiants devront:
- comprendre comment le protocole HTTP fonctionne
- savoir mettre en place un service web en utilisant le framework ASP.NET et C#
- savoir créer un client léger en Blazor pour interagir avec le service web
- comprendre les principes de base de la programmation asynchrone
- comprendre le méchanisme d'authentification via token JWT
- mettre en place une couche de persistance
- savoir intéragir avec une API externe
- comprendre les enjeux de la sécurité dans une application web

Plan du cours

Semaine 1: 
    Création du projet service web.
    Créaton d'un controlleur avec quelques routes.
    Interactions avec le service web via Swagger.
Semaine 2: 
    Intégration d'une couche de persistance (sqlite).
    Ajout, modification, suppression, lecture d'éléments dans la base de données.
Semaine 3-4:
    Intéraction avec une API externe.
    Sérialisation et désérialisation de données.
Semaine 5:
    Découverte de Blazor.
    Création d'une page de login.
Semaine 6:
    Intéraction entre le client léger et le service web.
Semaine 7:
    Gestion de l'authentification dans le service web.
    Authentification via token JWT.
Semaine 8-10:
    Intéractivité dans une page blazor.
    Gestion des erreurs et des exceptions.
    Sécurité.
    Optimisations.
    Finalisation du projet.

Description des TP

A remplir

Connaissances requises

Structure de donnée
Comprendre les concepts de base des langages objets: Classe, Héritage, Généricité, ...
Des bases en HTML: formulaire et structure
Base de donnée SQL: modélisation et requêtage

RSE (Responsabilité Sociale et Environnementale)

Bibliographie

- livre "Programmer en C++ moderne - De C++11 à C++20", C. Delannoy

- livre "C# 12 - Développez des applications Windows avec Visual Studio 2022", Jérôme HUGON