dotnet 簡單方法在一個進程內同時跑起 WPF 和 ASP.NET Core 框架

從設計架構上,無論是 WPF 還是 ASP.NET Core 框架,都是在 dotnet 運行時上層的應用,兩個框架處於平級的結構。理論上講,兩個平級的框架只要不存在特殊的情況,都是能夠相容存在的。本文將和大家介紹一個非常簡單的方法,在一個進程內同時跑起 WPF 和 ASP.NET Core 框架

在一個進程內同時跑起 WPF 和 ASP.NET Core 框架在一些業務情況下還是一個不錯的選擇。比如以 ASP.NET Core 框架爲主,讓 WPF 作爲狀態展示的界面。比如以 WPF 爲主,讓 ASP.NET Core 框架充當應用對外接口,比如多應用之間的通訊等。更多的用法還請發揮你的想象力

只有將 WPF 更新到使用 dotnet core 版本(包含 dotnet 5 、dotnet 6 等等)即可非常簡單和 ASP.NET Core 框架在一起跑。接下來我給出一張截圖,說不定大家看到了截圖就知道了實現方式了

如上圖,我在 WPF 應用的按鈕裏面點擊的時候,啓動了 ASP.NET Core 框架

具體的實現方法是:

  1. 將 WPF 和 ASP.NET Core 分別定義爲兩個項目。或者是再多定義一個控制檯項目作爲入口項目
  2. 讓 WPF 項目引用 ASP.NET Core 項目。或者是有控制檯入口項目的情況下,讓控制檯入口項目同時引用 WPF 和 ASP.NET Core 項目
  3. 找到時機分別啓動 WPF 應用和 ASP.NET Core 主機

雖然新建了多個項目,但運行起來只有一個進程。這裏需要敲黑板,項目的數量影響的是程序集,不直接影響進程的數量

比如上圖給出的方法就是隻新建 WPF 和 ASP.NET Core 項目,接着在 WPF 項目的按鈕點擊事件裏面,調用到 ASP.NET Core 項目的 Main 靜態函數裏面,將 ASP.NET Core 的主機啓動

啓動 ASP.NET Core 的主機需要使用 Task.Run 的方式,如果不想 Task.Run 的方式,可以將 ASP.NET Core 的 Host 執行從 Run 方法換成 RunAsync 方法走異步

如此簡單的方式即可在一個進程裏面同時使用 WPF 和 ASP.NET Core 框架

本文的代碼放在githubgitee 歡迎訪問

可以通過如下方式獲取本文的源代碼,先創建一個空文件夾,接着使用命令行 cd 命令進入此空文件夾,在命令行裏面輸入以下代碼,即可獲取到本文的代碼

git init
git remote add origin https://gitee.com/lindexi/lindexi_gd.git
git pull origin 0bb1705e0118208f4134b5334ace9ee84270eb5f

以上使用的是 gitee 的源,如果 gitee 不能訪問,請替換爲 github 的源。請在命令行繼續輸入以下代碼

git remote remove origin
git remote add origin https://github.com/lindexi/lindexi_gd.git
git pull origin 0bb1705e0118208f4134b5334ace9ee84270eb5f

獲取代碼之後,進入 HefebehairHercheaconem 文件夾

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章