Co nowego w programie ASP.NET Core 2.0

W tym artykule przedstawiono najważniejsze zmiany w programie ASP.NET Core 2.0 z linkami do odpowiedniej dokumentacji.

Razor Pages

Razor Pages to nowa funkcja ASP.NET Core MVC, która ułatwia kodowanie scenariuszy skoncentrowanych na stronach i wydajniejsze.

Aby uzyskać więcej informacji, zobacz wprowadzenie i samouczek:

metapakiet ASP.NET Core

Nowy metapakiet ASP.NET Core zawiera wszystkie pakiety utworzone i obsługiwane przez zespoły ASP.NET Core i Entity Framework Core oraz ich zależności wewnętrzne i zależności innych firm. Nie musisz już wybierać poszczególnych funkcji ASP.NET Core według pakietu. Wszystkie funkcje są zawarte w pakiecie Microsoft.AspNetCore.All . Szablony domyślne używają tego pakietu.

Aby uzyskać więcej informacji, zobacz Microsoft.AspNetCore.All metapackage for ASP.NET Core 2.0.

Magazyn środowiska uruchomieniowego

Aplikacje korzystające z Microsoft.AspNetCore.All metapakietowania automatycznie korzystają z nowego magazynu środowiska uruchomieniowego platformy .NET Core. Magazyn zawiera wszystkie zasoby środowiska uruchomieniowego potrzebne do uruchamiania aplikacji ASP.NET Core 2.0. W przypadku korzystania z Microsoft.AspNetCore.All metapakieta żadne zasoby z przywoływanego pakietu NuGet ASP.NET Core są wdrażane z aplikacją, ponieważ znajdują się one już w systemie docelowym. Zasoby w magazynie środowiska uruchomieniowego są również wstępnie skompilowane, aby poprawić czas uruchamiania aplikacji.

Aby uzyskać więcej informacji, zobacz Magazyn środowiska uruchomieniowego

.NET Standard 2.0

Pakiety ASP.NET Core 2.0 są przeznaczone dla platformy .NET Standard 2.0. Do pakietów można odwoływać się przez inne biblioteki .NET Standard 2.0 i mogą działać w implementacjach platformy .NET Standard 2.0 zgodnych z platformą .NET, w tym .NET Core 2.0 i .NET Framework 4.6.1.

Metapakiet Microsoft.AspNetCore.All jest przeznaczony tylko dla platformy .NET Core 2.0, ponieważ ma być używany z magazynem środowiska uruchomieniowego platformy .NET Core 2.0.

Aktualizacja konfiguracji

Wystąpienie IConfiguration jest domyślnie dodawane do kontenera usług w programie ASP.NET Core 2.0. IConfiguration w kontenerze usług ułatwia aplikacjom pobieranie wartości konfiguracji z kontenera.

Aby uzyskać informacje o stanie planowanej dokumentacji, zobacz problem z usługą GitHub.

Aktualizacja rejestrowania

W ASP.NET Core 2.0 rejestrowanie jest domyślnie włączone do systemu wstrzykiwania zależności (DI). Dodasz dostawców i skonfigurujesz filtrowanie w Program.cs pliku zamiast w Startup.cs pliku . Ustawienie domyślne ILoggerFactory obsługuje filtrowanie w sposób, który umożliwia użycie jednego elastycznego podejścia zarówno do filtrowania między dostawcami, jak i filtrowania określonego dostawcy.

Aby uzyskać więcej informacji, zobacz Wprowadzenie do rejestrowania.

Aktualizacja uwierzytelniania

Nowy model uwierzytelniania ułatwia konfigurowanie uwierzytelniania dla aplikacji przy użyciu di.

Nowe szablony są dostępne do konfigurowania uwierzytelniania dla aplikacji internetowych i internetowych interfejsów API przy użyciu usługi Azure AD B2C.

Aby uzyskać informacje o stanie planowanej dokumentacji, zobacz problem z usługą GitHub.

Identity Aktualizacji

Ułatwiliśmy tworzenie bezpiecznych internetowych interfejsów API przy użyciu Identity programu ASP.NET Core 2.0. Tokeny dostępu do uzyskiwania dostępu do internetowych interfejsów API można uzyskać przy użyciu biblioteki Microsoft Authentication Library (MSAL).

Aby uzyskać więcej informacji na temat zmian uwierzytelniania w wersji 2.0, zobacz następujące zasoby:

Szablony SPA

Dostępne są szablony projektów Aplikacji jednostronicowej (SPA) dla platform Angular, Aurelia, Knockout.js, React.js i React.js z rozwiązaniem Redux. Szablon Angular został zaktualizowany do usługi Angular 4. Szablony Angular i React są domyślnie dostępne; Aby uzyskać informacje o sposobie uzyskiwania innych szablonów, zobacz Tworzenie nowego projektu SPA. Aby uzyskać informacje o sposobie tworzenia SPA w ASP.NET Core, zobacz Funkcje opisane w tym artykule są przestarzałe od ASP.NET Core 3.0.

Kestrel Ulepszenia

Serwer Kestrel internetowy ma nowe funkcje, które sprawiają, że jest bardziej odpowiedni jako serwer dostępny z Internetu. Wiele opcji konfiguracji ograniczeń serwera jest dodawanych w KestrelServerOptions nowej Limits właściwości klasy. Dodaj limity dla następujących elementów:

  • Maksymalna liczba połączeń klientów
  • Maksymalny rozmiar treści żądania
  • Minimalna szybkość danych treści żądania

