start working on reusable bits (#17)
This commit is contained in:
parent
97bdeb4e38
commit
7bfe5411b1
@ -9,6 +9,8 @@
|
|||||||
<ul>
|
<ul>
|
||||||
@foreach (var link in Model)
|
@foreach (var link in Model)
|
||||||
{
|
{
|
||||||
<li>@link.Url created at @link.CreatedAt.ToLocalTime()</li>
|
<li>
|
||||||
|
<partial name="_LinkItem" model="@link" />
|
||||||
|
</li>
|
||||||
}
|
}
|
||||||
</ul>
|
</ul>
|
||||||
3
Apps/Website/Views/Links/_LinkItem.cshtml
Normal file
3
Apps/Website/Views/Links/_LinkItem.cshtml
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
@model HN.Application.LinkDTO
|
||||||
|
|
||||||
|
<a asp-action="Show" asp-controller="Links" asp-route-id="@Model.Id">@Model.Url - created at @Model.CreatedAt.ToLocalTime()</a>
|
||||||
@ -1,3 +1,4 @@
|
|||||||
@using Website
|
@using Website
|
||||||
@using Website.Models
|
@using Website.Models
|
||||||
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
|
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
|
||||||
|
@addTagHelper *, Website
|
||||||
48
README.md
48
README.md
@ -1,8 +1,54 @@
|
|||||||
# hn-dotnet : un clone d'Hacker News en dotnet !
|
# hn-dotnet : un clone d'Hacker News en dotnet !
|
||||||
|
|
||||||
|
Le but est de réaliser de A à Z une application Web imitant le fonctionnement de Hacker News en abordant des bonnes pratiques de développement en .Net.
|
||||||
|
|
||||||
|
## Ressources utiles
|
||||||
|
|
||||||
|
- https://aspnetcore.readthedocs.io/en/stable/mvc/index.html
|
||||||
|
- https://andrewlock.net/an-introduction-to-viewcomponents-a-login-status-view-component/
|
||||||
|
- https://stackoverflow.com/a/47011478
|
||||||
|
- https://stackoverflow.com/a/34291650
|
||||||
|
|
||||||
|
## Commençer par le domaine !
|
||||||
|
|
||||||
|
Mise en place de la librairie du domaine qui contiendra nos objets métiers.
|
||||||
|
|
||||||
|
## Notre premier cas d'utilisation
|
||||||
|
|
||||||
|
Mise en place de la couche applicative avec `MediatR` et implémentation du premier cas d'utilisation.
|
||||||
|
|
||||||
|
## Le site internet en MVC
|
||||||
|
|
||||||
|
### Factoriser des éléments d'interface
|
||||||
|
|
||||||
|
#### Partial views
|
||||||
|
|
||||||
|
Simple fichier permettant de partager du markup sans logique.
|
||||||
|
|
||||||
|
```razor
|
||||||
|
@await Html.PartialAsync("_Partial", model)
|
||||||
|
<partial name="_Partial" model="@Model">
|
||||||
|
```
|
||||||
|
|
||||||
|
#### View components
|
||||||
|
|
||||||
|
Permet de partager du rendu ET de la logique. Plusieurs manière de le déclarer (étendre `ViewComponent`, fichier terminant par `ViewComponent` ou décorateur associé).
|
||||||
|
|
||||||
|
```razor
|
||||||
|
@await Component.InvokeAsync("VComponent")
|
||||||
|
<component type="@typeof(VComponent)" param-arg="@Model" />
|
||||||
|
<vc:VComponent arg="@Model"> // Nécessite d'ajouter les tag helpers et de builder avec (dans le ViewImports) `@addTagHelper *, YourAssembly`
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Razor components (rendu statique)
|
||||||
|
|
||||||
|
Proche de ce qui est fait en Blazor mais sans la partie interactivité. Possibilité de les afficher sans utiliser Blazor du tout mais plusieurs concession, notamment plus de TagHelper type `asp-action`...
|
||||||
|
|
||||||
|
#### Tag Helpers
|
||||||
|
|
||||||
## Démarche
|
## Démarche
|
||||||
|
|
||||||
On crée un fichier solution avec `dotnet new sln`.
|
On crée un fichier solution avec `dotnet new sln`. On pourra alimenter ce fichier sln avec la commande `dotnet sln add DirProjet`.
|
||||||
|
|
||||||
Commençons par le commencement, les building blocks, des classes pour nous faciliter la vie !
|
Commençons par le commencement, les building blocks, des classes pour nous faciliter la vie !
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user