NET应用UI框架DevExpress XAF v24.2新功能预览 - 跨平台性增强

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

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

本文记录了一些DevExpress XAF v24.2相关功能,新版本预计将在12月初发布,本系列文章将详细介绍抢先体验预览版本!您将看到,目前DevExpress XAF v24.2相关的重点领域仍然是Blazor、实体框架核心和安全性。

如果您有一个Universal Subscription,请随时下载此 Early Access Preview (EAP) build,如果您拥有一个激活的DXperience Subscription,并希望了解更多有关跨平台.NET App UI (XAF)或Web API Service,您可以通过登录到DevExpress下载管理器并在试用模式下安装此EAP构建来探索本文描述的功能。

跨平台的增强

安全增强 - Microsoft Entra ID、谷歌和其他身份验证提供商的Passkeys和MFA支持

DevExpress XAF UI (Blazor 和 WinForms)和Web API Service都提供了一个“一键”解决方案,将现代OAuth2身份验证提供程序与本地单点登录(SSO)(如Microsoft Entra SSO)、多因素身份验证(MFA)和其他安全功能结合起来,这适用于EF Core和XPO ORM。有关这方面的其他信息,请参阅Active Directory and OAuth2 Authentication Providers in ASP.NET Core Blazor Applications及相关文档。

Passkeys使用您的设备锁(例如您的指纹,面部,pin或图案)登录到您的Microsoft,谷歌或其他身份验证提供商帐户。例如,Microsoft Authenticator可用于登录任何Microsoft Entra ID帐户,而无需使用密码。Microsoft Authenticator使用基于密钥的身份验证来启用绑定到设备的用户凭证(其中设备使用PIN或生物识别技术),Windows Hello for Business使用了类似的技术。

在v24.2中,DevExpress XAF UI (Blazor和WinForms)和Web API Service将支持所有与Passkey相关的使用场景,这包括恢复忘记的密码、暂时阻止访问帐户、帐户恢复、人脸识别登录、PIN、指纹、OTP、QR码,或各种身份验证应用程序,使用中间层应用程序服务器或WinForms中的更简单配置。

EF Core计算字段

在EF Core中为服务器端计算字段实现了一个更简单的解决方案。请注意,在Server和InstantFeedback模式下,您可以通过计算属性对List View数据进行排序、分组或筛选。使用DevExpress.ExpressApp.DC.CalculatedAttributeDevExpress.ExpressApp.DC.PersistentAliasAttribute来指示是否计算属性的值。下面的代码片段演示了如何创建一个带有计算属性的类:

using DevExpress.ExpressApp.DC;public class Product : BaseObject {// ...public virtual decimal Quantity { get; set; }public virtual decimal Price { get; set; }[PersistentAlias("Quantity * Price")]// or [Calculated("Quantity * Price")]public decimal TotalPrice {get { return EvaluateAlias; }}}

EF Core软删除

v24.2支持EF Core软删除(又名XPO的延迟删除),用于DevExpress XAF UI和Web API Service驱动的应用程序。

对于软删除或延迟对象删除,ORM将对象标记为已删除,而不会立即从数据库中物理地删除它们。此技术有助于在删除由其他实体引用的对象时避免数据库异常。

我们还为现有数据库表创建了一个自动转换器(以添加新的GCRecord列)。

EF Core过滤功能现在与XPO ORM相当

DevExpress v24.2引入了XAF中EF Core的计算属性,这一变化需要方便地访问自定义IsExactType和IsInstanceOfType函数,而不管应用程序中使用的ORM是什么。

为了实现奇偶性,我们将定制的IsExactType和IsInstanceOfType函数从DevExpress.Xpo程序集移动到DevExpress.Data程序集。

这个变化允许这个功能在EF Core中工作,您可以在EF Core项目中使用以下功能:Upcasting和Free Joins,这使得EF Core的过滤功能与今天的XPO ORM没有什么不同。

XPO DateOnly/TimeOnly支持

在v24.2中,XAF在.NET应用程序的XPO连接提供程序中支持DateOnly/TimeOnly,这种增强有利于XAF/Reporting/Dashboards和其他产品,因为XPO是内部数据访问代码的核心。作为其中的一部分,我们还更改了SQL类型Date和Time的列映射。

性能增强

DevExpress XAF v24.2优化了所有支持平台上的图像/图标加载操作,我们注意到应用程序启动时间的改进高达2秒(或者在具有大量操作的复杂应用程序中更多)。

在内部,我们也在安全对象和成员权限(EF Core和XPO ORM)和计算字段(仅EF Core)中使用了CriteriaCompiler而不是CriteriaEvaluator。对于特定的使用场景,这将计算时间和内存分配减少了一半。与此同时,您可以看看我们实验室的一些截图(这些变化还没有包括在这个EAP中):

审计追踪增强

DevExpress XAF现在自动从基于XPO的应用程序审计跟踪中排除所有非持久性属性,如果非持久性属性的setter方法包含广泛的逻辑,则此增强可以提高性能。

要更新现有的应用程序,请设置静态ObjectAuditProcessor. ExcludeNonPersistentFromAudit属性设置为true。

可用性增强

v24.2中添加了新的扩展防范,使得使用XafApplication和IObjectSpaceFactory创建新的对象空间变得更加容易。

// v24.1.3 and earliervar os = Application.CreateObjectSpace(typeof(Person));// v24.1.5+ and v24.2+var os = Application.CreateObjectSpace;

如果您在ASP. NET Core 应用程序 (Web API Service控制器、自定义Razor组件等)中使用了IObjectSpaceFactory,请考虑v24.2中的以下小的突破性变化:T1254577 - INonSecuredObjectSpaceFactory and IObjectSpaceFactory classes were moved to the DevExpress.ExpressApp namespace。

来源:小胡科技天地

相关推荐