本人新手一枚,在校研一學生,初學.Net三四個月,之前只做過一點vue,用了一點element-ui做管理平臺,也沒有涉及后端的東西,導師所給的方向為ASP.Net Core等一系列微軟技術的方向,讓自己探索新技術,于是就開始了Blazor的不斷摸索,以建立一個ERP系統進行嘗試,最近.Net5潮流涌動,我也想著將現有的初期專案遷移至.Net5.雖然說按照微軟的檔案進行ASP.Net Core3.1到Net 5.0的遷移還是很快的,但其中還是遇到了一些小問題,在此記錄一下自己遷移程序,(沒有系統地學習過.Net和C#,只是用到啥看了點啥,有不到之處還希望多多包涵哈哈哈~)
首先放一下我的專案結構,采用的是Blazor wasm,ASP.Net Core Host的形式,(對于DDD架構還沒有怎么理解清楚,這邊用了基于作業單元的倉儲模式,領域驅動的設計思想設計的底層結構,采用依賴注入的方式使用)

接下來講一下我的具體遷移,
一、首先按照官方檔案的要求對專案框架進行更新,所有專案都改為.Net5的框架,對于.Net Core的類別庫直接在.csproj中更改net core為net 5.

對于Client則作如下更改,將sdk由Microsoft.NET.Sdk.Web改為Microsoft.NET.Sdk.BlazorWebAssembly,同時框架改為.net 5,

Server端的更改起初我也將sdk改為Microsoft.NET.Sdk.BlazorWebAssembly,但build時遇到一些錯誤,后來也查閱了一些資料,保留sdk,將TargetFramework改為net5,同時添加代碼<UseBlazorWebAssembly>true</UseBlazorWebAssembly>,經過測驗后發現沒有問題,
框架屬性更改完成后還需要檢查包Microsoft.AspNetCore.Components.WebAssembly.Build,刪去該包的參考,
二、專案檔案修改,
在Client的wwwroot/index.html中將app標簽改為id為app的div盒子形式,同時在Client的Program.cs中更改元素的參考builder.RootComponents.Add<App>("#app"); HttpClient的注冊由于我本來就是設定的全域Scope注入,并沒有另作修改,若有.razor.css的css隔離則需要在wwwroot/index.html引入<link href="https://www.cnblogs.com/ajiongchen/p/{ASSEMBLY NAME}.Client.styles.css" rel="stylesheet" />
三、Nuget包的更新
其實這邊只要把原有包都升到相應.net5對應的5.0版本即可,但如果使用了EF Core以及EF Core的Identity認證,則需要先安裝Microsoft.EntityFrameworkCore.Relation的包(在此之前我沒有用到),另外還有Microsoft.AspNetCore.Identity.EntityFrameworkCore包,(tips:這邊由于我使用的是Mysql資料庫,使用包Pomelo.EntityFrameworkCore.MySql,我更新到了其預覽版5.0,對于資料庫的配置函式發生了更改,出現了報錯,傳參不再是原先string的連接字串
services.AddDbContext<ApplicationDbContext>(options => options.UseMySql(Configuration.GetConnectionString("DefaultConnection")) .UseQueryTrackingBehavior(QueryTrackingBehavior.NoTracking) .UseLoggerFactory(log));
不清楚怎么更改,于是我又把包Pomelo.EntityFrameworkCore.MySql降回了3.2.4版本,相應的Microsoft.EntityFrameworkCore.Relation和Microsoft.AspNetCore.Identity.EntityFrameworkCore包都降回了原先的3.1.10版本,因為我的領域層以及Server端都使用了相應的包,所以我做了兩次處理,)
四、專案遷移成功!
相比原先的net core3.1來說,.net5還真是在體驗上有了明顯的改進,最大的體驗改善在于對于頁面的渲染變快,而且控制元件雙向系結也感覺上變快了一點,雖然頁面中多組件多系結還是會有卡頓,但這應該是我設計的問題,將其分散開來應該會好得多,用的組件是Ant Design Blazor,偷偷在大佬群里面學習都不敢吱聲哈哈,新的東西太多,還沒有入門,有錯誤之處還希望多多指教,要努力學習趕快吸收!加油呀哈哈哈!!!

轉載請註明出處,本文鏈接:https://www.uj5u.com/net/237843.html
標籤:.NET Core
