Úvod do technologie .NET

.NET je bezplatná opensourcová opensourcová vývojářská platforma pro vytváření mnoha druhů aplikací. Může spouštět programy napsané ve více jazycích, přičemž jazyk C# je nejoblíbenější. 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 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 uvolňování paměti (GC). Je to typově bezpečné a bezpečné pro paměť, protože používá GC a striktní jazykové kompilátory. Nabízí souběžnost prostřednictvímawaitasync/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í body návrhu:

  • Produktivita je plně skládaná s modulem runtime, knihovnami, jazykem a nástroji, které přispívají k uživatelskému prostředí vývojářů.
  • Sejf kód je primární výpočetní model, zatímco nebezpečný kód umožňuje další ruční optimalizace.
  • Podporuje se statický i dynamický kód , který umožňuje širokou škálu různých scénářů.
  • Nativní interop kódu a hardwarové vnitřní objekty jsou nízké náklady a vysoce věrné (nezpracované rozhraní API a přístup k instrukcím).
  • Kód je přenosný napříč platformami (architektura operačního systému a čipu), zatímco cílení na platformu umožňuje specializaci a optimalizaci.
  • Přizpůsobitelnost napříč programovacími doménami (cloud, klient, hraní her) je povolená se specializovanými implementacemi programovacího modelu pro obecné účely.
  • Oborové standardy , jako jsou OpenTelemetry a gRPC, se upřednostňují před zprostředkovateli řešení.

.NET spravuje Microsoft a komunita. Pravidelně se aktualizuje, aby uživatelé nasadili zabezpečené a spolehlivé aplikace do produkčního prostředí.

Komponenty

.NET obsahuje následující komponenty:

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

Modul runtime, knihovny a jazyky jsou pilíři zásobníku .NET. 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 modul runtime poskytuje trasování uvolňování paměti. Knihovny (a také zásobníky aplikací) tvarují tyto funkce do konceptů a objektů modelů, které vývojářům umožňují produktivní psaní algoritmů 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 jazyka foreach 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 List<T> . Správu prostředků můžete ponechat až do uvolňování paměti, ale vyčištění výzvy je možné prostřednictvím IDisposable 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í funkce programovacího jazyka C#, která poskytuje async klíčová slova, await která usnadňují psaní a vytváření asynchronních operací, a přitom mají plné výhody všech konstruktorů toku řízení, které jazyk musí nabídnout.

Systém typů nabízí značnou šířku, catering poněkud stejně jako bezpečnost, popisnost, dynamismus a nativní interoperabilitu. 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 pervasivní funkce, která umožňuje specializovat třídy na jeden nebo více typů.

Modul runtime .NET poskytuje automatickou správu paměti prostřednictvím uvolňování paměti. 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 operace "hands off" 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ělené zásobníkem nabízejí na rozdíl od . Net typy spravované GC. 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 . Systém obecných typů net znamená, že obecné typy, jako List<T> jsou mohou poskytovat ploché, bez režijní paměti reprezentace kolekcí typů hodnot.

Reflexe ion je paradigma "programy jako data", které umožňuje jedné části programu dynamicky dotazovat a vyvolat další z hlediska 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 model Windows Forms, využívají knihovny nízké úrovně, jazyk a modul runtime. 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 dotnet build příkazem, 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. Galerii NuGet spravuje Microsoft.

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. Ve Windows platí další licence.

Technická podpora

.NET podporuje více organizací , které pracují na zajištění toho, aby .NET fungovalo na více operačních systémech 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 10AM Tichomoří.

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:

  • .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í a opensourcová implementace .NET, která je pro cloudová věková, a přitom zůstává výrazně kompatibilní s rozhraním .NET Framework. Aktivně podporováno pro Linux, macOS a Windows.

Další kroky