Co nowego w Microsoft .Net Framework 4.8

Firma Microsoft wydała .Net Framework 4.8, najnowszą wersję platformy programistycznej firmy dla systemu Windows. Aktualizacja zawiera szereg poprawek błędów, poprawek zabezpieczeń i ulepszeń środowiska uruchomieniowego języka wspólnego, ASP.Net, Windows Forms, Windows Presentation Foundation i Windows Communication Foundation. 

Skąd pobrać .Net Framework 4.8

Możesz pobrać wersję produkcyjną .Net Framework z witryny Microsoft .Net. 

Bieżąca wersja: Nowe funkcje w .Net Framework 4.8

Wydany 18 kwietnia 2019 r. .Net Framework 4.8 zawiera następujące nowe funkcje i ulepszenia:

  • W przypadku NGEN (Native Image Generator) obrazy w .Net Framework nie mają już sekcji zapisywalnych i wykonywalnych. Zmniejsza to powierzchnię dostępną dla ataków, które próbują wykonać dowolny kod poprzez modyfikację adresów pamięci NGEN.
  • Skanowanie w poszukiwaniu złośliwego oprogramowania jest teraz inicjowane dla wszystkich zestawów, niezależnie od tego, czy są ładowane z dysku, czy z sieci. Wcześniej środowisko wykonawcze .Net inicjowało tylko skanowanie (przez program Windows Defender i oprogramowanie chroniące przed złośliwym oprogramowaniem innych firm implementujące interfejs skanowania antymalware) zestawów ładowanych z dysku. 
  • Kompilator .Net Framework 4.8 JIT jest oparty na .Net Core 2.1. Poprawki błędów i optymalizacje oparte na generowaniu kodu z .Net Core 2.1 są teraz dostępne w .Net Framework.
  • W BCL (biblioteka klas bazowych) ulepszono zewnętrzną bibliotekę kompresji Zlib, zmniejszono liczbę finalizacji obiektów występujących w wyniku użycia X509Certificate2 i powiązanych typów, a także dodano API w celu uzyskania odcisków palców z wywołującym- określony algorytm skrótu.
  • Ponadto BCL w .Net Framework 4.8 zmniejsza wpływ FIPS (Federal Information Processing Standards) na kryptografię. Począwszy od .Net Framework 2.0, klasy dostawców usług kryptograficznych zgłosiły wyjątek, gdy biblioteki kryptograficzne są skonfigurowane w trybie FIPS. W przypadku .Net 4.8 te wyjątki nie będą już domyślnie zgłaszane.
  • Udoskonalenia ułatwień dostępu są oferowane dla Windows Forms, aby usprawnić przesyłanie danych aplikacji do osób niedowidzących.
  • W ASP.Net rozwiązano problem dotyczący obsługi wielowartościowych nagłówków HTTP, który może wpływać na wieloczęściowe przetwarzanie danych.
  • Rozwiązano problemy z CLR (Common Language Runtime), w których nieprawidłowe wartości były wysyłane jako EventListeners.
  • Włączone etykiety w Windows Forms są teraz zawsze renderowane za pomocą koloru tekstu o wysokim kontraście, gdy włączony jest tryb wysokiego kontrastu. Ma to wpływ na aplikacje przekompilowane do platformy docelowej .Net Framework 4.8.
  • Algorytm haszowania używany do generowania sum kontrolnych plików XOML podczas budowania projektów z plikami XOML został zmieniony. Programiści mogą nadal korzystać z poprzedniego algorytmu.
  • Zmodyfikowano algorytm haszowania do obliczania kluczy do wewnętrznych pamięci podręcznych. Programiści mogą nadal korzystać z poprzedniego algorytmu.
  • Naprawiono wyciek pamięci, który miał wpływ na HttpWebRequest podczas komunikowania się z serwerem HTTPS za pośrednictwem serwera proxy.
  • W Windows Presentation Foundation naprawiono wyciek pamięci, który występował podczas usuwania elementów danych z kolekcji nadrzędnych, gdy była obecna UIAutomation.
  • Windows Presentation Foundation dodał obsługę rozpoznawania rozdzielczości DPI w wersji 2 na monitor i DPI w trybie mieszanym.
  • W programie Windows Communication Foundation naprawiono problem z ułatwieniami dostępu, który powodował, że formanty ComboBox miały nieprawidłową tematykę w motywach o wysokim kontraście.
  • W Windows Communication Foundation ServiceHealthBehavior jest opisywany jako zachowanie usługi dodane do kolekcji ServiceDescription.Behaviors. Może zwracać stan usługi z kodami odpowiedzi HTTP i umożliwiać publikację stanu usługi. 

Poprzednia wersja: nowe funkcje w .Net Framework 4.7.2

Już popularne w technologiach, takich jak Spring Framework, iniekcja zależności umożliwia jednemu obiektowi dostarczanie zależności innego obiektu. NET Framework 4.7.2 ułatwia korzystanie z tej funkcji w formularzach internetowych ASP.net. Obsługiwane są iniekcje oparte na ustawieniach, interfejsach i konstruktorach, a także można podłączyć inne struktury iniekcji zależności.

