界面开发框架DevExpress XAF实践:如何在Blazor项目中集成.NET Aspire?(一)

DevExpress XAF是一款强大的现代应用程序框架,允许同时开发ASP.NET和WinForms。DevExpress XAF采用模块化设计,开发人员可以选择内建模块,也可以自行创建,从而以更快的速度和比开发人员当前更强有力的方式创建应用程序。

.NET Aspire是一组工具、模板和包,用于构建可观察的、可生产的应用程序。DevExpress XAF团队花费了一些时间考虑Aspire的功能,试图找到最好的集成点,让XAF开发人员能够利用Aspire开箱即用的业务流程特性。该团队认为Aspire是一个潜在的"一键解决方案",是XAF解决方案向导中一些模板的更现代的替代品,它可以实现以下一些目标:

  • 简化冗长且容易出错的设置过程,就像在Linux上的Azure应用服务和Nginx支持文档中描述的那样,以及其他流行的web服务器配置。
  • 为开发和部署环境提供所需的数据库和其他应用程序资源(例如,使用Docker设置)。

团队希望能够为客户节省大量的时间,无论他们是否使用XAF!目前,由于Microsoft仍在快速开发Aspire,这在很大程度上是一个移动的目标。与此同时,一些功能已经被广泛使用,可以认为是稳定的,所以现在我们决定发布一些细节,来帮助您在自己的XAF项目中使用Aspire工具。

点击获取DevExpress XAF v24.1正式版下载

了解更多关于.NET开发者的DevExpress应用框架(XAF)

DevExpress XAF是一个以开发人员为中心的.NET应用程序框架,旨在构建功能完整的受Office启发的业务线应用程序(通过实体框架或XPO ORM利用DevExpress Blazor和WinForms UI组件)和强大的Web API服务。

将Aspire添加到XAF Blazor项目

为了说明让Aspire使用XAF所需的具体步骤,从解决方案向导在Visual Studio 2022中创建的一个新的XAF解决方案开始。先用Web UI (ASP. NET Core Blazor)配置了这个项目,然后使用向导默认选择的所有标准选项。如果您更喜欢Visual Studio Code,可以使用最新的DevExpress模板工具包创建一个新的XAF项目。

在解决方案中,将两个项目的目标框架更改为 .NET 9.0,这可能不是绝对必要的,但是因为.NET Aspire在这个时候发展很快,而且最新的版本实际上已经是9.1版本了,所以把演示解决方案也更新到最新版本是有意义的。

最后添加了一个名为DataItem的业务对象,这样UI就可以显示一些东西,并且可以验证应用程序是否做了它应该做的事情。

准备好测试解决方案后,添加.NET Aspire支持的工作似乎很简单:在Blazor项目中有一个调用.*Aspire Orchestrator Support...*上下文菜单项。

点击了那个条目,在随后的对话框中确认了所有的标准设置,然后出现了一个错误:

注意:由于XAF Blazor应用程序中使用的启动代码与Aspire预期的启动代码在结构上存在差异,因此目前仅部分应用了这些修改。Visual Studio中的Aspire工具有非常具体的要求,至少目前是这样,所以通常需要一些额外的工作才能使其正确工作。

这是现在必须为XAF v24.2项目模板应用的修复列表:

  • 修改新添加的项目ServiceDefaults中的Extensions.cs文件,来考虑ASP. NET Core应用程序的旧式启动结构。
  • 删除向导莫名其妙地放到Module项目中Extensions.cs的额外副本,.NET 8.0的.NET Aspire向导没有做到这一点,但.NET 9的做到了。
  • 修改Blazor应用程序项目的启动逻辑,因为向导没有自动添加任何必要的调用。
  • 解决缺乏自动端点检测的问题,这是启动代码结构的结果。

此外,还将所有软件包更新到最新版本。

注意:当然也可以更新Blazor应用程序的启动结构来遵循Aspire,而不是走所概述的相反的道路。XAF团队计划相应地更新模板和示例,但这是一个有很多步骤和陷阱的过程,特别是对于现有的项目。由于许多XAF解决方案是由您和我们在旧模板的基础上创建的,因此认为现在对Aspire方面必要的调整描述更为重要。

未完待续,下期继续......

相关推荐
IT规划师6 小时前
MQTT实战 - 用了8年MQTT,我为什么还要重新系统啃一遍(一)
物联网·.net
邹肖桥12 小时前
使用S7.net动态库对西门子Plc S7-1200进行通讯操作
.net
chingho16 小时前
GitHub上这10个C#项目,不仅实用,还怪好玩的
c#·github·.net·开源项目
学以智用17 小时前
Visual Studio 模板详解
.net
波力海苔夹心脆6753 天前
C# 机器视觉实战:单相机引导机械手精准贴合,从拍照、偏差计算(平移+旋转)到坐标补偿全解
开发语言·经验分享·数码相机·c#·视觉检测·.net
慧都小妮子3 天前
Stimulsoft 2026.4 发布:Markdown 组件、桑基图与 .NET 11 支持
.net·数据可视化·stimulsoft·版本更新·报表控件·桑基图·.net 11
波力海苔夹心脆6754 天前
C# 视觉检测实战:PLC 按钮触发 VisionPro 检测,OK 亮灯 / NG 灭灯(西门子 PLC,含界面显示与图片存档)
开发语言·经验分享·c#·自动化·视觉检测·.net
hez20104 天前
一行代码在 .NET 项目里启用 Satori GC
c#·.net·.net core·gc·clr
QUDONG_biubiubiu4 天前
.NET Runtime 6.0/7.0/8.0/9.0下载修复教程,软件打不开这样解决
.net·net runtime下载·net运行库修复·net runtime安装
宝桥南山4 天前
.NET 11 - 尝试创建一下AGUIServer和AGUIClient(基于新版.NET SDK for AG-UI)
microsoft·ai·微软·c#·aigc·.net