SlideShare une entreprise Scribd logo
1  sur  45
Présentation de Cellenza

Cabinet de conseil IT exclusivement dédié
aux technologies Microsoft et aux méthodes
Agiles
Notre passion, les technologies MS
Nous
sommes
des
experts
Microsoft,
agilistes par nature, passionnés par notre
métier. Consultants, coachs, formateurs
et/ou MVP, nous avons à cœur de partager
avec la communauté un savoir technique et
méthodologique, mais aussi nos valeurs

150

billets
de
blog

Comment nous le
faisons :
•
•
•

Formation continue
Partage de connaissance
Partenariats

> 12j

formati
on

7 MVP
7 MCT

30

art.

de
presse
Au cœur du Framework
4.5.1
Bruno BOUCARD
MVP C++
blogs.msdn.com/devpara/

Code/Developpement

Michel PERFETTI
MVP ALM
Cellenza
buildmeimfamous.net
.NET (Une vue *très* simplifiée)

Runtime

#mstechdays

Libraries

Languages

Code/developpement

Tools

.NET
Contenu de .NET 4.5
Client & Device

Web & Cloud

Fundamentals

GC

Libraries

• Async – for UI
responsiveness
• Windows Store
apps -- WinRT
• Windows Phone
apps
• .NET CF 3.9

• Async – for
server scaling
• ASP.NET MVC4
• ASP.NET Web
API
• ASP.NET Web
Pages
• Entity
Framework
Code-First
• WebSockets
• SignalR
• Windows Azure
Cloud Services
4.5 Support
• Windows Azure
Web Sites

• .NET Async
(async + await)
• Many new
async APIs
• WinRT interop
• Multi-core JIT
• MPGO – NGEN
hot/cold splitting
• Performance
improvements
• Reboot and
reliability
improvements to
setup
• Support
Windows RT

• Background GC
• LOH heap
balancing
• LOH
fragmentation
reduction
• GC low latency
mode
• GC awareness
of NUMA and
>64 processors
• >2GB arrays (or
objects)

• Portable
libraries update
• .NET Core
Profile
(Windows 8)
• Extension
methods for
WinRT streams
and async
• NuGet
• Immutable
collections
• Async for .NET
4
• HttpClient for
Portable

.NET 4.5 est installé sur plus de 100+ million de machines!

#mstechdays

Code/developpement
.NET 4.5.1 en trois axes
Productivité du développeur
Performance des applications
Innovations constantes
#mstechdays

Code/developpement
Productivité du
développeur

#mstechdays

Code/developpement
En 2005, il y avait une fonctionnalité
nommée «Edit & Continue», mais
quelque chose manquait…

#mstechdays

Code/developpement
#mstechdays

Code/developpement
«Edit & Continue» pour 64-bits est là !
•
•
•

•

Fortement demandé par la communauté
Fonctionne exactement comme pour les applications 32bits
Projets client (WPF, WinForms, etc), Store et applications
web ASP.NET sont supportés
Pour les projets d’application web activer «Edit &
Continue» dans les propriétés du projet

#mstechdays

Code/developpement
Mais il y a mieux…

#mstechdays

Code/developpement
#mstechdays

Code/developpement
Inspection des valeurs de retour
de méthode

• Maintenant disponible pour .NET !
• Accès par les fenêtres «Autos» et «Immediat»
($ReturnValue)
• Peut étendre les valeurs de retour dans le
debugger

#mstechdays

Code/developpement
Améliorations du débogage async
• Question fréquente :
– Comment l’exécution arrive-t-elle ici ?

• Supporte les Store Apps, les Web Apps ainsi que
les applications desktop sous Windows 8.1
• Amélioration des fenêtres «Call Stack» et Tasks

#mstechdays

Code/developpement
Amélioration du développement
Windows Store
•
•
•
•

Support du «Edit & Continue» en 64-bits
Support de l’inspection des valeurs de retour
Amélioration du débogage des async
Conversion de System.IO.Stream vers IRandomAccessStream
– Permet une bien meilleure intéropérabilité avec le code .NET existant

• Meilleurs support des exceptions provenant des APIs WinRT
– System.Exception.Message
– System.Exception.StackTrace

• Valeur de type Nullable dans les structs WinRT
#mstechdays

Code/developpement
Conversion de Stream vers
IRandomAccessStream
Des forums MSDN :

bitmap.SetSource(memoryStream); <--

error CS1503: Argument 1: cannot convert from 'System.IO.Stream' to 'Windows.Storage.Streams.IRandomAccessStream‘

bitmap.SetSource(memoryStream.AsRandomAccessStream()); <-- .NET 4.5.1

Dans .NET 4.5.1 : System.IO.WindowsRuntimeStreamExtensions
.AsRandomAccessStream(Stream stream)
#mstechdays

Code/developpement
Support des exceptions APIs WinRT
•

Sous Windows 8, la propagation des erreurs depuis les APIs WinRT se fait à
travers des HRESULT
–

•

Les informations importantes sur ces exceptions sont perdues, à moins qu’un débogueur soit attaché

Sous Windows 8.1, des informations additionnelles sur l’erreur sont
disponibles grâce aux propriétés de System.Exception :
–
–

Message
StackTrace

Additional exception details
from a C++ WinRT
Component

#mstechdays

Code/developpement
Résilience des connexions EF/ADO.NET
•
•
•
•

Fourni une connexion vers Azure DB fiable
Restauration automatique de connexion rompue
Fourni un grande expérience depuis des appareils connectés
Ca fonctionne ! Aucune configuration ou modification de code
autre que d’installer .NET 4.5.1

#mstechdays

Code/developpement
ASYNC, $RETURNVALUE,
EDIT&CONTINUE, EF

#mstechdays

Code/developpement
Performance des
applications

#mstechdays

Code/developpement
Suspension des applications ASP.NET
•

Ajoute la capacité de suspendre une
application via une machine à trois états

•
•

Tous les sites débutent dans un état inactif
Lorsque les sites sont réclamés, ils sont chargés en mémoire,
deviennent actifs, et de répondre aux requêtes clientes
Les sites activés seront suspendus après un délai prédéfini
• Les sites suspendus perdent l'accès à la CPU, ce qui libère
des cycles CPU et de la mémoire pour les demandes vers
d'autres sites.
• ils sont maintenus dans le nouvel état suspendu
• ils peuvent être repris très rapidement et répondre à de
nouvelles requêtes très rapidement

•

#mstechdays

Code/developpement
Suspension des applications ASP.NET
• Permet faible latence,
des sites Web de
haute densité pour le
cloud on-prem/private

• Livraison dans le
cadre de IIS 8.5 dans
Windows Server 2012
R2
#mstechdays

Résultats en provenance de chez Microsoft

Code/developpement
Suspension des applications ASP.NET
Dans les paramètres de IIS,
définissez délai d'inactivité
sur « suspend »

Plus information: ASP.NET App Suspend – responsive shared .NET web
hosting

#mstechdays

