我们非常自豪地宣布,面向.NET和Visual Studio开发人员的获奖软件开发平台DevExpress Universal v23.2发布啦。v23.2拥有众多新产品和数十种极具影响力的功能,可以让您无限制、无折衷地构建自己的最佳产品。无论是桌面、网络还是移动世界,DevExpress Universal 都能让您提供直观的解决方案,全面应对各种使用场景。
探索我们的最新功能(v23.2)(本文解析内容标记:******)
常规功能
支持 .NET 8
非 Windows 开发
用户界面本地化
支持 NuGet v3
剪贴板访问策略
Windows 桌面控件
WinForms
WPF
VCL
WEB 控件
Angular、React、Vue、jQuery
Blazor
ASP.NET Core
企业和服务器工具
报告
商业智能仪表板
办公文件 API
移动组件
.net maui(免费)
框架与生产力
XAF - 跨平台 .NET 应用程序用户界面 ******
.NET 应用程序安全与 Web API(免费)
CodeRush (免费)
------------------------------------------------------------------------------------------------------------------
XAF - 跨平台 .NET 应用程序用户界面 v23.2
常见增强功能
Blazor UI 增强功能
安全性增强
常见增强功能
支持 .NET 8
XAF Blazor/WinForms UI 和 DevExpress Web API 服务现在支持 .NET 8。
.NET标准2支持结束
随着我们的下一次重大更新(v23.2,定于 2023 年 12 月发布),我们的程序集将不再针对此目标构建。
为直接的非 Windows 开发提供 #DevExpress 绘图库支持
我们在 XAF Blazor/WinForms UI 和 Web API 服务中取消了 System.Drawing.Common API 引用。这一改变使我们的跨平台库可以在 Linux、Mac、Windows、Android、iOS、.NET 7、.NET 8 和未来目标框架中正常工作。这一变更还简化了新 UI 平台的未来开发和部署,如 .NET MAUI 和 Blazor WebAssembly 与 .NET8、9、10 等。
用于 Blazor 和 WinForms 的多租户模块 - 正式发布
多租户模块于 2023 年 6 月作为社区技术预览版 (CTP) 首次推出。该模块可帮助开发人员创建多租户或 SaaS 就绪的 XAF Blazor 和 WinForms 应用程序(.NET 6+),这些应用程序以单个主机数据库和每个租户一个数据库为目标。要集成这一功能,您只需编写几行声明性代码,而无需编写数百行代码。
我们的 v23.2 重大更新标志着 DevExpress 多租户模块的首次正式发布。第一个版本支持直接的 CRUD 使用场景,并包括以下功能:
支持 XPO ORM(v23.1 仅支持 EF Core)。
身份验证: 使用电子邮件/OAuth2 账户(如 Microsoft Entra ID 或 Google)和密码登录(域会自动解析租户及其存储)。
租户隔离: 具有多个数据库的多租户应用程序(每个租户一个数据库)。
创建数据库: 应用程序会在运行时自动创建租户数据库和模式(如果数据库不存在)。

预构建代码和项目错误诊断
我们在 v23.2.2+ 中为使用项目转换器(破坏性更改)的新的和现有 XAF .NET Framework 项目引入了 XAF/XPO 错误诊断(作为 DevExpress.ExpressApp.CodeAnalysis NuGet 包的一部分提供)。该增强功能可节省您在 Visual Studio 中的时间,或使用 CI/CD 工作流验证您的构建质量。
EF Core 中的 PostgreSQL 和 MySQL 的 #MARS 支持
我们现在支持 PostreSQL、MySql 和其他原生不支持 MARS 的数据库提供商的多活动结果集 (MARS)。我们的拦截器允许连接到这些数据库提供商的 EF Core 应用程序在单个数据库连接上执行多个查询批次。
增强 Blazor UI
网格列表编辑器增强功能
我们的 DxGridListEditor 现在支持以下功能:
网格标题和行的上下文菜单(就像 WinForms/WebForms 的对应功能一样)。例如,列选择器、隐藏列、按列分组、显示自动筛选行、筛选编辑器或重置视图设置命令可在网格标题的上下文菜单中使用。网格行具有新建、克隆、删除、导出到和其他菜单项。
自动筛选行中的枚举图像。
为列表视图中的参考/查找属性添加超链接(以便更快地打开相关记录的详细表单)。
基于就地/网格行的操作。文档
双击可从 ListView 打开 DetailView。文档
网格高度现在设置为 100%。此更改删除了外部垂直滚动条(现在可以使用本地网格功能进行垂直滚动)。

日程安排模块 - 正式发布
Blazor 调度模块于 2023 年 6 月作为社区技术预览版 (CTP) 首次推出。我们的v23.2更新标志着它的正式发布,并包括以下增强功能:
提高了大型数据集的性能。
简化状态和标签编辑器定制。
增强了递归编辑器,并为大多数常用任务提供了新文档(例如,如何自定义日程安排器约会、约会映射、访问约会的底层业务对象、过滤资源等)。
支持受保护内容

增强查找属性编辑器
我们改进了查找属性编辑器,以更好地应对以下使用场景:
根据单个(或多个)字段快速搜索数据 - 就像 XAF Web 表单一样。为了实现这一功能,我们的查找编辑器包含一个 "搜索 "按钮,该按钮会显示一个单独的 "查找 "窗口,其中包含标准数据网格和搜索控件。该查找窗口还允许您使用标准的新建操作创建新记录。
不受任何限制地使用 EF Core 和 XPO ORM 的所有标准语言功能。与简单的组合框不同,查找窗口包含标准数据网格和所有相关功能,包括服务器模式。
使用超链接打开相关记录(当前选定的查找值)的完整详细表单。对于不想在单独窗口中查看和编辑相关详细信息的用户(目前由 "编辑 "按钮提供),该功能很有帮助。
链接对话框的用户体验/用户界面。在自动模式下,无论 LookupSmallCollectionItemCount 大小,这些对话框都会显示所有记录。在搜索模式下,会显示一条有用的信息。该信息指示用户搜索相关记录。

