亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

.Net Core3 用Windows 桌面應(yīng)用開發(fā)Asp.Net Core網(wǎng)站

 更新時間:2020年01月20日 10:24:35   作者:coredx  
這篇文章主要介紹了.Net Core3 用Windows 桌面應(yīng)用開發(fā)Asp.Net Core網(wǎng)站,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

前言

曾經(jīng)在開發(fā) Asp.Net 網(wǎng)站時就在想,為什么一定要把網(wǎng)站掛到 IIS 上?網(wǎng)站項(xiàng)目的 Main 函數(shù)哪兒去了?后來才知道這個 Main 函數(shù)在 w3wp.exe 里,這也是 IIS 的主進(jìn)程。Asp.Net 網(wǎng)站的命門被 IIS 捏著,我無力改變。有時需要臨時搭建一個簡單的 Web 服務(wù)器,去網(wǎng)上一通度娘,發(fā)現(xiàn)了MyWebServer、HFS (HTTP File Server) 等簡單實(shí)用的 Web 服務(wù)器,而且它們還是桌面應(yīng)用。我就在想,什么時候能用 .Net 來開發(fā)一個桌面 Web 服務(wù)器。直到 .Net Core 3.0 誕生 ㄟ(≧◇≦)ㄏ

Asp.Net Core 網(wǎng)站本質(zhì)上是一個控制臺程序,使用 Microsoft.NET.Sdk.Web SDK 進(jìn)行開發(fā)。Windows桌面應(yīng)用是 .Net Core 3.0 新增的開發(fā)方式,使用Microsoft.NET.Sdk.WindowsDesktop SDK 開發(fā)。本來一個項(xiàng)目只能使用一個SDK,再加上這兩種應(yīng)用的特殊性,用 Microsoft.NET.Sdk 基礎(chǔ) SDK(控制臺應(yīng)用的SDK)自行使用 Nuget 引入相關(guān)包來開發(fā)會導(dǎo)致各種問題。曾經(jīng)試過網(wǎng)站應(yīng)用,編譯后會導(dǎo)致Razor引擎異常,無法正常渲染視圖。但自從 Asp.Net Core 網(wǎng)站脫離 IIS 可以自寄宿運(yùn)行,.Net Core 支持 Windows 桌面應(yīng)用開發(fā),我就夢想能把 Asp.Net Core 應(yīng)用托管到 Windows 桌面程序。C/C++ 曾經(jīng)的天下,大 .Net 也想分杯羹。

經(jīng)過一段時間的摸索,夢想終于實(shí)現(xiàn)了。在此記錄隨筆紀(jì)念,同時也分享給廣大園友。

正文

廢話不多說,先說明如何運(yùn)行項(xiàng)目。首先下載項(xiàng)目源代碼,注意是 NetCore_3.0 分支,地址:https://github.com/CoreDX9/IdentityServerDemo

確認(rèn)VS 2019 16.4.0 以上版本,安裝 .Net Core 3.1 SDK。打開解決方案,卸載如圖所示的項(xiàng)目,避免生成失敗,都是些暫時沒用的東西。

修改代碼,具體如圖所示:

還原解決方案的 Nuget 包,還原 IdentityServer 的 npm 包。在 IdentityServer 和 IdentityServerGui 上右鍵,選擇發(fā)布, 其中 IdentityServer 使用FolderProfileRelease 配置進(jìn)行發(fā)布。如果沒有問題的話稍等片刻發(fā)布成功,到解決方案根目錄找到.publish 文件夾,進(jìn)去把 IdentityServerGui\release 文件夾中的所有東西復(fù)制粘貼到IdentityServer\release 文件夾中,途中如果存在重名文件,請忽略大小時間都相同的文件,其他文件盡量選最新或最大的,除非你清楚哪個是你要的。推薦在 Win 10 下操作,或者用其他更智能的文件拷貝軟件。

到此,所有準(zhǔn)備工作已經(jīng)完成,進(jìn)去找到 IdentityServerGui.exe 雙擊運(yùn)行即可。

效果預(yù)覽

原理講解

桌面程序是一個 WPF 程序,本來是想簡單點(diǎn)用 Winform 來做的,結(jié)果 Winform 沒有設(shè)計(jì)器 (╯‵□′)╯︵┻━┻ 搞得我還現(xiàn)研究 WPF 怎么玩。關(guān)鍵在于, Asp.Net Core 網(wǎng)站實(shí)際上就是一個標(biāo)準(zhǔn)的 .Net 程序集,可以當(dāng)作類庫來引用,這里搞清楚以后剩下的事就水到渠成了。在 WPF 項(xiàng)目的依賴項(xiàng)中添加引用 Asp.Net Core 網(wǎng)站項(xiàng)目,using 命名空間,調(diào)用在 Asp.Net Core 項(xiàng)目中準(zhǔn)備好的公共方法獲取 IHost 接口對象,啟動就行。要注意 ContentRootPath 對不對,不然 css、js 會404。

嗯,原理就是這么簡單。。。來幾張截圖說明下關(guān)鍵部分吧 o(*////▽////*)q

一些注意點(diǎn):

1、在網(wǎng)站運(yùn)行中關(guān)閉主窗口會最小化到系統(tǒng)托盤圖標(biāo),雙擊圖標(biāo)恢復(fù)窗口。網(wǎng)站未運(yùn)行時就是正常退出程序。

2、發(fā)布的網(wǎng)站實(shí)際上也可以單獨(dú)運(yùn)行,雙擊 IdentityServer.exe 就行。

3、關(guān)于Https配置,具體見下圖。

4、關(guān)于網(wǎng)站日志信息,重定向輸出流,具體看圖。

5、WPF 模型綁定需要實(shí)現(xiàn)的 INotifyPropertyChanged 接口代碼由PropertyChanged.Fody 在編譯時注入。

6、注意跨線程調(diào)用UI控件的問題。

更新(2020-1-10):

請同時克隆 github 項(xiàng)目https://github.com/CoreDX9/Harmonic/tree/dev,在 IdentityServer 項(xiàng)目的依賴項(xiàng)中將Harmonic(Harmonic.csproj )項(xiàng)目引用指向您下載的位置,否則會導(dǎo)致編譯失敗。

  本文地址:https://www.cnblogs.com/coredx/p/12031514.html

  完整源代碼:Github

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論