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 vysoce výkonný modul runtime používaný v produkčním prostředí mnoha vysoce škálovatelnými aplikacemi.

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

Platforma .NET je navržená 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 které jsou optimalizované pro výkon v několika operačních systémech a architekturách čipů.

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

  • Produktivita je kompletní díky runtime, knihovnám, jazykům a nástrojům, 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 více ručních optimalizací.
  • 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 analýza JSON.
  • Kompilátor – kompiluje 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 s moderními pracovními postupy.
  • Zásobníky aplikací , jako je 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 vytváření, analýzu a testování kódu. 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. Ostatní 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 politik vydání a zásad podpory. Aktualizuje se každý měsíc na Patch Tuesday (druhé úterý), obvykle v 10 hodin tichomořského času.

Ekosystém .NET

Existuje několik variant .NET, z nichž každá podporuje jiný typ aplikace z historických i technických důvodů.

Implementace .NET:

  • .NET (Core) – moderní .NET. Multiplatformní a opensourcová implementace .NET, která je promyšlená pro cloudovou éru, přitom zůstává výrazně kompatibilní. Je ve vývoji a je aktivně podporován.
  • .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 opensourcová .NET. Multiplatformní implementace rozhraní .NET Framework.

Další kroky