首页 > 系统相关 >dotnet 简单方法在一个进程内同时跑起 WPF 和 ASP.NET Core 框架

dotnet 简单方法在一个进程内同时跑起 WPF 和 ASP.NET Core 框架

时间:2024-04-26 09:22:54浏览次数:21  
标签:Core ASP 框架 git dotnet NET WPF

从设计架构上,无论是 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 文件夹

标签:Core,ASP,框架,git,dotnet,NET,WPF
From: https://www.cnblogs.com/lindexi/p/17856591.html

相关文章

  • 一步步教你在 Windows 上构建 dotnet 系应用的 UOS 软件安装包
    本文将详细指导大家如何逐步为dotnet系列应用创建满足UOS统信系统软件安装包的要求。在这里,我们所说的dotnet系列应用是指那些能够在Linux平台上构建UI框架的应用,包括但不限于CPF应用、UNO应用、Avalonia应用等基于dotnet系的自发布自包含的能力,可以将dotnet系......
  • dotnet C# 使用 Win32 函数获取用户下载文件夹的路径的方法
    大家都知道,在dotnet里面的可以使用Environment.GetFolderPath方法配合Environment.SpecialFolder枚举列出当前运行环境下的一些特殊文件夹。然而SpecialFolder枚举不包含对Download下载文件夹的枚举值,如咱需要获取用户当前的下载文件夹,需要使用Win32方法来辅助获取在......
  • 【Azure Event Hub】解决Event Hub SDK出现无法识别 com.azure.core.client.traits.To
    问题描述使用ServiceBusSDK编写消费端应用时,遇见了错误信息:SDK版本  <dependency>   <groupId>com.azure</groupId>   <artifactId>azure-messaging-eventhubs</artifactId>   <version>5.4.0</version>  </dependency>......
  • 开发日志:Kylin麒麟操作系统部署ASP.NET CORE
    需求场景:   我需要部署的项目是在Windows上开发的,目标框架为.netcore6.0因此我们需要先在kylin上部署项目运行所需要的环境。借助百度词条,先看看Kylin是什么: 服务器资源: 查看系统版本 cat/etc/kylin-release  cat/proc/version   需要用到的工具:S......
  • zuul.core解析
    zuul.core解析这里以zuul1.2.3为例子(1.x最后一个版本)IZuulFilterzuul的核心实现,主要是filter函数功能booleanshouldFilter();用于判断是否需要执行该filterObjectrun();执行filter的处理逻辑ZuulFilterIZuulFilter的抽象实现,主要函数有以下几个:函......
  • 数据库设计 外键设计 关联表查询 linq efcore
    数据库的设计实体之间的关系图实体EleOrderRowItem.cspublicclassEleOrderRowItem:EleEntity{publicstring?Xxx{get;set;}//外键:一个rowItem属于一个rowpubliclongRowId{get;set;}publicrequiredEleOrderRowRow{get;set;}}......
  • ef core 如何关联查询外键表
    在EFCore中,如果查询查询外键表的内容实体publicclassBlog{publicintBlogId{get;set;}publicstringUrl{get;set;}publicList<Post>Posts{get;set;}//集合导航属性publicList<Comment>Comments{get;set;}//集合导航属性}......
  • 使用 Visual Studio 调试 .NET 和 ASP.NET Core 源代码 | 学习地址
    使用VisualStudio调试.NET和ASP.NETCore源代码|MicrosoftLearn新建自签名证书|Microsoft学习AuthenticationHttpContextExtensions.ChallengeAsync方法(Microsoft.AspNetCore.Authentication)|MicrosoftLearn.netcore地址:  ASP.NETCore入门|Microsoft......
  • dotnet 修复 GitHub Action 构建过程提示 NETSDK1127 错误
    本文告诉大家,如何修复GitHubAction构建过程提示errorNETSDK1127:ThetargetingpackMicrosoft.WindowsDesktop.App.WindowsFormsisnotinstalled.Pleaserestoreandtryagain.错误在进行GitHubAction构建时,如果自己的项目是一个旧项目,采用旧的.NETSDK版本,将可......
  • dotnet 如何将 Microsoft.Maui.Graphics 对接到 UNO 框架
    本文将和大家介绍如何将Microsoft.Maui.Graphics对接到UNO框架里面。一旦完成Microsoft.Maui.Graphics对接,即可让UNO框架复用现有的许多绘制的基础设施和现有基础库,且可以更进一步与MAUI打通众所周知,在UNO里面有大量的项目类型都是基于Skia作为底层渲染引擎构建出......