ASP.NET Core 2,1 ' deki yenilikler

bu makalede, ASP.NET Core 2,1 ' deki en önemli değişiklikler, ilgili belgelerin bağlantılarıyla vurgulanır.

SignalR

SignalRASP.NET Core 2,1 için yeniden yazıldı. ASP.NET Core SignalR birçok geliştirme içerir:

  • Basitleştirilmiş bir genişleme modeli.
  • JQuery bağımlılığı olmayan yeni bir JavaScript istemcisi.
  • MessagePack tabanlı yeni bir Compact binary 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 . SignalR ASP.NET Core .

Razor sınıf kitaplıkları

ASP.NET Core 2,1, bir kitaplıkta derleme ve ekleme temelli kullanıcı arabirimini daha kolay hale getirir Razor ve bunu birden fazla proje arasında paylaşabilir. yeni Razor SDK, Razor bir NuGet paketine paketlenebilecek bir sınıf kitaplığı projesinde dosya oluşturulmasına izin vermez. Kitaplıklardaki görünümler ve sayfalar otomatik olarak keşfedilir ve uygulama tarafından geçersiz kılınabilir. RazorDerlemeyi derlemeyle tümleştirerek:

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

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

Identity UI kitaplığı & yapı iskelesi

ASP.NET Core 2,1, ASP.NET Core Identity bir Razor sınıf kitaplığıolarak sunulmaktadır. Dahil edilen uygulamalar, Identity Identity Identity Razor sınıf kitaplığı 'nda (RCL) bulunan kaynak kodunu seçmeli olarak eklemek için yeni desteği uygulayabilir. Kodu değiştirebilmeniz ve davranışı değiştirebilmek için kaynak kodu oluşturmak isteyebilirsiniz. Örneğin, kayıt sırasında kullanılan kodu oluşturmak için desteği ' ı söyleyebilirsiniz. Oluşturulan kod RCL 'deki aynı koda göre önceliklidir Identity .

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

daha fazla bilgi için bkz. Identity ASP.NET Core projelerinde scaffold.

HTTPS

Güvenlik ve gizlilikle ilgili daha fazla odaklanarak Web Apps için HTTPS 'nin etkinleştirilmesi önemlidir. HTTPS zorlaması Web üzerinde giderek daha sıkı hale geliyor. HTTPS kullanmayan siteler güvensiz olarak değerlendirilir. tarayıcılar (Chromium, Mozilla), web özelliklerinin güvenli bir içerikten kullanılması gerektiğini zorlamaya başlıyor. GDPR , Kullanıcı gizliliğini korumak için https kullanılmasını gerektirir. Üretimde HTTPS kullanılması kritiktir, ancak geliştirme sırasında HTTPS kullanılması, dağıtımdaki sorunları önlemeye yardımcı olabilir (örneğin, güvenli olmayan bağlantılar). ASP.NET Core 2,1, geliştirme sırasında https kullanmayı ve üretimde https 'yi yapılandırmayı kolaylaştıran bir dizi geliştirme içerir. Daha fazla bilgi için bkz. https 'Yi zorlama.

Varsayılan olarak açık

Güvenli Web sitesi geliştirmeyi kolaylaştırmak için, HTTPS artık varsayılan olarak etkinleştirilmiştir. 2,1 ' den başlayarak, Kestrel https://localhost:5001 yerel bir geliştirme sertifikası mevcut olduğunda dinler. Geliştirme sertifikası oluşturuldu:

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

dotnet dev-certs https --trustSertifikaya güvenmek için ' i çalıştırın.

HTTPS yönlendirmesi ve zorlaması

Web uygulamalarının genellikle hem HTTP hem de HTTPS üzerinde dinlemesi gerekir, ancak tüm HTTP trafiğini HTTPS 'ye yeniden yönlendirir. 2,1 ' de, yapılandırma veya bağlı sunucu bağlantı noktalarının varlığına göre daha fazla yeniden yönlendirilen özelleştirilmiş HTTPS yeniden yönlendirme ara yazılımı sunulmuştur.

HTTPS kullanımı, http katı aktarım güvenliği Protokolü (HSTS)kullanılarak daha fazla zorlanabilir. HSTS, tarayıcıların siteye her zaman HTTPS aracılığıyla erişmesini söyler. ASP.NET Core 2,1, maksimum yaş, alt etki alanları ve hsts önyükleme listesi seçeneklerini destekleyen hsts ara yazılımı ekler.

Üretim için yapılandırma

Üretimde HTTPS 'nin açıkça yapılandırılması gerekir. 2,1 ' de, için HTTPS 'yi yapılandırmaya yönelik varsayılan yapılandırma şeması Kestrel eklenmiştir. Uygulamalar aşağıdakileri kullanacak şekilde yapılandırılabilir:

GDPR

