.NET a .NET Framework dla aplikacji serwerowych

Istnieją dwie obsługiwane implementacje platformy .NET do tworzenia aplikacji po stronie serwera.

Implementacja Uwzględnione wersje
.NET .NET Core 1.0 — 3.1, .NET 5 i nowsze wersje platformy .NET.
.NET Framework .NET Framework 1.0 — 4.8

Oba współdzielą wiele z tych samych składników i można współdzielić kod między tymi dwoma składnikami. Istnieją jednak podstawowe różnice między nimi, a wybór zależy od tego, co chcesz osiągnąć. Ten artykuł zawiera wskazówki dotyczące tego, kiedy należy używać każdego z nich.

Użyj platformy .NET dla aplikacji serwera, gdy:

  • Masz potrzeby międzyplatformowe.
  • Kierujesz się do mikrousług.
  • Używasz kontenerów platformy Docker.
  • Potrzebne są systemy o wysokiej wydajności i skalowalności.
  • Wymagane są równoległe wersje platformy .NET dla aplikacji.

Użyj programu .NET Framework dla aplikacji serwera, gdy:

  • Aplikacja obecnie używa programu .NET Framework (zalecenie polega na rozszerzeniu zamiast migracji).
  • Aplikacja używa bibliotek innych firm lub pakietów NuGet, które nie są dostępne dla platformy .NET.
  • Aplikacja korzysta z technologii .NET Framework, które nie są dostępne dla platformy .NET.
  • Aplikacja używa platformy, która nie obsługuje platformy .NET.

Kiedy wybrać platformę .NET

Poniższe sekcje zawierają bardziej szczegółowe wyjaśnienie wcześniej określonych powodów wybierania platformy .NET za pośrednictwem programu .NET Framework.

Potrzeby międzyplatformowe

Jeśli aplikacja internetowa lub usługa musi działać na wielu platformach, na przykład Windows, Linux i macOS, użyj platformy .NET.

Platforma .NET obsługuje wymienione wcześniej systemy operacyjne jako stację roboczą dewelopera. Program Visual Studio udostępnia zintegrowane środowisko projektowe (IDE) dla systemów Windows i macOS. Można również użyć programu Visual Studio Code, który działa w systemach macOS, Linux i Windows. Program Visual Studio Code obsługuje platformę .NET, w tym funkcję IntelliSense i debugowanie. Większość edytorów innych firm, takich jak Sublime, Emacs i VI, współpracuje z platformą .NET. Te edytory innych firm uzyskują funkcję IntelliSense edytora za pomocą narzędzia Omnisharp. Można również uniknąć dowolnego edytora kodu i bezpośrednio użyć interfejsu wiersza polecenia platformy .NET, który jest dostępny dla wszystkich obsługiwanych platform.

Architektura mikrousług

Architektura mikrousług umożliwia połączenie technologii między granicami usług. Ta kombinacja technologii umożliwia stopniowe stosowanie platformy .NET dla nowych mikrousług, które współpracują z innymi mikrousługami lub usługami. Na przykład można mieszać mikrousługi lub usługi opracowane za pomocą platformy .NET Framework, Java, Ruby lub innych technologii monolitycznych.

Dostępnych jest wiele platform infrastruktury. Usługa Azure Service Fabric jest przeznaczona dla dużych i złożonych systemów mikrousług. aplikacja systemu Azure Service to dobry wybór dla mikrousług bezstanowych. Alternatywy mikrousług oparte na platformie Docker pasują do dowolnego podejścia mikrousług, jak wyjaśniono w sekcji Kontenery . Wszystkie te platformy obsługują platformę .NET i sprawiają, że idealnie nadają się do hostowania mikrousług.

Aby uzyskać więcej informacji na temat architektury mikrousług, zobacz Mikrousługi platformy .NET. Architektura konteneryzowanych aplikacji .NET.

Kontenery

Kontenery są często używane z architekturą mikrousług. Kontenery mogą być również używane do konteneryzowania aplikacji internetowych lub usług, które są zgodne z dowolnym wzorcem architektury. Program .NET Framework może być używany w kontenerach systemu Windows. Mimo to modułowość i lekki charakter platformy .NET sprawiają, że jest to lepszy wybór dla kontenerów. Podczas tworzenia i wdrażania kontenera rozmiar obrazu jest znacznie mniejszy z platformą .NET niż w programie .NET Framework. Ze względu na to, że jest to międzyplatformowa platforma, można wdrażać aplikacje serwera w kontenerach platformy Docker systemu Linux.

Kontenery platformy Docker mogą być hostowane we własnej infrastrukturze systemu Linux lub Windows lub w usłudze w chmurze, takiej jak Azure Kubernetes Service. Usługa Azure Kubernetes Service może zarządzać, organizować i skalować aplikacje oparte na kontenerach w chmurze.

