.Net Core3 用Windows 桌面应用开发Asp.Net Core网站
并创新:利用.NET Core 3在Windows桌面应用上构建Asp.Net Core网站的新体验
文章前传:
一直以来,开发者们在构建Asp.Net网站时往往被束缚在IIS上。当我们梦想在Windows桌面上运行Web服务器时,总觉得像是在一个封闭的圈子里打转。随着.NET Core 3的诞生,这一局面得以改变。本文将带您领略如何利用.NET Core 3在Windows桌面应用上构建Asp.Net Core网站的新体验。
一、开篇介绍
在开发Asp.Net网站时,我们曾梦想有一个自由的Web服务器,像桌面应用一样在Windows桌面上运行。现在,借助.NET Core 3的强力支持,这一梦想得以实现。本文将介绍如何使用.NET Core 3进行Windows桌面应用开发,并构建一个Asp.Net Core网站。
二、项目概述
本文介绍的项目是一个结合了Asp.Net Core网站和Windows桌面应用的创新项目。我们将使用Microsoft.NET.Sdk.WindowsDesk SDK进行Windows桌面应用开发,同时使用Microsoft.NET.Sdk.Web SDK进行Asp.Net Core网站的开发。我们将展示如何将这两个项目结合起来,创建一个可在Windows桌面上运行的Asp.Net Core网站。
三、项目设置与实施
下载项目源代码(注意选择NetCore_3.0分支)。确保使用VS 2019 16.4.0以上版本,并安装.NET Core 3.1 SDK。打开解决方案后,按照以下步骤进行操作:
1. 卸载暂时没用的项目,避免生成失败。
2. 修改代码,具体步骤如图所示。
3. 还原解决方案的Nuget包以及IdentityServer的npm包。
4. 发布IdentityServer和IdentityServerGui项目,将发布的内容合并到一个文件夹中。
5. 双击运行IdentityServerGui.exe,即可看到效果。
四、原理讲解
这个项目的关键在于理解Asp.Net Core网站实际上是一个标准的.Net程序集,可以像类库一样被引用。我们通过创建一个WPF桌面程序,引用Asp.Net Core网站项目,使用命名空间调用Asp.Net Core项目中准备好的公共方法获取IHost接口对象,从而启动Web服务器。需要注意的是,要确保ContentRootPath设置正确,以避免css、js文件出现404错误。
五、项目意义与展望
此项目的实现,不仅让我们能够在Windows桌面上运行Asp.Net Core网站,还为开发者们提供了一种全新的开发体验。我们可以想象,在未来的开发中,结合C/C++的优势和.NET的强大功能,将能创造出更多激动人心的应用。
相信读者已经对利用.NET Core 3在Windows桌面应用上构建Asp.Net Core网站有了初步的了解。这是一个充满创新与挑战的新领域,我们期待更多的开发者加入进来,共同和开发更多的可能性。说明关键部分截图的内容要求如下:
一、网站运行细节说明
1. 主窗口与托盘图标互动展示:当网站运行中关闭主窗口时,它会最小化到系统托盘图标。用户只需双击图标,即可恢复窗口显示。若网站未运行,则表示正常退出程序。这一部分的截图应展示主窗口、托盘图标以及它们之间的交互动作。
2. IdentityServer.exe的独立运行方式:网站中的IdentityServer项目实际上也可以作为一个单独的应用程序运行。用户只需双击IdentityServer.exe即可启动。相应的截图应展示IdentityServer.exe的运行界面和操作过程。
二、配置与日志细节展示
1. Https配置图示:关于Https的配置细节,可以通过一张流程图或示意图来展示配置步骤和注意事项。截图应清晰地展示Https的配置选项、参数设置以及关键步骤。
2. 网站日志信息重定向输出流说明:关于网站日志信息的重定向输出流的具体实现和配置,可以通过一张图示来直观展示日志信息的流向和处理过程。截图应包含日志信息输出、处理的关键环节和配置设置。
三、技术细节与注意事项提醒
1. WPF模型绑定的实现方式:WPF模型绑定需要实现INotifyPropertyChanged接口,而PropertyChanged.Fody将在编译时自动注入相关代码。相关截图应展示WPF模型绑定的代码实现、INotifyPropertyChanged接口的定义以及PropertyChanged.Fody的作用和使用方式。
2. 跨线程调用UI控件的注意事项:在软件开发过程中,跨线程调用UI控件可能会导致程序出错或崩溃。需要特别注意。相应的截图应展示跨线程调用的场景、可能存在的问题以及解决方案。
四、更新提示与资源链接
1. 更新提示(2020-1-10):提示用户克隆github项目,并在IdentityServer项目的依赖项中将Harmonic项目引用指向下载的位置,以避免编译失败。截图应展示更新内容的详细说明、操作步骤以及资源链接。
以上即为对文章关键部分的截图要求。在截图时,请确保清晰展示每个部分的内容,以便读者能够准确理解文章所描述的技术细节和操作过程。保持截图的真实性和清晰度,以便更好地传达文章的信息和意图。
长沙网站设计
- .Net Core3 用Windows 桌面应用开发Asp.Net Core网站
- Javascript实现通过选择周数显示开始日和结束日的
- Ajax 对象 包含post和get两种异步传输方式
- 利用Node.JS实现邮件发送功能
- jQuery实现仿百度首页滑动伸缩展开的添加服务效
- 中国无线电运动协会
- javascript循环链表之约瑟夫环的实现方法
- Vue.js轮播图走马灯代码实例(全)
- Yii 实现数据加密和解密的示例代码
- 批量复制数据
- Mysql中新建用户及授权的方法分享
- JS实现Select的option上下移动的方法
- ACCESS数据库的压缩,备份,还原,下载,删除的实现
- 如何使用router-link对象方式传递参数?
- 猫和老鼠四川版全集
- Web安全之XSS攻击与防御小结