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

这篇具有很好参考价值的文章主要介绍了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 框架在一起跑。接下来我给出一张截图,说不定大家看到了截图就知道了实现方式了

dotnet 简单方法在一个进程内同时跑起 WPF 和 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 框架

本文的代码放在github 和 gitee 欢迎访问

可以通过如下方式获取本文的源代码,先创建一个空文件夹,接着使用命令行 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 文件夹文章来源地址https://www.toymoban.com/news/detail-858666.html

到了这里,关于dotnet 简单方法在一个进程内同时跑起 WPF 和 ASP.NET Core 框架的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [WPF]动手写一个简单的消息对话框

    消息对话框是UI界面中不可或缺的组成部分,用于给用户一些提示,警告或者询问的窗口。在WPF中,消息对话框是系统原生(user32.dll)的MessageBox,无法通过Style或者Template来修改消息对话框的外观。因此,当需要一个与应用程序主题风格一致的消息对话框时,只能自己动手造

    2024年02月05日
    浏览(43)
  • dotnet 的跨平台 UI 框架:WPF 的精神继承 | 开源日报 No.123

    Stars: 20.7k License: MIT Avalonia 是 dotnet 的跨平台 UI 框架,提供灵活的样式系统,并支持 Windows、macOS、Linux、iOS、Android 和 WebAssembly 等多种平台。它被许多人认为是 WPF 的精神继承者,为 XAML 开发人员创建跨平台应用程序提供了熟悉且现代化的开发体验。Avalonia XPF 可以使 WPF 应用在

    2024年02月03日
    浏览(50)
  • [Linux]进程控制精讲,简单实现一个shell

    目录 前言 进程创建 fork函数初识 写时拷贝 fork常见用法 fork调用失败的原因 进程终止 进程退出场景 进程退出码 查看进程退出码 退出码的含义 进程常见退出方法 exit VS _exit exit函数 _exit函数 二者的区别 return退出 进程等待 进程等待必要性 进程等待的方法 wait方法 waitpid方法

    2023年04月26日
    浏览(46)
  • Mybatis 与Mybatis-plus同时引入同一个项目中配置方法

    原项目系统中已经引入了 Mybatis 和 pagehelper ,当引入Mybatis-plus 后启动项目报错 SqlSessionFactory 错误,排查原因后为依赖冲突导致,需排除部分jar包,并修改相关配置。 1.mybatis中 2. pagehelper 中 3.引入Mybatis-plus 4.引入autoconfigure 5. 修改配置文件,将原 mybatis 改成 mybatis-plus。根据自

    2024年02月16日
    浏览(55)
  • 【Linux】教你用进程替换制作一个简单的Shell解释器

    本章的代码可以访问这里获取。 由于程序代码是一体的,本章在分开讲解各部分的实现时,代码可能有些跳跃,建议在讲解各部分实现后看一下源代码方便理解程序。 我们想要制作一个简单的 Shell 解释器,需要先观察Shell是怎么运行的,根据 Shell 的运行状态我们再去进行模

    2024年02月02日
    浏览(63)
  • vue同时请求多个接口,接口请求完成后在处理下一个方法(Promise.all用法)

    Promise .all()方法用于将多个 Promise 实例,包装成一个新的 Promise 实例。 在处理多个异步处理时非常有用,比如说一个页面上需要等两个或多个ajax的数据回来以后才正常显示。 需要特别注意的是,Promise.all获得的成功结果的数组里面的数据顺序和Promise.all接收到的数组顺序是一

    2024年02月13日
    浏览(49)
  • Windows上获取父进程的一种简单方法

    测试平台:win10 专业版 21H2 1904 编译平台:gcc version 12.2.0 (x86_64-posix-seh-rev2, Built by MinGW-W64 project) 代码如下:

    2024年02月11日
    浏览(41)
  • dotnet 推荐一个使用 Json 直接路由通讯的 IPC 库

    本文将和大家推荐一个我所在团队开源的本机多进程通讯 IPC 库,此 IPC 支持使用 JSON 格式进行直接路由通讯,具有使用方便,稳定性高,性能好的优点 这是我所在的团队在 GitHub 上使用最友好的 MIT 协议完全开源的项目:https://github.com/dotnet-campus/dotnetCampus.Ipc 这个开源项目开

    2024年02月08日
    浏览(33)
  • 三.net core 自动化发布到docker (创建一个dotnet工程发布)

    输入名称(建议不要带“+”这类的字符),选择自由风格的类型(红框标注的),点击确定     用于测试,下面选项基本没有选择-配置代码地址     选择执行shell     #!/bin/bash # 获取短版本号 GITHASH=`git rev-parse --short HEAD` echo ---------------开始编译程序...------------------ echo ----

    2024年02月12日
    浏览(42)
  • WPF+ASP.NET SignalR实现简易在线聊天功能

    在实际业务中,当后台数据发生变化,客户端能够实时的收到通知,而不是由用户主动的进行页面刷新才能查看,这将是一个非常人性化的设计。有没有那么一种场景,后台数据明明已经发生变化了,前台却因为没有及时刷新,而导致页面显示的数据与实际存在差异,从而造

    2024年02月07日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包