Code/developpement
Rappel sur le Large Object Heap (LOH)
• Il est long de compacter (= déplacer) des gros objets
Pour remédier à ce problème
– Le GC alloue les objets considérés « gros » (>85Ko) dans un tas
spécifique appelé Large Object Heap (LOH).
– le LOH n’est pas compacté
• On gagne en temps dans le GC, mais la création d’un gros objet est
par contre beaucoup plus lente

• Le Framework .NET 4.5 apporte une amélioration de
30% de la vitesse d’allocation dans le LOH par
rapport au Framework 4.0
Compactage sur demande du LOH
• 2 méthodes d’utilisation de l’API du GC pour le LOH
1. Compactage du LOH directement (right away)
GCSettings.LOHCompactionMode = GCLOHCompationMode.CompactOnce;
GC.Collect();

2. Compactage du LOH lors du traitement de la génération 2
// Next full blocking GC happens at some point, it will be a
compacting GC that compacts the whole heap including LOH.
GCSettings.LOHCompactionMode = GCLOHCompationMode.CompactOnce;

#mstechdays

Code/developpement
Rappel sur le compilateur Just-In-Time
Les compilateurs .NET
•
•

•

Transforment à la volée le code IL (résultat de la compilation de
source .NET) en code assembleur
Compilation à la demande (just in time) et une seule fois par
fonction

Cependant
•
•

#mstechdays

Démarrage à froid

•

Certaines applications/services ont besoin de démarrer le plus
vite possible, et souffrent du temps de JIT
Le Framework .NET 4.5 permet de JITTER en // les Apps du
Store et les applications/service .NET dont les assemblages sont
dans le GAC
Code/developpement
•

•

•

Minimise le temps
de démarrage sur
des processeurs
multi cœurs
Désormais pris en
charge pour les
sites Web ASP.NET
Activé par défaut
pour les applications
ASP.NET

#mstechdays

Démarrage à froid

JIT multi-cœur pour sites web ASP.NET

Code/developpement
Cohérence de performance avant et
après la mise à jour de .NET
•
•

Actuellement, mettre à jour le Framework .NET peut amener à une
dégradation des performances d’une app juste après la mise à jour

•

Cela est dû aux assemblages .NET de base qui son JITTER après la
mise à jour

•

Sous Windows 8.1, la performance des apps reste identique, même
après la mise à jour du Framework .NET

•

#mstechdays

Maintenir le Framework .NET pour plus d’un milliard de PC est un
vrai gros soucis !

Le résultat est une meilleure expérience utilisateur, ainsi qu’une
longévité supérieure des batteries des tablettes

Code/developpement
Compactage sur demande du LOH
• Le Garbage
Collector de .NET
est une machine
bien huilée
• En principe,
GC.Collect() ne
devrait jamais être
appelé
• ATTENTION : Les
grands pouvoirs
impliquent de
grandes
responsabilités !
#mstechdays

Code/developpement
Compactage sur demande du LOH
• Avec .NET 4.5.1, il est
maintenant possible de le
compacter afin de réduire
la fragmentation du tas
• La configuration du LOH
fait partie de GCSettings
public static class GCSettings {
public static GCLOHCompactionMode LOHCompactionMode { get; set; }
}
#mstechdays

Code/developpement
COMPACTAGE SUR DEMANDE
DU LOH

#mstechdays

Code/developpement
Innovation
continue

#mstechdays

Code/developpement
Mise à jour du Framework .NET
• L’objectif est de garder les valeurs existantes du Framework
.NET tout en permettant plus d’agilité et d’innovation
• Valeurs existantes :
–
–
–
–

Facilité d’accès
Qualité connue, maturité et niveau de compatibilité
Une seule politique de licence et de support
Patching centralisé pour les problèmes de sécurité

• Les nouvelles valeurs :
– Cycle de release plus rapide avec un retour d’expérience client plus proche
– Moins de friction lors d’utilisation des fonctionnalités de .NET sur plusieurs
plateformes

#mstechdays

Code/developpement
Release NuGet
• Lors de la release de .NET 4.5, deux composants ont
étés délivrés par NuGet :
– MEF (Microsoft Composition) pour les apps web et Windows Store
– TPL Dataflow (Microsoft.Tpl.Dataflow)
– Ces éléments sont traités comme n’importe quel autre composant de
.NET 4.5 (support complet)
System
Composition

TPL
Dataflow

Http Client

Async

.NET (“in box”)
#mstechdays

Code/developpement

Immutable
Collections
Flux NuGet pour le Framework .NET
• Accès unique
pour tous les
packages NuGet
du framework
.NET livrés par
Microsoft
–
–

#mstechdays

Dans Visual Studio 2010,
2012 et 2013
Sur le web

Code/developpement
Flux NuGet pour le Framework .NET
• Déjà activé dans Visual Studio 2013

•
•
•
•

Sous Visual Studio 2010 et 2012
Tools.Options.Package Manager
Nom: .NET Framework Packages
Source: https://nuget.org/api/v2/curated-feeds/dotnetframework

#mstechdays

Code/developpement
Architecture Interne (ImmutableList)
Créer une liste immutable

Ajouter
null

null

null

1
var list1 = ImmutableList.Create(1);
// list 1 = { 1 }

#mstechdays

Insérer
null

2

null

1

null

null

3

null

2
1

var list2 = list1.Add(2);
// list 1 = { 1 }
// list2 = { 1, 2 }

Code/developpement

var list3 = list2.Insert(0, 3);
// list1 = { 1 }
// list2 = { 1, 2 }
// list 3= { 3, 1, 2 }
Performances
• Ajouter des items
–

–

Les collections immutables consomment un peu plus de
mémoire par élément de stockage que leurs homologues
mutables
La consommation réelle de mémoire entre un type mutable
et type immutable peut varier en fonction de la façon dont
les instances sont utilisées

• Retirer des items
–

–

#mstechdays

Les collections mutables ne rétrécissent pas leurs tableaux
de sorte que vous n'avez pas à récupérer cette mémoire
Les collections immuables rétrécissent immédiatement
leurs arbres binaires pour chaque élément supprimé
• Cette mémoire libre est candidate pour la collecte du
GC
Code/developpement
Conseils d’utilisation
• Scénario de multithreading
– Mais pas forcement massivement concurrent
• Les collections de System.Collections.Concurrent sont là pour ça
!

• Pratique
– Vous voulez extraire des instantanés des vos collections
• Vous souhaitez les lire dans un contexte thread-safe, alors que la
collection originale peut continuer à être modifiée

• Rappel
– Les collections immutables sont généralement rapides à lire, mais
relativement coûteuses à mettre à jour

#mstechdays

Code/developpement
LE PACKAGE
IMMUTABLE
COLLECTIONS EN ACTION
#mstechdays

Code/developpement
Synthèse du Framework .NET 4.5.1
Performance des applications Productivité du développeur

•

64-bit Edit and Continue •

•

Method Return Value
Inspection

•
•

•

#mstechdays

Async Debugging
Enhancements
Windows Store
development
improvements
EF/ADO.NET
Connection Resiliency

•

Innovation continue

ASP.NET application
suspension
Multi-core JIT
improvements

•

On-demand large-object
heap compaction

•

Consistent performance
before and after servicing
the .NET Framework

Code/developpement

NET Framework
updates
•

NuGet releases

•

