Co je .NET? Úvod a přehled
.NET je bezplatná opensourcová opensourcová vývojářská platforma pro vytváření mnoha druhů aplikací. .NET je postaven na vysoce výkonném modulu runtime , který se používá v produkčním prostředí mnoha vysoce škálovatelných aplikací.
Cloudové aplikace
- Aplikace nativní pro cloud
- .NET Aspire
- Aplikace konzoly
- Bezserverové funkce v cloudu
- Webové aplikace, webová rozhraní API a mikroslužby
Klientské aplikace pro různé platformy
Aplikace pro Windows
Jiné typy aplikací
Funkce
Funkce .NET umožňují vývojářům produktivní psaní spolehlivého a výkonného kódu.
- Asynchronní kód
- Atributy
- Reflexe
- Analyzátory kódu
- Delegáty a výrazy lambda
- Události
- Výjimky
- Uvolněné
- Obecné typy
- LINQ (jazykový integrovaný dotaz).
- Paralelní programování a spravované podprocesy
- Odvození typu – C#, F#, Visual Basic.
- Systém typů
- Nebezpečný kód
Použití .NET
Aplikace a knihovny .NET jsou sestavené ze zdrojového kódu a souboru projektu pomocí .NET CLI nebo integrovaného vývojového prostředí (IDE), jako je Visual Studio.
Následující příklad je minimální aplikace .NET:
Soubor projektu:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net8.0</TargetFramework>
</PropertyGroup>
</Project>
Zdrojový kód:
Console.WriteLine("Hello, World!");
Aplikaci je možné sestavit a spustit pomocí rozhraní příkazového řádku .NET:
dotnet run
Hello, World!
Binární distribuce
- .NET SDK: Sada nástrojů, knihoven a modulů runtime pro vývoj, vytváření a testování aplikací.
- Moduly runtime .NET: Sada modulů runtime a knihoven pro spouštění aplikací.
.NET si můžete stáhnout z:
- Web pro stažení microsoftu.
- Kontejnery.
- Správci balíčků pro Linux.
Zdarma a v open sourcu
.NET je bezplatný, open source a je projekt .NET Foundation . .NET spravuje Microsoft a komunita na GitHubu v několika úložištích.
Zdroj a binární soubory .NET jsou licencované s licencí MIT. Další licence platí pro systém Windows pro binární distribuce.
Technická podpora
Microsoft podporuje .NET v operačních systémech Android, Apple, Linux a Windows. Dá se použít v architekturách Arm64, x64 a x86. Podporuje se také v emulovaných prostředích, jako je macOS Rosetta 2.
Nové verze .NET se vydávají ročně v listopadu. Verze .NET v lichých letech jsou verze dlouhodobé podpory (LTS) a podporují se po dobu tří let. Verze v sudých letech jsou verze stS (Standard-Term Support) a podporují se po dobu 18 měsíců. Úroveň kvality, zásady zásadních změn a všechny ostatní aspekty vydaných verzí jsou stejné. Další informace najdete v tématu Vydané verze a podpora.
Tým .NET v Microsoftu spolupracuje s ostatními organizacemi na distribuci a podpoře .NET různými způsoby.
Red Hat podporuje .NET v Red Hat Enterprise Linuxu (RHEL).
Samsung podporuje .NET na platformách Tizen.
Šablona běhového prostředí
Clr (Common Language Runtime) je základem všech aplikací .NET, které jsou založené. Základní funkce modulu runtime jsou:
- Uvolněné.
- Bezpečnost paměti a bezpečnost typů.
- Podpora vysoké úrovně pro programovací jazyky
- Návrh pro různé platformy
.NET se někdy označuje jako modul runtime spravovaného kódu. Označuje se jako spravovaná především proto, že ke správě paměti používá systém uvolňování paměti a proto, že vynucuje zabezpečení typu a paměti. CLR virtualizuje (nebo abstrahuje) různé koncepty operačního systému a hardwaru, jako jsou paměť, vlákna a výjimky.
Modul CLR byl navržen tak, aby byl modul runtime pro různé platformy od jeho vzniku. Byl portován do několika operačních systémů a architektur. Kód .NET pro různé platformy se obvykle nemusí znovu kompilovat, aby se spouštěl v nových prostředích. Místo toho stačí nainstalovat jiný modul runtime pro spuštění aplikace.
Modul runtime zveřejňuje různé diagnostické služby a rozhraní API pro ladicí programy, výpisy paměti a nástroje pro trasování a pozorovatelnost. Implementace pozorovatelnosti je primárně postavená na OpenTelemetry, která umožňuje flexibilní monitorování aplikací a SRE (Site Reliability Engineering).
Modul runtime nabízí funkce spolupráce ve stylu C nízké úrovně prostřednictvím kombinace volání nespravovaného kódu, typů hodnot a možnosti blit hodnoty napříč hranicemi nativního nebo spravovaného kódu.
Jazyky
Modul runtime je navržený tak, aby podporoval více programovacích jazyků. Jazyky C#, F# a Visual Basic podporují Microsoft a jsou navržené ve spolupráci s komunitou.
C# je moderní programovací jazyk orientovaný na objekty a typově bezpečný programovací jazyk. Má své kořeny v sadě jazyků C a bude okamžitě známý programátorům jazyka C, C++, Java a JavaScript.
F# je interoperabilní programovací jazyk pro psaní stručného, robustního a výkonného kódu. Programování v jazyce F# je orientované na data, kde kód zahrnuje transformaci dat pomocí funkcí.
Jazyk Visual Basic používá podrobnější syntaxi, která je blíže běžnému lidskému jazyku. Může být jednodušším jazykem učit se lidem, kteří s programováním začíná.
Kompilace
Aplikace .NET (napsané v jazyce vysoké úrovně, jako je C#), se kompilují do jazyka IL (Intermediate Language). IL je kompaktní formát kódu, který lze podporovat v jakémkoli operačním systému nebo architektuře. Většina aplikací .NET používá rozhraní API podporovaná v několika prostředích, která vyžadují spuštění pouze modulu runtime .NET.
Il je potřeba zkompilovat do nativního kódu, který se má spustit na procesoru, například Arm64 nebo x64. .NET podporuje modely kompilace AHEAD-Of-Time (AOT) i JIT (Just-In-Time).
- V Androidu, macOS a Linuxu je kompilace JIT výchozí a AOT je volitelná (například s ReadyToRun).
- V iOSu je AOT povinný (s výjimkou případů, kdy běží v simulátoru).
- V prostředích WebAssembly (Wasm) je AOT povinný.
Výhodou JIT je, že může zkompilovat aplikaci (beze změny) na instrukce procesoru a konvence volání v daném prostředí podle základního operačního systému a hardwaru. Může také zkompilovat kód na vyšší nebo nižší úrovni kvality, aby se zlepšil výkon propustnosti při spouštění a stabilním stavu.
Výhodou AOT je, že poskytuje nejlepší spuštění aplikace a v některých případech může vést k menším nasazením. Primární nevýhodou je, že binární soubory musí být vytvořeny pro každý samostatný cíl nasazení (stejný jako jakýkoli jiný nativní kód). Kód AOT není kompatibilní s některými vzory reflexe.
Knihovny modulu runtime
.NET má komplexní standardní sadu knihoven tříd. Tyto knihovny poskytují implementace pro mnoho typů a funkcí specifických pro obecné účely a úlohy.
Tady je několik příkladů typů definovaných v knihovnách modulu runtime .NET:
- Každý typ .NET je odvozen od System.Object typu.
- Primitivní typy hodnot, například System.Boolean a System.Int32.
- Sbírky, například System.Collections.Generic.List<T> a System.Collections.Generic.Dictionary<TKey,TValue>.
- Datové typy, například System.Data.DataSet a System.Data.DataTable.
- Typy síťových nástrojů, například System.Net.Http.HttpClient.
- Typy vstupně-výstupních operací souborů a datových proudů, například System.IO.FileStream a System.IO.TextWriter.
- Typy nástrojů serializace , například System.Text.Json.JsonSerializer a System.Xml.Serialization.XmlSerializer.
- Vysoce výkonné typy, například System.Span<T>, System.Numerics.Vectora Kanály.
Další informace najdete v přehledu knihoven modulu runtime.
Správce balíčků NuGet
NuGet je správce balíčků pro .NET. Umožňuje vývojářům vzájemně sdílet kompilované binární soubory. NuGet.org nabízí mnoho oblíbených balíčků od komunity.
Nástroje
Sada .NET SDK je sada knihoven a nástrojů pro vývoj a spouštění aplikací .NET. Zahrnuje modul sestavení MSBuild , kompilátor Roslyn (C# a Visual Basic) a kompilátor jazyka F# . Většina příkazů se spouští pomocí dotnet
příkazu. Nástroje rozhraní příkazového řádku je možné použít pro místní vývoj a kontinuální integraci.
Řada integrovaného vývojového prostředí sady Visual Studio nabízí vynikající podporu pro jazyky .NET a C#, F# a Visual Basic.
Funkce zabezpečení GitHub Codespaces a GitHubu podporují .NET.
Poznámkové bloky
.NET Interactive je skupina nástrojů a rozhraní API rozhraní příkazového řádku, která uživatelům umožňují vytvářet interaktivní prostředí napříč webem, markdownem a poznámkovými bloky.
Další informace naleznete v následujících zdrojích:
- Kurz k .NET v prohlížeči
- Použití poznámkových bloků .NET s Jupyterem na vašem počítači
- Dokumentace k .NET Interactive
CI/CD
MsBuild a .NET CLI je možné použít s různými nástroji a prostředími pro kontinuální integraci, například:
Další informace najdete v tématu Použití sady .NET SDK v prostředích kontinuální integrace (CI).
Modely nasazení
Aplikace .NET je možné publikovat ve dvou různých režimech:
- Samostatné aplikace zahrnují modul runtime .NET a závislé knihovny. Můžou se jednat o jeden soubor nebo více souborů. Uživatelé aplikace ji můžou spustit na počítači, na který není nainstalovaný modul runtime .NET. Samostatné aplikace vždy cílí na jeden operační systém a konfiguraci architektury.
- Aplikace závislé na architektuře vyžadují kompatibilní verzi modulu runtime .NET, která se obvykle instaluje globálně. Aplikace závislé na architektuře je možné publikovat pro jeden operační systém a konfiguraci architektury nebo jako "přenosné", které cílí na všechny podporované konfigurace.
Aplikace .NET se ve výchozím nastavení spouští s nativním spustitelným souborem. Spustitelný soubor je specifický pro operační systém i architekturu. Aplikace se dají spustit také pomocí dotnet
příkazu.
Aplikace je možné nasadit v kontejnerech. Microsoft poskytuje image kontejnerů pro různá cílová prostředí.
Historie .NET
V roce 2002 společnost Microsoft vydala rozhraní .NET Framework, což je vývojová platforma pro vytváření aplikací pro Windows. Rozhraní .NET Framework je dnes ve verzi 4.8 a společnost Microsoft je plně podporovaná.
V roce 2014 společnost Microsoft zavedla .NET Core jako multiplatformní opensourcový následník rozhraní .NET Framework. Tato nová implementace .NET zachovala název .NET Core až do verze 3.1. Další verze po .NET Core 3.1 vynechala část názvu "Core" a měla název .NET 5.
Nové verze .NET budou dál vydávány ročně, přičemž každá hlavní verze je vyšší. Zahrnují významné nové funkce a často umožňují nové scénáře.
Ekosystém .NET
Existuje několik variant .NET, z nichž každá podporuje jiný typ aplikace. Důvodem více variant je část historická, částečně technická.
Implementace .NET (historické pořadí):
- .NET Framework – poskytuje přístup k široké možnosti Windows a Windows Serveru. Také se široce používá pro cloud computing založený na Windows. Původní .NET.
- Mono – multiplatformní implementace rozhraní .NET Framework. Původní komunita a open source .NET. Používá se pro aplikace pro Android, iOS a Wasm.
- .NET (Core) – multiplatformní a opensourcová implementace rozhraní .NET, která je pro cloudová věk, a přitom zůstává výrazně kompatibilní s rozhraním .NET Framework. Používá se pro aplikace pro Linux, macOS a Windows.
Další kroky
Váš názor
Odeslat a zobrazit názory pro