Ekinlikler
31 Mar 23 - 2 Nis 23
Power BI, Fabric, SQL ve yapay zeka topluluğu tarafından yönetilen nihai etkinlik. 31 Mart - 2 Nisan. 150 ABD doları indirim için MSCUST kodu kullanın. Fiyatlar 11 Şubat'ta artış gösterir.
Bugün kaydolunBu tarayıcı artık desteklenmiyor.
En son özelliklerden, güvenlik güncelleştirmelerinden ve teknik destekten faydalanmak için Microsoft Edge’e yükseltin.
Bu makalede, mevcut bir ASP.NET Core 3.1 projesinin ASP.NET Core 5.0'a nasıl güncelleştirilecekleri açıklanmaktadır. ASP.NET Core 3.1'den ASP.NET Core 6.0'a geçiş hakkında yönergeler için bkz . ASP.NET Core 3.1'den 6.0'a geçiş.
Belirli bir .NET Core SDK sürümünü hedeflemek için bir global.json dosyaya güveniyorsanız, özelliğini yüklü .NET 5.0 SDK sürümüne güncelleştirin version
. Örneğin:
{
"sdk": {
- "version": "3.1.200"
+ "version": "5.0.100"
}
}
Bir Blazor WebAssembly projeyi güncelleştiriyorsanız Projeleri güncelleştir Blazor WebAssembly bölümüne atlayın. Diğer ASP.NET Core proje türleri için proje dosyasının Target Framework Moniker'ini (TFM) olarak net5.0
güncelleştirin:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
- <TargetFramework>netcoreapp3.1</TargetFramework>
+ <TargetFramework>net5.0</TargetFramework>
</PropertyGroup>
</Project>
ve obj
klasörlerini bin
silmeniz gerekebilir. NuGet paket önbelleğini temizlemek için komutunu çalıştırın dotnet nuget locals --clear all
.
ASP.NET Core 5.0.1 yama sürümünde yol önceliği hesaplaması değişti. İsteğe bağlı parametrelerle tümünü yakala yolları veya yolları tanımladıysanız bu durum sizi etkileyebilir.
ASP.NET Core 5.0.0 veya önceki sürümlerinde önceki davranışlarla, gibi {*slug}
daha düşük önceliğe sahip yollar, gibi /customer/{id}
daha yüksek önceliğe sahip yollardan önce eşleştirilir.
ASP.NET Core 5.0.1 veya sonraki sürümlerindeki yeni davranış, ASP.NET Core uygulamalarında tanımlanan yönlendirme davranışıyla yakından eşleşir; burada çerçeve her segment için önce yol önceliğini hesaplar ve oluşturur ve yalnızca ikincil ölçüt olarak bağlantıları kesmek için yolun uzunluğunu kullanır.
Yönlendirme sisteminin yönlendirme tarafından Blazor desteklenen özelliklerin alt kümesi için Blazor ASP.NET Core yönlendirme sistemiyle aynı şekilde davranması hedeflendiğinden, özgün davranış uygulamada bir hata olarak kabul edilir.
PreferExactMatches
Doğru davranışı kabul etmek için Router
özniteliğini dosyadaki App.razor
bileşene ekleyin:
<Router AppAssembly="@typeof(Program).Assembly" PreferExactMatches="@true">
PreferExactMatches
olarak ayarlandığında@true
, yol eşleştirme joker karakterler yerine tam eşleşmeleri tercih eder.
Önemli
Tüm uygulamalar açıkça olarak @true
olarak ayarlanmalıdırPreferExactMatches
.
olarak ayarlanabilir PreferExactMatches
@false
veya ayarsız bırakılamaz, yalnızca geriye dönük uyumluluk için sağlanır.
.NET 6 yayınlandığında yönlendirici her zaman tam eşleşmeleri tercih eder ve PreferExactMatches
seçenek kullanılamaz.
Bu bölümdeki yönergeler her iki barındırma modeli için de Blazor geçerlidir. Bu bölümü izleyen bölümler, modelleri ve uygulama türlerini barındırmaya özgü ek yönergeler sağlar. İlgili tüm bölümlerdeki kılavuzu uygulamanıza uygulayın.
Bir wwwroot/index.html
Blazor WebAssembly uygulamanın veya Pages/_Host.cshtml
uygulamanın Blazor Server içindeki öğesine stiller için bir <link>
öğe <head>
ekleyin. Aşağıdaki <link>
öğe href
öznitelik değerlerinde yer tutucu {ASSEMBLY NAME}
, uygulamanın derleme adıdır.
+<link href="{ASSEMBLY NAME}.styles.css" rel="stylesheet" />
Tek başına Blazor WebAssembly veya Blazor Server örnek:
+<link href="BlazorSample.styles.css" rel="stylesheet" />
Client
barındırılan Blazor WebAssembly çözüm örneği projesi:
+<link href="BlazorSample.Client.styles.css" rel="stylesheet" />
Bileşen sanallaştırması için uygulamanın _Imports.razor
dosyasına yeni bir ad alanı ekleyin. Microsoft.AspNetCore.Components.Web.Virtualization Aşağıdaki _Imports.razor
dosyalar, proje şablonlarından Blazor oluşturulan uygulamalarda varsayılan ad alanlarını gösterir. Yer tutucu {ASSEMBLY NAME}
, uygulamanın derleme adıdır.
Blazor WebAssembly (_Imports.razor
):
@using System.Net.Http
@using System.Net.Http.Json
@using Microsoft.AspNetCore.Components.Forms
@using Microsoft.AspNetCore.Components.Routing
@using Microsoft.AspNetCore.Components.Web
@using Microsoft.AspNetCore.Components.Web.Virtualization
@using Microsoft.AspNetCore.Components.WebAssembly.Http
@using Microsoft.JSInterop
@using {ASSEMBLY NAME}
@using {ASSEMBLY NAME}.Shared
Blazor Server (_Imports.razor
):
@using System.Net.Http
@using Microsoft.AspNetCore.Authorization
@using Microsoft.AspNetCore.Components.Authorization
@using Microsoft.AspNetCore.Components.Forms
@using Microsoft.AspNetCore.Components.Routing
@using Microsoft.AspNetCore.Components.Web
@using Microsoft.AspNetCore.Components.Web.Virtualization
@using Microsoft.JSInterop
@using {ASSEMBLY NAME}
@using {ASSEMBLY NAME}.Shared
() bileşenindeMainLayout
Shared/MainLayout.razor
, bileşenin HTML işaretlemesini özniteliği olarak ayarlanmış page
bir class
öğeyle <div>
çevreleyin:
<div class="page">
...
</div>
Klasöre aşağıdaki dosyaları Shared
ekleyin:
MainLayout.razor.css
:
.page {
position: relative;
display: flex;
flex-direction: column;
}
.main {
flex: 1;
}
.sidebar {
background-image: linear-gradient(180deg, rgb(5, 39, 103) 0%, #3a0647 70%);
}
.top-row {
background-color: #f7f7f7;
border-bottom: 1px solid #d6d5d5;
justify-content: flex-end;
height: 3.5rem;
display: flex;
align-items: center;
}
.top-row ::deep a, .top-row .btn-link {
white-space: nowrap;
margin-left: 1.5rem;
}
.top-row a:first-child {
overflow: hidden;
text-overflow: ellipsis;
}
@media (max-width: 767.98px) {
.top-row:not(.auth) {
display: none;
}
.top-row.auth {
justify-content: space-between;
}
.top-row a, .top-row .btn-link {
margin-left: 0;
}
}
@media (min-width: 768px) {
.page {
flex-direction: row;
}
.sidebar {
width: 250px;
height: 100vh;
position: sticky;
top: 0;
}
.top-row {
position: sticky;
top: 0;
z-index: 1;
}
.main > div {
padding-left: 2rem !important;
padding-right: 1.5rem !important;
}
}
NavMenu.razor.css
:
.navbar-toggler {
background-color: rgba(255, 255, 255, 0.1);
}
.top-row {
height: 3.5rem;
background-color: rgba(0,0,0,0.4);
}
.navbar-brand {
font-size: 1.1rem;
}
.oi {
width: 2rem;
font-size: 1.1rem;
vertical-align: text-top;
top: -2px;
}
.nav-item {
font-size: 0.9rem;
padding-bottom: 0.5rem;
}
.nav-item:first-of-type {
padding-top: 1rem;
}
.nav-item:last-of-type {
padding-bottom: 1rem;
}
.nav-item ::deep a {
color: #d7d7d7;
border-radius: 4px;
height: 3rem;
display: flex;
align-items: center;
line-height: 3rem;
}
.nav-item ::deep a.active {
background-color: rgba(255,255,255,0.25);
color: white;
}
.nav-item ::deep a:hover {
background-color: rgba(255,255,255,0.1);
color: white;
}
@media (min-width: 768px) {
.navbar-toggler {
display: none;
}
.collapse {
/* Never collapse the sidebar for wide screens */
display: block;
}
}
Bir uygulamanın en son temel wwwroot/css/app.css
dosyası Blazor WebAssembly veya wwwroot/css/site.css
bir Blazor Server uygulamanın dosyası aşağıdaki stilleri içerir. Aşağıdaki stilleri ve uygulamaya eklediğiniz stilleri bırakarak ek stilleri kaldırın.
Aşağıdaki stil sayfası yalnızca temel stilleri içerir ve geliştirici tarafından eklenen özel stilleri içermez :
html, body {
font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
}
a, .btn-link {
color: #0366d6;
}
.btn-primary {
color: #fff;
background-color: #1b6ec2;
border-color: #1861ac;
}
.content {
padding-top: 1.1rem;
}
.valid.modified:not([type=checkbox]) {
outline: 1px solid #26b050;
}
.invalid {
outline: 1px solid red;
}
.validation-message {
color: red;
}
#blazor-error-ui {
background: lightyellow;
bottom: 0;
box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
display: none;
left: 0;
padding: 0.6rem 1.25rem 0.7rem 1.25rem;
position: fixed;
width: 100%;
z-index: 1000;
}
#blazor-error-ui .dismiss {
cursor: pointer;
position: absolute;
right: 0.75rem;
top: 0.5rem;
}
Not
Yukarıdaki örnekte proje şablonu tarafından sağlanan Open Iconic simgeleri ()open-iconic-bootstrap.css
yönergesi Blazor gösterilmez@import
. Open Iconic , bakımcıları tarafından terk edildi.
Önceki Güncelleştirme Blazor WebAssembly ve Blazor Server projeler bölümündeki yönergeleri izleyin.
Barındırılan Blazor çözümün Client
projesi de dahil olmak üzere bir Blazor WebAssembly proje için proje dosyasına aşağıdaki değişiklikleri uygulayın:
SDK'yi olarak Microsoft.NET.Sdk.Web
Microsoft.NET.Sdk.BlazorWebAssembly
güncelleştirin:
- <Project Sdk="Microsoft.NET.Sdk.Web">
+ <Project Sdk="Microsoft.NET.Sdk.BlazorWebAssembly">
Not
Bu güncelleştirme yalnızca tek başına Blazor WebAssembly projeler ve barındırılan Blazor çözümlerin Client
projeleri için geçerlidir.
Aşağıdaki özellikleri güncelleştirin:
<Project Sdk="Microsoft.NET.Sdk.BlazorWebAssembly">
<PropertyGroup>
- <TargetFramework>netstandard2.1</TargetFramework>
- <RazorLangVersion>3.0</RazorLangVersion>
+ <TargetFramework>net5.0</TargetFramework>
</PropertyGroup>
Microsoft.AspNetCore.Components.WebAssembly.Build için paket başvurularını kaldırın:
<ItemGroup>
- <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.Build" Version="3.2.1" PrivateAssets="all" />
Diğer paketleri en son sürümlerine güncelleştirin. En son sürümler NuGet.org bulunabilir.
içindewwwroot/index.html
, bileşeni olarak ayarlanmış bir <div>
öğeye yükleyen App
öğeyi id
app
değiştirin:
-<app>Loading...</app>
+<div id="app">Loading...</div>
içinde Program.Main
(Program.cs
içinde, öğesine bir karma #
ekleyerek css seçicisine başvuruyu <app>
değiştirin:
-builder.RootComponents.Add<App>("app");
+builder.RootComponents.Add<App>("#app");
(Program.cs
) içinde Program.Main
, varsa varsayılan geçici HttpClient
kaydı kapsamlı olarak değiştirin:
-builder.Services.AddTransient(sp => new HttpClient
- { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
+builder.Services.AddScoped(sp => new HttpClient
+ { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) });
Barındırılan Program.Main
Client
Blazor çözümler uygulamasının (Program.cs
) içinde:
builder.HostEnvironment.BaseAddress
.-builder.Services.AddHttpClient("{APP NAMESPACE}.ServerAPI",
- client => client.BaseAddress = new Uri("https://localhost:5001"))
- .AddHttpMessageHandler<BaseAddressAuthorizationMessageHandler>();
-builder.Services.AddTransient(sp => sp.GetRequiredService<IHttpClientFactory>()
- .CreateClient("{APP NAMESPACE}.ServerAPI"));
+builder.Services.AddHttpClient("{APP NAMESPACE}.ServerAPI",
+ client => client.BaseAddress = new Uri(builder.HostEnvironment.BaseAddress))
+ .AddHttpMessageHandler<BaseAddressAuthorizationMessageHandler>();
+builder.Services.AddScoped(sp => sp.GetRequiredService<IHttpClientFactory>()
+ .CreateClient("{APP NAMESPACE}.ServerAPI"));
Önceki kodda {APP NAMESPACE}
yer tutucu, uygulamanın ad alanıdır.
Önceki Güncelleştirme ve projeler ile Blazor Server Projeleri güncelleştir Blazor WebAssembly Blazor WebAssembly bölümlerindeki yönergeleri izleyin.
Microsoft Hesapları için Microsoft Entra Id (ME-ID) kullanmak üzere Azure portalında kayıtlı tek başına Blazor WebAssembly bir uygulama için:
Uygulama için ve offline_access
kapsamları gerekiropenid
:
options.ProviderOptions.DefaultAccessTokenScopes.Add("openid");
options.ProviderOptions.DefaultAccessTokenScopes.Add("offline_access");
Azure portalı uygulama kaydı Kimlik doğrulaması dikey penceresinde:
Daha fazla bilgi için bkz . Microsoft Hesapları ile ASP.NET Core Blazor WebAssembly tek başına uygulamasının güvenliğini sağlama.
Önceki Güncelleştirme ve projeler ile Blazor Server Projeleri güncelleştir Blazor WebAssembly Blazor WebAssembly bölümlerindeki yönergeleri izleyin.
Microsoft Entra Id (ME-ID) kullanmak üzere Azure portalında kayıtlı tek başına Blazor WebAssembly bir uygulama için:
Uygulama için kapsam gerekir https://graph.microsoft.com/User.Read
:
options.ProviderOptions.DefaultAccessTokenScopes
.Add("https://graph.microsoft.com/User.Read");
Azure portalı uygulama kaydı Kimlik doğrulaması dikey penceresinde:
Daha fazla bilgi için bkz. Microsoft Entra ID ile ASP.NET Core Blazor WebAssembly tek başına uygulamasının güvenliğini sağlama.
Önceki Güncelleştirme ve projeler ile Blazor Server Projeleri güncelleştir Blazor WebAssembly Blazor WebAssembly bölümlerindeki yönergeleri izleyin.
Azure portalında kayıtlı tek başına Blazor WebAssembly bir uygulamanın Azure Active Directory (AAD) B2C'yi kullanması için:
Uygulama için ve offline_access
kapsamları gerekiropenid
:
options.ProviderOptions.DefaultAccessTokenScopes.Add("openid");
options.ProviderOptions.DefaultAccessTokenScopes.Add("offline_access");
Azure portalı uygulama kaydı Kimlik doğrulaması dikey penceresinde:
Daha fazla bilgi için bkz. Azure Active Directory B2C ile ASP.NET Core Blazor WebAssembly tek başına uygulamasının güvenliğini sağlama.
Önceki Güncelleştirme ve projeler ile Blazor Server Projeleri güncelleştir Blazor WebAssembly Blazor WebAssembly bölümlerindeki yönergeleri izleyin.
Client
Kullanıcı kimlik doğrulaması için AAD veya AAD B2C kullanan barındırılan Blazor bir çözümün uygulama kaydı, platform yapılandırması Azure Uygulaması tek sayfalı bir uygulama kullanmalıdır.
Azure portalı Client
uygulama kaydı Kimlik doğrulaması dikey penceresinde:
Daha fazla bilgi için bkz.
Önceki bölümlerde yer alan yönergeleri izleyin:
Bu makaledeki Server
genel yönergeleri izleyerek barındırılan Blazor çözümün projesini ASP.NET Core uygulaması olarak güncelleştirin.
Ayrıca, Server
Microsoft Entra ID (ME-ID) veya B2C ile istemci Blazor WebAssembly uygulamalarında kullanıcıların kimliğini doğrulayan projelerin yeni Microsoft Identity v2.0 paketlerini benimsemesi gerekir:
AAD için:
-<PackageReference Include="Microsoft.AspNetCore.Authentication.AzureAD.UI" Version="..." />
+<PackageReference Include="Microsoft.Identity.Web" Version="{VERSION}" />
+<PackageReference Include="Microsoft.Identity.Web.UI" Version="{VERSION}" />
AAD B2C için:
-<PackageReference Include="Microsoft.AspNetCore.Authentication.AzureADB2C.UI" Version="..." />
+<PackageReference Include="Microsoft.Identity.Web" Version="{VERSION}" />
+<PackageReference Include="Microsoft.Identity.Web.UI" Version="{VERSION}" />
Önceki paket başvuruları için, NuGet.org konumunda yer {VERSION}
tutucuların paket sürümlerini belirleyin:
Not
Barındırılan Blazor WebAssembly çözümdeki Server
projenin SDK'sı Microsoft.NET.Sdk.Web
kalır:
<Project Sdk="Microsoft.NET.Sdk.Web">
Daha fazla bilgi için bkz.
Uygulamayı veya çözümü .NET 5'e geçirdikten sonra, uygulamayı veya çözümü temizleyin ve yeniden oluşturun. Yeni paket başvuruları ile önbelleğe alınmış paketler arasında paket uyumsuzlukları varsa:
Komut kabuğunda aşağıdaki dotnet nuget locals
komutu yürüterek NuGet paket önbelleklerini temizleyin:
dotnet nuget locals --clear all
Uygulamayı veya çözümü temizleyin ve yeniden oluşturun.
Uygulamanız için geçerli olan güvenlik konusunun sonundaki Blazor WebAssembly Sorun giderme yönergelerini izleyin:
Tek başına Blazor WebAssembly uygulamaları:
Barındırılan Blazor WebAssembly uygulamaları:
Kimlik doğrulaması için AAD kullanan bir Blazor WebAssembly uygulamayı yükselttikten sonra, kullanıcı AAD ile oturum açtığında uygulamaya yapılan oturum açma geri çağırmasında aşağıdaki hatayı alabilirsiniz:
bilgi: Microsoft.AspNetCore.Authorization.DefaultAuthorizationService[2] Yetkilendirme başarısız oldu. Bu gereksinimler karşılanmadı: DenyAnonymousAuthorizationRequirement: Kimliği doğrulanmış bir kullanıcı gerektirir.
AAD'den oturum açma geri çağırma hatası:
unauthorized_client
AADB2C90058: The provided application is not configured to allow public clients.
Hatayı düzeltmek için:
allowPublicClient
veya true
olarak null
ayarlayın.PWA uygulamasının proje dosyasına aşağıdaki öğeyi ekleyin:
<ItemGroup>
<ServiceWorker Include="wwwroot\service-worker.js"
PublishedContent="wwwroot\service-worker.published.js" />
</ItemGroup>
Projenin wwwroot/index.html
(Blazor WebAssembly) veya Pages/_Host.cshtml
(Blazor Server) önceki 5.0 önizleme sürümünden bir scoped.styles.css
stil sayfası <link>
öğesi içeriyorsa, etiketini kaldırın<link>
:
-<link href="_framework/scoped.styles.css/" rel="stylesheet" />
ASP.NET Core 5.0'ın bir parçası olarak sunulan yeni API'lerden veya özelliklerden yararlanmak için sınıf kitaplıklarını (RCL' ler) geçirin Razor .
Bileşenleri hedefleyen bir RCL'yi güncelleştirmek için:
Proje dosyasında aşağıdaki özellikleri güncelleştirin:
<Project Sdk="Microsoft.NET.Sdk.Razor">
<PropertyGroup>
- <TargetFramework>netstandard2.0</TargetFramework>
- <RazorLangVersion>3.0</RazorLangVersion>
+ <TargetFramework>net5.0</TargetFramework>
</PropertyGroup>
Diğer paketleri en son sürümlerine güncelleştirin. En son sürümler NuGet.org bulunabilir.
MVC'yi hedefleyen bir RCL'yi güncelleştirmek için proje dosyasındaki aşağıdaki özellikleri güncelleştirin:
<Project Sdk="Microsoft.NET.Sdk.Razor">
<PropertyGroup>
- <TargetFramework>netcoreapp3.1</TargetFramework>
+ <TargetFramework>net5.0</TargetFramework>
<AddRazorSupportForMvc>true</AddRazorSupportForMvc>
</PropertyGroup>
Proje dosyasında her Microsoft.AspNetCore.*, Microsoft.EntityFrameworkCore.*, Microsoft.Extensions.*ve System.Net.Http.Json paket başvurusunun Version
özniteliğini 5.0.0 veya üzeri sürümlere güncelleştirin. Örneğin:
<ItemGroup>
- <PackageReference Include="Microsoft.AspNetCore.JsonPatch" Version="3.1.6" />
- <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.1.6">
- <PackageReference Include="Microsoft.Extensions.Caching.Abstractions" Version="3.1.6" />
- <PackageReference Include="System.Net.Http.Json" Version="3.2.1" />
+ <PackageReference Include="Microsoft.AspNetCore.JsonPatch" Version="5.0.0" />
+ <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="5.0.0">
+ <PackageReference Include="Microsoft.Extensions.Caching.Abstractions" Version="5.0.0" />
+ <PackageReference Include="System.Net.Http.Json" Version="5.0.0" />
</ItemGroup>
Docker kullanan uygulamalar için Dockerfile FROM
deyimlerinizi ve betiklerinizi güncelleştirin. ASP.NET Core 5.0 çalışma zamanını içeren bir temel görüntü kullanın. ASP.NET Core 3.1 ile 5.0 arasındaki aşağıdaki docker pull
komut farkını göz önünde bulundurun:
- docker pull mcr.microsoft.com/dotnet/core/aspnet:3.1
+ docker pull mcr.microsoft.com/dotnet/aspnet:5.0
Ürün adı olarak ".NET"e taşıma işleminin bir parçası olarak Docker görüntüleri depolardan mcr.microsoft.com/dotnet/core
öğesine mcr.microsoft.com/dotnet
taşındı. Daha fazla bilgi için bkz . dotnet/dotnet-docker#1939.
ASP.NET Core 3.1 ve önceki sürümlerinde değerler, DateTime
saat diliminin sunucu tarafından belirlendiği yerel saat olarak modele bağlıydı. DateTime
giriş biçimlendirmesinden (JSON) ve DateTimeOffset
değerlerden bağlanan değerler UTC saat dilimleri olarak bağlanıyordu.
ASP.NET Core 5.0 ve sonraki sürümlerinde model bağlama, değerleri UTC saat dilimiyle tutarlı bir şekilde bağlar DateTime
.
Önceki davranışı korumak için içindeki Startup.ConfigureServices
öğesini DateTimeModelBinderProvider
kaldırın:
services.AddControllersWithViews(options =>
options.ModelBinderProviders.RemoveType<DateTimeModelBinderProvider>());
Model bağlama C# 9 kayıt türleri için destek eklemek için şu şekildedir ComplexTypeModelBinderProvider :
öğesinin koleksiyondaki ModelBinderProviders
varlığını ComplexTypeModelBinderProvider
kullanan uygulamaların yeni bağlayıcı sağlayıcısına başvurması gerekir:
- var complexModelBinderProvider = options.ModelBinderProviders.OfType<ComplexTypeModelBinderProvider>();
+ var complexModelBinderProvider = options.ModelBinderProviders.OfType<ComplexObjectModelBinderProvider>();
Tek tek kullanıcı hesapları için bir seçenek içeren ASP.NET Core 3.1 şablonları için UseDatabaseErrorPagebir çağrı oluşturur. UseDatabaseErrorPage
artık kullanım dışıdır ve aşağıdaki kodda gösterildiği gibi ve UseMigrationsEndPoint
birleşimiyle AddDatabaseDeveloperPageExceptionFilter
değiştirilmelidir:
public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(
Configuration.GetConnectionString("DefaultConnection")));
+ services.AddDatabaseDeveloperPageExceptionFilter();
services.AddDefaultIdentity<IdentityUser>(options => options.SignIn.RequireConfirmedAccount = true)
.AddEntityFrameworkStores<ApplicationDbContext>();
services.AddRazorPages();
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
+ app.UseMigrationsEndPoint();
- app.UseDatabaseErrorPage();
}
else
{
app.UseExceptionHandler("/Error");
app.UseHsts();
}
Daha fazla bilgi için bu GitHub konusuna bakın.
Visual Studio yüklenirken ASP.NET Çekirdek Modülü (ANCM) seçili bir bileşen değilse veya sistemde ANCM'nin önceki bir sürümü yüklüyse, en son .NET Core Barındırma Paketi Yükleyicisi'ni (doğrudan indirme) indirin ve yükleyiciyi çalıştırın. Daha fazla bilgi için bkz . Barındırma Paketi.
Dotnet/extensions deposundaki bazı Microsoft.Extensions.*
NuGet paketlerinin dotnet/runtime'a geçirilmesiyle, dotnet/runtime ve dotnet/aspnetcore'a (aspnet/Announcements #411) dotnet/extensions içeriğini geçirme bölümünde açıklandığı gibi, geçirilen paketlerden bazılarına paketleme değişiklikleri uygulanır. Bu değişiklikler genellikle .NET API'sinde ad alanı değişiklikleriyle sonuçlanır.
5.0'a geçiş yaparken uygulama ad alanı değişikliklerine yönelik API'leri daha fazla araştırmak için .NET API tarayıcısını kullanın.
Aşağıdaki wiki sayfalarında Microsoft'un nasıl geçir yapılacağı açıklanmaktadır..Identity. ASP.NET Core 3.1'den 5.0'a web:
Aşağıdaki öğreticilerde geçiş işlemi de açıklanmaktadır:
.NET Core 3.1'den .NET 5.0'a hataya neden olan değişiklikler için bkz . Sürüm 3.1'den 5.0'a geçiş için hataya neden olan değişiklikler. ASP.NET Core ve Entity Framework Core da listeye dahil edilir.
ASP.NET Core geri bildirimi
ASP.NET Core, açık kaynak bir projedir. Geri bildirim sağlamak için bir bağlantı seçin:
Ekinlikler
31 Mar 23 - 2 Nis 23
Power BI, Fabric, SQL ve yapay zeka topluluğu tarafından yönetilen nihai etkinlik. 31 Mart - 2 Nisan. 150 ABD doları indirim için MSCUST kodu kullanın. Fiyatlar 11 Şubat'ta artış gösterir.
Bugün kaydolunEğitim
Modül
ASP.NET Core Identity çerçevesi ile bir .NET web uygulamasının güvenliğini sağlama - Training
ASP.NET Core Identity çerçevesini kullanarak .NET web uygulamasına kimlik doğrulaması ve yetkilendirme eklemeyi öğrenin.
Sertifikasyon
Microsoft Certified: Identity and Access Administrator Associate - Certifications
Demonstrate the features of Microsoft Entra ID to modernize identity solutions, implement hybrid solutions, and implement identity governance.