Curated .NET
Framework NuGet
packages
De nombreux moyens de communication

E-mail

dotnet

Blog
#mstechdays

MSDN Forums

Code/developpement

@dotnet

UserVoice
Donnez votre avis !
Depuis votre smartphone sur :
http://notes.mstechdays.fr
De nombreux lots à gagner toute les heures !!!
Claviers, souris et jeux Microsoft…
Merci de nous aider à améliorer les Techdays !

#mstechdays

Code/developpement
Présentation de Cellenza

Ve n e z n o u s r e t r o u ve r s u r n o t r e St a n d # 1 5

Vous pouvez vous inscrire à
notre jeu concours sur notre
stand ou en ligne :
http://jeuconcours.cellenza.com

Merci !
Digital is
business

Contenu connexe

Tendances

Meet up paris 13 of jun 2017
Meet up paris 13 of jun 2017Meet up paris 13 of jun 2017
Meet up paris 13 of jun 2017Jasmine Conseil
 
Synchroniser ses applications plus rapidement avec du low-code
Synchroniser ses applications plus rapidement avec du low-codeSynchroniser ses applications plus rapidement avec du low-code
Synchroniser ses applications plus rapidement avec du low-codegplanchat
 
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et Mobile
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et MobileNouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et Mobile
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et MobileIppon
 
10 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 810 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 8Microsoft
 
Les nouveautés du Framework .NET 4.5
Les nouveautés du Framework .NET 4.5Les nouveautés du Framework .NET 4.5
Les nouveautés du Framework .NET 4.5Microsoft
 
Deployment of a multi-site platform
Deployment of a multi-site platformDeployment of a multi-site platform
Deployment of a multi-site platformKaliop-slide
 
Alphorm.com Formation Docker (2/2) - Administration Avancée
Alphorm.com Formation Docker (2/2) - Administration Avancée Alphorm.com Formation Docker (2/2) - Administration Avancée
Alphorm.com Formation Docker (2/2) - Administration Avancée Alphorm
 
Des principes de la démarche DevOps à sa mise en oeuvre
Des principes de la démarche DevOps à sa mise en oeuvreDes principes de la démarche DevOps à sa mise en oeuvre
Des principes de la démarche DevOps à sa mise en oeuvreStephane Manciot
 
Les nouveautés de Visual Studio 11
Les nouveautés de Visual Studio 11Les nouveautés de Visual Studio 11
Les nouveautés de Visual Studio 11Microsoft
 
Jenkins - perdre du temps pour en gagner
Jenkins - perdre du temps pour en gagnerJenkins - perdre du temps pour en gagner
Jenkins - perdre du temps pour en gagnerGeeks Anonymes
 
L'integration continue pour tous
L'integration continue pour tousL'integration continue pour tous
L'integration continue pour tousAurelien Navarre
 
Petit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIs
Petit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIsPetit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIs
Petit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIsOCTO Technology
 
Run java vs ruby
Run java vs rubyRun java vs ruby
Run java vs rubypinguin666
 
Booster votre application Windows Phone 8
Booster votre application Windows Phone 8Booster votre application Windows Phone 8
Booster votre application Windows Phone 8Microsoft
 
Alphorm.com Formation React Package Manager : npm et yarn
Alphorm.com Formation React Package Manager : npm et yarnAlphorm.com Formation React Package Manager : npm et yarn
Alphorm.com Formation React Package Manager : npm et yarnAlphorm
 
wallabag, comment on a migré vers symfony3
wallabag, comment on a migré vers symfony3wallabag, comment on a migré vers symfony3
wallabag, comment on a migré vers symfony3Nicolas Lœuillet
 
Seminaire Portail Open Source
Seminaire Portail Open SourceSeminaire Portail Open Source
Seminaire Portail Open SourceIppon
 

Tendances (20)

Meet up paris 13 of jun 2017
Meet up paris 13 of jun 2017Meet up paris 13 of jun 2017
Meet up paris 13 of jun 2017
 
JavaFX et le JDK9
JavaFX et le JDK9JavaFX et le JDK9
JavaFX et le JDK9
 
Synchroniser ses applications plus rapidement avec du low-code
Synchroniser ses applications plus rapidement avec du low-codeSynchroniser ses applications plus rapidement avec du low-code
Synchroniser ses applications plus rapidement avec du low-code
 
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et Mobile
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et MobileNouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et Mobile
Nouveau look pour une nouvelle vie : HTML5, Spring, NoSQL et Mobile
 
10 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 810 tips pour améliorer les performances de vos applications Windows 8
10 tips pour améliorer les performances de vos applications Windows 8
 
Les nouveautés du Framework .NET 4.5
Les nouveautés du Framework .NET 4.5Les nouveautés du Framework .NET 4.5
Les nouveautés du Framework .NET 4.5
 
Deployment of a multi-site platform
Deployment of a multi-site platformDeployment of a multi-site platform
Deployment of a multi-site platform
 
Spring Batch - concepts de base
Spring Batch - concepts de baseSpring Batch - concepts de base
Spring Batch - concepts de base
 
Alphorm.com Formation Docker (2/2) - Administration Avancée
Alphorm.com Formation Docker (2/2) - Administration Avancée Alphorm.com Formation Docker (2/2) - Administration Avancée
Alphorm.com Formation Docker (2/2) - Administration Avancée
 
Des principes de la démarche DevOps à sa mise en oeuvre
Des principes de la démarche DevOps à sa mise en oeuvreDes principes de la démarche DevOps à sa mise en oeuvre
Des principes de la démarche DevOps à sa mise en oeuvre
 
Les nouveautés de Visual Studio 11
Les nouveautés de Visual Studio 11Les nouveautés de Visual Studio 11
Les nouveautés de Visual Studio 11
 
Jenkins - perdre du temps pour en gagner
Jenkins - perdre du temps pour en gagnerJenkins - perdre du temps pour en gagner
Jenkins - perdre du temps pour en gagner
 
L'integration continue pour tous
L'integration continue pour tousL'integration continue pour tous
L'integration continue pour tous
 
Petit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIs
Petit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIsPetit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIs
Petit déjeuner OCTO Technology - Nouvelles Architectures Web Front-End et APIs
 
Java Fx Rapport
Java Fx RapportJava Fx Rapport
Java Fx Rapport
 
Run java vs ruby
Run java vs rubyRun java vs ruby
Run java vs ruby
 
Booster votre application Windows Phone 8
Booster votre application Windows Phone 8Booster votre application Windows Phone 8
Booster votre application Windows Phone 8
 
Alphorm.com Formation React Package Manager : npm et yarn
Alphorm.com Formation React Package Manager : npm et yarnAlphorm.com Formation React Package Manager : npm et yarn
Alphorm.com Formation React Package Manager : npm et yarn
 
wallabag, comment on a migré vers symfony3
wallabag, comment on a migré vers symfony3wallabag, comment on a migré vers symfony3
wallabag, comment on a migré vers symfony3
 
Seminaire Portail Open Source
Seminaire Portail Open SourceSeminaire Portail Open Source
Seminaire Portail Open Source
 

En vedette

