.NET vs. .NET Framework pro serverové aplikace

Existují dvě podporované implementace .NET pro vytváření aplikací na straně serveru: .NET a .NET Framework. Nejnovější verze .NET (aktuálně .NET 8) je upřednostňovaná verze .NET, která se má použít pro vývoj serverů. Důvody pro pokračování v používání rozhraní .NET Framework jsou specifické a omezené.

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

Volba .NET

.NET má následující výhody pro serverové aplikace:

  • Funguje na různých platformách.

    .NET umožňuje, aby vaše webová aplikace nebo aplikace služby běžela na více platformách, jako jsou Windows, Linux a macOS. Jako vývojovou pracovní stanici můžete použít také některý z těchto operačních systémů. Použijte integrované vývojové prostředí (IDE) sady Visual Studio ve Windows nebo použijte Visual Studio Code v systémech macOS, Linux nebo Windows. Visual Studio Code podporuje 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. Editor kódu můžete také přeskočit a přímo použít rozhraní příkazového řádku .NET.

  • Umožňuje cílit na mikroslužby.

    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 další části (podporuje kontejnery Dockeru). 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.

  • Podporuje kontejnery Dockeru.

    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. I když se rozhraní .NET Framework dá používat v kontejnerech Windows, modulární a odlehčená povaha rozhraní .NET je 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 můžete 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.

  • Je vysoce výkonný a škálovatelný.

    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 systémy běží s mnohem nižším počtem serverů nebo virtuálních počítačů, což šetří náklady na infrastrukturu a hostování.

  • Podporuje souběžné verze .NET pro každou aplikaci.

    Implementace .NET podporuje souběžné instalace různých verzí modulu runtime .NET na stejném počítači. Tato schopnost 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 systému Windows a na počítači může najednou 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.

  • Je bezpečnější.

Kdy zvolit .NET Framework

Jak jsme už zmínili, implementace .NET nabízí významné výhody pro nové aplikace a vzory aplikací. V některých konkrétních scénářích ale možná budete muset pro serverové aplikace použít rozhraní .NET Framework a rozhraní .NET Framework bude i nadále podporováno. Použití rozhraní .NET Framework pro serverové aplikace v případech:

  • Vaše aplikace aktuálně používá rozhraní .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, jako je například psaní nové webové služby v ASP.NET Core.

  • Vaše aplikace používá knihovny třetích stran nebo balíčky NuGet, které nejsou dostupné pro .NET.

    .NET Standard umožňuje sdílení kódu napříč všemi implementacemi .NET, včetně .NET 6 nebo novějších. 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 byste měli použít pouze v případě, že knihovny nebo balíčky NuGet používají technologie, které nejsou dostupné v .NET Standard nebo .NET.

  • Vaše aplikace používá technologie .NET Framework, které nejsou dostupné 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 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.

  • Vaše aplikace používá platformu, která 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é