Kiedy należy wybrać oprogramowanie .NET Framework dla kontenerów Docker
Napiwek
Ta zawartość jest fragmentem książki eBook, architektury mikrousług platformy .NET dla konteneryzowanych aplikacji platformy .NET dostępnych na platformie .NET Docs lub jako bezpłatnego pliku PDF, który można odczytać w trybie offline.
Chociaż platforma .NET 8 oferuje znaczące korzyści dla nowych aplikacji i wzorców aplikacji, program .NET Framework będzie nadal dobrym wyborem dla wielu istniejących scenariuszy.
Migrowanie istniejących aplikacji bezpośrednio do kontenera systemu Windows Server
Aby uprościć wdrażanie, nawet jeśli nie tworzysz mikrousług, warto użyć kontenerów platformy Docker. Na przykład możesz ulepszyć przepływ pracy metodyki DevOps za pomocą platformy Docker — kontenery mogą zapewnić lepsze izolowane środowiska testowe, a także wyeliminować problemy z wdrażaniem spowodowane brakującymi zależnościami podczas przechodzenia do środowiska produkcyjnego. W takich przypadkach, nawet jeśli wdrażasz aplikację monolityczną, warto używać platformy Docker i kontenerów systemu Windows dla bieżących aplikacji .NET Framework.
W większości przypadków w tym scenariuszu nie trzeba migrować istniejących aplikacji do platformy .NET 8; Można użyć kontenerów platformy Docker, które obejmują tradycyjny program .NET Framework. Jednak zalecaną metodą jest użycie platformy .NET 8 podczas rozszerzania istniejącej aplikacji, takiej jak pisanie nowej usługi w programie ASP.NET Core.
Korzystanie z bibliotek .NET innych firm lub pakietów NuGet nie jest dostępne dla platformy .NET 8
Biblioteki innych firm szybko korzystają z platformy .NET Standard, co umożliwia udostępnianie kodu we wszystkich wersjach platformy .NET, w tym .NET 8. W przypadku platformy .NET Standard 2.0 lub nowszej zgodność powierzchni interfejsu API w różnych strukturach stała się znacznie większa. Jeszcze więcej, aplikacje .NET Core 2.x i nowsze mogą również bezpośrednio odwoływać się do istniejących bibliotek programu .NET Framework (zobacz .NET Framework 4.6.1 obsługującą platformę .NET Standard 2.0).
Ponadto pakiet zgodności systemu Windows rozszerza powierzchnię interfejsu API dostępną dla platformy .NET Standard 2.0 w systemie Windows. Ten pakiet umożliwia ponowne komkompilowanie większości istniejącego kodu do platformy .NET Standard 2.x z niewielką zmianami lub bez modyfikacji w systemie Windows.
Jednak nawet w przypadku tego wyjątkowego postępu od wersji .NET Standard 2.0 i .NET Core 2.1 lub nowszej mogą wystąpić przypadki, w których niektóre pakiety NuGet wymagają uruchomienia systemu Windows i mogą nie obsługiwać platformy .NET Core lub nowszej. Jeśli te pakiety mają krytyczne znaczenie dla aplikacji, należy użyć programu .NET Framework w kontenerach systemu Windows.
Korzystanie z technologii .NET nie jest dostępne dla platformy .NET 8
Niektóre technologie .NET Framework nie są dostępne na platformie .NET 8. Niektóre z nich mogą stać się dostępne w nowszych wersjach, ale inne nie pasują do nowych wzorców aplikacji przeznaczonych dla platformy .NET Core i mogą nigdy nie być dostępne.
Na poniższej liście przedstawiono większość technologii, które nie są dostępne na platformie .NET 8:
ASP.NET formularzy sieci Web. Ta technologia jest dostępna tylko w programie .NET Framework. Obecnie nie ma planów przeniesienia ASP.NET web forms na platformę .NET lub nowszą.
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 na platformie .NET Framework. Obecnie nie ma planów przeniesienia ich do platformy .NET 8.
Oprócz technologii wymienionych w oficjalnym harmonogramie działania platformy .NET inne funkcje mogą zostać przeniesione do nowej ujednoliconej platformy .NET. Możesz rozważyć udział w dyskusjach w usłudze GitHub, aby twój głos był słyszany. Jeśli uważasz, że brakuje czegoś, utwórz nowy problem w repozytorium github dotnet/runtime .
Korzystanie z platformy lub interfejsu API, który nie obsługuje platformy .NET 8
Niektóre platformy firmy Microsoft i innych firm nie obsługują platformy .NET 8. Na przykład niektóre usługi platformy Azure udostępniają zestaw SDK, który nie jest jeszcze dostępny do użycia na platformie .NET 8. Większość zestawu Azure SDK powinna zostać ostatecznie przekierowana do platformy .NET 8/.NET Standard, ale niektóre z kilku powodów mogą nie być z kilku powodów. Dostępne zestawy SDK platformy Azure można wyświetlić na stronie Najnowsze wersje zestawu Azure SDK.
W międzyczasie, jeśli jakakolwiek platforma lub usługa na platformie Azure nadal nie obsługuje platformy .NET 8 z interfejsem API klienta, możesz użyć równoważnego interfejsu API REST z usługi platformy Azure lub zestawu SDK klienta w programie .NET Framework.
Przenoszenie istniejącej aplikacji ASP.NET do platformy .NET 8
Platforma .NET Core to rewolucyjny krok naprzód z programu .NET Framework. Oferuje ona wiele korzyści w porównaniu z platformą .NET Framework, od produktywności do wydajności oraz od obsługi międzyplatformowej po zadowolenie deweloperów.
Dodatkowe zasoby
Podstawy platformy .NET
https://learn.microsoft.com/dotnet/fundamentalsPrzenoszenie projektów do platformy .NET 5
https://learn.microsoft.com/events/dotnetconf-2020/porting-projects-to-net-5Przewodnik po platformie .NET na platformie Docker
https://learn.microsoft.com/dotnet/core/docker/introduction