Utilisateur:Pramzan/Bac à sable 1
- → N'hésitez pas à publier sur le brouillon un texte inachevé et à le modifier autant que vous le souhaitez.
- → Pour enregistrer vos modifications au brouillon, il est nécessaire de cliquer sur le bouton bleu : « Publier les modifications ». Il n'y a pas d'enregistrement automatique.
Si votre but est de publier un nouvel article, votre brouillon doit respecter les points suivants :
- Respectez le droit d'auteur en créant un texte spécialement pour Wikipédia en français (pas de copier-coller venu d'ailleurs).
- Indiquez les éléments démontrant la notoriété du sujet (aide).
- Liez chaque fait présenté à une source de qualité (quelles sources – comment les insérer).
- Utilisez un ton neutre, qui ne soit ni orienté ni publicitaire (aide).
- Veillez également à structurer votre article, de manière à ce qu'il soit conforme aux autres pages de l'encyclopédie (structurer – mettre en page).
- → Si ces points sont respectés, pour transformer votre brouillon en article, utilisez le bouton « publier le brouillon » en haut à droite. Votre brouillon sera alors transféré dans l'espace encyclopédique.
Tout d’abord, qu’est ce que .NET Core et ASP.NET Core ?
ASP.NET Core (précédemment appelé ASP.NET vNext puis ASP.NET 5), est une branche du framework applicatif de développement web ASP.NET. “Branche” dans le sens où le langage continuera à coexister avec la version actuelle d’ASP.NET (4.6) ainsi que ses versions successives “legacy”. C’est par ailleurs une branche qui n’est pas totalement rétro-compatible avec la version actuelle d’ASP.NET. Nous allons comprendre pourquoi.
.NET Core est quant à lui est également une branche du framework .NET traditionnel. C’est un runtime léger, modulaire et optimisé. Il contient un sous-ensemble des librairies du framework .NET traditionnel. Quelques différences notables avec le framework traditionnel :
Modulaire: la nouvelle philosophie consiste à intégrer par défaut le minimum de librairies dans le framework. Les librairies supplémentaires nécessaires sont ajoutées explicitement par le développeur, dans un souci de légèreté. Indépendant du système d’exploitation: .NET Core n’est pas spécifique à un OS, et fonctionne aussi bien sur Windows, Mac OSX et Linux. Un exécutable DNX (.NET Execution Environment) est quant à lui spécifique à l’OS, et permet de lancer les applications développées avec .NET Core.
image_60140ec0-ce46-4dbf-a14f-4210eab7f42c.png
Organisation et exécution des projets ASP.Net Core
La première chose qui surprend, est de voir à quel point Microsoft s’est inspiré des bonnes pratiques d’autres plateformes (par exemple Node JS, où la notion de package est centrale). Mais la volonté affichée est également de simplifier l’organisation des projets, et d’ouvrir le champ des possibilités en termes d’hébergement :
Par défaut, tous les fichiers présents dans le répertoire sont chargés par Visual Studio. Fini l’infâme .csproj avec des milliers de lignes, source de conflits sur GIT Modularité (once again): on ajoute au project.json uniquement les dépendances dont on a besoin. Par défaut, il n’y en a pas, et Visual Studio et Nuget se chargent de télécharger les fichiers correspondant aux dépendances supplémentaires. Fini System.Web.dll ! Configuration de l’application via le code (startup.cs) et non plus via web.config spécifique à IIS. MVC et ASP.NET WEB API deviennent des middlewares (au même titre que le module permettant de gérer les requêtes sur les fichiers statiques par exemple) Commands pour la création de tâches exécutables depuis la ligne de commande: très inspiré des scripts en Node.JS (fichiers package.json)
En termes d’hébergement, les nouveautés :
Le projet embarque toutes les librairies dont il a besoin. L’abandon de System.Web permet aussi de s’affranchir de IIS : l’exécution d’applications ASP.NET Core est possible par le biais d’un serveur www léger compatible OWIN (Open Web Interface for .NET). Microsoft fournit un serveur, Kestrel. Ce serveur est également développé avec .NET Core, et lancé avec DNX. Kestrel est un serveur applicatif léger, qui peut être couplé avec IIS (ou tout autre serveur web) pour des fonctionnalités de configuration de privilèges, sécurité, réécriture d’URL... Hébergement sur Docker + Linux, afin de nettement faire baisser les coûts des licences liés aux applications .NET (un frein terrible à l’adoption de cette plateforme) Le futur Windows Server Nano permettra également d’héberger des applications .NET Core dans des conteneurs, tout en réduisant les coûts de licence par rapport à un Windows Server classique.
L’approche open source continue également de prendre de l’essor avec Roslyn (le compilateur), Kestrel, le framework .NET Core en lui même et ASP.NET Core.
Pourquoi est-ce un enjeu pour Microsoft ?
L’usage de la plateforme .NET croit, mais de manière relativement lente. Microsoft considère aujourd’hui qu’il vaut mieux un développeur ou une plateforme .NET utilisable sur Linux + MySQL + Apache (donc pas monétisable en l’état, pas de licence à vendre), qu’un développeur sur une technologie concurrente (Node.js, Java...). Microsoft semble considérer qu’on pourra toujours réfléchir à une façon de monétiser le premier par la suite. Cela a aussi l’avantage d’augmenter la masse de développeurs compétents sur les technologies .NET: c’est un public que l’on pourra amener ensuite à développer sur Windows ou Windows Phone. On apprend également aujourd’hui, dans la même lignée, que SQL Server est porté sur Linux.
Il est nécessaire aujourd’hui de séduire une jeune génération de développeurs, qui n’a pas pour premier réflexe d’opter pour les technologies Microsoft. Le pire serait de s’enfermer dans une image de technologie “à l’ancienne”, destinée à une population pas toujours au fait des dernières pratiques de développement et des outils utilisés couramment dans le monde de l’open source.
Gageons que .NET Core offre à Microsoft les outils qui lui permettront de rajeunir l’image de .NET, et d’inciter tous les développeurs, y compris porteurs de projets innovant à considérer la plateforme comme une option au moment de faire leur choix. D’autant plus que l’environnement a beaucoup de qualités à mettre en avant :
Qualité de l’IDE Visual Studio, Mises à jour fréquentes et cohérentes du framework, et innovations récurrentes en C#, Qualité de la plateforme ASP.NET MVC, Tous les outils de langage que nous adorons utiliser au quotidien: LINQ, asynchrone avec Task ou Async/Await.
Cette démarche s’inscrit également en toute logique (même si ce sont deux démarches stratégiques séparées à la base) dans la stratégie de Satya Nadella visant à rajeunir l’image de Microsoft, et à lui faire (re)trouver son swag :)
Notre équipe interne C17 Engineering continue, dans une optique de veille technologique permanente, de suivre et tester activement ces nouveautés.