Sdílet prostřednictvím


Úvod do .NET

.NET je bezplatná multiplatformní opensourcová vývojářská platforma pro vytváření mnoha druhů aplikací. Může spouštět programy napsané v několika jazycích, přičemž nejoblíbenější je C#. Spoléhá na vysokovýkonný modul runtime, který se používá v produkčním prostředí mnoha vysoce škálovatelných aplikací.

Informace o tom, jak stáhnout .NET a začít psát svou první aplikaci, najdete v tématu Začínáme.

Platforma .NET byla navržena tak, aby poskytovala produktivitu, výkon, zabezpečení a spolehlivost. Poskytuje automatickou správu paměti prostřednictvím garbage collectoru (GC). Je to typově bezpečné a bezpečné pro paměť, protože používá GC a striktní jazykové kompilátory. Nabízí souběžnosti prostřednictvím async/await a Task primitiv. Zahrnuje velkou sadu knihoven, které mají širokou funkčnost a jsou optimalizované pro výkon v různých operačních systémech a architekturách čipů.

.NET má následující návrhové body:

  • Produktivita je plný stack s běhovým prostředím, knihovnami, jazykem a nástroji, které přispívají k uživatelskému zážitku vývojářů.
  • bezpečný kód je primární výpočetní model, zatímco nebezpečný kód umožňuje další ruční optimalizace.
  • statického a dynamického kódu jsou podporovány, což umožňuje širokou škálu různých scénářů.
  • Interoperabilita nativního kódu a hardwarové intrinsics se vyznačují nízkými náklady a vysokou věrností (nezpracované rozhraní API a přístup k instrukcím).
  • Code je přenositelný napříč platformami (architektura operačního systému a čipu), zatímco cílení na platformu umožňuje specializaci a optimalizaci.
  • Přizpůsobivost napříč programovacími doménami (cloud, klient, herní průmysl) je umožněna specializovanými implementacemi programovacího modelu pro obecné účely.
  • oborové standardy jako OpenTelemetry a gRPC jsou upřednostňovány před řešeními na míru.

Microsoft se společně s globální komunitou podílí na údržbě .NET. Pravidelné aktualizace zajišťují, aby uživatelé nasadili zabezpečené a spolehlivé aplikace do produkčních prostředí.

Součásti

.NET obsahuje následující komponenty:

  • Modul runtime – spouští kód aplikace.
  • Knihovny -- poskytují užitečné funkce, jako je parsování JSON.
  • Kompilátor – zkompiluje zdrojový kód jazyka C# (a další jazyky) do spustitelného kódu (runtime).
  • SDK a další nástroje – umožňují vytvářet a monitorovat aplikace pomocí moderních pracovních postupů.
  • Zásobníky aplikací – například ASP.NET Core a Windows Forms, které umožňují psaní aplikací.

Běhové prostředí, knihovny a jazyky jsou pilíři .NET Stacku. Komponenty vyšší úrovně, jako jsou nástroje .NET a zásobníky aplikací, jako je ASP.NET Core, vycházejí z těchto pilířů. C# je primární programovací jazyk pro .NET a velká část .NET je napsaná v jazyce C#.

Jazyk C# je objektově orientovaný a modul runtime podporuje orientaci objektů. Jazyk C# vyžaduje uvolňování paměti a běhové prostředí poskytuje trasující uvolňovač paměti. Knihovny (a také zásobníky aplikací) tvarují tyto funkce do konceptů a modelů objektů, které vývojářům umožňují psát algoritmy produktivně v intuitivních pracovních postupech.

Základní knihovny zpřístupňují tisíce typů, z nichž mnohé se integrují s jazykem C# a podporují je. Příkaz foreach jazyka C# například umožňuje vytvořit výčet libovolných kolekcí. Optimalizace založené na vzorech umožňují jednoduše a efektivně zpracovávat kolekce, jako je List<T>. Správu prostředků můžete ponechat na automatickém uvolňování paměti, ale okamžité vyčištění je možné prostřednictvím IDisposable a přímé jazykové podpory v příkazu using.

Podpora provádění více věcí najednou je zásadní pro prakticky všechny úlohy. To by mohly být klientské aplikace provádějící zpracování na pozadí, přičemž uživatelské rozhraní reaguje, služby zpracovávající mnoho tisíc souběžných požadavků, zařízení reagující na velké množství souběžných podnětů nebo vysoce výkonných počítačů paralelně zpracovávající zpracování operací náročných na výpočetní výkon. Podpora asynchronního programování je prvotřídní funkcí programovacího jazyka C#, která poskytuje async a await klíčová slova, která usnadňují psaní a vytváření asynchronních operací a zároveň mají plné výhody všech konstruktorů toku řízení, které jazyk musí nabídnout.