Aby uzyskać więcej informacji, zobacz Kestrel Implementacja serwera internetowego w programie ASP.NET Core.

Zmieniono nazwę składnika WebListener na HTTP.sys

Pakiety Microsoft.AspNetCore.Server.WebListener i Microsoft.Net.Http.Server zostały scalone z nowym pakietem Microsoft.AspNetCore.Server.HttpSys. Przestrzenie nazw zostały zaktualizowane tak, aby były zgodne.

Aby uzyskać więcej informacji, zobacz Implementacja serwera internetowego HTTP.sys w środowisku ASP.NET Core.

Ulepszona obsługa nagłówka HTTP

Jeśli używasz wzorca MVC do przesyłania elementu FileStreamResult lub FileContentResult, masz teraz możliwość ustawienia ETag daty lub LastModified na przesyłanej zawartości. Te wartości można ustawić dla zwróconej zawartości za pomocą kodu podobnego do następującego:

var data = Encoding.UTF8.GetBytes("This is a sample text from a binary array");
var entityTag = new EntityTagHeaderValue("\"MyCalculatedEtagValue\"");
return File(data, "text/plain", "downloadName.txt", lastModified: DateTime.UtcNow.AddSeconds(-5), entityTag: entityTag);

Plik zwrócony odwiedzającym ma odpowiednie nagłówki HTTP dla ETag wartości i LastModified .

Jeśli odwiedzający aplikację żąda zawartości z nagłówkiem żądania zakresu, ASP.NET Core rozpoznaje żądanie i obsługuje nagłówek. Jeśli żądana zawartość może zostać częściowo dostarczona, ASP.NET Core odpowiednio pomija i zwraca tylko żądany zestaw bajtów. Nie musisz pisać żadnych specjalnych procedur obsługi w swoich metodach, aby dostosować tę funkcję lub obsłużyć tę funkcję; jest ona automatycznie obsługiwana.

Uruchamianie hostingu i Szczegółowe informacje aplikacji

Środowiska hostingu mogą teraz wprowadzać dodatkowe zależności pakietów i wykonywać kod podczas uruchamiania aplikacji bez konieczności jawnego przyjmowania zależności lub wywoływania dowolnych metod. Tej funkcji można użyć, aby umożliwić niektórym środowiskom "rozświetlanie" funkcji unikatowych dla tego środowiska bez konieczności wcześniejszego poznania aplikacji.

W ASP.NET Core 2.0 ta funkcja służy do automatycznego włączania diagnostyki Szczegółowe informacje aplikacji podczas debugowania w programie Visual Studio i (po wyrażeniu zgody) podczas uruchamiania w usługach aplikacja systemu Azure. W związku z tym szablony projektów domyślnie nie dodają już pakietów aplikacji Szczegółowe informacje i kodu.

Aby uzyskać informacje o stanie planowanej dokumentacji, zobacz problem z usługą GitHub.

Automatyczne używanie tokenów ochrony przed fałszerzami

ASP.NET Core zawsze pomagał w kodowaniu zawartości HTML domyślnie, ale w przypadku nowej wersji podjęto dodatkowy krok, aby zapobiec atakom fałszerzowania żądań między witrynami (XSRF). ASP.NET Core będzie teraz emitować tokeny ochrony przed fałszerzacją domyślnie i weryfikować je na formularzach akcji POST i stron bez dodatkowej konfiguracji.

Aby uzyskać więcej informacji, zobacz Zapobieganie atakom z fałszowaniem żądań międzywitrynowych (XSRF/CSRF) na platformie ASP.NET Core.

Automatyczna wstępna kompilacja

Razor Wyświetlanie wstępnej kompilacji jest domyślnie włączone podczas publikowania, co zmniejsza rozmiar danych wyjściowych publikowania i czas uruchamiania aplikacji.

Aby uzyskać więcej informacji, zobacz Razor wyświetlanie kompilacji i wstępnego kompilowania w programie ASP.NET Core.

Razor obsługa języka C# 7.1

Aparat Razor widoku został zaktualizowany do pracy z nowym kompilatorem Roslyn. Obejmuje to obsługę funkcji języka C# 7.1, takich jak wyrażenia domyślne, wywnioskowane nazwy krotek i dopasowywanie wzorca do typów ogólnych. Aby użyć języka C# 7.1 w projekcie, dodaj następującą właściwość w pliku projektu, a następnie załaduj ponownie rozwiązanie:

<LangVersion>latest</LangVersion>

Aby uzyskać informacje o stanie funkcji języka C# 7.1, zobacz repozytorium Roslyn GitHub.

Inne aktualizacje dokumentacji dla wersji 2.0

Wskazówki dotyczące migracji

Aby uzyskać wskazówki dotyczące migrowania aplikacji ASP.NET Core 1.x do ASP.NET Core 2.0, zobacz następujące zasoby:

Dodatkowe informacje

Aby uzyskać pełną listę zmian, zobacz informacje o wersji ASP.NET Core 2.0.

Aby nawiązać połączenie z postępem i planami zespołu deweloperów ASP.NET Core, dołącz do ASP.NET Community Standup.