Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Microsoft présente .NET Core
Son « fork open source du Framework .NET » pour Windows, Linux et OS X

Le , par Hinault Romaric

89PARTAGES

5  0 
Le mois dernier, lors d’un événement en ligne, Microsoft a présenté l’avenir de sa plateforme de développement .NET et de ses outils, notamment Visual Studio 2015.

Le mot d’ordre était l’ouverture ! La firme avait annoncé qu’elle allait publier en open source le code du cœur du Framework .NET (.NET Core), sous licence MIT.

L’ambition de Microsoft est de rendre .NET accessible à un nombre plus important de développeurs, sous plusieurs plateformes, y compris Linux et Mac.

Dans un long billet de blog sur MSDN, Microsoft présente de façon détaillée ce qu’est « .NET Core », comment il sera publié, ce qu’il représente pour le Framework .NET et ce que cela implique pour le développement multiplateforme et open source.

Lorsque Microsoft avait publié .NET pour la première fois en 2002, il était disponible comme un Framework unique. Peu de temps après, plusieurs déclinaisons ont vu le jour, dont .NET Compact Framework, un sous-ensemble de .NET à destination des terminaux à faibles ressources, comme les terminaux mobiles.

Au fil du temps, plusieurs déclinaisons du Framework .NET ont été expédiées pour Silverlight, Windows Phone, et plus récemment pour le Windows Store. Cela a créé une fragmentation de .NET, qui était désormais disponible en plusieurs plateformes, gérées par des équipes différentes au sein de Microsoft.

Cela ne poserait pas de problème si les développeurs créaient des applications spécifiques pour chaque plateforme. Cependant, il est assez fréquent pour ceux-ci de cibler plusieurs dispositifs et plateformes à travers leurs applications. Cette diversité pourrait même être l’une des principales causes de la faible croissance du Windows Store, car les applications Windows Desktop, ne peuvent figurer sur le store, qui supporte uniquement WinRT.


Pour contourner le problème, Microsoft a développé dans un premier temps les bibliothèques de classes portables (portable class libraries), dont l’objectif était d'écrire et générer des assemblys managés qui fonctionnent sur plusieurs plateformes .NET Framework. Puis, la firme a dévoilé en avril dernier lors de sa conférence Build, Universal Apps, un moyen pour les développeurs de créer une seule application, qui fonctionne de façon fluide sous l’ensemble des plateformes Windows (Windows 8 et Windows Phone 8).

Mais, il s’agissait des solutions limitées et partielles. .NET Core a pour ambition d’aller au-delà, en offrant une implémentation unifiée de .NET. « .NET Core est essentiellement un fork du Framework .NET, dont le développement a été optimisé autour de ces préoccupations », écrit Microsoft. .NET Core est une implémentation modulaire, qui pourra être utilisé dans une grande variété de plateformes. Il sera soutenu par Microsoft sur Windows, Linux et Mac OS X.

.NET Core comprend un BCL (Base Class Library) unifié qui sera le même code pour toutes les plateformes. « Même si les scénarios pour NET Native (dispositifs tactiles) et ASP.NET 5 (développement Web côté serveur) sont très différents, nous avons pu fournir une bibliothèque de classes de base unifiée. », se réjouit Microsoft.


Actuellement, Microsoft propose deux implémentations du .NET Core BCL : l’une pour .NET Native et l’autre pour CoreCLR, utilisé par ASP.NET 5.0. Cependant, la majeure partie de BCL de .NET Core est commune aux deux plateformes.

Autre fait intéressant : .NET Core introduira un nouveau modèle de déploiement des applications. Il sera possible de déployer des applications .NET avec des copies des bibliothèques du Framework .NET. L’idée est de permettre aux développeurs d’importer uniquement les parties de .NET dont ils ont besoin, et les déployer avec leur application. Les bibliothèques de .NET Core seront livrées à travers le gestionnaire de paquets NuGet.

Les avantages de cette approche sont multiples. Une machine n’aura plus besoin d’une version complète de .NET Framework pour exécuter une application, car chaque application sera livrée avec son propre Framework. De plus, les mises de .NET Core ne briseront plus les applications existantes.

Le diagramme ci-dessus soulève cependant quelques interrogations puisqu’au-dessus, on retrouve uniquement « Windows Store App Model » pour les applications WinRT et « ASP.NET 5 App Model ». Qu’en est-il des applications desktop et ASP.NET 4 ?