Systém typů nabízí značnou šířku, rovnoměrně zaměřenou na bezpečnost, popisnost, dynamismus a nativní spolupráci. Především systém typů umožňuje objektově orientovaný programovací model. Zahrnuje typy( dědičnost jedné základní třídy), rozhraní (včetně výchozích implementací metod) a odesílání virtuálních metod, které poskytují rozumné chování pro všechny vrstvení typů, které umožňuje orientace objektu. Obecné typy jsou všudypřítomné a umožňují specializovat třídy na jeden nebo více typů.

Modul .NET runtime poskytuje automatickou správu paměti prostřednictvím garbage collectoru. Pro jakýkoli jazyk je jeho model správy paměti pravděpodobně jeho nejdefinovanější charakteristikou. To platí pro jazyky .NET. .NET má samoobslužné ladění trasování GC. Cílem je poskytovat "hands-off" použití v obecném případě a současně nabízet možnosti konfigurace pro extrémnější úlohy. Aktuální GC je výsledkem mnoha let investic a učení z velkého množství úloh.

Typy hodnot a bloky paměti přidělované zásobníkem nabízejí přímější, nízkoúrovňovou kontrolu nad daty a spoluprací s nativními platformami, na rozdíl od typů spravovaných .NET a jeho garbage collector. Většina primitivních typů v .NET, jako jsou celočíselné typy, jsou typy hodnot a uživatelé mohou definovat své vlastní typy s podobnou sémantikou. Typy hodnot jsou plně podporovány prostřednictvím generického systému .NET, což znamená, že generické typy jako List<T> mohou poskytovat ploché a bez režijní paměťové reprezentace kolekcí typů hodnot.

Reflexe je paradigma "programy jako data", které umožňuje jedné části programu dynamicky dotazovat a vyvolat další v rámci sestavení, typů a členů. Je zvlášť užitečná pro programovací modely a nástroje s pozdní vazbou.

Výjimky jsou primárním modelem zpracování chyb v .NET. Výjimky mají výhodu, že informace o chybách nemusí být reprezentovány v podpisech metody ani zpracovány každou metodou. Správné zpracování výjimek je nezbytné pro spolehlivost aplikací. Pokud chcete zabránit chybovému ukončení aplikace, můžete úmyslně zpracovat očekávané výjimky v kódu. Aplikace s chybovým ukončením je spolehlivější a diagnostikovatelná než aplikace s nedefinovaným chováním.

Zásobníky aplikací, jako jsou ASP.NET Core a Windows Forms, staví na knihovnách nízké úrovně, jazyku a modulu runtime a využívají je. Zásobníky aplikací definují způsob vytváření aplikací a jejich životní cyklus provádění.

Sada SDK a další nástroje umožňují moderní vývojářské prostředí, a to jak na desktopu pro vývojáře, tak pro kontinuální integraci (CI). Moderní vývojářské prostředí zahrnuje možnost vytvářet, analyzovat a testovat kód. Projekty .NET je často možné sestavit jedním příkazem dotnet build, který orchestruje obnovení balíčků NuGet a sestavování závislostí.

NuGet je správce balíčků pro .NET. Obsahuje stovky tisíc balíčků, které implementují funkce pro mnoho scénářů. Většina aplikací se u některých funkcí spoléhá na balíčky NuGet. Galerie NuGet spravuje společnost Microsoft.

Svobodný a open source

.NET je bezplatný, open source a je to 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 Windows.

Podpora

.NET je podporováno více organizacemi, které pracují na zajištění toho, aby rozhraní .NET fungovalo na více operačních systémů a je aktuální. Dá se použít v architekturách Arm64, x64 a x86.

Nové verze .NET se vydávají ročně v listopadu podle našich verzí a zásad podpory. Aktualizuje se každý měsíc v úterý patchů (druhé úterý), obvykle v 10:00 pacifického času.

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:

  • rozhraní .NET Framework – původní .NET. Poskytuje přístup k široké možnosti Windows a Windows Serveru. Aktivně se podporuje při údržbě.
  • Mono – původní komunita a open source .NET. Multiplatformní implementace rozhraní .NET Framework. Aktivně podporováno pro Android, iOS a WebAssembly.
  • .NET (Core) – moderní .NET. Multiplatformní open-source implementace .NET, promyšlená pro éru cloudových technologií a přitom zůstávající výrazně kompatibilní s .NET Framework. Aktivně podporováno pro Linux, macOS a Windows.

Další kroky