.NET vs. .NET Framework pro serverové aplikace

Pro vytváření serverových aplikací existují dvě podporované implementace .NET.

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

Obě sdílejí mnoho stejných komponent a můžete sdílet kód mezi dvěma komponentami. Existují však základní rozdíly mezi těmito dvěma možnostmi a vaší volbou závisí na tom, čeho chcete dosáhnout. Tento článek obsahuje pokyny, kdy je použít.

.NET použijte pro serverové aplikace v případě, že:

  • Máte potřeby pro více platforem.
  • 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 mít vedle sebe verze .NET.

Použijte .NET Framework pro serverové aplikace v případě, že:

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

Kdy zvolit .NET

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

Potřeby pro více platforem

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

.NET podporuje dříve uvedené operační systémy jako 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ě Technologie IntelliSense a ladění. Většina editorů třetích stran, jako je Sublime, Emacs a VI, pracuje s .NET. Tyto editory třetích stran pomocí Omnisharpukód IntelliSense pro editory Můžete se také vyhnout libovolnému editoru kódu a přímo použít .NET CLIdostupné 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é zavádění .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é s .NET Framework, Javou, Ruby nebo jinými monolitickými technologiemi.

K dispozici je mnoho platforem infrastruktury. Služba Azure Service Fabric je určená pro velké a složité systémy mikroslužeb. Azure App Service je dobrou volbou pro bezvýcové mikroslužby. Alternativy mikroslužeb založené na Dockeru se hodí pro jakýkoli druh 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 kontejnerizovaných aplikací .NET

Kontejnery

Kontejnery se běžně používají ve spojení s architekturou mikroslužeb. Kontejnery lze také použít ke kontejnerizaci webových aplikací nebo služeb, které dodržují jakýkoli vzor architektury. .NET Framework použít u kontejnerů Windows, ale díky modularitě a jednoduché povaze technologie .NET je pro kontejnery lepší volbou. Při vytváření a nasazování kontejneru je velikost jeho image u .NET mnohem menší než u .NET Framework. Vzhledem k tomu, že se jedná o více platforem, můžete například nasadit serverové aplikace do kontejnerů Dockeru s Linuxem.

Kontejnery Dockeru je možné hostovat ve vaší vlastní Windows linuxové infrastruktuře nebo v cloudové službě, jako je Azure Kubernetes Service. Azure Kubernetes Service 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ší ASP.NET Core .NET a .NET. Vysoce výkonný serverový modul runtime pro Windows Server a Linux je ASP.NET Core webové rozhraní na srovnávacích testech TechEmpower.

Výkon a škálovatelnost jsou zvláště důležité pro architektury mikroslužeb, kde mohou běžet stovky mikroslužeb. V ASP.NET Core běží systémy s mnohem nižším počtem serverů nebo virtuálních Virtual Machines (VM). Snížené servery nebo virtuální počítače šetří náklady na infrastrukturu a hostování.

Verze .NET vedle sebe na úrovni aplikace

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

Instalace vedle sebe není u .NET Framework. Jedná se o Windows komponentu a v počítači může existovat pouze jedna verze. Každá verze .NET Framework nahradí předchozí verzi. Pokud nainstalujete novou aplikaci, která cílí na novější verzi .NET Framework, můžete přerušit stávající aplikace, které běží na počítači, protože byla nahrazena předchozí verze.

Kdy zvolit .NET Framework

.NET nabízí významné výhody pro nové aplikace a vzory aplikací. Pro .NET Framework scénářů je ale i nadále přirozenou volbou, a proto technologie .NET Framework není nahrazena rozhraním .NET pro všechny serverové aplikace.

Aktuální .NET Framework aplikace

Ve většině případů nemusíte migrovat stávající aplikace do .NET. Místo toho doporučujeme používat .NET při rozšíření existující aplikace, například při psaní 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 mezi všemi implementacemi .NET, včetně .NET Core/5+. V .NET Standard 2.0 režim kompatibility umožňuje, aby projekty .NET Standard a .NET odkazují na .NET Framework knihovny. Další informace najdete v tématu Podpora knihoven .NET Framework .

Tuto technologii je .NET Framework jenom v případech, kdy knihovny nebo NuGet používají technologie, které nejsou dostupné v .NET Standard nebo .NET.

.NET Framework technologie nejsou k dispozici pro .NET

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

  • ASP.NET Web Forms aplikací: 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 klientská knihovna WCF pro používání služeb WCF z rozhraní .NET, implementace serveru WCF je aktuálně dostupná pouze v .NET Framework.

  • Služby související s pracovními postupy: 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 v současnosti podporují v .NET, ale ne pro všechny typy projektů. Seznam podporovaných šablon projektů najdete v tématu Možnosti šablon pro dotnet new.

Další informace najdete v tématu .NET Framework technologie, které nejsou v rozhraní .NET k dispozici.

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 na platformě .NET. V takových případech můžete místo klientské sady SDK REST API ekvivalentní nastavení.

Viz také