---
sidebar_position: 2
title: Progress
---

## Introducing Blazor

* Steps
	* Structure
	* Pages
	* Browsing
	* Code location
	* Binding
	* Use HTML/Css/JS

## Create a new Blazor Server project

* Steps
	* Creation of a new project with Visual Studio

## Display data with Blazor

* Steps
	* Creation of a new page
	* Generation of false data
	* Use data
	* Use an HTML table
	* Use Blazorise
	* Use paging with Blazorise
* Concepts
	* Layout
	* Serialization
	* Life cycle events
	* NuGet

## Add a new item

* Steps
	* Store our data in the LocalStorage
	* Creation of a new page
	* Add an `Add` button
	* Creation of the add-on model
	* Creation of the form
	* Redirect to listing page
	* Display of downloaded image
* Concepts
	* Blazor Storage
	* Routing
	* Data Annotation
	* Form and validation
	* Uri and browsing state assistance

## DI & IOC

* Steps
	* Creation of a data service
* Concepts
	* Dependency Injection (DI)
	* Inversion of Control (IOC)

## Edit an item

* Steps
	* Modification of the data service
	* Add Edit action
	* Creation page edit
	* Creation of the edit form
	* Using the model
	* Use the Pattern Factory
* Concepts
	* URL parameters
	* Component Parameters
	* Factory Pattern

## Delete an item

* Steps
	* Modification of the data service
	* Add Delete action
	* Install Blazored.Modal
	* Creation of a confirmation popup
* Concepts
	* Cascading Parameters

## Globalization & Localization

* Steps
	* User language selection
	* Translate the site thanks to the resources
* Concepts
	* Controllers
	* Resource files
	* Culture

## Razor component

* Steps
	* Creation of a generic component
	* Creation of a complex component
	* Component Description
	* Classes appendix of the component
	* Creation of the `item` component element
	* Creation of the `craft` component element
	* Component Usage
* Concepts
	* RenderFragment
	* Event handling
	* IJSRuntime
	* CascadingValue & CascadingParameter

## API

* Steps
	* Make HTTP requests
* Concepts
	* IHttpClientFactory

## Setup

* Steps
	* Using Setup

## Logger

* Steps
	* Use of logs

:::info
Bonus part (likely to change over time)
:::

## Using graphQL API / Grpc

* Steps
	* Filter management

## Using Websockets

* Steps
	* Customer notification

## Authentication

* Steps
	* Creation of an authentication page
	* Use authentication with APIs

## Various

* Steps
	* Dockerization of the project or part of the project
	* Using SonarQube
	* Using OpenId Connect and/or OAuth
	* Implementation of an identity server (Identity Server 4 for example)
	* MVVM