01 - [asp.net core] plénière

Post on 21-Feb-2017

290 Views

Category:

Technology

4 Downloads

Preview:

Click to see full reader

TRANSCRIPT

ASP.NET CoreDe la théorie à la pratique

http://blog.cellenza.com/author/cpuell

Clément PuëllDéveloppeur .NET

Nicholas SuterCraftsman, MVP C#

http://blog.cellenza.com/author/nsuter http://www.nicholassuter.com @NicholasSuter

Des experts reconnus

10 AzureC#ALMSQL ServerWindows Client

1 4

Des publications :• Livres blancs (Cell’Insights)

• http://www.cellenza.com/cellinsights• Articles dans Programmez!• Blog Cellenza

• http://blog.cellenza.com• Organisation de TechEvent• Speakers lors de conférences

• TechDays, Azure Camp, …

Big Bang ?

De la magie ?

Changement de paradigme

ASP (1996) ASP.NET MVC (2009) ASP.NET Core (2017)

ASP.NET Webforms (2002) ASP.NET Web API et SignalR (2012)

IIS Extension .NET Framework + IIS .NET Core

(2007 – 2012)

One ASP.NET

ASP.NETSites Service

s

MVC Webpages

Webforms SPAs Web API SignalR

http://www.hanselman.com/blog/OneASPNETMakingJSONWebAPIsWithASPNETMVC4BetaAndASPNETWebAPI.aspx

ASP.NET Core et ASP.NET 4.6

http://www.hanselman.com/blog/ASPNET5IsDeadIntroducingASPNETCore10AndNETCore10.aspx

Pas un simple changement de version

ASP.NET Core appUpgrade

ASP.NET 4.6 appPortage

Application

Bousculez vos habitudes

Developpeur Serveur web SQL Server

.NET

C# SQL

Bousculez vos habitudes

Developpeur

C# Javascript SQL bash PowerShell css html Application

Outils : des frameworks modulaires orientés composant, des IDE plus légers, des boucles de feedback rapidesPatterns : Injection de dépendences, inversion de contrôle, factory, builderPratiques : TDD, BDD, DI, caching, mocking, Craftmanship, Clean Code, déploiement continu…

Embarquement imminent

Au menu du jour

Cell’Insights• Distribué par Yasmine (sois polie, dis

bonjour, Yasmine)

• A télécharger : http://www.cellenza.com/cellinsights/

Programme de la journée

Plénière : les fondamendaux .NET Core• Nicholas Suter

(MVP)• Clément Puëll

ASP.NET Core MVC• Georges

Damien (MVP)• Emilien Bassez• Jean Dumas

De Rauly

Retour d’expérience à la MAF• Matthias

Grosperrin• Mikaël Krief

(MVP)• Georges

Damien (MVP)

ASP.NET Web API et les SPA• Rémy Royer

Entity Framework Core• Nicholas Suter

(MVP)

ASP.Core et DevOps• Guillaume

Rouchon (MVP)• Mikaël Krief

(MVP)

Les fondamentaux

Petit historique

Début 2014Project K• .NET sous Unix

Mai 2014ASP.NET vNext• Cloud• NuGet• Mac et Linux

Novembre 2014ASP.NET 5• .NET Core 5• GitHub CoreFX

2015GitHub CoreCLR

Juin 2016.NET Core 1.0• ASP.NET Core 1.0• EF Core 1.0• .NET Standard• CLI

Entrée libre

CoreFX

CoreCLR.NET Standard

Getting started

SDKdot.net“.NET Core SDK”

Visual Studio Codecode.visualstudio.com

Visual Studio 2017Release Candidate“.NET Core and

Docker”

Les nouvelles briques

La machine d’exécution

Garbage Collector

JIT Compiler

Multithreading

Types de base

(Object, String)

Exceptions

Multi-plateforme (Windows, Linux, macOS)

Multi-architecture (x86, x64, arm)

3 à 5 millions de lignes de code

C / C++ / C#

