Cet article présente principalement .NET Core. .NET Core est un framework de développement open source et universel qui prend en charge multiplateforme, c'est-à-dire qu'il prend en charge le développement et le déploiement sur Windows, macOS, Linux et d'autres systèmes. , vous pouvez en savoir plus.
1. Préface
Cela fait quatorze ans depuis la sortie de .NET. Avec l'itération continue de la version mise à jour, les performances de .NET sur la plate-forme Windows s'améliorent de plus en plus. On peut dire que .NET peut gérer presque tous les types d'applications sur la plate-forme Windows.
C'est juste Windows qui réussit et Windows échoue Au cours des quatorze dernières années, à l'exception de certaines versions « privées », .NET n'a pas réussi à se débarrasser des limitations de la plate-forme Windows avec le support officiel, " open source » et « multiplateforme » Ces deux mots font également mal au cœur de tous les développeurs .NET. Enfin, .NET Core a émergé, qui permet aux développeurs d'aller au-delà de Windows avec le support officiel et communautaire et peuvent écrire debug et déployer des programmes .NET sur les distributions grand public macOS et Linux.
2. .NET Core Introduction
2.1 Qu'est-ce que .NET Core
.NET Core est un cadre de développement général open source qui prend en charge plusieurs plates-formes, c'est-à-dire qu'il prend en charge le développement et le déploiement sur Windows, macOS, Linux et d'autres systèmes, et peut être utilisé dans des périphériques matériels, des services cloud et des solutions intégrées/IoT. Le code source de .NET Core est placé sur GitHub et est soutenu conjointement par les responsables de Microsoft et la communauté.
Il a une relation « sous-ensemble-superensemble » avec le .NET Framework traditionnel, ou vous pouvez simplement le considérer comme une version multiplateforme du .NET Framework (basée sur le niveau BCL). En effet, dans la version actuelle (1.0), la plupart du code principal de .NET Core est hérité et réécrit du .NET Framework, y compris le runtime et les bibliothèques (telles que GC, JIT, certains types).
Commentaire : Je ne peux que remercier Microsoft de ne pas avoir à lire "CLR via C#" en vain. Il m'a fallu six mois pour le terminer
La version actuelle de .NET Core 1.0 est une. très petit Le noyau, les API et les outils ne sont pas complets, mais à mesure que .Net Core continue de s'améliorer, des API et des innovations supplémentaires seront intégrées dans le .NET Framework. En d'autres termes, .NET Core Microsoft mettra à jour .NET Framework et .NET Core en même temps. Ils sont comme deux frères travaillant ensemble pour s'enrichir (à qui ? Bien sûr, les développeurs .NET), pour atteindre cet objectif. appelé harmonie du monde, et aussi Il s'agit de .NET Standard 2.0
Je dois mentionner un concept appelé .NET Standard Library. En tant que norme de support officielle pour le développement des API de la plate-forme .NET, elle nécessite que toutes les API du framework .NET soient rétrocompatibles. Par exemple, .NET Framwork 4.6 prend en charge la bibliothèque .NET Standard 1.3, le framework .NET Framwork 4.6.2 prend en charge la bibliothèque .NET Standard 1.5 et le framework .NET Core 1.0 prend en charge la norme 1.6.
Les perspectives finales sont les suivantes :
2.2 Composition .NET Core
①.NET Runtime
C'est CoreCLR. Comme mentionné précédemment, il n'y a aucune différence entre CoreCLR et le CLR de .NET Framework. La gestion des processus, le GC et le JIT (compilateur RyuJIT) sont également les mêmes, mais ils sont optimisés pour le système serveur. Désormais, CLR et CoreCLR sont également mis à jour simultanément, mais ce qui est certain, c'est que CoreCLR est l'avenir de .NET, et CLR existera comme moyen de compatibilité
②Bibliothèques Framework,
C'est CoreFX. Y compris les classes de collection, les classes de traitement Système de fichiers, les classes de traitement XML, les classes de tâches asynchrones, etc.
③Outils SDK et LangCompilateurs de langue ( Outils SDK et compilateur)
C'est-à-dire l'outil CLI et le compilateur Roslyn. Il peut être obtenu via .NET Core SDK (.NET Core Development Kit).
④dotnet'app host
est utilisé pour sélectionner et exécuter le runtime correspondant, fournir les principes de chargement des composants et démarrer les applications .NET Core. Le SDK est également lancé via la même procédure.
Conseils : Vous souvenez-vous du MSCorEE.dll shim, qui effectue également le travail de sélection de la version CLR pour les applications .NET sur la plateforme Windows
Fonctionnalités de 2.3 .NET Core
①Multiplateforme
Peut fonctionner sous Windows, macOS, Linux
②Mécanisme de déploiement flexible
1.Applications portables (applications portables)
Ce mécanisme de déploiement est similaire au .NET Framework traditionnel, tant que .NET existe sur la plate-forme cible Core Le temps d'exécution est suffisant.
2.Application autonome (application auto-hébergée)
Comme son nom l'indique, ce mécanisme de déploiement regroupe l'application et le runtime, même si ce n'est pas le cas installé sur la plate-forme cible.NET Core Runtime peut également être utilisé normalement
La deuxième méthode est également différente de .NET Native. Elle utilise toujours CoreCLR, tandis que .NET Native utilise CoreRT comme runtime. pour plus de détails, veuillez consulter dotnet/corert
③Outil de ligne de commande
Tous les scripts en cours d'exécution des programmes .NET peuvent être exécutés à l'aide d'outils de ligne de commande (cmd, bash). Voici plusieurs commandes donnet courantes
指令 | 帮助 |
---|---|
dotnet new | 产生新的基本 .NET 项目内容 (包含 project.json、Program.cs 以及 NuGet.config |
dotnet restore | 还原所参考的 NuGet 包 |
dotnet build | 建造 .NET 项目 |
dotnet publish | 产生可发行的 .NET 项目 (包含所属的 Runtime) |
dotnet run | 编译与立即运行 .NET 项目 (较适用于 exe 型项目) |
dotnet repl | 引导交互式的对话 |
dotnet pack | 将项目的产出封装成 NuGet 包 |
④Compatibilité
Compatible avec. .NET Framework, Xamarin et Mono via la bibliothèque standard .NET
⑤Open source
.NET Core appartient à la .NET Foundation et est officiellement pris en charge par Microsoft. Utilisant les licences open source MIT et Apache 2, la licence du document suit CC-BY
Langage de développement 2.4
Langage de programmation pris en charge dans la version .NET Core 1.0 Uniquement C# (F# et VB n'ont pas encore été implémentés). Un compilateur de langage open source, Roslyn, est également mentionné ici. Il est chargé de compiler le code dans le langage IL que nous connaissons, puis de le compiler dans. la machine via le compilateur AOT ou JIT. Langage machine familier.
3. Commencez
Le contenu suivant montre la démo de génération et de publication de ligne de commande sous Windows 10 et CentOS 7.2
3.1 Win 10
3.1.1 Installer le SDK .NET Core et le runtime .NET Core
SDK .NET Core = Utiliser .NET Core pour développer des applications et des outils SDK+CLI.
3.1.2 Résultats de l'opération simple
Ouvrez cmd, entrez mkdir .project (créer un répertoire), cd ..project (entrez un répertoire), dotnet new (créez un nouveau projet initial), dotnet restaurer (restaurer les dépendances), dotnet run (exécuter) pour exécuter le premier programme Hello World
3.2 CentOS 7.2 (Hyper-V local)
3.2.1 Installation et fonctionnement
Pour plus de détails, veuillez consulter : www.microsoft.com/net/core#windowsvs2015 La commande approximative est la suivante
sudo yum install libunwind libicu #安装libunwind,libicu包 curl -sSL -o dotnet.tar.gz https://go.microsoft.com/fwlink/?LinkID=809131 #下载dotnet-dev-centos-x64.1.0.0-preview2-003121.tar文件,有时会因为网络问题下载较慢,耐心等待即可,当然也可以手动下载后放到目录下。 sudo mkdir -p /opt/dotnet && sudo tar zxf dotnet.tar.gz -C /opt/dotnet #创建目录并解压已下载文件 sudo ln -s /opt/dotnet/dotnet /usr/local/bin #将目录链接到$PATH下,否则dotnet命令无法识别 mkdir hwapp cd hwapp dotnet new #创建默认.NET Core应用 dotnet restore #还原依赖包 dotnet run #运行,结果将显示Hello World!
.NET Command Line Tools (1.0.0-preview2-003121) Product Information: Version: 1.0.0-preview2-003121 Commit SHA-1 hash: 1e9d529bc5 Runtime Environment: OS Name: centos OS Version: 7 OS Platform: Linux RID: centos.7-x64
Supprimer"type": "platform", et ajoutez le nœud d'exécution)
{ "version": "1.0.0-*", "buildOptions": { "debugType": "portable", "emitEntryPoint": true }, "dependencies": {}, "frameworks": { "netcoreapp1.0": { "dependencies": { "Microsoft.NETCore.App": { "version": "1.0.0" } }, "imports": "dnxcore50" } }, "runtimes":{ "win10-x64":{}, #win10平台 "centos.7-x64":{} #centos7.2平台 } }
Accédez au dossier du projet (nouveau) dans le répertoire racine de Linux et entrez la commande
dans le Shell. Après avoir modifié les autorisations de l'exécutable, vous pouvez exécuter avec succès. "Hello World". Ceci est notre méthode de déploiement des "Applications autonomes"4. Résumé
4.1 Épilogue
Ça y est, .NET L'étude de Core est terminée. Le contenu ci-dessus présente brièvement la composition et les caractéristiques de .NET Core. Il exécute également avec succès des exemples sur les systèmes Windows et Linux via deux méthodes de déploiement différentes. Par rapport au précédent déploiement infaillible de .NET Framework, la nouveauté de .NET Core me fait vraiment briller les yeux. Ensuite, j'enregistrerai également l'apprentissage de .NET Core etASP.NET Core. Les corrections sont les bienvenues.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!