.NET Framework Overview
.NET Framework Overview.NET Framework Overview
.NET Framework OverviewDoncho Minkov
 
ACCIÓN COMPLEMENTARIA CULTURA POLÍTICA 2010
ACCIÓN COMPLEMENTARIA CULTURA POLÍTICA 2010ACCIÓN COMPLEMENTARIA CULTURA POLÍTICA 2010
ACCIÓN COMPLEMENTARIA CULTURA POLÍTICA 2010Nameless RV
 
HI 73f - Lecons Apprises - Assistance aux victimes de mines
HI 73f - Lecons Apprises - Assistance aux victimes de minesHI 73f - Lecons Apprises - Assistance aux victimes de mines
HI 73f - Lecons Apprises - Assistance aux victimes de minesBernard hardy
 
Billares profesionales
Billares profesionalesBillares profesionales
Billares profesionalesKevin Carreño
 
space science determinants tang 2015.PDF
space science determinants tang 2015.PDFspace science determinants tang 2015.PDF
space science determinants tang 2015.PDFTerry Tang
 
Les solutions et avenir de l'impression 3D (Petit dej’ Business @Dreux)
Les solutions et avenir de l'impression 3D (Petit dej’ Business @Dreux)Les solutions et avenir de l'impression 3D (Petit dej’ Business @Dreux)
Les solutions et avenir de l'impression 3D (Petit dej’ Business @Dreux)S'implanter à Dreux
 
LSP storytellings
LSP storytellingsLSP storytellings
LSP storytellingsChinkie75
 
Alger today faq
Alger today faqAlger today faq
Alger today faqjudesol
 
Théorie du consommateur
Théorie du consommateurThéorie du consommateur
Théorie du consommateurSoukaina Assam
 
Ancien Temps Pap
Ancien Temps PapAncien Temps Pap
Ancien Temps Papguest9d62db
 
markerting viral
markerting viralmarkerting viral
markerting viral2803 MEDIA
 
Reglamento de los concursos cientificos
Reglamento de los concursos cientificosReglamento de los concursos cientificos
Reglamento de los concursos cientificosShagali Witty
 
A Petitreceuild Imagesdroles
A Petitreceuild ImagesdrolesA Petitreceuild Imagesdroles
A Petitreceuild Imagesdroleseric4274
 
30ème dimanche ordinaire année b
30ème dimanche ordinaire année b30ème dimanche ordinaire année b
30ème dimanche ordinaire année bParoisse d'Assesse
 
Los hospitales del camino de santiago
Los hospitales del camino de santiagoLos hospitales del camino de santiago
Los hospitales del camino de santiagoNameless RV
 

En vedette (20)

.NET Framework Overview
.NET Framework Overview.NET Framework Overview
.NET Framework Overview
 
.NET Framework
.NET Framework.NET Framework
.NET Framework
 
Diapositivas de presentacion
Diapositivas de presentacionDiapositivas de presentacion
Diapositivas de presentacion
 
ACCIÓN COMPLEMENTARIA CULTURA POLÍTICA 2010
ACCIÓN COMPLEMENTARIA CULTURA POLÍTICA 2010ACCIÓN COMPLEMENTARIA CULTURA POLÍTICA 2010
ACCIÓN COMPLEMENTARIA CULTURA POLÍTICA 2010
 
HI 73f - Lecons Apprises - Assistance aux victimes de mines
HI 73f - Lecons Apprises - Assistance aux victimes de minesHI 73f - Lecons Apprises - Assistance aux victimes de mines
HI 73f - Lecons Apprises - Assistance aux victimes de mines
 
Billares profesionales
Billares profesionalesBillares profesionales
Billares profesionales
 
space science determinants tang 2015.PDF
space science determinants tang 2015.PDFspace science determinants tang 2015.PDF
space science determinants tang 2015.PDF
 
Les solutions et avenir de l'impression 3D (Petit dej’ Business @Dreux)
Les solutions et avenir de l'impression 3D (Petit dej’ Business @Dreux)Les solutions et avenir de l'impression 3D (Petit dej’ Business @Dreux)
Les solutions et avenir de l'impression 3D (Petit dej’ Business @Dreux)
 
LSP storytellings
LSP storytellingsLSP storytellings
LSP storytellings
 
Concours
ConcoursConcours
Concours
 
Alger today faq
Alger today faqAlger today faq
Alger today faq
 
Théorie du consommateur
Théorie du consommateurThéorie du consommateur
Théorie du consommateur
 
Ancien Temps Pap
Ancien Temps PapAncien Temps Pap
Ancien Temps Pap
 
markerting viral
markerting viralmarkerting viral
markerting viral
 
Reglamento de los concursos cientificos
Reglamento de los concursos cientificosReglamento de los concursos cientificos
Reglamento de los concursos cientificos
 
A Petitreceuild Imagesdroles
A Petitreceuild ImagesdrolesA Petitreceuild Imagesdroles
A Petitreceuild Imagesdroles
 
Ley 19/2013
Ley 19/2013Ley 19/2013
Ley 19/2013
 
Leshorloges
LeshorlogesLeshorloges
Leshorloges
 
30ème dimanche ordinaire année b
30ème dimanche ordinaire année b30ème dimanche ordinaire année b
30ème dimanche ordinaire année b
 
Los hospitales del camino de santiago
Los hospitales del camino de santiagoLos hospitales del camino de santiago
Los hospitales del camino de santiago
 

Similaire à Au coeur du framework .net 4.5.1

"J'ai migré mon SI intégralement en Java dans Windows Azure et je me porte bi...
"J'ai migré mon SI intégralement en Java dans Windows Azure et je me porte bi..."J'ai migré mon SI intégralement en Java dans Windows Azure et je me porte bi...
"J'ai migré mon SI intégralement en Java dans Windows Azure et je me porte bi...Microsoft
 
TechDays 2014 : retour d'expérience Kompass migration Java dans Azure
TechDays 2014 : retour d'expérience Kompass migration Java dans AzureTechDays 2014 : retour d'expérience Kompass migration Java dans Azure
TechDays 2014 : retour d'expérience Kompass migration Java dans AzureThomas Conté
 
Formation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPFFormation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPFBoubker ABERWAG
 
Accéder au développement Dot.Net et Asp.Net
Accéder au développement Dot.Net et Asp.NetAccéder au développement Dot.Net et Asp.Net
Accéder au développement Dot.Net et Asp.NetFrédéric Vandenbriele
 
What's Next Replay - IC / Jenkins
What's Next Replay - IC / JenkinsWhat's Next Replay - IC / Jenkins
What's Next Replay - IC / JenkinsZenikaOuest
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !VISEO
 
ASP.NET MVC 5 et Web API 2
ASP.NET MVC 5 et Web API 2ASP.NET MVC 5 et Web API 2
ASP.NET MVC 5 et Web API 2Microsoft
 
Vincent biret azure functions et flow (montreal)
Vincent biret azure functions et flow (montreal)Vincent biret azure functions et flow (montreal)
Vincent biret azure functions et flow (montreal)Vincent Biret
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfboulonvert
 
Keynote change 2013
Keynote change 2013Keynote change 2013
Keynote change 2013rbschange
 
