.net vs. .NET Framework pro serverové aplikace

Pro vytváření aplikací na straně serveru jsou k dispozici dvě podporované implementace .NET .

Implementace Zahrnuté verze
.NET .NET Core 1,0 – 3,1, .NET 5 a novější verze rozhraní .NET.
.NET Framework .NET Framework 1,0-4,8

Oba sdílejí mnoho stejných komponent a můžete sdílet kód mezi dvěma. Existují však zásadní rozdíly mezi těmito dvěma a volbami, záleží na tom, co chcete provést. Tento článek poskytuje pokyny k použití jednotlivých.

Rozhraní .NET pro serverovou aplikaci použijte v těchto případech:

  • Máte různé požadavky na více platforem.
  • Cílíte na mikroslužby.
  • Používáte kontejnery Docker.
  • Potřebujete vysoce výkonné a škálovatelné systémy.
  • Pro každou aplikaci potřebujete souběžnou verzi rozhraní .NET.

pro serverovou aplikaci použijte .NET Framework v těchto případech:

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

Kdy zvolit .NET

V následujících částech najdete podrobnější vysvětlení výše uvedených důvodů pro výběr rozhraní .NET over .NET Framework.

Požadavky na různé platformy

pokud vaše webová nebo webová aplikace potřebuje 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 pracovní stanici pro vývoj. 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, Linux a Windows. Visual Studio Code podporuje rozhraní .net, včetně technologie IntelliSense a ladění. Většina editorů třetích stran, jako např. (Emacs), a VI, fungují s .NET. Tyto editory třetích stran získávají IntelliSense editoru pomocí omnisharp. Můžete se také vyhnout jakémukoli editoru kódu a přímo používat rozhraní .NET CLIdostupné pro všechny podporované platformy.

Architektura mikroslužeb

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

K dispozici je mnoho platforem infrastruktury. služba Azure Service Fabric je navržená pro rozsáhlé a komplexní systémy mikroslužeb. Azure App Service je dobrou volbou pro bezstavové mikroslužby. Alternativy mikroslužeb na základě Docker vyhovují jakémukoli druhu přístupu ke mikroslužbám, jak je vysvětleno v části Containers (kontejnery ). Všechny tyto platformy podporují rozhraní .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 kontejnerové aplikace .NET.

Kontejnery

Kontejnery se běžně používají ve spojení s architekturou mikroslužeb. Kontejnery lze také použít k kontejnerizaceí webových aplikací nebo služeb, které sledují model architektury. .NET Framework lze použít na Windowsch kontejnerech, ale modularita a zjednodušená povaha rozhraní .net umožňuje lepší volbu kontejnerů. Při vytváření a nasazování kontejneru je velikost jeho image mnohem menší s rozhraním .NET, než je .NET Framework. Vzhledem k tomu, že se jedná o různé platformy, můžete nasadit serverové aplikace do kontejnerů Docker pro Linux, například.

kontejnery docker je možné hostovat ve vlastní infrastruktuře pro Linux nebo Windows, nebo v cloudové službě, jako je Azure Kubernetes service. Služba Azure Kubernetes může spravovat, orchestrovat a škálovat aplikace založené na kontejnerech v cloudu.

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

když váš systém potřebuje nejlepší možný výkon a škálovatelnost, .net a ASP.NET Core jsou nejlepší možnosti. vysoce výkonný modul runtime serveru pro Windows server a Linux přináší ASP.NET Core nejvyšší výkonnou webovou architekturu na TechEmpower srovnávacích testech.

Výkon a škálovatelnost jsou obzvláště důležité pro architektury mikroslužeb, kde můžou běžet stovky mikroslužeb. v ASP.NET Core se systémy spouštějí s mnohem menším počtem serverů/Virtual Machines (VM). Omezené servery a virtuální počítače šetří náklady v oblasti infrastruktury a hostování.

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

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

Souběžná instalace není u .NET Framework možná. je to komponenta Windows a v počítači může existovat pouze jedna verze. každá verze .NET Framework nahrazuje předchozí verzi. pokud instalujete novou aplikaci, která cílí na novější verzi .NET Framework, můžete rušit existující aplikace, které běží na počítači, protože předchozí verze byla nahrazena.

Kdy zvolit .NET Framework

Rozhraní .NET nabízí významné výhody pro nové aplikace a vzory aplikací. .NET Framework však nadále přirozené možnosti pro mnoho stávajících scénářů a jako takový je .NET Framework není nahrazen 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žít .NET při rozšiřování existující aplikace, jako je například zápis nové webové služby v ASP.NET Core.

knihovny třetích stran nebo balíčky NuGet nejsou k dispozici 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 podporuje režim kompatibility .NET Standard a projekty .net odkazování na knihovny .NET Framework. další informace najdete v tématu podpora knihoven .NET Framework.

je nutné použít .NET Framework pouze v případě, že knihovny nebo balíčky NuGet používají technologie, které nejsou k dispozici v .NET Standard nebo .net.

technologie .NET Framework nejsou k dispozici pro .net

některé technologie .NET Framework nejsou k dispozici v rozhraní .net. V následujícím seznamu jsou uvedeny nejběžnější technologie, které se nenašly v rozhraní .NET:

  • ASP.NET Web Forms aplikace: ASP.NET Web Forms jsou k dispozici pouze v .NET Framework. ASP.NET Core nelze použít pro ASP.NET Web Forms.

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

  • Implementace služeb WCF. I když existuje Knihovna klienta WCF pro využívání služeb WCF od .NET, implementace serveru WCF je v tuto chvíli dostupná jenom v .NET Framework.

  • služby související s pracovním postupem: programovací model 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 k dispozici pouze v .NET Framework.

  • podpora jazyků: Visual Basic a F # se aktuálně podporují v rozhraní .net, ale ne pro všechny typy projektů. Seznam podporovaných šablon projektů naleznete v tématu Možnosti šablony pro dotnet New.

další informace najdete v tématu technologie .NET Framework nedostupné v rozhraní .net.

Platforma nepodporuje rozhraní .NET.

Některé platformy společnosti Microsoft nebo třetích stran nepodporují rozhraní .NET. Některé služby Azure poskytují sadu SDK, která ještě není dostupná pro využití v .NET. V takových případech můžete použít ekvivalentní REST API namísto klientské sady SDK.

Viz také