ASP.NET Core, bazı ab Genel Veri Koruma Yönetmeliği (GDPR) gereksinimlerini karşılamaya yardımcı olmak için apı 'ler ve şablonlar sağlar. Daha fazla bilgi için bkz. GDPR Support in ASP.NET Core. örnek bir uygulama , ' nin nasıl kullanılacağını gösterir ve ASP.NET Core 2,1 şablonlarına eklenen GDPR uzantı noktalarının ve apı 'lerin çoğunu test etmenizi sağlar.

Tümleştirme testleri

Test oluşturma ve yürütmeyi kolaylaştıran yeni bir paket tanıtılmıştır. Microsoft. AspNetCore. Mvc. Testing paketi aşağıdaki görevleri gerçekleştirir:

  • Bağımlılık dosyasını (* . Deps) test projesinin bin klasörüne kopyalar.
  • Testler yürütüldüğünde statik dosya ve sayfa/görünümlerin bulunması için, içerik kökünü test edilen uygulamanın proje köküne ayarlar.
  • TestServerile sınanan uygulamayı daha kolay hale getirmek Için webapplicationfactory sınıfını sağlar.

Aşağıdaki test, dizin sayfasının başarılı durum kodu ve doğru Content-Type üst bilgisi ile yüklenip yüklenduğunu denetlemek için xUnit kullanı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 bkz. tümleştirme testleri konusu.

[ApiController], ActionResult<T>

ASP.NET Core 2,1, temiz ve açıklayıcı web apı 'leri oluşturmayı kolaylaştıran yeni programlama kuralları ekliyor. ActionResult<T> , bir uygulamanın yanıt türünü ya da başka bir eylem sonucunu (ıactionresult gibi) döndürmesini sağlamak için yeni bir tür eklenmiştir, ancak yine de yanıt türünü gösterir. [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 Web API 'Leri oluşturma.

Ihttpclientfactory

ASP.NET Core 2,1 IHttpClientFactory , uygulamalarda örneklerini yapılandırmayı ve kullanmayı kolaylaştıran yeni bir hizmet içerir HttpClient . HttpClient , giden HTTP istekleri için birlikte bağlanabilen işleyicileri temsilci seçme kavramına zaten sahiptir. Fabrika:

  • HttpClientAdlandırılmış istemci başına örnek kaydı daha sezgisel hale gelir.
  • Yeniden deneme, devre kesiciler vb. için, Polly ilkelerinin kullanılmasına izin veren bir Polly işleyici uygular.

Daha fazla bilgi için bkz. http Isteklerini başlatma.

Kestrel libuv aktarım yapılandırması

ASP.NET Core 2,1 ' nin yayınlanmasıyla birlikte, Kestrel varsayılan aktarım artık libuv ' d i temel değildir ancak bunun yerine yönetilen yuvaları temel alır. Daha fazla bilgi için bkz. Kestrel Web sunucusu uygulama: libuv aktarım yapılandırması.

Genel konak Oluşturucu

Genel ana bilgisayar Oluşturucu ( HostBuilder ) sunuldu. Bu Oluşturucu, HTTP isteklerini (mesajlaşma, arka plan görevleri vb.) işlemeyecek uygulamalar için kullanılabilir.

Daha fazla bilgi için bkz. .NET genel ana bilgisayar.

Güncelleştirilmiş SPA şablonları

Angular, React ve React için tek sayfalı uygulama şablonları, her bir çerçeve için standart proje yapılarını ve derleme sistemlerini kullanacak şekilde güncelleştirilir.

Angular şablonu Angular clı tabanlıdır ve React şablonları create-tepki-app ' i temel alır.

Daha fazla bilgi için bkz.

RazorVarlıklar için arama sayfaları Razor

2,1 ' de Razor Sayfalar, Razor listelenen sırada aşağıdaki dizinlerde bulunan varlıkları (örneğin, düzenler ve partileri) arar:

  1. Geçerli sayfalar klasörü.
  2. /Pages/Shared/
  3. /Views/Shared/

Razor Bir alandaki sayfalar

Razor Sayfalar artık bölgeleridestekliyor. Bir alan örneği görmek için Razor bireysel kullanıcı hesaplarıyla yeni bir sayfa Web uygulaması oluşturun. RazorBireysel kullanıcı hesapları içeren bir sayfa Web uygulaması /Areas/ Identity /Pages içerir.

MVC uyumluluk sürümü

SetCompatibilityVersionyöntemi, bir uygulamanın ASP.NET Core MVC 2,1 veya sonraki bir sürümde sunulmuş olabilecek davranış değişikliklerinin kabul etmesine veya devre dışı olmasına izin verir.

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

2,0 ' den 2,1 ' e geçiş

bkz. ASP.NET Core 2,0 ' den 2,1 ' e geçiş.

Ek bilgiler

değişikliklerin tamamı listesi için ASP.NET Core 2,1 sürüm notlarınabakın.