Systemy o wysokiej wydajności i skalowalności

Jeśli system potrzebuje najlepszej możliwej wydajności i skalowalności, platformy .NET i ASP.NET Core to najlepsze opcje. Środowisko uruchomieniowe serwera o wysokiej wydajności dla systemów Windows Server i Linux sprawia, że ASP.NET Core jest najwyższej wydajności platformą internetową w testach porównawczych TechEmpower.

Wydajność i skalowalność są szczególnie istotne w przypadku architektur mikrousług, w których mogą być uruchomione setki mikrousług. W przypadku ASP.NET Core systemy działają z znacznie mniejszą liczbą serwerów/maszyn wirtualnych. Mniejsze serwery/maszyny wirtualne obniżają koszty infrastruktury i hostingu.

Równoległe wersje platformy .NET na poziomie aplikacji

Aby zainstalować aplikacje z zależnościami w różnych wersjach platformy .NET, zalecamy platformę .NET. Ta implementacja obsługuje instalację równoległą różnych wersji środowiska uruchomieniowego platformy .NET na tym samym komputerze. Instalacja równoległa umożliwia korzystanie z wielu usług na tym samym serwerze, z których każda ma własną wersję platformy .NET. Obniża również ryzyko i oszczędza pieniądze na uaktualnieniach aplikacji i operacjach IT.

Instalacja równoległa nie jest możliwa w przypadku programu .NET Framework. Jest to składnik systemu Windows, który jednocześnie może istnieć tylko jedna wersja na maszynie. Każda wersja programu .NET Framework zastępuje poprzednią wersję. Jeśli zainstalujesz nową aplikację przeznaczoną dla nowszej wersji programu .NET Framework, możesz przerwać istniejące aplikacje uruchomione na maszynie, ponieważ poprzednia wersja została zastąpiona.

Kiedy wybrać program .NET Framework

Platforma .NET oferuje znaczne korzyści dla nowych aplikacji i wzorców aplikacji. Jednak program .NET Framework nadal jest naturalnym wyborem dla wielu istniejących scenariuszy, a w związku z tym program .NET Framework nie jest zastępowany przez platformę .NET dla wszystkich aplikacji serwerowych.

Bieżące aplikacje .NET Framework

W większości przypadków nie trzeba migrować istniejących aplikacji na platformę .NET. Zamiast tego zalecamy użycie platformy .NET podczas rozszerzania istniejącej aplikacji, takiej jak pisanie nowej usługi internetowej w ASP.NET Core.

Biblioteki innych firm lub pakiety NuGet nie są dostępne dla platformy .NET

Platforma .NET Standard umożliwia udostępnianie kodu we wszystkich implementacjach platformy .NET, w tym .NET Core/5+. W przypadku platformy .NET Standard 2.0 tryb zgodności umożliwia projektom platformy .NET Standard i .NET odwołanie do bibliotek programu .NET Framework. Aby uzyskać więcej informacji, zobacz Obsługa bibliotek programu .NET Framework.

Należy używać programu .NET Framework tylko w przypadkach, gdy biblioteki lub pakiety NuGet używają technologii, które nie są dostępne na platformie .NET Standard lub .NET.

Technologie .NET Framework nie są dostępne dla platformy .NET

Niektóre technologie .NET Framework nie są dostępne na platformie .NET. Na poniższej liście przedstawiono najbardziej typowe technologie, których nie znaleziono na platformie .NET:

  • ASP.NET aplikacji Web Forms: ASP.NET web forms są dostępne tylko w programie .NET Framework. ASP.NET Core nie można używać do ASP.NET Web Forms.

  • ASP.NET aplikacje stron sieci Web: ASP.NET stron sieci Web nie są uwzględniane w ASP.NET Core.

  • Usługi związane z przepływem pracy: Windows Workflow Foundation (WF), Workflow Services (WCF + WF w jednej usłudze) i Usługi danych programu WCF (wcześniej znane jako "ADO.NET Data Services") są dostępne tylko w programie .NET Framework.

  • Obsługa języka: język Visual Basic i F# są obecnie obsługiwane na platformie .NET, ale nie dla wszystkich typów projektów. Aby uzyskać listę obsługiwanych szablonów projektów, zobacz Opcje szablonu dla aplikacji dotnet new.

Aby uzyskać więcej informacji, zobacz Technologie .NET Framework niedostępne na platformie .NET.

Platforma nie obsługuje platformy .NET

Niektóre platformy firmy Microsoft lub innych firm nie obsługują platformy .NET. Niektóre usługi platformy Azure udostępniają zestaw SDK, który nie jest jeszcze dostępny do użycia na platformie .NET. W takich przypadkach można użyć równoważnego interfejsu API REST zamiast zestawu SDK klienta.

Zobacz też