# Présentation de ASP .NET Core MVC

### Le pattern MVC
 
Comme son nom l'indique, ce framework se base sur le pattern MVC, qui divise l'architecture de l'application en trois parties : 
 
- Modèle : les données de l'application
- Vue : les pages web de l'application
- Controlleur : gestion des actions des utilisateurs, coordonne données et pages
 
 ### Créer un Project
 
 Pour créer un nouveau projet d'application web : 
 
```bash
dotnet new mvc -o "mon-projet"
```
 
### Explication du layout du projet
 
- Dossier `Controllers` : Contient les classes controlleurs de votre application. Vous pouvez supprimer le fichier d'exemple créé par le projet
- Dossier `Models` : Contient les classes de logique et de données de votre application. Vous pouvez supprimer le fichier d'exemple créé par le projet
- Dossier `Views` : Contient les templates HTML du projet. Vous pouvez supprimer le dossier `Home` d'exemple créé par le projet
	- Dossier `Shared` : Contient les éléments de template ré-utilisables : 
    	- `_Layout.cshtml` : Squelette de toutes vos pages, l'appel `@RenderBody()` rend le contenu de la page. Vous pouvez vider les `<header>` et `<footer>` d'exemple créés par le projet, et les remplacer par votre propre `<header>` et `<footer>`. Tout ce que vous mettrez dans ce template sera rendu sur toutes les pages de votre application
        - `_Layout.css` : le CSS propre à votre squelette de pages
        -  `_ValidationScriptsPartial.cshtml` et `Erros.cshtml` : vous pouvez les supprimer, ce sont des exemples du projet
	- `_ViewImports.cshtml` : Imports des namespaces dans les templates. Comme on a vider le namespace `Models`, son import ne compile plus, vous pouvez le commenter pour l'instant (la syntaxe pour les commenaire ici est `@* commenaire *@`
    - `_ViewStart.cshtml` est le point d'entrée de vos template
- Dossier `wwwroot` : les fichiers statiquement servis par votre application
	- `css` : le CSS de votre application
    - `js` : le JS de votre application
    - `lib` : les libraires JS et CSS téléchargées localement
    - `favicon.ico` : l'icone de votre site
- `Program.cs` : le point d'entré de votre application