最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

.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í)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

前言

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

Asp.Net Core 網(wǎng)站本質(zhì)上是一個控制臺程序,使用 Microsoft.NET.Sdk.Web SDK 進行開發(fā)。Windows桌面應(yīng)用是 .Net Core 3.0 新增的開發(fā)方式,使用Microsoft.NET.Sdk.WindowsDesktop SDK 開發(fā)。本來一個項目只能使用一個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 可以自寄宿運行,.Net Core 支持 Windows 桌面應(yīng)用開發(fā),我就夢想能把 Asp.Net Core 應(yīng)用托管到 Windows 桌面程序。C/C++ 曾經(jīng)的天下,大 .Net 也想分杯羹。

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

正文

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

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

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

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

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

效果預(yù)覽

原理講解

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

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

一些注意點:

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

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

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

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

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

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

更新(2020-1-10):

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

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

  完整源代碼:Github

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

相關(guān)文章

最新評論

准格尔旗| 隆回县| 红安县| 桂阳县| 政和县| 拉孜县| 弥勒县| 富顺县| 锡林浩特市| 扶风县| 涡阳县| 黔南| 隆昌县| 新巴尔虎右旗| 镇安县| 望都县| 乐都县| 青州市| 中山市| 阿尔山市| 郧西县| 惠来县| 确山县| 迁西县| 彝良县| 通辽市| 武鸣县| 台东市| 姜堰市| 广饶县| 稻城县| 交口县| 诸暨市| 奉贤区| 澳门| 青阳县| 博湖县| 海门市| 江门市| 东乡族自治县| 永城市|