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 aktualizacja
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:
- Potwierdzenie konta i odzyskiwanie hasła w usłudze ASP.NET Core
- Włączanie generowania kodu QR dla aplikacji uwierzytelnianych w usłudze ASP.NET Core
- Migrowanie uwierzytelniania i Identity do ASP.NET Core 2.0
Szablony SPA
Szablony projektów aplikacji jednostronicowej (SPA) dla platform Angular, Aurelia, Knockout.js, React.jsi React.js z redux są dostępne. 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ę elementu 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 usługa Application Insights
Ś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 usługi Application Insights 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 usługi Application Insights i kodu.
Aby uzyskać informacje o stanie planowanej dokumentacji, zobacz problem z usługą GitHub.
Automatyczne używanie tokenów antyforgeryjnych
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 antyforgery domyślnie i weryfikować je na akcjach POST formularza i stronach 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
- Profile publikowania programu Visual Studio na potrzeby wdrażania aplikacji ASP.NET Core
- Zarządzanie kluczami
- Konfigurowanie uwierzytelniania w usłudze Facebook
- Konfigurowanie uwierzytelniania w usłudze Twitter
- Konfigurowanie uwierzytelniania google
- Konfigurowanie uwierzytelniania konta Microsoft
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:
- Migrowanie z ASP.NET Core 1.x do ASP.NET Core 2.0
- Migrowanie uwierzytelniania i Identity do ASP.NET Core 2.0
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.