[[oktatas:programozás:csharp:dotnetcore|< .Net Core]]
====== .Net Core Konzol ======
* **Szerző:** Sallai András
* Copyright (c) 2017, Sallai András
* Szerkesztve: 2017, 2019, 2021, 2022, 2023
* Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC BY-SA 4.0]]
* Web: https://szit.hu
===== Beszerzés =====
A .Net beszerzése:
* https://dotnet.microsoft.com/download (2019)
===== Visual Studio Code =====
Telepítendő bővítmény:
* C#
* dotnet
===== Új C# alkalmazás készítése =====
mkdir app01
cd app01
dotnet new console
Az app01 könyvtár létrehozható a dotnet parancs -o kapcsolójával:
dotnet new console -o app01
cd app01
Futtatás:
dotnet run
===== Keretrendszer megadása =====
dotnet new console --framework net7.0
===== Main() függvény nélkül =====
// See https://aka.ms/new-console-template for more information
Console.WriteLine("Hello, World!");
Figyelmeztetést kapunk:
dotnet run
/home/janos/.nuget/packages/microsoft.net.test.sdk/17.1.0-release-20220113-05/build/netcoreapp2.1/Microsoft.NET.Test.Sdk.Program.cs(4,41): warning CS7022: The entry point of the program is global code; ignoring 'AutoGeneratedProgram.Main(string[])' entry point. [/home/janos/dev/gyak/dotnet/app10/app10.csproj]
Szúrjuk be a következő sort az app01.csproj fájlba.
false
Exe
net6.0
enable
enable
false
Újabb futtatás után a figyelmeztetés eltűnik.
===== dotnet =====
=== Függőségek feloldása ===
Gépeljük be a következőt:
dotnet restore
Ez hozzáférést biztosít a .NET Core függőségekhez.
=== Futtatás ===
Futtassuk a Helló Világ programot. Gépeljük be a következőt:
dotnet run
A programkód futtatható így is:
cd bin/Debug/netcoreapp1.1/
dotnet prog01.dll
A futtatható állomány valójában egy .dll kiterjesztésű fájl.
Készíthetünk adott platformra is futtatható állományt:
dotnet restore -r debian.8-x64
dotnet build -c release -r debian.8-x64
dotnet publish -c release -r debian.8-x64
Ennek hatására létrejön a következő ELF bináris:
bin/release/netcoreapp1.1/debian.8-x64/prog01
Más platformokra a -r kapcsoló után beírható paraméterek:
* https://docs.microsoft.com/en-us/dotnet/core/rid-catalog
===== A Main() metódus =====
A .NET Core 3.1, illetve a .NET 5.0 óta nem kötelező a programban a Main() metódus megléte.
A használata azonban nincs kizárva.
class Program {
static void Main() {
Console.WriteLine("Helló Világ!");
}
}
===== Függvények használata =====
Dolgozhatunk csak függvényekkel:
static void message() {
Console.WriteLine("Üdv!");
}
message();
A static módosító nem kötelező.
===== Main metódus generálása =====
dotnet new console --use-program-main
Keretrendszer verziójának megadása:
dotnet new console --framework net8.0 --use-program-main
===== Linkek =====
* https://docs.microsoft.com/en-us/dotnet/csharp/getting-started/with-visual-studio-code
* https://docs.microsoft.com/en-us/dotnet/csharp/fundamentals/program-structure/main-command-line