Introduction to Rust in Production - Servo Mozilla project (Talk)
Introduction to Rust in Production - Servo Mozilla project (Talk)Introduction to Rust in Production - Servo Mozilla project (Talk)
Introduction to Rust in Production - Servo Mozilla project (Talk)Quentin Frémeaux
 
Développer ou debugger ?
Développer ou debugger ? Développer ou debugger ?
Développer ou debugger ? Microsoft
 
Quoi de neuf à Devoxx France 2017 ?
Quoi de neuf à Devoxx France 2017 ?Quoi de neuf à Devoxx France 2017 ?
Quoi de neuf à Devoxx France 2017 ?Antoine Rey
 
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement MicrosoftChristophe HERAL
 
Développer une Single Page Application HTML 5 pour tous les devices
Développer une Single Page Application HTML 5 pour tous les devices Développer une Single Page Application HTML 5 pour tous les devices
Développer une Single Page Application HTML 5 pour tous les devices Microsoft
 
developpement web framework cms developpement brute
developpement web framework cms developpement brutedeveloppement web framework cms developpement brute
developpement web framework cms developpement bruteYounesOuladSayad1
 
Compatibilité Internet Explorer : pour le meilleur et pour le pire!
Compatibilité Internet Explorer : pour le meilleur et pour le pire!Compatibilité Internet Explorer : pour le meilleur et pour le pire!
Compatibilité Internet Explorer : pour le meilleur et pour le pire!Microsoft
 

Similaire à Au coeur du framework .net 4.5.1 (20)

"J'ai migré mon SI intégralement en Java dans Windows Azure et je me porte bi...
"J'ai migré mon SI intégralement en Java dans Windows Azure et je me porte bi..."J'ai migré mon SI intégralement en Java dans Windows Azure et je me porte bi...
"J'ai migré mon SI intégralement en Java dans Windows Azure et je me porte bi...
 
TechDays 2014 : retour d'expérience Kompass migration Java dans Azure
TechDays 2014 : retour d'expérience Kompass migration Java dans AzureTechDays 2014 : retour d'expérience Kompass migration Java dans Azure
TechDays 2014 : retour d'expérience Kompass migration Java dans Azure
 
Formation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPFFormation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPF
 
Accéder au développement Dot.Net et Asp.Net
Accéder au développement Dot.Net et Asp.NetAccéder au développement Dot.Net et Asp.Net
Accéder au développement Dot.Net et Asp.Net
 
What's Next Replay - IC / Jenkins
What's Next Replay - IC / JenkinsWhat's Next Replay - IC / Jenkins
What's Next Replay - IC / Jenkins
 
Formation mobile-cross-platform
Formation mobile-cross-platformFormation mobile-cross-platform
Formation mobile-cross-platform
 
Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !Javascript as a first programming language : votre IC prête pour la révolution !
Javascript as a first programming language : votre IC prête pour la révolution !
 
ASP.NET MVC 5 et Web API 2
ASP.NET MVC 5 et Web API 2ASP.NET MVC 5 et Web API 2
ASP.NET MVC 5 et Web API 2
 
Vincent biret azure functions et flow (montreal)
Vincent biret azure functions et flow (montreal)Vincent biret azure functions et flow (montreal)
Vincent biret azure functions et flow (montreal)
 
vNext
vNextvNext
vNext
 
Dev opsday case study
Dev opsday   case studyDev opsday   case study
Dev opsday case study
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdf
 
Keynote change 2013
Keynote change 2013Keynote change 2013
Keynote change 2013
 
Introduction to Rust in Production - Servo Mozilla project (Talk)
Introduction to Rust in Production - Servo Mozilla project (Talk)Introduction to Rust in Production - Servo Mozilla project (Talk)
Introduction to Rust in Production - Servo Mozilla project (Talk)
 
Développer ou debugger ?
Développer ou debugger ? Développer ou debugger ?
Développer ou debugger ?
 
Quoi de neuf à Devoxx France 2017 ?
Quoi de neuf à Devoxx France 2017 ?Quoi de neuf à Devoxx France 2017 ?
Quoi de neuf à Devoxx France 2017 ?
 
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
[Scrum Day 2011] Outillage Agile dans un environnement Microsoft
 
Développer une Single Page Application HTML 5 pour tous les devices
Développer une Single Page Application HTML 5 pour tous les devices Développer une Single Page Application HTML 5 pour tous les devices
Développer une Single Page Application HTML 5 pour tous les devices
 
developpement web framework cms developpement brute
developpement web framework cms developpement brutedeveloppement web framework cms developpement brute
developpement web framework cms developpement brute
 
Compatibilité Internet Explorer : pour le meilleur et pour le pire!
Compatibilité Internet Explorer : pour le meilleur et pour le pire!Compatibilité Internet Explorer : pour le meilleur et pour le pire!
Compatibilité Internet Explorer : pour le meilleur et pour le pire!
 

Plus de Cellenza

Global AI Night - Azure ML visual interface
Global AI Night - Azure ML visual interfaceGlobal AI Night - Azure ML visual interface
Global AI Night - Azure ML visual interfaceCellenza
 
Soirée de lancement Visual Studio - .Net Core 3 et ASP.Net Core 3
Soirée de lancement Visual Studio - .Net Core 3 et ASP.Net Core 3Soirée de lancement Visual Studio - .Net Core 3 et ASP.Net Core 3
Soirée de lancement Visual Studio - .Net Core 3 et ASP.Net Core 3Cellenza
 
Soirée de lancement Visual Studio - VS for Mac & Xamarin
Soirée de lancement Visual Studio - VS for Mac & XamarinSoirée de lancement Visual Studio - VS for Mac & Xamarin
Soirée de lancement Visual Studio - VS for Mac & XamarinCellenza
 
Soirée de lancement Visual Studio - Live Share
Soirée de lancement Visual Studio - Live ShareSoirée de lancement Visual Studio - Live Share
Soirée de lancement Visual Studio - Live ShareCellenza
 
Soirée de lancement Visual Studio - Le développement sous VS19
Soirée de lancement Visual Studio - Le développement sous VS19Soirée de lancement Visual Studio - Le développement sous VS19
Soirée de lancement Visual Studio - Le développement sous VS19Cellenza
 
Soirée de lancement Visual Studio - Introduction
Soirée de lancement Visual Studio - IntroductionSoirée de lancement Visual Studio - Introduction
Soirée de lancement Visual Studio - IntroductionCellenza
 
Qu'est ce qu'une api en 2019 ?
Qu'est ce qu'une api en 2019 ? Qu'est ce qu'une api en 2019 ?
Qu'est ce qu'une api en 2019 ? Cellenza
 
Gouvernance Azure - Mettre en place sa politique de Gouvernance
Gouvernance Azure - Mettre en place sa politique de GouvernanceGouvernance Azure - Mettre en place sa politique de Gouvernance
Gouvernance Azure - Mettre en place sa politique de GouvernanceCellenza
 
Gouvernance Azure - Comprendre la facture Azure
Gouvernance Azure - Comprendre la facture AzureGouvernance Azure - Comprendre la facture Azure
Gouvernance Azure - Comprendre la facture AzureCellenza
 
