.NET vs. .NET Framework pro serverové aplikace

Existují dvě podporované implementace .NET pro vytváření aplikací na straně serveru.

Implementace Zahrnuté verze
.NET .NET Core 1.0 – 3.1, .NET 5 a novější verze .NET.
.NET Framework .NET Framework 1.0 – 4.8

Oba sdílejí mnoho stejných součástí a kód můžete sdílet mezi dvěma. Mezi těmito dvěma rozdíly ale existují základní rozdíly a vaše volba závisí na tom, co chcete dosáhnout. Tento článek obsahuje pokyny, kdy je vhodné je použít.

Použití .NET pro serverové aplikace, když:

  • Máte víceplatformní potřeby.
  • Cílíte na mikroslužby.
  • Používáte kontejnery Dockeru.
  • Potřebujete vysoce výkonné a škálovatelné systémy.
  • Pro každou aplikaci potřebujete souběžné verze .NET.

Použití rozhraní .NET Framework pro serverové aplikace v případech:

  • Vaše aplikace aktuálně používá .NET Framework (doporučení je místo migrace rozšířit).
  • Vaše aplikace používá knihovny třetích stran nebo balíčky NuGet, které nejsou pro .NET k dispozici.
  • Vaše aplikace používá technologie .NET Framework, které nejsou dostupné pro .NET.
  • Vaše aplikace používá platformu, která nepodporuje .NET.

Kdy zvolit .NET

Následující části poskytují podrobnější vysvětlení dříve uvedených důvodů pro výběr rozhraní .NET přes rozhraní .NET Framework.

Potřeby napříč platformami

Pokud vaše webová aplikace nebo aplikace služby musí běžet na více platformách, například Windows, Linux a macOS, použijte .NET.

.NET podporuje dříve zmíněné operační systémy jako vaši vývojovou pracovní stanici. Visual Studio poskytuje integrované vývojové prostředí (IDE) pro Windows a macOS. Můžete také použít Visual Studio Code, který běží v systémech macOS, Linux a Windows. Visual Studio Code podporuje .NET, včetně IntelliSense a ladění. Většina editorů třetích stran, jako jsou Sublime, Emacs a VI, pracují s .NET. Tyto editory třetích stran získají editor IntelliSense pomocí Omnisharpu. Můžete se také vyhnout libovolnému editoru kódu a přímo použít rozhraní .NET CLI, které je dostupné pro všechny podporované platformy.

Architektura mikroslužeb

Architektura mikroslužeb umožňuje kombinaci technologií napříč hranicí služby. Tato kombinace technologií umožňuje postupné přijetí rozhraní .NET pro nové mikroslužby, které pracují s jinými mikroslužbami nebo službami. Můžete například kombinovat mikroslužby nebo služby vyvinuté pomocí rozhraní .NET Framework, Java, Ruby nebo jiných monolitických technologií.

K dispozici je mnoho platforem infrastruktury. Azure Service Fabric je navržený pro rozsáhlé a složité systémy mikroslužeb. Aplikace Azure Service je dobrou volbou pro bezstavové mikroslužby. Alternativy mikroslužeb založené na Dockeru odpovídají jakémukoli přístupu k mikroslužbám, jak je vysvětleno v části Kontejnery . Všechny tyto platformy podporují .NET a jsou ideální pro hostování mikroslužeb.

Další informace o architektuře mikroslužeb najdete v tématu Mikroslužby .NET. Architektura pro kontejnerizované aplikace .NET

Kontejnery

Kontejnery se běžně používají s architekturou mikroslužeb. Kontejnery se dají použít také ke kontejnerizaci webových aplikací nebo služeb, které se řídí libovolným vzorem architektury. Rozhraní .NET Framework lze použít v kontejnerech Windows. Modulární a odlehčená povaha technologie .NET je ale pro kontejnery lepší volbou. Při vytváření a nasazování kontejneru je velikost jeho image mnohem menší než u rozhraní .NET Framework. Vzhledem k tomu, že se jedná o různé platformy, můžete serverové aplikace nasadit do kontejnerů Dockeru s Linuxem.

Kontejnery Dockeru je možné hostovat ve vaší vlastní infrastruktuře Linuxu nebo Windows nebo v cloudové službě, jako je Azure Kubernetes Service. Azure Kubernetes Service může spravovat, orchestrovat a škálovat kontejnerové aplikace v cloudu.