Inne nowe funkcje w .Net Framework 4.7.2 obejmują:

  • SameSiteNieruchomość zostanie dodana do ramy sieci web ASP.NET, aby twierdzić, że cookies nie powinny być wysyłane z żądań cross-site. Celem SameSiteatrybutu jest ograniczenie wycieku informacji i ochrona przed atakami fałszerstw między lokacjami. Właściwość zostanie dodana HttpCookieType. Jest również opisywany w plikach cookie FormsAuthentication i SessionState.
  • Aby poprawić bezpieczeństwo i zgodność, uwierzytelnianie Azure Active Directory jest obsługiwane za pomocą słowa kluczowego uwierzytelniania interaktywnego dodanego do uwierzytelniania wieloskładnikowego. Jest to rozszerzenie parametrów połączenia SqlClient.
  • Interfejsy API są dodawane do standardowych typów kolekcji, umożliwiając nowe funkcje, takie jak konstruktory HashSet, które umożliwiają konstruowanie HashSets z pojemnością. Daje to korzyść w zakresie wydajności, gdy wiadomo, jaki jest rozmiar HashSet.
  • Udoskonalenia kryptograficzne upraszczają tworzenie obiektów RSA i DSA oraz wywoływanie ImportParameters.
  • Windows Presentation Foundation (WPF) dodał funkcję StaticResourceodwołań, umożliwiającą powiadamianie asystenta diagnostycznego o StaticResourcerozwiązaniu odwołania. Na przykład asystent diagnostyczny, taki jak narzędzie Edytuj i kontynuuj programu Visual Studio, może chcieć zaktualizować użycie zasobu, gdy ulegnie on zmianie lub zastąpi wartość w słowniku zasobów.
  • WorkflowDesignerColorsKlasa została dodana do poprawy UI doświadczeń w trybie wysokiego kontrastu.
  • Dzięki dekompresji Zlib poprawiono przepustowość dekompresji archiwów Zip przy użyciu natywnej implementacji Zip.
  • Obciążenia .Net Framework mogą teraz generować żądania podpisania certyfikatu, umożliwiając generowanie żądań w istniejących narzędziach.
  • Dodano obsługę poszczególnych monitorów dla aplikacji Windows Presentation Foundation i obsługujących HDPI VSTO (Visual Studio Tools for Office) wdrożonych przy użyciu technologii ClickOnce.
  • Ulepszono obsługę .Net Standard 2.0.
  • Asystenci diagnostyczni mogą zlokalizować ResourceDictionaries utworzone na podstawie danego źródłowego identyfikatora URI.

Poprzednia wersja: Co nowego w .Net Framework 4.7.1

Wraz z wydaniem przez Microsoft .Net Framework 4.7.1 w połowie października 2017 r. Platforma programistyczna zyskała krytyczne ulepszenia w zakresie usuwania pamięci, bezpieczeństwa i konfiguracji aplikacji. 

Aby zwiększyć wydajność alokacji pamięci, szczególnie w przypadku alokacji dużych stert obiektów, zmiana architektury w module odśmiecania pamięci dzieli alokację sterty na małe i duże sterty obiektów. Aplikacje dokonujące alokacji wielu dużych stert obiektów powinny zmniejszyć rywalizację o blokadę alokacji i uzyskać lepszą wydajność.

Aktualizacja dodaje również bezpieczne opcje mieszania dla uwierzytelniania formularzy ASP.Net, w tym SHA-2 (Secure Hash Algorithm), silniejszy następca SHA-1. Ze względu na zgodność, SHA-1 jest nadal opcją domyślną. SHA-2 jest również obsługiwany dla Message.HashAlgorithm, który określa algorytm skrótu używany przez kolejkowanie komunikatów podczas uwierzytelniania. 

Nowe konstruktory konfiguracji w .Net 4.7.1 umożliwiają programistom wprowadzanie i tworzenie konfiguracji dla aplikacji w czasie wykonywania. Dane konfiguracyjne można pobrać ze źródeł spoza pliku konfiguracyjnego; w poprzednich wersjach .Net konfiguracja jest statyczna. Dzięki konstruktorom konfiguracji aplikacje są w stanie zastosować niestandardowy zestaw konstruktorów do sekcji konfiguracji. Konstruktorzy mogą modyfikować dane konfiguracyjne zawarte w sekcji konfiguracji lub budować je od podstaw, a nawet rysować nowe dane ze źródeł innych niż pliki statyczne.

Inne funkcje aktualizacji obejmują:

  • Obsługa specyfikacji .Net Standard 2.0, która zawiera zestaw interfejsów API współdzielonych przez wiele implementacji .Net.
  • Ulepszenia ułatwień dostępu w WPF (Windows Presentation Foundation) i Windows Forms, w tym ulepszenia wysokiego kontrastu, ulepszone wzorce interfejsu użytkownika i ulepszone środowiska w narzędziach, takich jak Narrator.
  • Obsługa diagnostyki wizualnej w WPF, która umożliwia korzystanie z narzędzi do analizowania drzew wizualnych XAML.
  • Obsługa kompilatora ReadOnlyReferences w języku C # 7.2 w celu przekazywania zmiennych przez odwołanie, ale bez ujawniania danych do modyfikacji.
  • Interfejs API do wykrywania funkcji środowiska wykonawczego służący do określania, czy środowisko wykonawcze obsługuje określoną funkcję.
  • SystemValueTupleTypy możliwe do serializacji , które powinny ułatwić migrację z  System.Tuple do nowej składni krotki w C # 7,0 i Visual Basic 15,5.
  • Interfejs API ASP.Net zapewniający standardowy sposób tworzenia HttpCookieobiektu z ciągu znaków i przechwytywania właściwości plików cookie, takich jak data wygaśnięcia i ścieżka.
  • Funkcja kroku wykonania w ASP.Net, o nazwie ExecutionStepInvoker, która umożliwia programistom uruchamianie kroków wykonawczych w ich kodzie, a nie we wstępnie zdefiniowanym potoku ASP.Net. Ta funkcja jest przeznaczona dla bibliotek zajmujących się przepływem wykonywania aplikacji.