.NET Core représente un sous-ensemble du Framework .NET, selon Microsoft. Le développement d’application desktop avec WPF ou Windows Forms continuera à se faire sous le Framework .NET et non .NET Core. Microsoft compte mettre à jour ce dernier chaque année. Il y’aura donc des fonctionnalités qui seront exclusives au Framework .NET.


Pour les développeurs qui souhaitent exécuter leur code à la fois sur le Framework .NET et .NET Core, Microsoft prévoit d’étendre les bibliothèques de classes portables pour couvrir ce cas, car pour la firme, .NET Core est « le fondement de toutes les futures plateformes .NET »

Source : MSDN

Et vous ?

Que pensez-vous de .NET Core ? Et de son ouverture par Microsoft ?

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de tomlev
Rédacteur/Modérateur https://www.developpez.com
Le 20/11/2015 à 0:25
Citation Envoyé par kilroyFR Voir le message
encore une nouvelle syntaxe barbare a la M$ !
De quelle syntaxe parles-tu ? Cet article ne parle pas des langages, mais de la plateforme .NET

Il y a toutes sortes de langages basés sur .NET, avec des syntaxes très différentes (C#, VB.NET, F#, C++/CLI, Nemerle...). Après, on peut aimer ou non la syntaxe de ces langages, mais C# par exemple a des qualités largement reconnues, et de nombreux langages récents s'en inspirent (Swift, ECMAScript...)

Au passage, la syntaxe de ces langages ne sort pas de nulle part. Celle de C# est largement inspiré de Java et de C++, F# a une syntaxe presque identique à OCaml, etc. Donc je ne vois pas trop en quoi ils ont une syntaxe "a la M$" (sic).

Bref, renseigne-toi un minimum avant de troller gratuitement
10  0 
Avatar de youtpout978
Membre expert https://www.developpez.com
Le 04/05/2015 à 9:32
Citation Envoyé par matthius Voir le message
Les entreprise privées sont faites pour couler, par le simple fait qu'elle veulent s'approprier ce qui ne leur appartient.
Microsoft ne cherche qu'à survivre. En effet, les plus grosses entreprises montrent qu'elles veulent s'approprier la vie.
Allo Houston je crois qu'on l'a perdu.
9  0 
Avatar de Bono_BX
Membre confirmé https://www.developpez.com
Le 19/11/2015 à 23:22
Citation Envoyé par kilroyFR Voir le message
encore une nouvelle syntaxe barbare a la M$ !
Qui sera tellement barbare qu'elle sera reprise plus tard par les pro / sectaire de l'open source en arguant que c'est tout nouveau et que c'est eux qui ont tout inventé, comme d'habitude ... (voir HTML 5)
Et sinon, tu peux argumenter STP ?
5  0 
Avatar de Lutarez
Membre chevronné https://www.developpez.com
Le 09/12/2014 à 17:40
Citation Envoyé par imikado Voir le message
C'est cher de développer pour windows (par rapport aux autres plateformes...)
Développer pour Windows coûte actuellement 0 euros : bloc-note et une console DOS/Powershell pour la compilation suffisent. Même en ligne de commande, compiler du .net n'est pas trop inbuvable avec un peu de rigueur.

Comme tu le fait remarquer, ils existent des alternatives, mais si n'importe quel développeur .Net te dira qu'aucune d'elle n'arrive à la cheville de Visual Studio, ce n'est pas un hasard. Tout est ensuite une question de choix : VS n'est certes pas donné (et encore, la version Community est un immense bond en avant pour les hobbyistes), mais il procure une productivité et un confort de développement sans égal pour du développement .Net.

Si tu n'as jamais essayé, je t'invite à créer par curiosité un petit site utilisant ASP.Net MVC. C'est, je pense, l'une des technologies qui illustre le mieux la gain de productivité que VS peut apporter à un développeur.
4  0 
Avatar de tomlev
Rédacteur/Modérateur https://www.developpez.com
Le 09/12/2014 à 18:46
Citation Envoyé par imikado Voir le message
Pour visual studio, elles vont toutes être gratuite ?
Actuellement, on regarde pour la 2013, ça va jusqu'à 14 000 euros !!!
Attention de pas tout mélanger... C'est pas Visual Studio qui coute 14000 euros, c'est l'abonnement MSDN, qui te donne accès à l'intégralité des logiciels Microsoft (outils de dev, serveurs, applications bureautiques, OS...), et pas mal d'avantages (support, compte Azure, compte Windows Store, etc)
4  0 
Avatar de jolt-counter
Membre régulier https://www.developpez.com
Le 09/12/2014 à 19:05
Citation Envoyé par Lutarez Voir le message
Développer pour Windows coûte actuellement 0 euros : bloc-note et une console DOS/Powershell pour la compilation suffisent. Même en ligne de commande, compiler du .net n'est pas trop inbuvable avec un peu de rigueur.
Ça coûte le prix de la licence Windows.
5  1 
Avatar de tomlev
Rédacteur/Modérateur https://www.developpez.com
Le 12/12/2014 à 14:11
Citation Envoyé par imikado Voir le message
Quand on créé un projet, il n'y a pas de réel arborescence de projet web
Ah ? Je ne vois pas très bien ce que tu reproches à l'arborescence par défaut des projets MVC, moi je trouve ça plutot clair... Un dossier pour les controlleurs, un pour les modèles, un pour les vues, etc, bref, c'est plutôt carré je trouve.

Citation Envoyé par imikado Voir le message
il faut ensuite installer manuellement Entity framework pour l'ORM et MVC 3... (via Nugget)
Je pensais comme les autres frameworks que l'on avait une solution clé en main comme les autres
Ca dépend du template que tu utilises pour créer le projet, mais avec les templates de la version actuelle, il y a tout ce qu'il faut : Entity Framework, JSON.NET, Web API, jQuery, Bootstrap... il y en a même probablement un peu trop

Après il faut voir que MVC est un framework complètement modulaire ; tu n'es pas obligé de tout utiliser, tu peux prendre juste les briques dont tu as besoin. Donc même si le template par défaut te met quasiment tout, ce n'est pas forcément la bonne option pour tous les projets...
4  0 
Avatar de Washmid
Membre averti https://www.developpez.com
Le 08/12/2014 à 15:55
Ça fait des années (depuis toujours?) qu'on peut faire ça en java, déployer les APIs avec les applis, avoir des binaires uniques pour toutes les plateformes, et ça pose pas vraiment de soucis (à ma connaissance).

Bon, java permet également de déployer le runtime carrément dans les exécutable ce qui ne semble pas être le cas ici.

Bref, très bonne nouvelle pour la portabilité, marre des moulinettes de "csproj" pour gérer plusieurs plateformes.
4  1 
Avatar de Olivier Famien
Chroniqueur Actualités https://www.developpez.com
Le 08/12/2014 à 16:54
Voilà que les choses avancent dans le bon sens. Ils ont compris que les dev d'aujourd'hui sont de gros "paresseux" qui ne veulent plus apprendre 1 langage pour 1 plateforme mais 1 langage pour x plateforme. Et puis à quoi ca sert une multitude de langages, si je peux faire tout et n'importe quoi avec le même langage et même sortir le chien ou me faire du thé pendant qu'on y est .
Vive le CODE (Code once deploy everywhere).
3  0 
Avatar de bouye
Rédacteur/Modérateur https://www.developpez.com
Le 14/12/2014 à 6:15
Citation Envoyé par Gugelhupf Voir le message
Les programmes Java n'embarquent pas de runtime (des projets hors du standard le permettent peut-être).
Un projet là-dessus est en cours (JEP 148).
Ca fait plus de 10 ans que des outils tiers permettent empaqueter des runtimes avec un exécutable lanceur natif pour le programme et cela fait plus de 2 ans maintenant qu'Oracle fourni un outil pour faire de même avec le JDK (javapackager dans le JDK8, anciennement javafxpackager dans le JDK7).
Deux des principaux buts annoncés de longue date (puisque Jigsaw date quand même de pas mal d'années) pour la modularisation du JDK sont :
  • Reduire l'empreinte mémoire.
  • Améliorer le temps de chargement.


Plus de portabilité pour .NET, moi ça me plait bien, je ne suis pas contre faire du C# de temps à autre. Par contre ça reste dommage que pour WPF, ça ne soit toujours pas ça...
3  0