Vysoce výkonné a škálovatelné systémy

Pokud váš systém potřebuje nejlepší možný výkon a škálovatelnost, jsou nejlepšími možnostmi .NET a ASP.NET Core. Vysoce výkonný modul runtime serveru pro Windows Server a Linux zajišťuje ASP.NET Core nejvýkonnější webovou architekturu na srovnávacích testech TechEmpower.

Výkon a škálovatelnost jsou obzvláště relevantní pro architektury mikroslužeb, kde můžou běžet stovky mikroslužeb. S ASP.NET Core běží systémy s mnohem nižším počtem serverů nebo virtuálních počítačů. Nižší počet serverů nebo virtuálních počítačů šetří náklady na infrastrukturu a hostování.

Souběžné verze .NET na úrovni aplikace

Pokud chcete instalovat aplikace se závislostmi na různých verzích .NET, doporučujeme .NET. Tato implementace podporuje souběžnou instalaci různých verzí modulu runtime .NET na stejném počítači. Souběžná instalace umožňuje více služeb na stejném serveru, z nichž každá má vlastní verzi .NET. Snižuje také rizika a šetří peníze při upgradech aplikací a operacích IT.

Souběžná instalace není u rozhraní .NET Framework možná. Jedná se o komponentu Windows a na počítači může existovat jenom jedna verze. Každá verze rozhraní .NET Framework nahrazuje předchozí verzi. Pokud nainstalujete novou aplikaci, která cílí na novější verzi rozhraní .NET Framework, můžete přerušit stávající aplikace spuštěné na počítači, protože předchozí verze byla nahrazena.

Kdy zvolit .NET Framework

.NET nabízí významné výhody pro nové aplikace a vzory aplikací. Rozhraní .NET Framework je ale i nadále přirozenou volbou pro mnoho stávajících scénářů a proto rozhraní .NET Framework není nahrazeno rozhraním .NET pro všechny serverové aplikace.

Aktuální aplikace .NET Framework

Ve většině případů nemusíte migrovat stávající aplikace do .NET. Místo toho doporučujeme používat .NET, protože rozšiřujete existující aplikaci, například psaní nové webové služby v ASP.NET Core.

Knihovny třetích stran nebo balíčky NuGet nejsou pro .NET k dispozici

.NET Standard umožňuje sdílení kódu napříč všemi implementacemi .NET, včetně .NET Core/5+. S .NET Standard 2.0 režim kompatibility umožňuje projektům .NET Standard a .NET odkazovat na knihovny .NET Framework. Další informace naleznete v tématu Podpora knihoven rozhraní .NET Framework.

Rozhraní .NET Framework je potřeba použít pouze v případech, kdy knihovny nebo balíčky NuGet používají technologie, které nejsou dostupné v .NET Standard nebo .NET.

Technologie rozhraní .NET Framework nejsou k dispozici pro .NET

Některé technologie rozhraní .NET Framework nejsou v .NET k dispozici. Následující seznam ukazuje nejběžnější technologie, které v .NET nebyly nalezeny:

  • ASP.NET aplikace webových formulářů: webové formuláře ASP.NET jsou k dispozici pouze v rozhraní .NET Framework. ASP.NET Core se nedá použít pro webové formuláře ASP.NET.

  • ASP.NET aplikace webových stránek: ASP.NET webové stránky nejsou součástí ASP.NET Core.

  • Služby související s pracovními postupy: Windows Workflow Foundation (WF), Služby pracovních postupů (WCF + WF v jedné službě) a Datové služby WCF (dříve označované jako "ADO.NET Data Services") jsou k dispozici pouze v rozhraní .NET Framework.

  • Podpora jazyků: Visual Basic a F# jsou v současné době podporovány v .NET, ale ne pro všechny typy projektů. Seznam podporovaných šablon projektů najdete v tématu Možnosti šablony pro dotnet new.

Další informace naleznete v tématu Technologie rozhraní .NET Framework nedostupné v .NET.

Platforma nepodporuje .NET

Některé platformy Microsoftu nebo třetích stran nepodporují .NET. Některé služby Azure poskytují sadu SDK, která ještě není k dispozici ke spotřebě v .NET. V takových případech můžete místo klientské sady SDK použít ekvivalentní rozhraní REST API.

Viz také