界面开发框架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方面必要的调整描述更为重要。

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

相关推荐
o0向阳而生0o8 小时前
23、.NET和C#有什么区别?
开发语言·c#·.net
江沉晚呤时1 天前
从零开始学习 Lucene.Net:.NET Core 中的全文搜索与索引管理
开发语言·c#·.net·mybatis·.netcore·lucene
界面开发小八哥1 天前
界面控件DevExpress WPF v25.1新功能预览 - 文档处理类功能升级
c#·wpf·界面控件·devexpress·ui开发
Eiceblue1 天前
通过C# 将Excel表格转换为图片(JPG/ PNG)
visualstudio·c#·.net·excel
许泽宇的技术分享3 天前
.NET MCP 文档
人工智能·.net
可观测性用观测云3 天前
.NET Core 服务实现监控可观测性最佳实践
.net
追逐时光者3 天前
一个开源的 Blazor 跨平台入门级实战项目
后端·.net
o0向阳而生0o4 天前
21、c#中“?”的用途
c#·.net