Aracılığıyla paylaş


ASP.NET Core 2.1'deki yenilikler

Bu makalede, ASP.NET Core 2.1'deki en önemli değişiklikler ve ilgili belgelerin bağlantıları vurgulanır.

SignalR

SignalR ASP.NET Core 2.1 için yeniden yazıldı.

ASP.NET Core SignalR bir dizi iyileştirme içerir:

  • Basitleştirilmiş bir ölçek genişletme modeli.
  • jQuery bağımlılığı olmayan yeni bir JavaScript istemcisi.
  • MessagePack'i temel alan yeni bir kompakt ikili protokol.
  • Özel protokoller için destek.
  • Yeni bir akış yanıtı modeli.
  • Çıplak WebSockets tabanlı istemciler için destek.

Daha fazla bilgi için bkz . ASP.NET Core SignalR.

Razor sınıf kitaplıkları

ASP.NET Core 2.1, bir kitaplığa tabanlı kullanıcı arabirimi oluşturmayı ve eklemeyi Razorve birden çok projede paylaşmayı kolaylaştırır. Yeni Razor SDK, NuGet paketine paketlenebilir bir sınıf kitaplığı projesinde dosya derlemeyi Razor etkinleştirir. Kitaplıklardaki görünümler ve sayfalar otomatik olarak bulunur ve uygulama tarafından geçersiz kılınabilir. Derlemeyi derlemeyle tümleştirerek Razor :

  • Uygulama başlatma süresi önemli ölçüde daha hızlıdır.
  • Çalışma zamanında görünüm ve sayfalara Razor yönelik hızlı güncelleştirmeler yine yinelemeli geliştirme iş akışının bir parçası olarak kullanılabilir.

Daha fazla bilgi için bkz. Sınıf Kitaplığı projesini Razorkullanarak yeniden kullanılabilir kullanıcı arabirimi oluşturma.

Identity Kullanıcı arabirimi kitaplığı ve yapı iskelesi

ASP.NET Core 2.1, Sınıf Kitaplığı olarak ASP.NET Core Identity sağlar.Razor Içeren Identity uygulamalar, Sınıf Kitaplığı'nda (RCL) yer alan kaynak kodunu seçmeli olarak eklemek için yeni Identity iskeleyi IdentityRazor uygulayabilir. Kodu değiştirmek ve davranışı değiştirmek için kaynak kodu oluşturmak isteyebilirsiniz. Örneğin, yapı iskelesine kayıtta kullanılan kodu oluşturmasını söyleyebilirsiniz. Oluşturulan kod, RCL'deki aynı koddan Identity önceliklidir.

Kimlik doğrulaması içermeyen uygulamalar RCL Identity paketini eklemek için iskeleyi uygulayabilirIdentity. Oluşturulacak kodu seçme Identity seçeneğiniz vardır.

Daha fazla bilgi için bkz. ASP.NET Core projelerinde yapı iskelesiIdentity.

HTTPS

Daha fazla güvenlik ve gizlilik odağıyla, web uygulamaları için HTTPS'nin etkinleştirilmesi önemlidir. HTTPS uygulaması web üzerinde giderek daha katı hale geliyor. HTTPS kullanmayan siteler güvenli değildir. Tarayıcılar (Chromium, Mozilla) web özelliklerinin güvenli bir bağlamdan kullanılması gerektiğini zorlamaya başlıyor. GDPR , kullanıcı gizliliğini korumak için HTTPS kullanımını gerektirir. Üretimde HTTPS kullanmak kritik öneme sahip olsa da geliştirme aşamasında HTTPS kullanmak dağıtımdaki sorunları önlemeye yardımcı olabilir (örneğin, güvenli olmayan bağlantılar). ASP.NET Core 2.1, geliştirme aşamasında HTTPS kullanımını ve üretimde HTTPS'yi yapılandırmayı kolaylaştıran bir dizi iyileştirme içerir. Daha fazla bilgi için bkz . HTTPS'yi zorunlu kılma.

