Mardi 10 février se tenaient les TechDays 2015. J’y ai été cette année pour découvrir les dernières nouveautés sur le Framework .Net et pouvoir voir ce qui allait changer dans la manière dont sont appréhendés les projets ayant trait au web.
Pour cela j’ai pu assister à 2 conférences qui étaient liées entre elles de par leur sujet.
La première nommée ASP.NET 5 : la Révolution est en Marche était présentée par Benjamin Talmard (@benjiiim) conseiller technologique sur Microsoft Azure ainsi que Julien Corioland (@jcorioland) Tech Lead chez Infinite Square
La seconde concernait ASP MVC 6 et était animéé par Rui Carvalho (@rhwy) artisan logiciel indépendant et Paul Cociuba(@paulcociuba) ingénieur d’escalade chez Microsoft.
Un nouveau commencement ?
Historiquement le Framework .Net a été bâti autour d’une unique brique qui a grossi au fur et à mesure des années passées et des versions, puis s’est vu rajouter quelques éléments autours afin de répondre à des besoins de plus en plus spécifiques. Néanmoins, ce système a conduit à une utilisation du Système. Web un peu trop gourmande pour un environnement web. L’héritage de cette imbrication ainsi que la volumétrie croissante des requêtes devenaient un fardeau tel, qu’un nouveau système fut cherché et mis en place.
Ce qui nous amène à cette nouvelle version d’ASP.NET.
ASP.NET 5 sera disponible sur deux versions différentes, voici un petit tableau récapitulatif.
Nous pouvons remarquer quelques différences telles que :
- .Net 4.6 : Celui-ci vous permettra de continuer d’utiliser la totalité du Framework .Net
- .Net Core 5 : Celui-ci vous permettra d’utiliser un nouveau type de Framework basé sur l’utilisation de besoins spécifiques ainsi qu’une utilisation cross-platform (Mac et linux)
C’est ce dernier qui nous intéresse et sur lequel nous allons découvrir quelques petites choses bien sympathiques et relativement déroutantes si vous avez pris l’habitude de concevoir des applications web avec les anciennes versions de .Net
Le nouveau Framework permet de s’affranchir de Système. Web en permettant une utilisation beaucoup plus modulaire des différents composants liés à .Net. De plus, MVC, Web API et Web Page ont fusionné afin de n’avoir plus qu’un seul Framework commun à utiliser dénommé MVC6. C’est tout bonnement génial, une expérience unique pourra désormais être partagée entre les différents types de projets permettant ainsi une immersion et une utilisation beaucoup plus rapide.
Voyons voir maintenant ce que cette nouvelle approche apporte.
Mon petit projet
Lors de la création d’un nouveau projet, un nombre minimum de fichier est créé, il s’agit de :
![]() | – global. json : Ce fichier contient les différentes configurations de la solution ainsi que les références entre les projets – project. json : Ce fichier contient les configurations du projet (Dépendances, Framework utilisé, etc… ) – Startup. cs : Ce fichier permet de gérer l’initialisation d’un site En extra, nous pourrons rajouter ces quelques fichiers (plus d’info ici) – bower. json : Gestionnaire de ressources de développement – gruntfile.js : Gestionnaire de Tâches |
Voyons un peu plus en détail ce qu’apportent ces nouveaux fichiers lors de leur utilisation.
Configuration du projet
Nous pouvons remarquer que le traditionnel csproj a disparu pour laisser place au kproj qui ne sera utile que pour visual studio. Le nouveau fichier permettant la configuration du projet est project. json, qui, comme son extension nous l’indique est un simple fichier json.
Le fichier est aussi sensible à l’IntelliSense, ce qui permet de rajouter bien plus facilement de nouvelles références.
La gestion des dépendances nous amène à évoquer un autre point clé de ce nouveau Framework. En effet, celui-ci est maintenant entièrement tourné vers un référencement via package nugget. Fini les dll seules et isolées loin de tout, on peut faire en sorte de cibler différentes plateformes en fonction des besoins. De plus, l’ajout ou la modification des dépendances influe directement sur la gestion des packages nugget, une simple sauvegarde permet de lancer la restauration automatique des packages.
Ainsi, si l’on veut se passer du Framework aspnet50, il suffit de supprimer la ligne équivalente pour passer de cet état
à celui-ci
Cette gestion du “Tout Nugget” permet aussi de voir les différentes dépendances existantes directement depuis l’explorateur de projet, ce qui permet d’avoir un meilleur contrôle sur ce que l’on utilise réellement.
Initialisation du projet
Comme vu précédemment, l’entrée d’un projet Web se situe au niveau de son fichier startup. cs.
Celui-ci va contenir l’appel aux différents modules nécessaires à l’utilisation du site (identification, utilisation MVC, utilisation d’EF, etc… ). Voici un exemple permettant d’avoir un résultat visuel rapide sur ce nouveau type d’application.
using Microsoft.AspNet.Builder;
namespace WebApplication1
{
public class Startup
{
public void Configure(IApplicationBuilder app)
{
app.UseWelcomePage();
}
}
}
Un petit peu plus loin
Développement Cross-Platform
Une nouveauté aussi très attendue par beaucoup de développeur est cette volonté de vouloir ouvrir la création d’application .Net à un plus grand nombre et d’éviter de se limiter à la plateforme Windows ainsi qu’à l’IDE Visual Studio. Mono est maintenant officiellement accepté par Microsoft (mais sans support officiel).
Une autre contrainte inhérente aux différents projets .Net était aussi l’utilisation de IIS pour pouvoir lancer un site. Grace à une petite nouveauté nommée vNext on pourra désormais se passer de IIs pour exécuter un site. Pour cela nous pourrons utiliser K Version Manager que vous pourrez retrouver à cette adresse lien KVM.
Vous pourrez trouver plus d’information et des exemples sur ces sujets en suivant ce lien qui regroupe une suite d’articles sur l’utilisation de Mono et KVM sur Ubuntu.
Toutes ces nouveautés sont encore en béta mais sont déjà testables. Cela nous donne un bon aperçu de ce qui nous attend par la suite.
Personnellement j’apprécie la nouvelle politique de Microsoft qui permet d’étendre l’utilisation d’ASP.NET à beaucoup plus de cas d’utilisations ainsi qu’une structure pour les projets qui se rapproche de ce qui existe déjà. Ajouté à toutes les nouveautés qui sont déjà sortie ou en cours (VS2015, roslyn, etc. . ) l’avenir promet de très belles choses pour nous développeurs.