ASPからNET Core2.2~3.0これらの問題に直面する可能性があります.
5744 ワード
ASPからNET Core2.2~3.0これらの問題に直面する可能性があります。
休みの間、マイクロソフトの公式文書を再学習して基礎知識を固めたいと思っています.マイクロソフトが現在発表されていることは知っています.NET Core3.0の3番目のプレビュー版で、同時に我が家のパソコンにもvs 2019がインストールされています.So,vs 2019+.NET Core3.0 Contoso UniversityというWEBアプリをフォローしてみましたが、3.0ベースで操作している間にいくつかの問題があったので、マイクロソフトの「ASP.NET Coreから2.2から3.0プレビュー版2へ移行」というドキュメントを見て、今日出会った問題について整理して、皆さんに役に立つことを望んでいます.もちろん、マイクロソフトの公式ドキュメントを直接読んで見ることもできます.しかし、私は公式の説明を読むとき、いつも翻訳が正確ではなく、読みにくいと感じています.だから、ここでは自分の理解が公式のドキュメントに対する補充です.
作者:依楽祝原文リンク:https://www.cnblogs.com/yilezhu/p/10661161.html
私が直面した問題
ASP.NET Core2.0時代、プロジェクトにEF Coreサポートを追加するには、対応するデータベースドライバパッケージをインストールする必要がありました.チュートリアルではSQL Server、関連するドライバパッケージMicrosoftを使用します.EntityFrameworkCore.SqlServer. このパッケージはMicrosoftに含まれています.AspNetCore.Appメタパケットでは、Microsoft.AspNetCore.App
パケットに対するパケット参照が適用される場合、パケットを参照する必要はありません.2.0のテンプレートプロジェクトは、Mcrosoft.AspNetCore.App
というパッケージを自動的にロードします.しかし3.0にはこのMcrosoft.AspNetCore.App
というパッケージがなく、モジュール化がさらに徹底しています!必要なEF関連のパッケージは、自分で参照する必要があります.
2.0リットル3.0アップグレードガイド
今日出会った問題について、ASPを整理します.NET Coreは2.0から3.0にアップグレードされたアップグレードガイドで、皆さんに役立つことを望んでいます.もちろん、マイクロソフトの公式ドキュメントを直接読むこともできます.しかし、私は公式の説明を読むとき、いつも翻訳が正確ではなく、読みにくいと感じています.だから、ここでは自分の理解が公式のドキュメントに対する補充です.
プロジェクトファイルの更新
netcoreapp3.0
:netcoreapp3.0
.
要素の残りのMicrosoft.AspNetCore.*
パッケージを現在のプレビュー版に更新する(例えば、3.0.0-preview 3.19128.7).対応する3.0バージョンのパッケージがない場合は、3.0でパッケージが破棄される可能性があります.これらの多くは、以前はMicrosoft.AspNetCore.App
に属しており、SQLサーバのEFに関する上記の問題のように、単独で参照する必要のないパッケージです.3.0で生成されなくなったパッケージのリストについては、aspnet/ASpNetCore#3756を参照してください.Microsoft.EntityFrameworkCore
およびSystem.Data.SqlClient
は、Microsoft.AspNetCore.App
の一部ではない.Microsoft.aspnetcore.appのプログラムセットリストは未定で、3.0 RTMまでに変更されます.InProcess
の場合は、
要素を削除して変更することもできます.Json.NETサポート
ASPの向上としてNET Coreが共有するフレームワークの一部、Json.NETはASP.からNET Core共有フレームから削除します.
ASP.でNET Core 3.0プロジェクトではJsonを使用する.NET:
ConfigureServices
呼び出しAddNewtonsoftJson()
.services.AddMvc()
.AddNewtonsoftJson();
Newtonsoftのカスタマイズは
AddNewtonsoftJson
に設定できます.services.AddMvc()
.AddNewtonsoftJson(options =>
options.SerializerSettings.ContractResolver =
new CamelCasePropertyNamesContractResolver());
WebHostBuilderの置き換え
ASPを使用する.NET Core 3.0テンプレート汎用ホスト.以前のバージョンではWebホストが使用されていました.以下のコードは生成ASPを示す.NET Core 3.0テンプレート
Program
クラス:public class Program
{
public static void Main(string[] args)
{
CreateHostBuilder(args).Build().Run();
}
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args)
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup();
});
}
以下のコードプレゼンテーションテンプレートはASPを生成する.NET Core 2.2
Program
類:public class Program
{
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().Run();
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup();
}
IWebHostBuilderは3.0に保持され、
webBuilder
のコード例に示されています.WebHostBuilderは、今後のリリースで廃棄され、HostBuilder
に置き換えられます.WebHostBuilder
からHostBuilder
への最も顕著な変化は依存関係注入(DI)である.HostBuilder
では、IConfigurationおよびIHostingEnvironmentのみがStartup
のコンストラクタに注入されます.HostBuilder
DI制約:SignalRコードの更新
AddJsonProtocol
を呼び出すと、AddNewtonsoftJsonProtocol
に置き換えられます.services.AddSignalR(...)
.AddJsonProtocol(...) // 2.2
services.AddSignalR(...)
.AddNewtonsoftJsonProtocol(...) // 3.0
connection = new HubConnectionBuilder()
.WithUrl(...)
.AddJsonProtocol(...) // 2.2
.Build()
connection = new HubConnectionBuilder()
.WithUrl(...)
.AddNewtonsoftJsonProtocol(...) // 3.0
.Build()
ランタイムコンパイルの有効化を選択
3.0では、ランタイムコンパイルはオプションです.ランタイムコンパイルを有効にするには、ASP.を参照してください.NET CoreのRazorファイルをコンパイルします.
まとめ
マイクロソフトはASPを実現するために努力しているような気がします.NET Coreのモジュール化により,様々な依存性を低減し,パッケージをより小さくする.同時にASP.NET Coreも完璧になったので、みんなはASPを使う時だ.NET Coreです.また、皆さんがASPを体験するためならNET Core3.0なら今からでもいいですが、生産環境で使うなら公式版のリリースを待つほうがいいでしょう.
posted @
2019-04-06 11:21依楽祝読書(
...) コメント(
...) コレクションの編集