.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 komponent a můžete sdílet kód napříč dvěma komponentami. Existují však základní rozdíly mezi těmito dvěma a vašimi volbami, závisí na tom, co chcete dosáhnout. Tento článek obsahuje pokyny k použití jednotlivých.

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.
  • Potřebujete souběžné verze .NET na aplikaci.

Použití rozhraní .NET Framework pro serverová aplikace, když:

  • Vaše aplikace aktuálně používá rozhraní .NET Framework (doporučení je rozšířit místo migrace).
  • Vaše aplikace používá knihovny třetích stran nebo NuGet balíčky, které nejsou dostupné pro .NET.
  • 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 .NET přes .NET Framework.

Potřeby napříč platformami

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

.NET podporuje dříve uvedené 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ěží na macOS, Linuxu a Windows. Visual Studio Code podporuje .NET, včetně IntelliSense a ladění. Většina editorů třetích stran, jako je Sublime, Emacs a VI, pracují s .NET. Tyto editory třetích stran získávají editor IntelliSense pomocí Omnisharpu. Můžete se také vyhnout libovolnému editoru kódu a přímo používat rozhraní příkazového řádku .NET, které je dostupné pro všechny podporované platformy.

Architektura mikroslužeb

Architektura mikroslužeb umožňuje kombinaci technologií napříč hranicemi služby. Tato technologie umožňuje postupné přijetí .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 velké a složité systémy mikroslužeb. Azure App Service je dobrou volbou pro bezstavové mikroslužby. Alternativy mikroslužeb založené na Dockeru odpovídají jakémukoli typu přístupu mikroslužeb, jak je vysvětleno v části Kontejnery . Všechny tyto platformy podporují .NET a umožňují jejich ideální 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í ve spojení s architekturou mikroslužeb. Kontejnery se dají použít také k kontejnerizaci webových aplikací nebo služeb, které se řídí jakýmkoli vzorem architektury. Rozhraní .NET Framework lze použít u kontejnerů Windows, ale modulární a jednoduchá povaha rozhraní .NET je lepší volbou pro kontejnery. Při vytváření a nasazování kontejneru je velikost jeho image mnohem menší s .NET než s rozhraním .NET Framework. Vzhledem k tomu, že se jedná o různé platformy, můžete například nasadit serverové aplikace do kontejnerů Dockeru s Linuxem.

Kontejnery Dockeru je možné hostovat ve 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 vaše nejlepší možnosti .NET a ASP.NET Core. Vysoce výkonný modul runtime serveru pro Windows Server a Linux vytváří ASP.NET Core špičkové webové rozhraní na srovnávacích testech TechEmpower.

Výkon a škálovatelnost jsou obzvláště relevantní pro architektury mikroslužeb, kde se můžou spouštět stovky mikroslužeb. S ASP.NET Core systémy běží s mnohem nižším počtem serverů nebo virtuálních počítačů. Snížené servery nebo virtuální počítače š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. Tato souběžná instalace umožňuje více služeb na stejném serveru, přičemž každá z nich má vlastní verzi .NET. Snižuje také rizika a šetří peníze v upgradech aplikací a operacích IT.

Souběžná instalace není možná s rozhraním .NET Framework. 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, které běží 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 však v mnoha existujících scénářích přirozenou volbou, a proto rozhraní .NET Framework není nahrazeno rozhraním .NET pro všechny serverové aplikace.

Aktuální aplikace rozhraní .NET Framework

Ve většině případů nemusíte migrovat stávající aplikace do .NET. Doporučeným přístupem je místo toho použití .NET při rozšíření existující aplikace, například zápis nové webové služby do ASP.NET Core.

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

.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 najdete v tématu Podpora knihoven rozhraní .NET Framework.

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

Technologie .NET Framework nejsou dostupné pro .NET

Některé technologie rozhraní .NET Framework nejsou v .NET dostupné. Následující seznam ukazuje nejběžnější technologie, které se v .NET nenalezly:

  • ASP.NET Web Forms aplikace: ASP.NET Web Forms jsou dostupné jenom v rozhraní .NET Framework. ASP.NET Core nelze použít pro ASP.NET Web Forms.

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

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

  • Podpora jazyka: Visual Basic a F# jsou aktuálně 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 .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 pro spotřebu v .NET. V takových případech můžete místo klientské sady SDK použít ekvivalentní rozhraní REST API.

Viz také