(An English version of this articleisalsoavailable.)
Ich habe mehrere Maschinen, von denen eine Linux hat. Da es sich um eine Desktop-Maschine handelt, verwende ich sie häufig für die Entwicklung, möchte aber die Umgebung vorstellen.
.NET Core ist plattformübergreifend kompatibel, sodass Sie fast dieselbe Entwicklung wie Windows durchführen können.
Das Folgende sind die Dinge, die ich bestätigt habe, dass es möglich ist.
.NET Core .NET Core kann mit den meisten Hauptdistributionen verwendet werden, und verschiedene Pakete sind verfügbar. Ich möchte jedoch Shell Script empfehlen. Installation mit / dotnet / core / tools / dotnet-install-script).
Die Installation über Shell-Skripte erleichtert die Installation mehrerer Versionen der .NET Core-Laufzeit und -Bibliotheken.
Wenn Sie beispielsweise die LTS-Version installieren möchten, sieht dies folgendermaßen aus:
./dotnet-install.sh --channel LTS
Möglicherweise benötigen Sie zusätzliche Bibliotheken, die installiert werden müssen. Diejenige, die im Allgemeinen weniger häufig enthalten zu sein scheint, ist libicu.
Der Installationsort muss kein vom Benutzer beschreibbarer Ort sein. Zusätzliche Vorlagen, Tools usw. werden von jedem Benutzer gesteuert.
Visual Studio Code Wenn Sie eine Entwicklungsumgebung kostenlos vorbereiten möchten, werden die folgenden Kombinationen empfohlen.
Mit den oben genannten Informationen können Sie eine Umgebung erstellen, in der Sie mit der Entwicklung beginnen können.
JetBrains Rider Wenn Sie bereit sind, Geld für Ihre Entwicklungsumgebung auszugeben, sollten Sie [JetBrains Rider] in Betracht ziehen (https://www.jetbrains.com/ja-jp/rider/). JetBrains ist auch Entwickler von ReSharper, einem Refactoring-Plug-In für Visual Studio, das erweiterte Codierungsunterstützung bietet. Daher kann es bequem entwickelt werden.
Rider hat Rider allein, Rider und ReSharper gebündelte Version und All Products Pack einschließlich aller IDE-Produkte. Weitere Informationen finden Sie auf der Kaufseite. (Ich persönlich abonniere das All Products Pack, da ich es möglicherweise auch in anderen Sprachen verwenden kann.) Die meisten JetBrains-IDEs sind nicht nur auf Rider beschränkt, sondern auch in anderen Umgebungen wie Windows. Da es verwendet werden kann, ist es auch nützlich, dass dieselbe IDE auf mehreren Betriebssystemen verwendet werden kann.
Die Paketverwaltung von NuGet kann auch grafisch erfolgen. Daher wird sie für diejenigen empfohlen, die viele Möglichkeiten haben, C # auszuführen.
Wenn Sie OmniSharp (auch in der obigen Erweiterung verwendet) verwenden, können Sie Language Server Protocol nach Belieben verwenden. Es ist auch möglich, mit einem Editor zu entwickeln. Diese Methode hängt vom Editor ab, daher werde ich sie hier weglassen.
Sobald Sie die Umgebung eingerichtet haben, können Sie mit der Entwicklung beginnen.
Verwenden Sie den Befehl dotnet, um ein Projekt zu erstellen.
dotnet new console -o myapp
Wenn Sie es ohne Argumente ausführen, werden die Vorlagen angezeigt, die Sie verwenden können:
dotnet new
Usage: new [options]
Options:
-h, --help Displays help for this command.
-l, --list Lists templates containing the specified name. If no name is specified, lists all templates.
-n, --name The name for the output being created. If no name is specified, the name of the current directory is used.
-o, --output Location to place the generated output.
-i, --install Installs a source or a template pack.
-u, --uninstall Uninstalls a source or a template pack.
--nuget-source Specifies a NuGet source to use during install.
--type Filters templates based on available types. Predefined values are "project", "item" or "other".
--dry-run Displays a summary of what would happen if the given command line were run if it would result in a template creation.
--force Forces content to be generated even if it would change existing files.
-lang, --language Filters templates based on language and specifies the language of the template to create.
--update-check Check the currently installed template packs for updates.
--update-apply Check the currently installed template packs for update, and install the updates.
Templates Short Name Language Tags
----------------------------------------------------------------------------------------------------------------------------------
Console Application console [C#], F#, VB Common/Console
Class library classlib [C#], F#, VB Common/Library
WPF Application wpf [C#] Common/WPF
WPF Class library wpflib [C#] Common/WPF
WPF Custom Control Library wpfcustomcontrollib [C#] Common/WPF
WPF User Control Library wpfusercontrollib [C#] Common/WPF
Windows Forms (WinForms) Application winforms [C#] Common/WinForms
Windows Forms (WinForms) Class library winformslib [C#] Common/WinForms
Worker Service worker [C#] Common/Worker/Web
Unit Test Project mstest [C#], F#, VB Test/MSTest
NUnit 3 Test Project nunit [C#], F#, VB Test/NUnit
NUnit 3 Test Item nunit-test [C#], F#, VB Test/NUnit
xUnit Test Project xunit [C#], F#, VB Test/xUnit
Razor Component razorcomponent [C#] Web/ASP.NET
Razor Page page [C#] Web/ASP.NET
MVC ViewImports viewimports [C#] Web/ASP.NET
MVC ViewStart viewstart [C#] Web/ASP.NET
Blazor Server App blazorserver [C#] Web/Blazor
Blazor WebAssembly App blazorwasm [C#] Web/Blazor/WebAssembly
ASP.NET Core Empty web [C#], F# Web/Empty
ASP.NET Core Web App (Model-View-Controller) mvc [C#], F# Web/MVC
ASP.NET Core Web App webapp [C#] Web/MVC/Razor Pages
ASP.NET Core with Angular angular [C#] Web/MVC/SPA
ASP.NET Core with React.js react [C#] Web/MVC/SPA
ASP.NET Core with React.js and Redux reactredux [C#] Web/MVC/SPA
Razor Class Library razorclasslib [C#] Web/Razor/Library/Razor Class Library
ASP.NET Core Web API webapi [C#], F# Web/WebAPI
ASP.NET Core gRPC Service grpc [C#] Web/gRPC
dotnet gitignore file gitignore Config
global.json file globaljson Config
NuGet Config nugetconfig Config
Dotnet local tool manifest file tool-manifest Config
Web Config webconfig Config
Solution File sln Solution
Protocol Buffer File proto Web/gRPC
Sie können die fehlende Vorlage online herunterladen und installieren.
dotnet install hoge
Dadurch wird der Kesselplattencode für Ihre Konsolenanwendung im myapp-Verzeichnis generiert, sodass Sie den Editor öffnen und mit der Entwicklung beginnen können. (Visual Studio Code erfordert eine Netzumgebung, da die erforderlichen Komponenten und das Herunterladen des C # -Plug-Ins beim ersten Start erfolgen und es beim nächsten Mal etwas dauern kann.)
Wenn Sie Rider verwenden, können Sie ein Projekt in einem speziellen Dialogfeld erstellen.
Einige Vorlagen werden nicht unterstützt. In diesem Fall müssen Sie ein Projekt über die Befehlszeile erstellen.
Mit dem Befehl dotnet können Sie Projekte in Form von [.NET Core Tools] erstellen und betreiben (https://docs.microsoft.com/ja-jp/dotnet/core/tools/global-tools). Sie können auch verschiedene Tools installieren.
Beispielsweise kann PowerShell auch als Teil von .NET installiert werden. In diesem Fall:
dotnet tool install -g powershell
Dies gilt auch, wenn Sie andere ML.NET-Tools installieren möchten.
dotnet tool install -g mlnet
Es ist auch möglich, mit Visual Studio-Code zu debuggen, und dies kann wie ein normales Visual Studio erfolgen.
Es kann jedoch etwas gewöhnungsbedürftig sein, da die Einstellungen wie launch.json </ code> neu geschrieben werden müssen. Ein Beispiel ist unten gezeigt.
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": ".NET Core Launch (console)",
"type": "coreclr",
"request": "launch",
"WARNING01": "*********************************************************************************",
"WARNING02": "The C# extension was unable to automatically decode projects in the current",
"WARNING03": "workspace to create a runnable launch.json file. A template launch.json file has",
"WARNING04": "been created as a placeholder.",
"WARNING05": "",
"WARNING06": "If OmniSharp is currently unable to load your project, you can attempt to resolve",
"WARNING07": "this by restoring any missing project dependencies (example: run 'dotnet restore')",
"WARNING08": "and by fixing any reported errors from building the projects in your workspace.",
"WARNING09": "If this allows OmniSharp to now load your project then --",
"WARNING10": " * Delete this file",
"WARNING11": " * Open the Visual Studio Code command palette (View->Command Palette)",
"WARNING12": " * run the command: '.NET: Generate Assets for Build and Debug'.",
"WARNING13": "",
"WARNING14": "If your project requires a more complex launch configuration, you may wish to delete",
"WARNING15": "this configuration and pick a different template using the 'Add Configuration...'",
"WARNING16": "button at the bottom of this file.",
"WARNING17": "*********************************************************************************",
"preLaunchTask": "build",
"program": "${workspaceFolder}/bin/Debug/netcoreapp3.1/myapp.dll",
"args": [],
"cwd": "${workspaceFolder}",
"console": "internalConsole",
"stopAtEntry": false
},
{
"name": ".NET Core Attach",
"type": "coreclr",
"request": "attach",
"processId": "${command:pickProcess}"
}
]
}
Die Einstellungsdatei selbst hat eine Funktion, die automatisch generiert wird. Sie müssen jedoch den Plattformnamen ( netcoreapp3.1 </ code>) und den Anwendungsnamen (
myapp.dll </ code>) selbst festlegen.
Bei der Verwendung von Rider ist dies recht einfach, da viele Teile automatisch eingestellt werden.
Vor dem Aufkommen von .NET Core gab es Mono usw., aber .NET hatte immer noch einen starken Charakter als Windows-Umgebung, aber nach dem Aufkommen von .NET Core ist es möglich, sowohl unter Linux als auch unter Tools zu entwickeln. Es ist gekommen zu sein.
Es kann Situationen geben, in denen es praktisch ist, unter Linux entwickeln zu können, insbesondere wenn das Bereitstellungsziel Linux ist. In einem solchen Fall halte ich es für einen großen Vorteil, auch unter Linux eine Entwicklungsumgebung erstellen zu können.
Recommended Posts