主-详细模式(列表视图)中的分割器
分割视图 "现在会显示一个分割器。当 IModelListView.MasterDetailMode 为 ListViewAndDetailView 时,用户可使用分割器调整并排主视图和详细视图的大小。
分割器的位置保存在应用程序模型的 IModelListViewSplitLayout.ViewsOrder 属性中(启用安全系统后,最终用户设置默认保存在数据库中)。

弹出窗口增强功能
我们的弹出式 DetailView 支持以下功能:
保存和新建命令。
在同一页面显示多个弹出窗口。
拖动和调整弹出窗口的大小。

支持热重载
XAF Blazor 应用程序现在支持热重载,这是 Visual Studio 调试器的一项功能。常用场景包括
修改自定义Razor组件内的标记或逻辑;
修改视图控制器/动作的方法,如执行事件处理程序。
热重载(Hot Reload)会立即反映应用程序用户界面中的变化。这在调试时节省了时间并提高了工作效率,因为不再需要重启应用程序。
注意:当整个应用程序结构发生变化或 XafApplication 需要设置/重启时,热重载将不起作用。这包括更改 Startup.cs、Module.cs、BlazorApplication.cs、XAFML、JSON 和其他配置或资源文件中的代码,添加/删除/修改 ORM 业务类和 XAF 控制器的结构。有关详细信息,请参阅 Microsoft 文档: 不支持的代码更改。
其他可用性改进
修改了 ImmediatePostData 属性行为,以便 XAF Blazor 复制 XAF 的 WinForms UI。
支持使用 DataSourceProperty 属性的 UsedProperties 参数更新和过滤依赖/级联查找编辑器(在以前的版本中,您必须使用控制器在代码中刷新这些编辑器)。
在代码中绕过列表和属性编辑器的适配器和访问控制选项。
例如 DxGridListEditor.GridModel vs DxGridListEditor.GetGridAdapter().GridModel
教程 - 将 XAF 应用程序部署到 Azure、Windows 和 Linux
我们准备了全面的分步指南,帮助您将 ASP.NET Core Blazor Server XAF 应用程序托管和发布到 Azure 应用程序服务和 Internet 信息服务(IIS):
将 ASP.NET Core Blazor Server 应用程序部署到 Azure 应用程序服务
将 ASP.NET Core Blazor Server 应用程序部署到 IIS
使用 Nginx 在 Linux 上部署 ASP.NET Core Blazor 服务器应用程序
部署故障排除指南
安全性增强
在 WinForms UI 中使用 #OAuth2 身份验证提供程序
XAF WinForms UI 中的安全模块现在支持 Windows 和 Azure Active Directory、Microsoft 365、Google、GitHub 和其他 OAuth2 身份验证提供程序。登录表单会根据身份验证设置自动渲染 UI 控件。

XAF Web 表单用户界面 - 支持内容安全策略 (CSP)
XAF 的 ASP.NET Web 表单用户界面支持内容安全策略 (CSP)。CSP 可帮助开发人员自动检测和减轻特定的安全风险,包括跨站脚本 (XSS) 和数据注入攻击。
简化参考属性的安全配置
我们使保护 FileData/MediaDataObject 引用属性(和其他业务对象)变得更容易,这些属性在容器业务类型中被链接(例如,简历和 PortfolioFileData 类具有 FileData 引用属性类型)。如果您想对不同业务类型中的引用属性进行不同的访问控制,现在可以避免安全权限中复杂的自由加入标准。
增强审计跟踪和模型差异模块的数据安全性
具有中间层安全性的 XAF 审计跟踪和模型差异模块现在可在应用程序服务器端运行。在服务器上而不是在客户端上审计数据可增强数据保护和由 XPO 支持的 XAF UI 应用程序的整体安全状况(基于 EF Core 的应用程序已原生支持此功能)。
具有 2 层安全性(集成模式)的 XAF 审计跟踪和模型差异模块不再需要其服务业务类型(AuditDataItemPersistent 和 ModelDifferenceXXX)的宽类型权限。您只需使用 UserId 属性添加对象权限即可,如下所示:
C#
defaultRole.AddObjectPermission<ModelDifference>(SecurityOperations.ReadWriteAccess,
"UserId = ToStr(CurrentUserId())", SecurityPermissionState.Allow);
defaultRole.AddObjectPermissionFromLambda<AuditDataItemPersistent>(SecurityOperations.Read,
"UserObject.Key = ToStr(CurrentUserId())", SecurityPermissionState.Allow);
解决方案向导为审计事件和模型差异生成更新的权限代码,以防止未经授权的数据访问(管理员可完全访问所有数据)。
"暴力 "攻击保护
用于 Blazor 和 WinForms 的 XAF UI 以及 Web API 服务包含内置的 "暴力 "攻击保护。您的应用程序可以通过多次猜测用户密码来防止未经授权的登录和数据访问尝试。您可以在应用程序用户类中实现 ISecurityUserLockout 接口,并在设置中配置登录尝试失败的最大次数。

默认情况下从日志文件中删除敏感数据
我们修改了输出到审计日志的记录结构,以排除敏感数据。
渝公网安备50010702505508