Varsayılan olarak açık

Güvenli web sitesi geliştirmeyi kolaylaştırmak için HTTPS artık varsayılan olarak etkindir. 2.1'den başlayarak, Kestrel yerel bir geliştirme sertifikasının ne zaman mevcut olduğunu dinler https://localhost:5001 . Geliştirme sertifikası oluşturulur:

  • .NET Core SDK ilk çalıştırma deneyiminin bir parçası olarak, SDK'yı ilk kez kullandığınızda.
  • Yeni dev-certs aracı kullanarak el ile.

Sertifikaya güvenmek için komutunu çalıştırın dotnet dev-certs https --trust .

HTTPS yeniden yönlendirme ve zorlama

Web uygulamalarının genellikle hem HTTP hem de HTTPS'yi dinlemesi gerekir, ancak ardından tüm HTTP trafiğini HTTPS'ye yönlendirir. 2.1'de, yapılandırma veya bağlı sunucu bağlantı noktalarının varlığına göre akıllı bir şekilde yeniden yönlendiren özelleştirilmiş HTTPS yeniden yönlendirme ara yazılımı kullanıma sunulmuştur.

HTTP Katı Aktarım Güvenliği Protokolü (HSTS) kullanılarak HTTPS kullanımı daha da zorlanabilir. HSTS, tarayıcılara siteye her zaman HTTPS üzerinden erişmelerini emreder. ASP.NET Core 2.1, maksimum yaş, alt etki alanları ve HSTS ön yükleme listesi seçeneklerini destekleyen HSTS ara yazılımı ekler.

Üretim için yapılandırma

Üretimde HTTPS açıkça yapılandırılmalıdır. 2.1'de, https Kestrel yapılandırması için varsayılan yapılandırma şeması eklenmiştir. Uygulamalar şu şekilde yapılandırılabilir:

GDPR

ASP.NET Core, AB Genel Veri Koruma Yönetmeliği (GDPR) gereksinimlerini karşılamaya yardımcı olacak API'ler ve şablonlar sağlar. Daha fazla bilgi için bkz . ASP.NET Core'da GDPR desteği. Örnek bir uygulama nasıl kullanılacağını gösterir ve ASP.NET Core 2.1 şablonlarına eklenen GDPR uzantı noktalarının ve API'lerinin çoğunu test etmenizi sağlar.

Tümleştirme testleri

Test oluşturma ve yürütmeyi kolaylaştıran yeni bir paket kullanıma sunulmuştur. Microsoft.AspNetCore.Mvc.Testing paketi aşağıdaki görevleri işler:

  • Test edilen uygulamadan bağımlılık dosyasını (*.deps) test projesinin bin klasörüne kopyalar.
  • testler yürütürken statik dosyaların ve sayfaların/görünümlerin bulunması için içerik kökünü test edilen uygulamanın proje köküne ayarlar.
  • ile TestServertest edilen WebApplicationFactory<TEntryPoint> uygulamanın önyüklemesini kolaylaştırmak için sınıfını sağlar.

Aşağıdaki testte, Dizin sayfasının başarılı durum koduyla ve doğru İçerik Türü üst bilgisiyle yüklenip yüklenmediğini denetlemek için xUnit kullanılır:

public class BasicTests
    : IClassFixture<WebApplicationFactory<RazorPagesProject.Startup>>
{
    private readonly HttpClient _client;

    public BasicTests(WebApplicationFactory<RazorPagesProject.Startup> factory)
    {
        _client = factory.CreateClient();
    }

    [Fact]
    public async Task GetHomePage()
    {
        // Act
        var response = await _client.GetAsync("/");

        // Assert
        response.EnsureSuccessStatusCode(); // Status Code 200-299
        Assert.Equal("text/html; charset=utf-8",
            response.Content.Headers.ContentType.ToString());
    }
}