Gouvernance Azure - La charte de nommage
Gouvernance Azure - La charte de nommageGouvernance Azure - La charte de nommage
Gouvernance Azure - La charte de nommageCellenza
 
Continuous monitoring : Dev to Ops
Continuous monitoring : Dev to OpsContinuous monitoring : Dev to Ops
Continuous monitoring : Dev to OpsCellenza
 
MobileDay - Parcours 2 Crossplateform
MobileDay - Parcours 2 CrossplateformMobileDay - Parcours 2 Crossplateform
MobileDay - Parcours 2 CrossplateformCellenza
 
MobileDay - Session 3 La Mobilité selon Microsoft
MobileDay - Session 3 La Mobilité selon MicrosoftMobileDay - Session 3 La Mobilité selon Microsoft
MobileDay - Session 3 La Mobilité selon MicrosoftCellenza
 
MobileDay - Parcours 1 Hybride (Cordova)
MobileDay - Parcours 1 Hybride  (Cordova)MobileDay - Parcours 1 Hybride  (Cordova)
MobileDay - Parcours 1 Hybride (Cordova)Cellenza
 
MobileDay - Parcours 3 : Natif (Universal Apps)
MobileDay - Parcours 3 : Natif (Universal Apps)MobileDay - Parcours 3 : Natif (Universal Apps)
MobileDay - Parcours 3 : Natif (Universal Apps)Cellenza
 
MobileDay - Session 2 REX IDEX
MobileDay - Session 2 REX IDEXMobileDay - Session 2 REX IDEX
MobileDay - Session 2 REX IDEXCellenza
 
Biztalk summit - IOT
Biztalk summit - IOTBiztalk summit - IOT
Biztalk summit - IOTCellenza
 
DevOps Day - Continuous Delivery
DevOps Day - Continuous DeliveryDevOps Day - Continuous Delivery
DevOps Day - Continuous DeliveryCellenza
 
DevOps Day - Infrastructure As A Code
DevOps Day - Infrastructure As A CodeDevOps Day - Infrastructure As A Code
DevOps Day - Infrastructure As A CodeCellenza
 
Mutualisation des développements avec VS2012
Mutualisation des développements avec VS2012Mutualisation des développements avec VS2012
Mutualisation des développements avec VS2012Cellenza
 

Plus de Cellenza (20)

Global AI Night - Azure ML visual interface
Global AI Night - Azure ML visual interfaceGlobal AI Night - Azure ML visual interface
Global AI Night - Azure ML visual interface
 
Soirée de lancement Visual Studio - .Net Core 3 et ASP.Net Core 3
Soirée de lancement Visual Studio - .Net Core 3 et ASP.Net Core 3Soirée de lancement Visual Studio - .Net Core 3 et ASP.Net Core 3
Soirée de lancement Visual Studio - .Net Core 3 et ASP.Net Core 3
 
Soirée de lancement Visual Studio - VS for Mac & Xamarin
Soirée de lancement Visual Studio - VS for Mac & XamarinSoirée de lancement Visual Studio - VS for Mac & Xamarin
Soirée de lancement Visual Studio - VS for Mac & Xamarin
 
Soirée de lancement Visual Studio - Live Share
Soirée de lancement Visual Studio - Live ShareSoirée de lancement Visual Studio - Live Share
Soirée de lancement Visual Studio - Live Share
 
Soirée de lancement Visual Studio - Le développement sous VS19
Soirée de lancement Visual Studio - Le développement sous VS19Soirée de lancement Visual Studio - Le développement sous VS19
Soirée de lancement Visual Studio - Le développement sous VS19
 
Soirée de lancement Visual Studio - Introduction
Soirée de lancement Visual Studio - IntroductionSoirée de lancement Visual Studio - Introduction
Soirée de lancement Visual Studio - Introduction
 
Qu'est ce qu'une api en 2019 ?
Qu'est ce qu'une api en 2019 ? Qu'est ce qu'une api en 2019 ?
Qu'est ce qu'une api en 2019 ?
 
Gouvernance Azure - Mettre en place sa politique de Gouvernance
Gouvernance Azure - Mettre en place sa politique de GouvernanceGouvernance Azure - Mettre en place sa politique de Gouvernance
Gouvernance Azure - Mettre en place sa politique de Gouvernance
 
Gouvernance Azure - Comprendre la facture Azure
Gouvernance Azure - Comprendre la facture AzureGouvernance Azure - Comprendre la facture Azure
Gouvernance Azure - Comprendre la facture Azure
 
Gouvernance Azure - La charte de nommage
Gouvernance Azure - La charte de nommageGouvernance Azure - La charte de nommage
Gouvernance Azure - La charte de nommage
 
Continuous monitoring : Dev to Ops
Continuous monitoring : Dev to OpsContinuous monitoring : Dev to Ops
Continuous monitoring : Dev to Ops
 
MobileDay - Parcours 2 Crossplateform
MobileDay - Parcours 2 CrossplateformMobileDay - Parcours 2 Crossplateform
MobileDay - Parcours 2 Crossplateform
 
MobileDay - Session 3 La Mobilité selon Microsoft
MobileDay - Session 3 La Mobilité selon MicrosoftMobileDay - Session 3 La Mobilité selon Microsoft
MobileDay - Session 3 La Mobilité selon Microsoft
 
MobileDay - Parcours 1 Hybride (Cordova)
MobileDay - Parcours 1 Hybride  (Cordova)MobileDay - Parcours 1 Hybride  (Cordova)
MobileDay - Parcours 1 Hybride (Cordova)
 
MobileDay - Parcours 3 : Natif (Universal Apps)
MobileDay - Parcours 3 : Natif (Universal Apps)MobileDay - Parcours 3 : Natif (Universal Apps)
MobileDay - Parcours 3 : Natif (Universal Apps)
 
MobileDay - Session 2 REX IDEX
MobileDay - Session 2 REX IDEXMobileDay - Session 2 REX IDEX
MobileDay - Session 2 REX IDEX
 
Biztalk summit - IOT
Biztalk summit - IOTBiztalk summit - IOT
Biztalk summit - IOT
 
DevOps Day - Continuous Delivery
DevOps Day - Continuous DeliveryDevOps Day - Continuous Delivery
DevOps Day - Continuous Delivery
 
DevOps Day - Infrastructure As A Code
DevOps Day - Infrastructure As A CodeDevOps Day - Infrastructure As A Code
DevOps Day - Infrastructure As A Code
 
Mutualisation des développements avec VS2012
Mutualisation des développements avec VS2012Mutualisation des développements avec VS2012
Mutualisation des développements avec VS2012
 