CoreCLR

Microsoft.NETCore.Runtime.CoreCLR

La bibliothèque de classe

CoreFXTypes

primitifs

Int32

String

Structures de données

System.Collections

List

Dictionary

Classes utilitaires

System.Net

HttpClient

System.IO

File

System.Collections System.ThreadingSystem.Linq

System.Net.Http System.Text.EncodingSystem.Xml.XDocument

System.IO System.ReflectionSystem.Globalization

NuGet, partout

NuGet, partout

github.com/dotnet/coreclr/tree/master/src/mscorlib/src/System/Collections

nuget.org/packages/System.Collections

<PackageReference Include="System.Collections" Version="4.3.0" />

using System.Collections;

Métapackage

Toutes les API de

CoreFX

CoreCLR.NET Standard

+ Linq.Parallel, Net.Security, …

Microsoft.NETCore.App

Toutes les API du .NET

Standard

Collections, IO, Linq, XML, Tasks,

NETStandard.Library

.NET Core : nouvelle stack incompatible !

Recompiler pour chaque SDK ?

Depuis 2011 : Portable Class Libraries

Problème…

Un standard pour les gouverner tous

netstandard2.0

netstandard1.6

netstandard1.2

netstandard1.0<TargetFramework>netstandard1.6</TargetFramework>

Versionning de .NET Standard

Choisir son framework cible

SDK et runtime Bibliothèque de classe

Packages NuGet Compatibilité

Target Framework

• net45• net461

• netcoreapp1.0

• netcoreapp1.1

• netstandard1.6

• netstandard2.0

Moniker

Tableau comparatif

net

Pour windows

Accès à toute la bibliothèque historiquePeut référencer n’importe quelle librairies tiercesDépendance à Windows et à .NET

netcoreapp

Pour la portabilité

Multi-plateformePlus de package que netstandardCompatibilité moyenne

netstandard

Pour les bibliothèques

Référençable par tout type de projet

Moins d’API disponibles

La boite à outils

Démo 1

Démo Hello World

C:\> La ligne de commande dotnetL’homme à tout faire de .NET Core

Universelle Scriptable Extensible

Multi-plateforme (évidemment)

Fondation pour les outils de plus haut niveau

restore

Restauration des packages

new

build test

add Ajout de références

publish

clean pack

Templates projet

Création d’un package

Génération des

binaires

Visual Studio Code Petit Visual Studio deviendra grand

Éditeur de texte enrichiAdapté pour le Web, node.js et .NET Core

Très extensible

Environnement .NET complet pour Linux !

dotnet

Extension C#

VS Code

Démo 2

Démo Visual Studio Code

Visual Studio 2017

VS2017

Nouvel installeu

r

Performances

Live testing

Debugger

amélioré

“Ouvrir un

dossier”

Support .NET Core Release Candidate gratuite

Sortie mi-2017 avec le tooling .NET Core finalisé

Petite histoire du fichier de configuration

.kproj + project.json

.xproj + project.json

.csproj

• Très recent !

Pourquoi un project.json ?Facile à éditer “à la main” sur Linux et macOS

Retour au .csproj XMLCompatible msbuild

Mais cette fois-ci, facile à lire et à éditer !

Fichier de configuration

Nouveau format XML .csproj Ancien format project.json

> dotnet migrate

Démo 3

Démo Visual Studio 2017

Publication

“Framework”

• DLL portable• A charger via dotnet

“Self-contained”

• Exécutable natif• Cible un OS : Windows, Ubuntu…• Embarque tous le framework

dotnet publish

Démo 4

Démo publication

A retenir

Multi-plateforme avec des DLL portables ou des exécutables natifs Open-source sur GitHub, ouvert aux contributions Framework distribué par NuGet

Ligne de commande dotnet Éditeurs Visual Studio 2017 et Visual Studio Code

Templates d'applications Console – Tests unitaires – Bibliothèques – ASP.NET

.NET Standard pour le partage de code

Planning

top related