Lekce 1 - Struktura prostředí .NET
Vítejte u první lekce .NET tutoriálu, který vám odhalí strukturu prostředí .NET. Seznámíme se s jednotlivými platformami a ukážeme si, jak si je můžeme vybrat ve vývojovém prostředí Visual Studio.
Stručný popis .NET je uveden v lekci Úvod do C# a .NET Framework.
Struktura prostředí .NET
.NET ("dotnet" z anglického dot NET = tečka NET) je prostředí, které zajišťuje a spravuje běh aplikací na různých platformách. V této kapitole si postupně probereme:
- společný běhový systém Common Language Runtime (CLR)
- společný systém typů Common Type System (CTS)
- knihovnu tříd
Společný běhový systém
Jádrem prostředí .NET je společný běhový systém Common Language Runtime (CLR). Zajišťuje běh programů přeložených z různých programovacích jazyků do mezijazyka Common Intermediate Language (CIL). Tím umožňuje jejich vzájemnou spolupráci tak, že různé součásti programu mohou být napsány v různých programovacích jazycích. Modul runtime si můžeme představit jako agenta, který spravuje kód v době jeho vykonávání.
Modul runtime poskytuje služby jako např.:
- správu paměti,
- spouštění vláken,
- spouštění kódu,
- ověřování bezpečnosti kódu,
- kompilaci a další systémové služby.
Tyto služby pro spravovaný kód běží ve společném běhovém systému Common Language Runtime (CLR). Ten zároveň vynucuje přísné zabezpečení typů a další formy přesnosti kódu, které podporují zabezpečení a odolnost.
Koncept správy kódu je základním principem modulu runtime.
Společný systém typů
Další důležitou částí je společný systém typů Common Type System (CTS). CTS umožňuje snadnou spolupráci kódu napsaného v různých programovacích jazycích. Dále stanovuje, jak jsou datové typy popsány a reprezentovány v paměti a jaké operace jsou s nimi dovoleny. CTS také popisuje pravidla pro použití programovacích jazyků pro .NET tak, aby bylo možno kód napsaný v jednom jazyce použít v jazyce jiném.
Společný systém typů definuje pravidla:
- doby života objektů,
- dědění,
- viditelnosti datových typů a jejich složek (tedy práva pro přístup k datovým typům a k jejich složkám).
CTS také definuje sadu základních datových typů.
Knihovna tříd
Dále je zde knihovna tříd Framework Class Library (dříve Basic Class Library). V knihovně tříd je téměř vše. Od vstupních a výstupních operací až po kontejnery (třídy pro ukládání různých druhů dat). Nad knihovnou tříd jsou další knihovny jako např. knihovny pro tvorbu grafického uživatelského rozhraní programů, databázových aplikací (ADO.NET), webových služeb (ASP.NET).
Knihovny obsahují od verze:
- 3.0 alternativní nástroje pro tvorbu grafického uživatelského rozhraní (Windows Presentation Foundation (WPF)), nástroje pro tvorbu systémů pro oběh dokumentů ( „správu pracovních postupů“ (Workflow Foundation (WF)) a další...
- 3.5 vnořený dotazovací jazyk LINQ a ADO.NET Entity Framework.
- 4.0 nástroje pro paralelní programování.
- 4.5 metody
Async()
aAwait()
, nová API pro ASP.NET a vylepšení ADO.NET. - 4.6 podpora kompilátorů za běhu (JIT), vylepšená API, podpora připojení SQL pro AlwaysOn a další...
- 4.7 vylepšená kryptografie eliptických křivek, nová rozhraní API pro tisk WPF.
- 4.8 finální verze .NET Frameworku, vylepšení JIT přenesené z .NET Core 2.1, vylepšení zabezpečení.
Zařazení jednotlivých verzí knihoven vidíme na obrázku:
Knihovny si popíšeme v navazujících článcích tohoto tutoriálu.
Platformy
Nejprve si vysvětlíme, co je myšleno pod pojmem Framework, a poté navážeme .NET Frameworkem. Seznámíme se také s .NET Core a .NET Standard.
Framework
Framework je znovu použitelná návrhová platforma pro softwarové systémy usnadňující základní programování. Software poskytující obecnou funkčnost může být v této platformě selektivně měněn dodatečným uživatelem za účelem tvorby specifického software pro danou aplikaci.
Framework poskytuje standardní způsob pro tvorbu a nasazování aplikací. Je univerzálním, opakovaně použitelným softwarovým prostředím, které poskytuje konkrétní funkce jako součást většího softwarového rámce pro usnadnění vývoje softwarových aplikací, produktů a řešení.
Softwarové rámce mohou zahrnovat:
- podpůrné programy,
- kompilátory,
- knihovny kódů,
- sady nástrojů,
- aplikační programovací rozhraní (API), která spojují všechny různé komponenty a umožňují vývoj projektu nebo systému.
.NET Framework
.NET Framework je platforma pro vývoj softwaru pro Windows. .Net framework zahrnuje vývojářské nástroje, programovací jazyky a knihovny, které se používají k vývoji desktopových i webových aplikací i služeb.
.NET Framework umožnuje vývojářům vytvářet programy pro platformu Microsoft Windows.
.NET Core
.NET Core je open-source platforma pro vývoj softwaru nejen pro Windows, ale také pro Mac OS a Linux. .NET Core navazuje na starší .NET Framework.
.NET Core lze použít k vytváření různých aplikací, včetně mobilních, desktopových, online, cloudových, IoT, strojového učení, mikroslužeb, her atd. .NET Core je modulární, lehký, rychlý a multiplatformní rámec.
.NET Standard
.NET Standard je formální specifikace rozhraní .NET API, která jsou k dispozici v několika implementacích rozhraní .NET. Slouží hlavně k zajištění kompatibility.
Výběr verzí platforem ve Visual Studiu
Ukážeme si, jak může vypadat výběr platforem pro .NET Framework a .NET Core ve vývojovém prostředí Visual Studio.
Ukázky níže jsou pro konzolovou aplikaci ve Visual Studio 2022 verze 17.2.3.
Výběr verzí pro .NET Framework
Na obrázku níže vidíme výběr verzí platformy .NET Framework ve vývojovém prostředí Visual Studio:
Výběr verzí pro .NET Core
A zde pak vidíme výběr verzí platformy .NET Core:
V příští lekci, .NET Framework verze 1.0 - 2.0, se seznámíme nejen s historií .NET Framework, ale také s verzemi 1.0 až 2.0.