Daha fazla bilgi için Tümleştirme testleri konusuna bakın.

[ApiController], ActionResult<T>

ASP.NET Core 2.1, temiz ve açıklayıcı web API'leri oluşturmayı kolaylaştıran yeni programlama kuralları ekler. ActionResult<T> , bir uygulamanın yanıt türünü veya başka bir eylem sonucunu (IActionResult'a benzer) döndürmesine izin vermek için eklenen ve yanıt türünü belirtmeye devam eden yeni bir türdür. [ApiController] Özniteliği, Web API'sine özgü kuralları ve davranışları kabul etmenin yolu olarak da eklenmiştir.

Daha fazla bilgi için bkz . ASP.NET Core ile Web API'leri oluşturma.

IHttpClientFactory

ASP.NET Core 2.1, uygulamalarda örneklerini HttpClient yapılandırmayı ve kullanmayı kolaylaştıran yeni IHttpClientFactory bir hizmet içerir. HttpClient zaten giden HTTP istekleri için birbirine bağlanabilecek işleyicileri temsilci olarak belirleme kavramına sahiptir. Üreteç:

  • Adlandırılmış istemci başına örneklerinin kaydedilmesini HttpClient daha sezgisel hale getirir.
  • Polly ilkelerinin Yeniden Deneme, CircuitBreakers vb. için kullanılmasına olanak tanıyan bir Polly işleyicisi uygular.

Daha fazla bilgi için bkz . HTTP İsteklerini Başlatma.

Kestrel libuv aktarım yapılandırması

ASP.NET Core 2.1 sürümüyle, Kestrel'nin varsayılan aktarımı artık Libuv'u değil yönetilen yuvaları temel alır. Daha fazla bilgi için bkz Kestrel . web sunucusu uygulaması: Libuv aktarım yapılandırması.

Genel konak oluşturucu

Genel Konak Oluşturucusu (HostBuilder) kullanıma sunulmuştur. Bu oluşturucu, HTTP isteklerini (Mesajlaşma, arka plan görevleri vb.) işlemeyen uygulamalar için kullanılabilir.

Daha fazla bilgi için bkz . .NET Genel Ana Bilgisayarı.

Güncelleştirilmiş SPA şablonları

Angular ve React için Tek Sayfalı Uygulama şablonları, her çerçeve için standart proje yapılarını ve derleme sistemlerini kullanacak şekilde güncelleştirilir.

Angular şablonu Angular CLI'yı, React şablonu ise create-react-app'i temel alır.

Daha fazla bilgi için bkz.

RazorSayfalar varlıkları arar Razor

2.1'de Sayfalar, Razor listelenen sırayla aşağıdaki dizinlerdeki varlıkları (düzenler ve kısmi öğeler gibi) arar Razor :

  1. Geçerli Sayfalar klasörü.
  2. /Pages/Shared/
  3. /Görünümler/Paylaşılan/

Razor Bir alandaki sayfalar

RazorSayfalar artık alanları destekliyor. Alanlara bir örnek görmek için tek tek kullanıcı hesaplarıyla yeni Razor bir Pages web uygulaması oluşturun. Razor Tek tek kullanıcı hesaplarına sahip sayfalar web uygulaması /Areas//IdentityPages içerir.

MVC uyumluluk sürümü

yöntemi, SetCompatibilityVersion bir uygulamanın ASP.NET Core MVC 2.1 veya sonraki sürümlerinde ortaya çıkan hataya neden olabilecek davranış değişikliklerini kabul etmesine veya geri çevirmesine olanak tanır.

Daha fazla bilgi için bkz . ASP.NET Core MVC için uyumluluk sürümü.

2.0'dan 2.1'e geçiş

Bkz . ASP.NET Core 2.0'dan 2.1'e geçiş.

Ek bilgi

Değişikliklerin tam listesi için ASP.NET Core 2.1 Sürüm Notları'na bakın.