Au coeur du framework .net 4.5.1

  • 1.
  • 2. Présentation de Cellenza Cabinet de conseil IT exclusivement dédié aux technologies Microsoft et aux méthodes Agiles Notre passion, les technologies MS Nous sommes des experts Microsoft, agilistes par nature, passionnés par notre métier. Consultants, coachs, formateurs et/ou MVP, nous avons à cœur de partager avec la communauté un savoir technique et méthodologique, mais aussi nos valeurs 150 billets de blog Comment nous le faisons : • • • Formation continue Partage de connaissance Partenariats > 12j formati on 7 MVP 7 MCT 30 art. de presse
  • 3. Au cœur du Framework 4.5.1 Bruno BOUCARD MVP C++ blogs.msdn.com/devpara/ Code/Developpement Michel PERFETTI MVP ALM Cellenza buildmeimfamous.net
  • 4. .NET (Une vue *très* simplifiée) Runtime #mstechdays Libraries Languages Code/developpement Tools .NET
  • 5. Contenu de .NET 4.5 Client & Device Web & Cloud Fundamentals GC Libraries • Async – for UI responsiveness • Windows Store apps -- WinRT • Windows Phone apps • .NET CF 3.9 • Async – for server scaling • ASP.NET MVC4 • ASP.NET Web API • ASP.NET Web Pages • Entity Framework Code-First • WebSockets • SignalR • Windows Azure Cloud Services 4.5 Support • Windows Azure Web Sites • .NET Async (async + await) • Many new async APIs • WinRT interop • Multi-core JIT • MPGO – NGEN hot/cold splitting • Performance improvements • Reboot and reliability improvements to setup • Support Windows RT • Background GC • LOH heap balancing • LOH fragmentation reduction • GC low latency mode • GC awareness of NUMA and >64 processors • >2GB arrays (or objects) • Portable libraries update • .NET Core Profile (Windows 8) • Extension methods for WinRT streams and async • NuGet • Immutable collections • Async for .NET 4 • HttpClient for Portable .NET 4.5 est installé sur plus de 100+ million de machines! #mstechdays Code/developpement
  • 6. .NET 4.5.1 en trois axes Productivité du développeur Performance des applications Innovations constantes #mstechdays Code/developpement
  • 8. En 2005, il y avait une fonctionnalité nommée «Edit & Continue», mais quelque chose manquait… #mstechdays Code/developpement
  • 10. «Edit & Continue» pour 64-bits est là ! • • • • Fortement demandé par la communauté Fonctionne exactement comme pour les applications 32bits Projets client (WPF, WinForms, etc), Store et applications web ASP.NET sont supportés Pour les projets d’application web activer «Edit & Continue» dans les propriétés du projet #mstechdays Code/developpement
  • 11. Mais il y a mieux… #mstechdays Code/developpement
  • 13. Inspection des valeurs de retour de méthode • Maintenant disponible pour .NET ! • Accès par les fenêtres «Autos» et «Immediat» ($ReturnValue) • Peut étendre les valeurs de retour dans le debugger #mstechdays Code/developpement
  • 14. Améliorations du débogage async • Question fréquente : – Comment l’exécution arrive-t-elle ici ? • Supporte les Store Apps, les Web Apps ainsi que les applications desktop sous Windows 8.1 • Amélioration des fenêtres «Call Stack» et Tasks #mstechdays Code/developpement
  • 15. Amélioration du développement Windows Store • • • • Support du «Edit & Continue» en 64-bits Support de l’inspection des valeurs de retour Amélioration du débogage des async Conversion de System.IO.Stream vers IRandomAccessStream – Permet une bien meilleure intéropérabilité avec le code .NET existant • Meilleurs support des exceptions provenant des APIs WinRT – System.Exception.Message – System.Exception.StackTrace • Valeur de type Nullable dans les structs WinRT #mstechdays Code/developpement
  • 16. Conversion de Stream vers IRandomAccessStream Des forums MSDN : bitmap.SetSource(memoryStream); <-- error CS1503: Argument 1: cannot convert from 'System.IO.Stream' to 'Windows.Storage.Streams.IRandomAccessStream‘ bitmap.SetSource(memoryStream.AsRandomAccessStream()); <-- .NET 4.5.1 Dans .NET 4.5.1 : System.IO.WindowsRuntimeStreamExtensions .AsRandomAccessStream(Stream stream) #mstechdays Code/developpement
  • 17. Support des exceptions APIs WinRT • Sous Windows 8, la propagation des erreurs depuis les APIs WinRT se fait à travers des HRESULT – • Les informations importantes sur ces exceptions sont perdues, à moins qu’un débogueur soit attaché Sous Windows 8.1, des informations additionnelles sur l’erreur sont disponibles grâce aux propriétés de System.Exception : – – Message StackTrace Additional exception details from a C++ WinRT Component #mstechdays Code/developpement
  • 18. Résilience des connexions EF/ADO.NET • • • • Fourni une connexion vers Azure DB fiable Restauration automatique de connexion rompue Fourni un grande expérience depuis des appareils connectés Ca fonctionne ! Aucune configuration ou modification de code autre que d’installer .NET 4.5.1 #mstechdays Code/developpement
  • 21. Suspension des applications ASP.NET • Ajoute la capacité de suspendre une application via une machine à trois états • • Tous les sites débutent dans un état inactif Lorsque les sites sont réclamés, ils sont chargés en mémoire, deviennent actifs, et de répondre aux requêtes clientes Les sites activés seront suspendus après un délai prédéfini • Les sites suspendus perdent l'accès à la CPU, ce qui libère des cycles CPU et de la mémoire pour les demandes vers d'autres sites. • ils sont maintenus dans le nouvel état suspendu • ils peuvent être repris très rapidement et répondre à de nouvelles requêtes très rapidement • #mstechdays Code/developpement
  • 22. Suspension des applications ASP.NET • Permet faible latence, des sites Web de haute densité pour le cloud on-prem/private • Livraison dans le cadre de IIS 8.5 dans Windows Server 2012 R2 #mstechdays Résultats en provenance de chez Microsoft Code/developpement
  • 23. Suspension des applications ASP.NET Dans les paramètres de IIS, définissez délai d'inactivité sur « suspend » Plus information: ASP.NET App Suspend – responsive shared .NET web hosting #mstechdays Code/developpement
  • 24. Rappel sur le Large Object Heap (LOH) • Il est long de compacter (= déplacer) des gros objets Pour remédier à ce problème – Le GC alloue les objets considérés « gros » (>85Ko) dans un tas spécifique appelé Large Object Heap (LOH). – le LOH n’est pas compacté • On gagne en temps dans le GC, mais la création d’un gros objet est par contre beaucoup plus lente • Le Framework .NET 4.5 apporte une amélioration de 30% de la vitesse d’allocation dans le LOH par rapport au Framework 4.0
  • 25. Compactage sur demande du LOH • 2 méthodes d’utilisation de l’API du GC pour le LOH 1. Compactage du LOH directement (right away) GCSettings.LOHCompactionMode = GCLOHCompationMode.CompactOnce; GC.Collect(); 2. Compactage du LOH lors du traitement de la génération 2 // Next full blocking GC happens at some point, it will be a compacting GC that compacts the whole heap including LOH. GCSettings.LOHCompactionMode = GCLOHCompationMode.CompactOnce; #mstechdays Code/developpement
  • 26. Rappel sur le compilateur Just-In-Time Les compilateurs .NET • • • Transforment à la volée le code IL (résultat de la compilation de source .NET) en code assembleur Compilation à la demande (just in time) et une seule fois par fonction Cependant • • #mstechdays Démarrage à froid • Certaines applications/services ont besoin de démarrer le plus vite possible, et souffrent du temps de JIT Le Framework .NET 4.5 permet de JITTER en // les Apps du Store et les applications/service .NET dont les assemblages sont dans le GAC Code/developpement
  • 27. • • • Minimise le temps de démarrage sur des processeurs multi cœurs Désormais pris en charge pour les sites Web ASP.NET Activé par défaut pour les applications ASP.NET #mstechdays Démarrage à froid JIT multi-cœur pour sites web ASP.NET Code/developpement
  • 28. Cohérence de performance avant et après la mise à jour de .NET • • Actuellement, mettre à jour le Framework .NET peut amener à une dégradation des performances d’une app juste après la mise à jour • Cela est dû aux assemblages .NET de base qui son JITTER après la mise à jour • Sous Windows 8.1, la performance des apps reste identique, même après la mise à jour du Framework .NET • #mstechdays Maintenir le Framework .NET pour plus d’un milliard de PC est un vrai gros soucis ! Le résultat est une meilleure expérience utilisateur, ainsi qu’une longévité supérieure des batteries des tablettes Code/developpement
  • 29. Compactage sur demande du LOH • Le Garbage Collector de .NET est une machine bien huilée • En principe, GC.Collect() ne devrait jamais être appelé • ATTENTION : Les grands pouvoirs impliquent de grandes responsabilités ! #mstechdays Code/developpement
  • 30. Compactage sur demande du LOH • Avec .NET 4.5.1, il est maintenant possible de le compacter afin de réduire la fragmentation du tas • La configuration du LOH fait partie de GCSettings public static class GCSettings { public static GCLOHCompactionMode LOHCompactionMode { get; set; } } #mstechdays Code/developpement
  • 31. COMPACTAGE SUR DEMANDE DU LOH #mstechdays Code/developpement
  • 33. Mise à jour du Framework .NET • L’objectif est de garder les valeurs existantes du Framework .NET tout en permettant plus d’agilité et d’innovation • Valeurs existantes : – – – – Facilité d’accès Qualité connue, maturité et niveau de compatibilité Une seule politique de licence et de support Patching centralisé pour les problèmes de sécurité • Les nouvelles valeurs : – Cycle de release plus rapide avec un retour d’expérience client plus proche – Moins de friction lors d’utilisation des fonctionnalités de .NET sur plusieurs plateformes #mstechdays Code/developpement
  • 34. Release NuGet • Lors de la release de .NET 4.5, deux composants ont étés délivrés par NuGet : – MEF (Microsoft Composition) pour les apps web et Windows Store – TPL Dataflow (Microsoft.Tpl.Dataflow) – Ces éléments sont traités comme n’importe quel autre composant de .NET 4.5 (support complet) System Composition TPL Dataflow Http Client Async .NET (“in box”) #mstechdays Code/developpement Immutable Collections
  • 35. Flux NuGet pour le Framework .NET • Accès unique pour tous les packages NuGet du framework .NET livrés par Microsoft – – #mstechdays Dans Visual Studio 2010, 2012 et 2013 Sur le web Code/developpement
  • 36. Flux NuGet pour le Framework .NET • Déjà activé dans Visual Studio 2013 • • • • Sous Visual Studio 2010 et 2012 Tools.Options.Package Manager Nom: .NET Framework Packages Source: https://nuget.org/api/v2/curated-feeds/dotnetframework #mstechdays Code/developpement
  • 37. Architecture Interne (ImmutableList) Créer une liste immutable Ajouter null null null 1 var list1 = ImmutableList.Create(1); // list 1 = { 1 } #mstechdays Insérer null 2 null 1 null null 3 null 2 1 var list2 = list1.Add(2); // list 1 = { 1 } // list2 = { 1, 2 } Code/developpement var list3 = list2.Insert(0, 3); // list1 = { 1 } // list2 = { 1, 2 } // list 3= { 3, 1, 2 }
  • 38. Performances • Ajouter des items – – Les collections immutables consomment un peu plus de mémoire par élément de stockage que leurs homologues mutables La consommation réelle de mémoire entre un type mutable et type immutable peut varier en fonction de la façon dont les instances sont utilisées • Retirer des items – – #mstechdays Les collections mutables ne rétrécissent pas leurs tableaux de sorte que vous n'avez pas à récupérer cette mémoire Les collections immuables rétrécissent immédiatement leurs arbres binaires pour chaque élément supprimé • Cette mémoire libre est candidate pour la collecte du GC Code/developpement
  • 39. Conseils d’utilisation • Scénario de multithreading – Mais pas forcement massivement concurrent • Les collections de System.Collections.Concurrent sont là pour ça ! • Pratique – Vous voulez extraire des instantanés des vos collections • Vous souhaitez les lire dans un contexte thread-safe, alors que la collection originale peut continuer à être modifiée • Rappel – Les collections immutables sont généralement rapides à lire, mais relativement coûteuses à mettre à jour #mstechdays Code/developpement
  • 40. LE PACKAGE IMMUTABLE COLLECTIONS EN ACTION #mstechdays Code/developpement
  • 41. Synthèse du Framework .NET 4.5.1 Performance des applications Productivité du développeur • 64-bit Edit and Continue • • Method Return Value Inspection • • • #mstechdays Async Debugging Enhancements Windows Store development improvements EF/ADO.NET Connection Resiliency • Innovation continue ASP.NET application suspension Multi-core JIT improvements • On-demand large-object heap compaction • Consistent performance before and after servicing the .NET Framework Code/developpement NET Framework updates • NuGet releases • Curated .NET Framework NuGet packages
  • 42. De nombreux moyens de communication E-mail dotnet Blog #mstechdays MSDN Forums Code/developpement @dotnet UserVoice
  • 43. Donnez votre avis ! Depuis votre smartphone sur : http://notes.mstechdays.fr De nombreux lots à gagner toute les heures !!! Claviers, souris et jeux Microsoft… Merci de nous aider à améliorer les Techdays ! #mstechdays Code/developpement
  • 44. Présentation de Cellenza Ve n e z n o u s r e t r o u ve r s u r n o t r e St a n d # 1 5 Vous pouvez vous inscrire à notre jeu concours sur notre stand ou en ligne : http://jeuconcours.cellenza.com Merci !

Notes de l'éditeur

  1. BBO
  2. BBO
  3. BBO
  4. BBO
  5. MPE
  6. MPE
  7. MPE
  8. MPE
  9. MPE
  10. MPE
  11. MPE
  12. MPE
  13. MPE
  14. MPE
  15. MPE
  16. MPE
  17. MPE
  18. BBO
  19. BBO
  20. BBO
  21. BBOhttp://blogs.msdn.com/b/benjaminperkins/archive/2013/06/25/what-s-new-in-iis-8-5.aspx
  22. BBO
  23. BBO
  24. BBO
  25. BBO
  26. BBO
  27. BBO
  28. BBO
  29. BBO
  30. BBO
  31. MPE
  32. MPE
  33. MPE
  34. MPE
  35. MPEVS2013:Web: http://blogs.msdn.com/b/dotnet/p/nugetpackages.aspx
  36. BBO
  37. BBO
  38. BBO
  39. BBO