﻿<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="https://community.devexpress.com/feed-stylesheets/rss.xsl" media="screen"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dx="https://www.devexpress.com/" xmlns:a10="http://www.w3.org/2005/Atom" version="2.0">
  <channel>
    <title>XAF Team Blog</title>
    <link>https://community.devexpress.com/Blogs/xaf/default.aspx</link>
    <description>Low-Code .NET Application Development for Desktop and the Web. When time to market matters, XAF delivers. XAF is an ORM-based .NET Application Framework designed to help you deliver line-of-business apps in the shortest possible time (low-code, RAD). XAF seamlessly integrates award-winning DevExpress UI controls and ORM libraries (Entity Framework or XPO) so you can create feature-rich and highly interactive WinForms and ASP.NET (Blazor or Web Forms) apps with ease.</description>
    <language>en-US</language>
    <item>
      <guid isPermaLink="false">bd716303-653c-428d-8b8a-a7d998cde032:388274</guid>
      <link>https://community.devexpress.com/Blogs/xaf/archive/2026/03/03/xaf-cross-platform-net-app-ui-and-web-api-service-june-2026-roadmap-v26-1.aspx</link>
      <category domain="https://community.devexpress.com/Tags/.NET">.NET</category>
      <category domain="https://community.devexpress.com/Tags/.NET+10">.NET 10</category>
      <category domain="https://community.devexpress.com/Tags/.NET+8">.NET 8</category>
      <category domain="https://community.devexpress.com/Tags/.NET+9">.NET 9</category>
      <category domain="https://community.devexpress.com/Tags/.net+core">.net core</category>
      <category domain="https://community.devexpress.com/Tags/2026">2026</category>
      <category domain="https://community.devexpress.com/Tags/asp.net+Core">asp.net Core</category>
      <category domain="https://community.devexpress.com/Tags/blazor">blazor</category>
      <category domain="https://community.devexpress.com/Tags/EF+Core">EF Core</category>
      <category domain="https://community.devexpress.com/Tags/Entity+Framework">Entity Framework</category>
      <category domain="https://community.devexpress.com/Tags/future">future</category>
      <category domain="https://community.devexpress.com/Tags/important+changes">important changes</category>
      <category domain="https://community.devexpress.com/Tags/roadmap">roadmap</category>
      <category domain="https://community.devexpress.com/Tags/v26.1">v26.1</category>
      <category domain="https://community.devexpress.com/Tags/web+api">web api</category>
      <category domain="https://community.devexpress.com/Tags/WinForms">WinForms</category>
      <category domain="https://community.devexpress.com/Tags/XAF">XAF</category>
      <title>XAF (Cross-Platform .NET App UI &amp; Web API Service) — June 2026 Roadmap (v26.1)</title>
      <description>&lt;p&gt;Thank you for choosing&amp;nbsp;&lt;a href="https://www.devexpress.com/products/net/application_framework/"&gt;XAF (Cross-Platform .NET App UI &amp;amp; Web API Service)&lt;/a&gt;&amp;nbsp;for your software development needs. This blog post outlines some of our XAF-related development plans for the first half of 2026 (v26.1, set for release in June 2026).&lt;/p&gt;&lt;p&gt;First, if you have not heard of XAF or are new to the DevExpress product line, XAF is a developer-centric .NET application framework&amp;nbsp;designed to build feature-complete Office-inspired line-of-business apps (leveraging DevExpress Blazor and WinForms UI components via Entity Framework or XPO ORM). Feel free to&amp;nbsp;&lt;a href="https://www.devexpress.com/support/demos/#xaf"&gt;review our XAF demos&lt;/a&gt;&amp;nbsp;and&amp;nbsp;&lt;a href="https://www.devexpress.com/products/net/application_framework/xaf-considerations-for-newcomers.xml"&gt;compare our implementation with other software&lt;/a&gt;&amp;nbsp;low-code, no-code (LCNC) and traditional development methodologies.&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&lt;div class="Note"&gt;The information contained within this blog post details our current/projected development plans. Please note that this information is being shared for INFORMATIONAL PURPOSES ONLY and does not represent a binding commitment on the part of Developer Express Inc. This roadmap and the features/products listed within it are subject to change. You should not rely on or use this information to help make a purchase decision about Developer Express Inc products.&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;Content Security Policy Enhancements&lt;/h2&gt;&lt;p&gt;Together with our Blazor development team, we will eliminate the need to use the following content security policy (CSP) requirement:&amp;nbsp;style-src: &amp;#39;unsafe-inline&amp;#39;. For additional information in this regard please&amp;nbsp;review&amp;nbsp;&lt;a href="https://docs.devexpress.com/eXpressAppFramework/404448/security-considerations/content-security-policy-in-xaf-blazor-apps" target="_blank"&gt;Content Security Policy (CSP) in XAF Blazor Apps&lt;/a&gt;.&lt;/p&gt;&lt;h2&gt;Template Kit Enhancements&lt;/h2&gt;&lt;p&gt;We will add the following security and usability-related enhancements for newly created XAF projects via our&amp;nbsp;&lt;a href="https://docs.devexpress.com/eXpressAppFramework/405447/installation-upgrade-version-history/visual-studio-integration/template-kit" target="_blank"&gt;new Template Kit&lt;/a&gt;:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Select multiple&amp;nbsp;&lt;a href="https://docs.devexpress.com/eXpressAppFramework/404691/security-considerations/general-security-considerations#security-tiers" target="_blank"&gt;Middle Tier Security&lt;/a&gt;-based startup projects;&lt;/li&gt;&lt;li&gt;Enforce the Middle Tier Security option by default;&lt;/li&gt;&lt;li&gt;&lt;span&gt;Migrate to the minimal API/simplified Blazor project format with no Startup.cs file (makes&amp;nbsp;&lt;a href="https://docs.devexpress.com/eXpressAppFramework/403362/deployment/asp-net-core-blazor/deployment-recommendations-net-core#net-aspire-integration-for-deployment-and-development-environments" target="_blank"&gt;.NET Aspire integration&lt;/a&gt; much easier).&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Entity Framework Core 10  for Data Access&lt;/h2&gt;&lt;p&gt;We expect to ship official EF Core 10&amp;nbsp;support in our v26.1 release cycle &lt;span&gt;(for our XAF Blazor/WinForms UI&amp;nbsp;and&amp;nbsp;Web API Service)&lt;/span&gt;. EF Core 10&amp;nbsp;is the latest version of Entity Framework.&amp;nbsp;&lt;span&gt;For early testing, EF Core 10 support is already available in&amp;nbsp;&lt;/span&gt;&lt;strong&gt;v25.2.5+&lt;/strong&gt;&lt;span&gt;.&lt;/span&gt;&amp;nbsp;&lt;span style="color:#505050;"&gt;We also updated our EF Core 10 vs XPO&amp;nbsp;&lt;/span&gt;&lt;a href="https://github.com/DevExpress-Examples/XAF_Security_E4908/tree/25.2.5%2B/Benchmarks" rel="nofollow"&gt;performance benchmarks&lt;/a&gt;&lt;span style="color:#505050;"&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p style="color:#505050;"&gt;Our &lt;a href="https://docs.devexpress.com/eXpressAppFramework/405447/installation-upgrade-version-history/visual-studio-integration/template-kit" target="_blank"&gt;new Template Kit&lt;/a&gt; also uses EF Core 10 when .NET 10 is selected. &amp;nbsp;Our&amp;nbsp;MainDemo.NET.EFCore will also use EF Core 10 and .NET 10 in v26.1. NOTE: .NET 10 requires Visual Studio 2026, which is yet to be adopted by most users, so we have not done this for v25.2.&lt;/p&gt;&lt;p&gt;While EF Core 10&amp;nbsp;offers numerous advantages over its predecessor (performance and customization included), it also introduced a series of&amp;nbsp;&lt;a href="https://learn.microsoft.com/en-us/ef/core/what-is-new/ef-core-10.0/breaking-changes" target="_blank"&gt;breaking changes&lt;/a&gt;&amp;nbsp;that we needed to address.&amp;nbsp;&lt;span&gt;Not all EF Core database connection providers ship EF Core 10-compatible NuGet packages as of this post&amp;nbsp;&lt;/span&gt;(like&amp;nbsp;Pomelo.EntityFrameworkCore.MySql).&amp;nbsp;&lt;span&gt;XAF&amp;#39;s&amp;nbsp;Web API Service also uses older&amp;nbsp;Swashbuckle.AspNetCore&amp;nbsp;package versions with .NET 10.&lt;/span&gt;&lt;/p&gt;&lt;h2&gt;DateTimeOffset Type Support&amp;nbsp;for EF Core and XPO&lt;/h2&gt;&lt;p&gt;&lt;span&gt;Our dev team will implement the core in DevExpress.Data, DevExpress.Xpo and related XAF libraries&amp;nbsp;(similar to &lt;a href="https://www.devexpress.com/subscriptions/new-2024-1.xml#devexpress-dateonly-timeonly-support" target="_blank"&gt;what we did&lt;/a&gt; for DateOnly/TimeOnly in DataController, Server Mode data sources, Criteria Language, etc.).&amp;nbsp;&lt;/span&gt;Based on this core, our&amp;nbsp;data-aware UI controls (such as Data Grid, Tree List, Date Editors) for Blazor and other UI&amp;nbsp;platforms will be able to do the remaining work.&lt;/p&gt;&lt;p&gt;&lt;span&gt;If all goes according to plan, by v26.2 we will be able to support the DateTimeOffset data model properties in key XAF&amp;nbsp;List and Property Editors. This  synergy&amp;nbsp;will simplify&amp;nbsp;multiple customer use-cases where application users are spread across different time zones.&lt;/span&gt;​&lt;/p&gt;&lt;h2&gt;XAF Blazor Report Designer Enhancements&lt;/h2&gt;&lt;p&gt;We will use ViewDataSource by default when creating a new report. We will also make it easier to customize XAF data source settings&amp;nbsp;&lt;span&gt;(data type, sorting, filtering, etc.)&lt;/span&gt; in the runtime Report Designer.&lt;/p&gt;&lt;img src="https://community.devexpress.com/blogs/xaf/image_12.png" alt=""&gt;&lt;h2&gt; Filter Builder Enhancements and Pivot Grid Integration&lt;/h2&gt;&lt;p&gt;With v26.1, we will replace our existing JS-based filter editor with &lt;a href="https://www.devexpress.com/subscriptions/whats-new/#new-blazor-filter-builder-ctp" target="_blank"&gt;the new DevExpress Blazor Filter Builder&lt;/a&gt;. &lt;span&gt;The DevExpress Blazor Filter Builder&amp;nbsp;offers&amp;nbsp;&lt;/span&gt;&lt;a href="https://docs.devexpress.com/eXpressAppFramework/402956/localization/localize-an-xaf-application#localize-reports-and-filter-editor-in-aspnet-core-blazor-applications" target="_blank"&gt;simpler&amp;nbsp;localization&lt;/a&gt;&lt;span&gt;, better performance, and native Blazor theme/palette support. This change&amp;nbsp;will also reduce maintenance costs for the XAF team. The following Filter Builder&amp;nbsp;features are critical for XAF integration:&lt;/span&gt;&amp;nbsp;collection operations,&amp;nbsp;plain criteria text input/validation, good performance with complex data model structures.&lt;/p&gt;&lt;p&gt;In addition, we will improve XAF&amp;#39;s WinForms Filter Editor when using advanced XAF and ORM-specific criteria functions (&lt;a href="https://docs.devexpress.com/CoreLibraries/404016/devexpress-data-library/criteria-cheat-sheet#xaf-specific-criteria-features" target="_blank"&gt;Upcasting, Free Joins, etc.&lt;/a&gt;). &lt;/p&gt;&lt;p&gt;If time permits, we will also integrate&amp;nbsp;&lt;a href="https://www.devexpress.com/subscriptions/whats-new/#blazor-pivot-table" target="_blank"&gt;the DevExpress Blazor Pivot Table&lt;/a&gt;&amp;nbsp;(an early preview of&amp;nbsp;XAF&amp;#39;s DxPivotGridListEditor in v26.1). This integration is based on previous v25.2 research and close collaboration with our Blazor development&amp;nbsp;team (who made required extension points/APIs and added features important for XAF customers). If all goes according to plan, v26.2 should mark the official release of&amp;nbsp;DxPivotGridListEditor.&amp;nbsp;&lt;/p&gt;&lt;h2&gt;Built-In AI Module to Add&amp;nbsp;Smart Functions in &amp;quot;1-Click&amp;quot;&lt;/h2&gt;&lt;p&gt;If you are unfamiliar with our existing .NET&amp;nbsp;AI-powered Extensions,&amp;nbsp;please&amp;nbsp;&lt;a href="https://www.devexpress.com/products/ai-powered-extensions/" target="_blank"&gt;review these documents&lt;/a&gt;. XAF Blazor/WinForms&amp;nbsp;&lt;strong&gt;v26.1&lt;/strong&gt;&amp;nbsp;will simplify the following AI-related capabilities:&lt;/p&gt;&lt;h3&gt;Semantic or Smart Search within DevExpress Data Grids and AI Chat Integration&lt;/h3&gt;&lt;img src="https://community.devexpress.com/blogs/xaf/2026/AI_Smart_Search_Grid.jpg" alt="" style="width:2048px;height:1218px;"&gt;&lt;h3&gt;AI-Powered Smart Paste within the Detail View&amp;nbsp;Layout Control&amp;nbsp;&lt;/h3&gt;&lt;img src="https://community.devexpress.com/blogs/xaf/2026/AI_Smart_Paste.png" alt="" style="width:592px;height:320px;"&gt;&lt;h3&gt;AI-Powered Extensions in the Reporting, Filter Editor, Office (Rich Text Editor) Modules&lt;/h3&gt;&lt;img src="https://community.devexpress.com/blogs/xaf/2026/AI_Chat_Report_Designer.jpg" alt=""&gt;&lt;img src="https://community.devexpress.com/blogs/xaf/2026/AI_Smart_Text_Functions.png" alt="" style="width:605px;height:575px;"&gt;



&lt;h2&gt;Blazor List and Property Editor Enhancements&lt;/h2&gt;&lt;p&gt;We expect to migrate XAF&amp;#39;s DxGridListEditor to native Blazor DxGrid component context menus, which were added in a recent major update (much like in XAF WinForms below). &lt;/p&gt;&lt;p&gt;We will also make it easier to add custom buttons to Blazor Property Editors in code (via the new Buttons property):&lt;/p&gt;&lt;pre&gt;&lt;code class="language-csharp"&gt;private void Customize_EnumPropertyEditor(EnumPropertyEditor editor) {
    var customButtonModel = new DxEditorButtonModel() {
        Text = &amp;quot;Test&amp;quot;,
        Click = EventCallback.Factory.Create&amp;lt;MouseEventArgs&amp;gt;(this,
             (e) =&amp;gt; Application.ShowViewStrategy.ShowMessage(&amp;quot;Click!&amp;quot;))
    };
    editor.Buttons.Add(customButtonModel);
}&lt;/code&gt;&lt;/pre&gt;&lt;img src="https://community.devexpress.com/blogs/xaf/2026/Blazor_Runtime_Summary_Customization.png" alt=""&gt;&lt;h2&gt;What&amp;#39;s Next / Our Main Focus&lt;br&gt;&lt;/h2&gt;&lt;h3&gt;We Remain Focused on XAF Blazor Scalability&lt;/h3&gt;&lt;p&gt;As many of you already know &lt;a href="https://community.devexpress.com/Blogs/xaf/archive/2025/08/15/xaf-cross-platform-net-app-ui-and-web-api-service-year-end-roadmap-v25-2.aspx" target="_blank"&gt;from my mid-2025&amp;nbsp;announcement&lt;/a&gt;, &lt;strong&gt;our core focus&amp;nbsp;for the next few major release cycles will continue to be&amp;nbsp;&lt;a href="https://docs.devexpress.com/eXpressAppFramework/403362/deployment/asp-net-core-blazor/deployment-recommendations-blazor#high-load-scenarios-load-testing-and-scalability" target="_blank"&gt;scalability&lt;/a&gt;&lt;/strong&gt;&lt;strong&gt;&amp;nbsp;(number of concurrent web users). &lt;/strong&gt;At the end of&amp;nbsp;2026 (&lt;strong&gt;&lt;span style="color:#ff0000;"&gt;not yet in v25.2 or v26.1&lt;/span&gt;&lt;/strong&gt;),&amp;nbsp;we want future XAF Blazor apps and XAF core to be:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Scalable up to hundreds and even a thousand&amp;nbsp;of web users reliably and predictably.&lt;/li&gt;&lt;li&gt;Require simpler configuration&amp;nbsp;for high-load and&amp;nbsp;&lt;a href="https://docs.devexpress.com/eXpressAppFramework/404436/multitenancy" target="_blank"&gt;multi-tenancy scenarios&lt;/a&gt;&amp;nbsp;&lt;span&gt;(without Kubernetes -k8s-&amp;nbsp;or other complicated horizontal/scale out&amp;nbsp;solutions).&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Require much less compute&amp;nbsp;resources (CPU/RAM).&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span&gt;As I noted earlier, this is especially important as&amp;nbsp;&lt;/span&gt;scalable,&lt;span&gt;&amp;nbsp;&lt;/span&gt;cloud-hosted,&amp;nbsp;multi-tenant/SaaS-based apps are becoming a standard requirement&lt;span&gt;&amp;nbsp;(for both internal and public LOB deployments). Achieving desired levels of XAF Blazor scalability will certainly help customers targeting hybrid desktop apps for both Windows and non-Windows environments (Electron.NET-powered). Better&amp;nbsp;scalability will also drive the evolution of our Multi-Tenancy module (scalability&amp;nbsp;is an &amp;quot;enabler&amp;quot; to add additional&amp;nbsp;standard SaaS features later).&lt;/span&gt;&lt;/p&gt;&lt;h3&gt;&lt;span&gt;Migrate Your XAF Apps from  .NET Framework (WinForms/WebForms) to&amp;nbsp;&lt;/span&gt;.NET (WinForms/Blazor)&lt;/h3&gt;&lt;p&gt;&lt;span&gt;For this big and ambitious goal, we had to drop .NET Framework support and remove legacy APIs in v25.2. We also re-balanced our dev team internally to prioritize performance enhancements in XAF Core and Blazor UI above other features. Of course, we remain focused on security and continue to address usability and other framework-related issues (as you can see from the XAF Blazor/WinForms roadmap above).&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;To help with the&amp;nbsp;&lt;a href="https://docs.devexpress.com/eXpressAppFramework/401253/migration-to-net" target="_blank"&gt;migration to .NET from .NET Framework&lt;/a&gt; easier, we published semi-automatic converters and detailed migration guidelines (powered by AI,&amp;nbsp;Roslyn, and our Project Converter). Please let us know if there is anything we can improve in this regard for you.&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span&gt;&lt;a href="https://docs.devexpress.com/eXpressAppFramework/405736/migration-to-net/migration-from-web-forms-to-blazor" target="_blank"&gt;Migrate XAF Application from ASP.NET WebForms to ASP.NET Core Blazor&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://docs.devexpress.com/eXpressAppFramework/401264/migration-to-net/port-an-application-to-higher-version" target="_blank"&gt;Port an XAF WinForms App from .NET Framework to .NET 8+&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://docs.devexpress.com/eXpressAppFramework/405693/migration-to-net/migration-from-net-framework-in-v-25-2" target="_blank"&gt;Remove .NET Framework (WinForms / ASP.NET Web Forms) &amp;amp; Legacy .NET API&lt;/a&gt;&lt;a href="https://docs.devexpress.com/eXpressAppFramework/405693/migration-to-net/migration-from-net-framework-in-v-25-2" target="_blank"&gt;&lt;/a&gt;&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;Blazor Model Editor in Your Web Browser (Postponed)&lt;/h3&gt;&lt;p&gt;In January, we confirmed that it is technically feasible to have the same experience as in XAF WinForms Model Editor (see our Blazor prototype). While I would love to have the powerful runtime Blazor Model Editor today as much as you, we intentionally delayed it in favor of our main strategic focus (web scalability).&amp;nbsp;We&amp;#39;ll see whether we can revisit this task in our v26.2 release cycle.&lt;/p&gt;&lt;p&gt;This Application Model / UI structure customization will also require additional licensing/EULA considerations - as this powerful tool is&amp;nbsp;primarily for &amp;quot;developers&amp;quot; (application structure/logic customizations are technically considered &amp;quot;development&amp;quot; tools).&lt;/p&gt;&lt;img src="https://community.devexpress.com/blogs/xaf/2026/Blazor_Runtime_Model_Editor.jpg" alt=""&gt;&lt;h3&gt;First XAF Blazor Scalability Research Results&lt;/h3&gt;&lt;p&gt;By v26.1, we will publish the first load-testing results along with related&amp;nbsp;product enhancements (safely activated via feature flags). For example, our core dev team almost finalized planned Application Model enhancements, which will reduce memory usage and speed up critical code execution under high user load. &lt;/p&gt;&lt;p&gt;Our primary work from mid-2025 has been and still is&amp;nbsp;to:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Analyze key bottlenecks from research;&lt;/li&gt;&lt;li&gt;Prioritize the most impactful changes for target scenarios (like 500+ users);&lt;/li&gt;&lt;li&gt;Plan required code changes in XAF core and DevExpress Blazor components.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Below you can see a screenshot from our internal dashboard for a few test runs in February. The bottom chart series displays the impact on response times from one of our recent code optimizations. Of course, we must also optimize for web server memory usage, database/SQL, and many other parameters. Challenges remain, but we are sure that our final implementation will deliver positive/noticeable business impact to XAF Blazor and its users.&lt;/p&gt;&lt;img src="https://community.devexpress.com/blogs/xaf/H6C5OGC3gc.jpg" alt="" style="width:2952px;height:1460px;"&gt;&lt;h2&gt;DevExpress Blazor Component Enhancements (for XAF Blazor)&lt;/h2&gt;&lt;p&gt;Learn more:&amp;nbsp;&lt;a href="https://community.devexpress.com/Blogs/aspnet/archive/2026/02/24/blazor-june-2026-roadmap-v26-1.aspx"&gt;Blazor — June 2026 Roadmap (v26.1)&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;DevExpress WinForms Component Enhancements (for XAF WinForms)&lt;/h2&gt;&lt;p&gt;Learn more:&amp;nbsp;&lt;a href="https://community.devexpress.com/Blogs/winforms/archive/2026/02/24/winforms-june-2026-roadmap-v26-1.aspx"&gt;WinForms — June 2026 Roadmap (v26.1)&lt;/a&gt;&lt;/p&gt;&lt;h2&gt;Other DevExpress Component Enhancements (for XAF Blazor/WinForms)&lt;/h2&gt;&lt;p&gt;Learn more:&amp;nbsp;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://community.devexpress.com/Blogs/aspnet/archive/2026/01/08/devexpress-blazor-ai-chat-agent2agent-a2a-protocol-integration.aspx"&gt;DevExpress Blazor AI Chat — Agent2Agent (A2A) Protocol Integration&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://community.devexpress.com/blogs/reporting/archive/2026/02/10/reporting-amp-bi-dashboard-june-2026-roadmap-v26-1.aspx" target="_blank"&gt;Reporting &amp;amp; BI Dashboard — June 2026 Roadmap (v26.1)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://community.devexpress.com/Blogs/office/archive/2026/02/23/file-amp-document-processing-apis-june-2026-roadmap-v26-1.aspx"&gt;Office File &amp;amp; PDF Document Processing APIs — June 2026 Roadmap (v26.1)&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Your Feedback Matters&lt;/h2&gt;&lt;p&gt;As always, we welcome your feedback. Your response to the following questions will help us fine-tune/refine plans for our next major release:&lt;/p&gt;&lt;div data-survey-id="d1ba72b8-5085-47f6-bc10-5f87d31b1b1a" data-survey-auth-required="false"&gt;&lt;/div&gt;&lt;span&gt;If you have yet to review the features/capabilities introduced in our most recent major update (&lt;/span&gt;&lt;strong&gt;v25.2&lt;/strong&gt;&lt;span&gt;), please&amp;nbsp;&lt;/span&gt;&lt;a href="https://www.devexpress.com/subscriptions/whats-new/#xaf" target="_blank"&gt;visit the following webpage&lt;/a&gt;&lt;span&gt;&amp;nbsp;and let us know what you think of this release by responding to&amp;nbsp;&lt;/span&gt;&lt;a href="https://www.devexpress.com/subscriptions/whats-new/#xaf-survey" target="_blank"&gt;our online XAF v25.2 survey&lt;/a&gt;&lt;span&gt;.&lt;/span&gt;&lt;p&gt;Thanks,&lt;br&gt;Dennis Garavsky&lt;br&gt;Principal Product Manager&lt;br&gt;&lt;a href="mailto:dennis@devexpress.com" title="Email me if you have questions or suggestions"&gt;dennis@devexpress.com&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Tue, 03 Mar 2026 07:18:00 Z</pubDate>
      <dc:creator>Dennis Garavsky (DevExpress)</dc:creator>
    </item>
    <item>
      <guid isPermaLink="false">bd716303-653c-428d-8b8a-a7d998cde032:388260</guid>
      <link>https://community.devexpress.com/Blogs/xaf/archive/2025/08/15/xaf-cross-platform-net-app-ui-and-web-api-service-year-end-roadmap-v25-2.aspx</link>
      <category domain="https://community.devexpress.com/Tags/.NET">.NET</category>
      <category domain="https://community.devexpress.com/Tags/.NET+10">.NET 10</category>
      <category domain="https://community.devexpress.com/Tags/.NET+8">.NET 8</category>
      <category domain="https://community.devexpress.com/Tags/.NET+9">.NET 9</category>
      <category domain="https://community.devexpress.com/Tags/.net+core">.net core</category>
      <category domain="https://community.devexpress.com/Tags/2025">2025</category>
      <category domain="https://community.devexpress.com/Tags/asp.net+Core">asp.net Core</category>
      <category domain="https://community.devexpress.com/Tags/blazor">blazor</category>
      <category domain="https://community.devexpress.com/Tags/EF+Core">EF Core</category>
      <category domain="https://community.devexpress.com/Tags/Entity+Framework">Entity Framework</category>
      <category domain="https://community.devexpress.com/Tags/future">future</category>
      <category domain="https://community.devexpress.com/Tags/important+changes">important changes</category>
      <category domain="https://community.devexpress.com/Tags/roadmap">roadmap</category>
      <category domain="https://community.devexpress.com/Tags/v25.2">v25.2</category>
      <category domain="https://community.devexpress.com/Tags/web+api">web api</category>
      <category domain="https://community.devexpress.com/Tags/WinForms">WinForms</category>
      <category domain="https://community.devexpress.com/Tags/XAF">XAF</category>
      <title>XAF (Cross-Platform .NET App UI &amp; Web API Service) — Year-End Roadmap (v25.2)</title>
      <description>&lt;p&gt;&lt;span style="background-color:#ffff00;"&gt;&lt;strong&gt;EDIT&lt;/strong&gt;&lt;span&gt;:&amp;nbsp;&lt;/span&gt;&lt;a href="https://community.devexpress.com/Blogs/xaf/archive/2026/03/03/xaf-cross-platform-net-app-ui-and-web-api-service-june-2026-roadmap-v26-1.aspx" target="_blank"&gt;XAF v26.1 Roadmap&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;This blog post outlines some of our XAF-related development plans for the second half of 2025&amp;nbsp;(&lt;strong&gt;v25.2&lt;/strong&gt;) and beyond.&amp;nbsp;&lt;/span&gt;&lt;strong&gt;The announcement within this post is important and I don&amp;#39;t wish to minimize its impact.&amp;nbsp;&lt;/strong&gt;&lt;span&gt;My goal is to give everyone as much advance notice as possible.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&lt;div class="Note"&gt;The information contained within this blog post details our current/projected development plans. Please note that this information is being shared for INFORMATIONAL PURPOSES ONLY and does not represent a binding commitment on the part of Developer Express Inc. This roadmap and the features/products listed within it are subject to change. You should not rely on or use this information to help make a purchase decision about Developer Express Inc products.&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="blazor-ui-enhancements"&gt;XAF Blazor/WinForms UI Enhancements in v25.2 for .NET 8+&lt;/h2&gt;&lt;h3&gt;.NET 10 and Visual Studio vNext Support&lt;/h3&gt;&lt;p&gt;We plan to officially support .NET 10 after its final release&amp;nbsp;(for our XAF Blazor/WinForms UI&amp;nbsp;and&amp;nbsp;Web API Service). &lt;/p&gt;&lt;p&gt;Microsoft also&amp;nbsp;&lt;a href="https://devblogs.microsoft.com/visualstudio/visual-studio-2022-v17-14-is-now-generally-available/#delivering-new-features-in-visual-studio-even-faster" target="_blank"&gt;announced&lt;/a&gt;&amp;nbsp;the&amp;nbsp;next major version of Visual Studio, planned for release later this year. Needless to say, will introduce&amp;nbsp;support for XAF&amp;#39;s Model Editor, WinForms and&amp;nbsp;Report designers, as well as other IDE tooling/integrations.&lt;/p&gt;&lt;h3&gt;TagBox, ComboBox, Progress Bar, PDF Viewer Property Editors: Official Release/RTM&lt;/h3&gt;&lt;p&gt;&lt;span&gt;In our v25.1&amp;nbsp;release cycle, we published&amp;nbsp;&lt;/span&gt;&lt;span&gt;these new &lt;a href="https://docs.devexpress.com/eXpressAppFramework/113014/business-model-design-orm/data-types-supported-by-built-in-editors" target="_blank"&gt;Property Editors&lt;/a&gt;&lt;/span&gt;&lt;span&gt;&amp;nbsp;as a Community Technology Preview (&lt;a href="https://www.devexpress.com/aboutus/pre-release.xml" target="_blank"&gt;CTP&lt;/a&gt;) &lt;span&gt;for&amp;nbsp;&lt;/span&gt;&lt;span&gt;XAF Blazor and XAF WinForms&lt;/span&gt;.&amp;nbsp;&lt;/span&gt;In &lt;strong&gt;v25.2&lt;/strong&gt;, we will officially release these features.&lt;/p&gt;&lt;h3&gt;&lt;span&gt;Middle Tier Security for Blazor UI: Official Release/RTM&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;&lt;span&gt;Our next major update &lt;strong&gt;(&lt;/strong&gt;&lt;strong&gt;v25.2)&lt;/strong&gt;&amp;nbsp;we will also officially support &lt;a href="https://demos.devexpress.com/XAF/BlazorMainDemo" target="_blank"&gt;XAF Blazor&lt;/a&gt; UI + Middle Tier Security configuration&amp;nbsp;(for secure communication between the frontend and backend, helping to protect sensitive data and enforce stricter access controls). See Also: &lt;a href="https://docs.devexpress.com/eXpressAppFramework/404691/security-considerations/general-security-considerations#data-store-protection" target="_blank"&gt;Data Store Protection (Docs)&lt;/a&gt;&amp;nbsp;| &lt;a href="https://community.devexpress.com/Tags/access+control" target="_blank"&gt;Security-related blog articles&lt;/a&gt;.&lt;/span&gt;&lt;/p&gt;&lt;h3 id="xaf-blazor-electron-net-for-windows-and-macos-linux-desktop"&gt;Windows/macOS Desktop Support via Blazor UI &amp;amp;&amp;nbsp;Electron.NET&amp;nbsp;&lt;/h3&gt;&lt;p&gt;The previous feature&amp;nbsp;will help us publish a&amp;nbsp;GitHub example with a&amp;nbsp;new “hybrid” desktop app for Windows and macOS (powered by Electron.NET and XAF Blazor).&amp;nbsp;&lt;span&gt;In this GitHub example, an XAF Blazor app will be wrapped inside a native “web view” container for the target OS and connected to our Middle Tier application server (or database directly, if allowed).&amp;nbsp;&lt;/span&gt;Based on&amp;nbsp;user demand, we may transform this example into a Template Kit project in the future.&lt;/p&gt;&lt;p&gt;When used, XAF developers can deliver both Windows and non-Windows support when WinForms and browser-based apps do not meet client needs (&lt;a href="https://devexpress.com/kb=T1102932#781e7ba2-b038-4b83-943f-bd7c56e12216" target="_blank"&gt;a customer use-case&lt;/a&gt;). For end-users, this hybrid desktop app will feel and behave (performance-wise) no differently than Microsoft Teams, Visual Studio Code, Outlook (new), and similar hybrid apps.&amp;nbsp;&lt;span&gt;For many, this&amp;nbsp;web-based&amp;nbsp;approach can be an&amp;nbsp;alternative to native WinForms/WPF/VCL/Avalonia desktop development (&amp;quot;write once, run everywhere&amp;quot;).&lt;/span&gt;&lt;/p&gt;&lt;h3 id="fluent-theme-and-ribbon-ui-support"&gt;Fluent Themes and Icons: Official Release/RTM&lt;/h3&gt;&lt;p&gt;&lt;a href="https://community.devexpress.com/blogs/xaf/archive/2025/02/17/xaf-v25-1-june-2025-roadmap-cross-platform-net-app-ui-and-web-api-service.aspx" target="_blank"&gt;As first&amp;nbsp;announced in our v25.1 roadmap&lt;/a&gt;, we expect to officially ship Dark and Light&amp;nbsp;Fluent Themes&amp;nbsp;for XAF Blazor&amp;nbsp;&lt;strong&gt;v25.2&lt;/strong&gt;&amp;nbsp;(&lt;a href="https://www.devexpress.com/subscriptions/whats-new/#xaf-fluent-themes" target="_blank"&gt;currently in CTP&lt;/a&gt;).&amp;nbsp;We also expect to extend our SVG icon pack with more colorful XAF-specific icons (filled or outlined) to match the Fluent Theme and its dark/light palettes.&lt;/p&gt;&lt;p&gt;Fluent UI style support for XAF WinForms has been postponed until v26.1 (once we finalize related WinForms component updates in v25.2).&lt;/p&gt;&lt;h3&gt;Ribbon UI Support&lt;/h3&gt;&lt;p&gt;With XAF &lt;strong&gt;v25.2&lt;/strong&gt;, we will modify&amp;nbsp;the main menu, navigation, account component, theme switcher, and layout structure&amp;nbsp;(to mimic modern Office-inspired web apps). We will&amp;nbsp;use the Ribbon UI (instead of a simple toolbar) and combine it&amp;nbsp;with a Tabbed MDI by default (like&amp;nbsp;XAF WinForms). Our implementation will support&amp;nbsp;Ribbon UI command&amp;nbsp;merging and&amp;nbsp;better XAF Action support across both main and detail form templates (Window Controller&amp;#39;s Actions will be&amp;nbsp;processed like&amp;nbsp;its done in XAF WinForms).&lt;/p&gt;&lt;h3&gt;Configure XAF Report Data Sources within the Blazor Report Designer&lt;/h3&gt;&lt;p&gt;With our next major release,&amp;nbsp;end-users will be able to modify&amp;nbsp;ViewDataSource/CollectionDataSource&amp;nbsp;settings&amp;nbsp;&lt;span&gt;(data type, sorting, filtering, etc.)&lt;/span&gt; in the runtime Report Designer.&amp;nbsp;&lt;/p&gt;&lt;h3&gt;Research:  Blazor Filter Builder and Pivot Grid Integration&lt;/h3&gt;&lt;p&gt;We hope to replace our existing JS-based filter editor with &lt;a href="https://www.devexpress.com/subscriptions/whats-new/#new-blazor-filter-builder-ctp" target="_blank"&gt;the new DevExpress Blazor Filter Builder&lt;/a&gt;&amp;nbsp;(CTP in v25.1). &lt;span&gt;The DevExpress Blazor Filter Builder&amp;nbsp;supports &lt;/span&gt;&lt;a href="https://docs.devexpress.com/eXpressAppFramework/402956/localization/localize-an-xaf-application#localize-reports-and-filter-editor-in-aspnet-core-blazor-applications" target="_blank"&gt;simpler&amp;nbsp;localization&lt;/a&gt;&lt;span&gt;, better performance, and native Blazor themes/palettes. This change&amp;nbsp;will also reduce maintenance costs for the XAF team. The following Filter Builder&amp;nbsp;features are critical for XAF integration:&lt;/span&gt;&amp;nbsp;collection operations and plain criteria text input/validation.&amp;nbsp;&lt;/p&gt;&lt;p&gt;We will also consider integrating&amp;nbsp;&lt;a href="https://www.devexpress.com/subscriptions/whats-new/#blazor-pivot-table" target="_blank"&gt;the DevExpress Blazor Pivot Table&lt;/a&gt;&amp;nbsp;(as part of the new&amp;nbsp;XAF&amp;#39;s DxPivotGridListEditor).  &lt;/p&gt;&lt;h3&gt;AI-related&amp;nbsp;Enhancements&lt;/h3&gt;&lt;p&gt;If you are unfamiliar with our existing .NET&amp;nbsp;AI-powered Extensions,&amp;nbsp;please&amp;nbsp;&lt;a href="https://www.devexpress.com/products/ai-powered-extensions/" target="_blank"&gt;review these documents&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;XAF Blazor/WinForms&amp;nbsp;&lt;strong&gt;v25.2&lt;/strong&gt;&amp;nbsp;will simplify use of&amp;nbsp;&lt;strong&gt;one or more&lt;/strong&gt;&amp;nbsp;AI-related capabilities from the following list:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Semantic or Smart Search within DevExpress Data Grids and Lookup editors.&lt;/li&gt;&lt;li&gt;Semantic or Smart Search within our Ribbon and Accordion controls.&lt;/li&gt;&lt;li&gt;AI-powered Smart Paste within DevExpress&amp;nbsp;Data Grids&amp;nbsp;and Layout controls. Smart Paste analyzes content and intelligently assigns correct values to appropriate layout fields or row cells (to transform traditional copy-and-paste operations).&lt;/li&gt;&lt;li&gt;AI Chat integration (including&amp;nbsp;a project template).&lt;/li&gt;&lt;li&gt;Easier activation of AI-powered extensions in the Reporting, Filter Editor, Office (Rich Text Editor) modules.&lt;/li&gt;&lt;/ul&gt;

&lt;h2 id="accessibility"&gt;DevExpress MCP Server for AI-Powered Documentation Access&lt;/h2&gt;
&lt;p class="tags"&gt;
    &lt;span class="platform"&gt;All Platforms&lt;/span&gt;
    

    &lt;span class="development"&gt;In Development&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;We will introduce an MCP server that connects GitHub Copilot Chat, Cursor, and other MCP-compatible AI tools directly to our comprehensive documentation database. The server will provide instant access to over 300,000 help topics through natural language queries within your IDE. This will allow you and AI coding agents such as Claude Code to access current DevExpress documentation directly within the AI assistant&amp;#39;s context. Learn more:&amp;nbsp;&lt;a href="https://docs.devexpress.com/GeneralInformation/405551/help-resources/dev-express-documentation-mcp-server-configure-an-ai-powered-assistant"&gt;DevExpress Documentation MCP Server: Configure an AI-powered Assistant&lt;/a&gt;.&lt;/p&gt;&lt;img src="https://community.devexpress.com/blogs/xaf/dx-mcp-docs-assistant[1].png" alt="" style="width:1560px;height:632px;"&gt;

&lt;h2&gt;XAF v25.2+&amp;nbsp;Will No Longer Include .NET Framework Support&amp;nbsp;(WebForms &amp;amp; WinForms)&lt;/h2&gt;
&lt;h3&gt;What&lt;/h3&gt;&lt;p&gt;We will officially end WebForms &amp;amp; WinForms .NET Framework support in our&amp;nbsp;&lt;strong&gt;v25.2+ &lt;/strong&gt;release cycle.&amp;nbsp;We will focus our efforts on .NET 8+ (Blazor &amp;amp; WinForms &amp;amp; Web API Service) going forward. We will ship security and other critical fixes for v25.1.XX minor builds for&amp;nbsp;&lt;strong&gt;as long as we can&lt;/strong&gt;. Example:&amp;nbsp;we will ship XAF WebForms/WinForms v25.1.XX&amp;nbsp;for security-related updates and answer technical support questions even &lt;span&gt;when DevExpress v27.1.3 is released&amp;nbsp;&lt;/span&gt;&lt;span&gt;(and likely beyond our standard&amp;nbsp;&lt;a href="https://www.devexpress.com/support/versions.xml#supported" target="_blank"&gt;version support&amp;nbsp;policy&lt;/a&gt;)&lt;/span&gt;.&lt;/p&gt;&lt;p&gt;&lt;span&gt;We appreciate all the wonderful XAF .NET Framework-related feedback you&amp;#39;ve given us over the last 20&amp;nbsp;years.&amp;nbsp;Though cancelling a .NET Framework project&amp;nbsp;is not fun (nor does it help anyone&amp;#39;s bottom line) we are confident that this decision will be a win/win for everyone.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;We recommend XAF .NET Framework users migrate their apps to XAF Blazor/WinForms UI or Web API Service for .NET 8+. Our online docs include many migration guidelines (see&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href="https://docs.devexpress.com/eXpressAppFramework/401253/overview/net-5-support-and-migration"&gt;.NET Support and Migration&lt;/a&gt;).&amp;nbsp; The XAF team will also continue to extend&amp;nbsp;these&amp;nbsp;guidelines and help&amp;nbsp;XAF customers with migration-related questions (in the DevExpress Support Center).&lt;/p&gt;&lt;h3&gt;Why&lt;/h3&gt;&lt;p&gt;While we hoped to maintain XAF legacy WebForms &amp;amp; WinForms apps &lt;a href="https://learn.microsoft.com/en-us/lifecycle/products/microsoft-net-framework" target="_blank"&gt;as long as&amp;nbsp;.NET Framework ships with Windows&lt;/a&gt;, it is no longer realistic. Reasons include:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;strong&gt;Growing technology gap:&lt;/strong&gt;&amp;nbsp;We can no longer combine tech from 2000 (.NET Framework ASP.NET WebForms/WinForms) with a platform from 2020 (ASP.NET Core/Blazor/Web API) in the same codebase. Modern requirements for scalable, multi-tenant, and cloud-ready apps require a new XAF core/architecture.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Rising maintenance/opportunity costs:&lt;/strong&gt;&amp;nbsp;We can no longer ignore&amp;nbsp;the following maintenance/opportunity costs: use of &lt;span&gt;.NET Core/.NET Framework&amp;nbsp;&lt;/span&gt;preprocessor directives; inability to leverage DI to its full potential; inability to use&amp;nbsp;modern C# language/.NET SDK features (like Span&amp;lt;T&amp;gt;, Memory&amp;lt;T&amp;gt;, ReadOnlySequence&amp;lt;T&amp;gt;, just to name a few).&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Embracing AI-driven change:&lt;/strong&gt;&amp;nbsp;The disruption AI brings to the table for our .NET user base requires us to evolve more rapidly and pursue&amp;nbsp;non-standard solutions.&amp;nbsp;This is not feasible when .NET Framework is on board.&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;What&amp;#39;s Next/Main Focus&lt;/h3&gt;&lt;p&gt;&lt;strong&gt;To recap:&lt;/strong&gt;&amp;nbsp;we will continue enhancing XAF Blazor UI for .NET 8+ in our year-end release.&amp;nbsp;We will also maintain XAF WinForms UI for .NET 8+&lt;span&gt;.&amp;nbsp;&lt;/span&gt;We will gradually evolve XAF WinForms UI to meet modern Windows desktop standards/end-user expectations (such as Fluent UI, AI-powered functions, etc.). &lt;/p&gt;&lt;p&gt;&lt;strong&gt;Our core focus&amp;nbsp;for the next few major release cycles will be &lt;a href="https://docs.devexpress.com/eXpressAppFramework/403362/deployment/asp-net-core-blazor/deployment-recommendations-blazor#high-load-scenarios-load-testing-and-scalability" target="_blank"&gt;scalability&lt;/a&gt;&amp;nbsp;&lt;/strong&gt;(number of concurrent web users). At the end of&amp;nbsp;2026 (&lt;strong&gt;&lt;span style="color:#ff0000;"&gt;not yet in v25.2&lt;/span&gt;&lt;/strong&gt;),&amp;nbsp;we want future XAF Blazor apps and XAF core to be:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Scalable up to hundreds and even a thousand&amp;nbsp;of web users reliably and predictably.&lt;/li&gt;&lt;li&gt;Require simpler configuration&amp;nbsp;for high-load and &lt;strong&gt;&lt;a href="https://docs.devexpress.com/eXpressAppFramework/404436/multitenancy" target="_blank"&gt;multi-tenancy scenarios&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;&lt;span&gt;(without Kubernetes -k8s-&amp;nbsp;or other complicated horizontal/scale out&amp;nbsp;solutions).&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;Require much less compute&amp;nbsp;resources (CPU/RAM).&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;As I noted earlier, this is especially important as &lt;strong&gt;scalable,&lt;/strong&gt;&amp;nbsp;&lt;strong&gt;c&lt;/strong&gt;&lt;strong&gt;loud-hosted,&amp;nbsp;multi-tenant/SaaS-based apps are becoming a standard requirement&lt;/strong&gt; (for both internal and public LOB deployments). Achieving desired levels of XAF Blazor scalability will certainly help customers targeting hybrid desktop apps for both Windows and non-Windows environments (Electron.NET-powered). Better&amp;nbsp;scalability will also drive the evolution of our Multi-Tenancy module (scalability&amp;nbsp;is an &amp;quot;enabler&amp;quot; to add additional&amp;nbsp;standard SaaS features later).&lt;/p&gt;&lt;h2&gt;Other Anticipated&amp;nbsp;XAF v25.2+ Changes (.NET 8+)&lt;/h2&gt;&lt;p&gt;Focus on scalability may result  in the following:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;XAF .NET 8+&amp;nbsp;will eliminate legacy/obsolete code.&amp;nbsp;Example: legacy Domain Component interfaces (DC), SecuritySystemXXX and related security classes, not recommended for use in favor of PermissionPolicyXXX classes from 2016. Low-level API breaking changes (BC)&amp;nbsp;are also expected.&lt;/li&gt;&lt;li&gt;XAF Blazor v25.2+ core&amp;nbsp;may separate from the XAF WinForms core. Desktop and web apps are fundamentally different technically and in terms of expected user load. Think of a single-user &amp;quot;fat&amp;quot; desktop client VS&amp;nbsp;a multi-user client-server/distributed web&amp;nbsp;app. While we have always maximized the amount of cross-platform XAF code (for ourselves and XAF customers), the same compatibility may be challenging&amp;nbsp;due to differences between desktop apps/web apps.&amp;nbsp;&lt;/li&gt;&lt;li&gt;Core feature set changes in XAF .NET 8+. This includes Types Info, Application Model, Security&amp;nbsp;System and other modules (like no more WinForms PivotChart, KPI, ScriptRecorder&amp;nbsp;modules).&amp;nbsp;We will also have to limit XAF Blazor flexibility in favor of scalability/performance (likely under a feature toggle). Example: h&lt;span&gt;igh-load multi-tenant&amp;nbsp;XAF Blazor apps will enforce&amp;nbsp;&lt;/span&gt;simplified security permissions OR&amp;nbsp;&lt;span&gt;limited Application Model  layers&lt;/span&gt;&lt;span&gt;.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span&gt;As always, we will try to minimize impact on existing customers&lt;/span&gt;&amp;nbsp;with detailed migration guides or auto-update tooling, where possible.&lt;/p&gt;

&lt;h2&gt;Your Feedback Matters&lt;/h2&gt;&lt;p&gt;Your response to the following questions will help us fine-tune/refine plans for our next major release:&lt;/p&gt;&lt;div data-survey-id="f73f5840-4ae8-4b4e-8a06-aba9f632aca3" data-survey-auth-required="false"&gt;&lt;/div&gt;&lt;span&gt;If you have yet to review the features/capabilities introduced in our most recent major update (&lt;/span&gt;&lt;strong&gt;v25.1&lt;/strong&gt;&lt;span&gt;), please&amp;nbsp;&lt;/span&gt;&lt;a href="https://www.devexpress.com/subscriptions/whats-new/" target="_blank"&gt;visit the following webpage&lt;/a&gt;&lt;span&gt;&amp;nbsp;and let us know what you think of this release by responding to&amp;nbsp;&lt;/span&gt;&lt;a href="https://www.devexpress.com/subscriptions/whats-new/#xaf-survey" target="_blank"&gt;our online XAF v25.1 survey&lt;/a&gt;&lt;span&gt;.&lt;/span&gt;&lt;p&gt;Thanks,&lt;br&gt;Dennis Garavsky&lt;br&gt;Principal Product Manager&lt;br&gt;&lt;a href="mailto:dennis@devexpress.com" title="Email me if you have questions or suggestions"&gt;dennis@devexpress.com&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Fri, 15 Aug 2025 01:01:00 Z</pubDate>
      <dc:creator>Dennis Garavsky (DevExpress)</dc:creator>
    </item>
    <item>
      <guid isPermaLink="false">bd716303-653c-428d-8b8a-a7d998cde032:388243</guid>
      <link>https://community.devexpress.com/Blogs/xaf/archive/2025/04/21/xaf-cross-platform-net-app-ui-web-api-service-early-access-preview-v25-1.aspx</link>
      <category domain="https://community.devexpress.com/Tags/.NET">.NET</category>
      <category domain="https://community.devexpress.com/Tags/.net+core">.net core</category>
      <category domain="https://community.devexpress.com/Tags/2025">2025</category>
      <category domain="https://community.devexpress.com/Tags/accessibility">accessibility</category>
      <category domain="https://community.devexpress.com/Tags/asp.net+Core">asp.net Core</category>
      <category domain="https://community.devexpress.com/Tags/blazor">blazor</category>
      <category domain="https://community.devexpress.com/Tags/eap">eap</category>
      <category domain="https://community.devexpress.com/Tags/EF">EF</category>
      <category domain="https://community.devexpress.com/Tags/EF+Core">EF Core</category>
      <category domain="https://community.devexpress.com/Tags/Entity+Framework">Entity Framework</category>
      <category domain="https://community.devexpress.com/Tags/Non-Windows">Non-Windows</category>
      <category domain="https://community.devexpress.com/Tags/OData">OData</category>
      <category domain="https://community.devexpress.com/Tags/OpenAPI">OpenAPI</category>
      <category domain="https://community.devexpress.com/Tags/prerelease">prerelease</category>
      <category domain="https://community.devexpress.com/Tags/REST">REST</category>
      <category domain="https://community.devexpress.com/Tags/restful">restful</category>
      <category domain="https://community.devexpress.com/Tags/roadmap">roadmap</category>
      <category domain="https://community.devexpress.com/Tags/security">security</category>
      <category domain="https://community.devexpress.com/Tags/survey">survey</category>
      <category domain="https://community.devexpress.com/Tags/Swagger">Swagger</category>
      <category domain="https://community.devexpress.com/Tags/Usability">Usability</category>
      <category domain="https://community.devexpress.com/Tags/v25.1">v25.1</category>
      <category domain="https://community.devexpress.com/Tags/web+api">web api</category>
      <category domain="https://community.devexpress.com/Tags/XAF">XAF</category>
      <category domain="https://community.devexpress.com/Tags/XPO">XPO</category>
      <title>XAF (Cross-Platform .NET App UI &amp; Web API Service) — Early Access Preview (v25.1)</title>
      <description>&lt;p&gt;This post documents&amp;nbsp;&lt;strong&gt;a few&lt;/strong&gt;&amp;nbsp;&lt;a href="https://www.devexpress.com/products/net/application_framework/" target="_blank"&gt;XAF&lt;/a&gt;-related&amp;nbsp;features we expect to ship in early June and details what’s inside our Early Access Preview build.&amp;nbsp;As you will note below, XAF-related focus areas remain Blazor, Entity Framework&amp;nbsp;Core and Security.&amp;nbsp;&lt;strong&gt;For additional information on what you can expect in v25.1, please refer to&amp;nbsp;&lt;a href="https://community.devexpress.com/Blogs/xaf/archive/2025/02/17/xaf-v25-1-june-2025-roadmap-cross-platform-net-app-ui-and-web-api-service.aspx"&gt;our June 2025 Roadmap&lt;/a&gt;&lt;/strong&gt;&lt;span&gt;.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;If you own an active&amp;nbsp;&lt;a href="https://www.devexpress.com/subscriptions/universal.xml" target="_blank"&gt;Universal Subscription&lt;/a&gt;, feel free to download this Early Access Preview (EAP) build at your convenience. If you own an active&amp;nbsp;&lt;a href="https://www.devexpress.com/subscriptions/dxperience.xml" target="_blank"&gt;DXperience Subscription&lt;/a&gt;&amp;nbsp;and would like to learn more about our&amp;nbsp;&lt;a href="https://www.devexpress.com/products/net/application_framework/" target="_blank"&gt;Cross-Platform .NET App UI (XAF)&lt;/a&gt;&amp;nbsp;or&amp;nbsp;&lt;a href="https://www.devexpress.com/products/net/application_framework/security-web-api-service.xml" target="_blank"&gt;Web API Service&lt;/a&gt;, you can explore the features described herein by logging onto the DevExpress&amp;nbsp;&lt;a href="https://www.devexpress.com/ClientCenter/DownloadManager/" target="_blank"&gt;Download Manager&lt;/a&gt;&amp;nbsp;and installing this EAP build in trial mode. Once you do, please tell us whether these new features address your business needs. Your feedback will help us fine-tune our implementation before official launch.&lt;/p&gt;&lt;img src="https://community.devexpress.com/blogs/xaf/image_9.png" alt=""&gt;If you are using a trial and want to try these preview&amp;nbsp;features today, you can purchase a&amp;nbsp;&lt;a href="https://devexpress.com/buy"&gt;DevExpress Universal license online&lt;/a&gt;&amp;nbsp;(this will give you access to the early access preview build). If you own a non-Universal subscription and are ready to upgrade, email us at&amp;nbsp;&lt;a href="mailto:clientservices@devexpress.com"&gt;clientservices@devexpress.com&lt;/a&gt;&amp;nbsp;for upgrade pricing.&lt;h2&gt;ASP.NET Core Blazor UI&lt;/h2&gt;

&lt;h3&gt;Grid List Editor Enhancements &lt;/h3&gt;
&lt;p&gt;The &lt;a href="http://docs.devexpress.com/eXpressAppFramework/DevExpress.ExpressApp.Model.IModelSplitLayout.RelativePosition?v=25.1" target="_blank" rel="noreferrer noopener"&gt;IModelSplitLayout.RelativePosition&lt;/a&gt; property determines the splitter&amp;#39;s position in relation to the DetailView as a percentage. It is automatically set when a user adjusts the splitter and takes precedence over the pixel-based &lt;a href="http://docs.devexpress.com/eXpressAppFramework/DevExpress.ExpressApp.Model.IModelSplitLayout.SplitterPosition?v=25.1" target="_blank" rel="noreferrer noopener"&gt;SplitterPosition&lt;/a&gt; property.&lt;/p&gt;&lt;img src="https://community.devexpress.com/blogs/xaf/image_5.png" alt=""&gt;&lt;p&gt;Our DxGridListEditor also adds new &amp;quot;Best Fit&amp;quot; and &amp;quot;Clear Sorting&amp;quot; context menu commands for grid column headers.&lt;/p&gt;&lt;p&gt;&lt;img src="https://community.devexpress.com/blogs/xaf/image(75).png" alt=""&gt;&lt;br&gt;&lt;/p&gt;
&lt;div&gt;&lt;h3&gt;Masks for Date and Time properties&lt;/h3&gt;&lt;p&gt;XAF Blazor Date and Time Property Editors support masked input. The `EditMask` property restricts user input and can be specified in the Application Model: BOModel &amp;gt; YourBusinessClass &amp;gt; Property &amp;gt; `EditMask`. You can also&amp;nbsp;&lt;a href="https://docs.devexpress.com/eXpressAppFramework/402153/getting-started/in-depth-tutorial-blazor/customize-data-display-and-view-layout/access-editor-settings" target="_blank"&gt;customize mask settings&lt;/a&gt; for `TimeOnly` - `TimeSpan` and `DateOnly` – `DateSpan` type pairs separately in code.&lt;/p&gt;&lt;pre&gt;&lt;code class="language-csharp"&gt;View.CustomizeViewItemControl&amp;lt;TimeSpanPropertyEditor&amp;gt;(this, editor =&amp;gt; {
    // TimeSpan
    editor.DxTimeEditMaskProperties.DateTime.CaretMode = MaskCaretMode.Advancing;
    // TimeOnly
    editor.DxTimeEditMaskProperties.TimeOnly.CaretMode = MaskCaretMode.Regular;
});&lt;/code&gt;&lt;/pre&gt;&lt;h3&gt;ToolTip Attribute Enhancements&lt;/h3&gt;&lt;p&gt;XAF Blazor v25.1 supports the following UI elements for the &lt;a href="http://docs.devexpress.com/eXpressAppFramework/DevExpress.Persistent.Base.ToolTipAttribute?v=25.1"&gt;ToolTip attribute&lt;/a&gt; (and the &lt;a href="https://docs.devexpress.com/eXpressAppFramework/DevExpress.ExpressApp.Model.IModelToolTip.ToolTip"&gt;IModelToolTip.ToolTip&lt;/a&gt; property in the Application Model):&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Navigation groups and items&lt;/li&gt;&lt;li&gt;`DxGridListEditor` and `DxTreeListEditor` column headers&lt;/li&gt;&lt;li&gt;Layout group headers&lt;/li&gt;&lt;/ul&gt;
    
    &lt;pre&gt;&lt;code class="language-csharp"&gt;    [ToolTip(&amp;quot;View, assign or remove employees for the current task&amp;quot;)]
    public virtual IList&amp;lt;Employee&amp;gt; Employees { get; set; } &lt;/code&gt;&lt;/pre&gt;&lt;h3&gt;Action Shortcuts&lt;/h3&gt;&lt;p&gt;XAF Blazor v25.1 supports keyboard shortcuts for Toolbar and Context Menu Action Controls. You can specify appropriate keystroke combinations in the Model Editor or in code. Examples:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;New: &amp;quot;Ctrl+Shift+A&amp;quot;&lt;/li&gt;&lt;li&gt;Save: &amp;quot;Ctrl+Shift+S&amp;quot;&lt;/li&gt;&lt;li&gt;Logon: &amp;quot;Enter&amp;quot;&lt;/li&gt;&lt;li&gt;DialogOK:&amp;nbsp;&amp;quot;Ctrl+Shift+Enter&amp;quot;&lt;/li&gt;&lt;li&gt;Refresh: &amp;quot;Ctrl+Shift+R&amp;quot;&lt;/li&gt;&lt;li&gt;Delete: &amp;quot;Ctrl+Delete&amp;quot;&lt;/li&gt;&lt;li&gt;NextObject: &amp;quot;Ctrl+Alt+RightArrow&amp;quot;&lt;/li&gt;&lt;li&gt;PreviousObject: &amp;quot;Ctrl+Alt+LeftArrow&amp;quot;&lt;/li&gt;&lt;li&gt;SaveAndClose: &amp;quot;Ctrl+Shift+Enter&amp;quot;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;img src="https://community.devexpress.com/blogs/xaf/image_7.png" alt=""&gt;&lt;/p&gt;&lt;h3 id="enhanced-filtering-by-non-persistent-fields-for-ef-core"&gt;Enhanced Filtering by Non-Persistent Fields &lt;/h3&gt;&lt;p&gt;FilterController (and other XAF APIs working with server-side criteria) now better process non-persistent business class properties in Client data access mode for EF Core. Once non-persistent properties are detected in ListView criteria, we fully process it on the client side.&lt;/p&gt;&lt;p&gt;XAF Blazor v25.1 also removes&amp;nbsp;non-persistent/non-aliased&amp;nbsp;properties (see 1-2 below)&amp;nbsp;from the FilterPropertyEditor menu/user selection for both EF Core and XPO ORM (for example, defined with the NotMapped attribute). Calculated properties defined with the PersistentAlias and Calculated attributes are NOT removed (see 3-4 below).&lt;/p&gt;&lt;img src="https://community.devexpress.com/blogs/xaf/2025/filtering-nonpersistent-fields-Blazor.png" alt="" style="width:3300px;height:1780px;"&gt;
    &lt;h3&gt;.NET Aspire Integration&lt;/h3&gt;&lt;p&gt;Our&amp;nbsp;team has spent some time considering the capabilities of Aspire, isolating the best integration points and allowing XAF developers to take advantage of Aspire&amp;nbsp;orchestration features available&amp;nbsp;out of the box. The team sees Aspire as a potential &amp;quot;1-click solution&amp;quot;, a more modern alternative to some of the templates in the XAF Solution Wizard. Benefits include:&amp;nbsp;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Simplify long and error-prone setup processes like those we describe in our documentation for&amp;nbsp;&lt;a href="https://docs.devexpress.com/eXpressAppFramework/404614/deployment/asp-net-core-blazor/deploy-a-blazor-application-to-azure" target="_blank"&gt;Azure App Service&lt;/a&gt;&amp;nbsp;and&amp;nbsp;&lt;a href="https://docs.devexpress.com/eXpressAppFramework/404717/deployment/asp-net-core-blazor/deploy-a-blazor-application-to-linux-with-nginx" target="_blank"&gt;Nginx&lt;/a&gt;&amp;nbsp;support on Linux, as well as other popular web server configurations.&lt;/li&gt;&lt;li&gt;Provision required databases and other application resources for both development and deployment environments (for instance, using a&amp;nbsp;&lt;a href="https://community.devexpress.com/blogs/news/archive/2023/04/06/develop-a-devexpress-xaf-and-web-api-solution-in-docker.aspx" target="_blank"&gt;Docker setup&lt;/a&gt;).&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Our goal is to help save time, whether you&amp;#39;re using XAF or not. Right now, much of this is a moving target, since Microsoft continues to evolve Aspire. At the same time, some functionality is already used and is considered stable. As such, we decided to publish details to help you make use of Aspire-specific&amp;nbsp;tools in your own XAF project. Please refer to the following documents for additional information:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://community.devexpress.com/Blogs/news/archive/2025/03/25/net-aspire-support-for-an-xaf-blazor-project.aspx" target="_blank"&gt;.NET Aspire Support for an XAF Blazor Project- Introduction&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://community.devexpress.com/Blogs/news/archive/2025/04/21/net-aspire-xaf-blazor-custom-telemetry-service-orchestration-database-dependency.aspx" target="_blank"&gt;Custom Telemetry, Service Orchestration, Database Dependency&lt;/a&gt;&lt;br&gt;&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;EF Core Enhancements&lt;/h2&gt;&lt;h3&gt;Concurrency Control for EF Core&lt;/h3&gt;&lt;p&gt;XAF Blazor/Windows Forms EF-Core based apps support Optimistic Concurrency control (on par with existing XPO ORM functionality). This capability is enabled for all classes that implement the new `IOptimisticLock` interface (for example, all classes inherited from XAF’s `BaseObject`). You can use the OptimisticLockIgnore&amp;nbsp;attribute to disable this capability for selected classes or properties.&lt;/p&gt;&lt;img src="https://community.devexpress.com/blogs/xaf/image_6.png" alt="" style="width:1936px;height:822px;border-width:1px;border-color:#c0c0c0;border-style:solid;"&gt;&lt;p&gt;With OptimisticLockDetection&amp;nbsp;and OptimisticLockHandling&amp;nbsp;options you can fine-tune collision detection and merge strategies both on object-level and field-level. You can set up a combination of these options either in the Application Builder for all classes or use OptimisticLockAttribute&amp;nbsp;(to specify a custom strategy for a specific class).&lt;/p&gt;&lt;pre&gt;&lt;code class="language-csharp"&gt;        builder.ObjectSpaceProviders
           .AddEFCore(options =&amp;gt;
           {
               options.PreFetchReferenceProperties();
               options.OptimisticLockDetection = OptimisticLockDetection.AllFields;
               options.OptimisticLockHandling = OptimisticLockHandling.Merge;
           })&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;No breaking changes are expected for existing EF Core projects when using the DevExpress Project Converter (to handle all the database changes automatically). See Also:&amp;nbsp;&lt;/span&gt;&lt;a href="https://devexpress.com/kb=T1273764"&gt;T1273764 - Core - Database and data model code changes for XAF EF Core apps to support the Optimistic Locking&lt;/a&gt;&lt;br&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;img src="https://community.devexpress.com/blogs/xaf/image_1.png" alt=""&gt;&lt;h3&gt;Clone Object Module for EF Core&lt;/h3&gt;&lt;p&gt;In v25.1, XAF Blazor and Windows Forms EFCore-based apps support the Clone command. With this, you can quickly copy data records including aggregated detail collections.&lt;/p&gt;&lt;p&gt;We unified cloning functionality and APIs for both ORMs, so XAF developers can use a single DevExpress.ExpressApp.CloneObject package. For additional information, refer to &lt;a href="https://devexpress.com/kb=T1276850" target="_blank"&gt;T1276850 - Core - The DevExpress.ExpressApp.CloneObject.Xpo assembly and NuGet package have been renamed&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;img src="https://community.devexpress.com/blogs/xaf/2025/upload_ec188f392e8463b17921c0729c30a161.png" alt=""&gt;&lt;br&gt;&lt;/p&gt;&lt;h3&gt;Easier Database Schema Updates When a New Class or Property Is Added (XPO Parity)&lt;/h3&gt;&lt;p&gt;v25.1 simplifies&amp;nbsp;database updates for EF Core developers (targeting XAF WinForms/Blazor or Web API Service-based apps). For instance, when you add a new business class or a property at design time, XAF will automatically apply EF Core migrations to the database in Debug mode (&lt;a href="https://docs.devexpress.com/XPO/2632/create-a-data-model/when-and-why-xpo-extends-the-database-schema?p=net8#important-notes"&gt;similar to XPO ORM functionality&lt;/a&gt;). This will save development time because no extra methods will be necessary, especially for frequent data model changes.&lt;/p&gt;&lt;p&gt;We also got&amp;nbsp;rid of the redundant DBUpdater tool for .NET / .NET-based apps for EF Core and XPO ORM. XAF&amp;nbsp;developers can&amp;nbsp;now use&amp;nbsp;&lt;a href="https://docs.devexpress.com/eXpressAppFramework/113239/deployment/production-database-and-application-updates#update-a-database"&gt;the updateDatabase CLI command&lt;/a&gt;&amp;nbsp;of the underlying application instead. This will simplify the developer experience for both deployment and maintenance because a single method will be used. For more information, refer to&amp;nbsp;&lt;a href="https://supportcenter.devexpress.com/ticket/details/t1282681/core-database-schema-update-behavior-has-changed-for-ef-core" target="_blank"&gt;T1282681 - Database schema update behavior has changed for EF Core&lt;/a&gt;.&lt;/p&gt;
    &lt;div class="Note"&gt;&lt;strong&gt;NOTE:&amp;nbsp;&lt;/strong&gt;Do not use this automatic update in Debug mode (or &lt;code&gt;-updateDatabase -forceUpdate&lt;/code&gt;&amp;nbsp;keys of the underlying application) with production databases or other important data&lt;strong&gt; (if you wish to make changes to a production database, be certain to backup your data)&lt;/strong&gt;. You, the developer, are responsible for the application, database, network, and other configurations and data safety/consistency based on client, security, and environment requirements. We recommend that you review relevant database update procedures with your database administrators (DBA) and always follow network/database best-practice standards.&lt;/div&gt;

&lt;h3&gt;Easier Connection to Middle-Tier Server in Non-XAF Apps for EF Core&lt;/h3&gt;&lt;p&gt;&lt;a href="https://docs.devexpress.com/eXpressAppFramework/404398/data-security-and-safety/security-system/non-xaf/connect-to-ef-core-middle-tier-service-from-non-xaf-applications" target="_blank"&gt;In a Middle Tier server architecture&lt;/a&gt;, only the server has direct access to the database. &lt;span&gt;DbContext and other EF Core CRUD APIs are still used in UI client app code (which interacts with the server remotely).&amp;nbsp;&lt;/span&gt;Before passing data to the client’s DbContext, the server enforces security measures such as authentication, authorization, and data validation (&lt;a href="https://www.devexpress.com/products/net/application_framework/security-web-api-service.xml" target="_blank"&gt;powered by our .NET App Security API&lt;/a&gt;).&lt;/p&gt;&lt;p&gt;&lt;img src="https://community.devexpress.com/blogs/xaf/2025/upload_9b53bea9faa547e257b19e83e6228a47.png" alt=""&gt;&lt;/p&gt;&lt;p&gt;v25.1 includes our&amp;nbsp;&lt;a href="http://docs.devexpress.com/eXpressAppFramework/DevExpress.ExpressApp.ApplicationBuilder.MiddleTierClientBuilder-1?v=25.1"&gt;MiddleTierClientBuilder&lt;/a&gt; - designed to simplify boilerplate code needed to connect non XAF-powered WinForms/WPF apps to a Middle Tier Security Server (via XAF&amp;#39;s Security System and EF Core). For additional information, check out &lt;a href="https://github.com/DevExpress-Examples/connect-winforms-grid-to-backend-using-middletier-server/tree/25.1.2%2B" target="_blank"&gt;our WinForms non-XAF example&lt;/a&gt;. Our new &lt;a href="https://marketplace.visualstudio.com/items?itemName=DevExpress.devexpress-template-kit-for-visual-studio" target="_blank"&gt;Template Kit&lt;/a&gt; will include non-XAF project templates for WinForms/WPF in our official release.&lt;/p&gt;&lt;img src="https://community.devexpress.com/blogs/xaf/middle-tier-template-kit-25.1.png" alt="" style="width:2030px;height:1380px;"&gt;&lt;h2&gt;Cross-Platform Enhancements&lt;/h2&gt;&lt;h3&gt;Support DataSourceXXX attributes for Enumeration Property Editors&lt;/h3&gt;&lt;p&gt;XAF Blazor/WinForms v25.1 support the following attributes for our Enumeration Property Editors:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://docs.devexpress.com/eXpressAppFramework/DevExpress.Persistent.Base.DataSourceCriteriaAttribute?v=25.1"&gt;DataSourceCriteriaAttribute&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://docs.devexpress.com/eXpressAppFramework/DevExpress.Persistent.Base.DataSourceCriteriaPropertyAttribute?v=25.1"&gt;DataSourceCriteriaPropertyAttribute&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://docs.devexpress.com/eXpressAppFramework/DevExpress.Persistent.Base.DataSourcePropertyAttribute?v=25.1"&gt;DataSourcePropertyAttribute&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;For example, you can filter enumeration values with the &lt;a href="https://docs.devexpress.com/eXpressAppFramework/DevExpress.Persistent.Base.DataSourceCriteriaPropertyAttribute"&gt;DataSourceCriteria&lt;/a&gt; attribute &lt;span&gt;and the following criteria: &amp;quot;&lt;em&gt;Status != 0 and Status &amp;gt; 2&amp;quot;,&amp;nbsp;&amp;quot;Status In (0,1,2)&amp;quot;,&amp;nbsp;&amp;quot;Status != &amp;#39;@This.OtherSelectedStatus&amp;#39;&lt;/em&gt;&amp;quot;, etc.&lt;/span&gt;&lt;/p&gt;&lt;pre&gt;&lt;code class="language-csharp"&gt;using DevExpress.Persistent.BaseImpl.EF;
using DevExpress.Data.Filtering;
using System.ComponentModel.DataAnnotations;

[DefaultClassOptions]
public class Order : BaseObject {
    [DataSourceCriteria(&amp;quot;Status = ##Enum#MyNamespace.OrderStatus,Pending# || Status = ##Enum#MyNamespace.OrderStatus,Confirmed#&amp;quot;)]
    public virtual OrderStatus Status { get; set; }
}
public enum OrderStatus { Pending, Confirmed, Processing, Shipped, Delivered, Canceled, Returned }&lt;/code&gt;&lt;/pre&gt;&lt;h3&gt;New Built-in Property Editors: TagBox and&amp;nbsp;Checked ComboBox&lt;/h3&gt;&lt;p&gt;XAF Blazor/WinForms v25.1&amp;nbsp;ship&amp;nbsp;with built-in Tag Box and&amp;nbsp;Checked ComboBox&amp;nbsp;Property Editors. TagBox and Checked ComboBox are two popular options to save space in detail forms for collection data (as an alternative to large data grids). &lt;/p&gt;&lt;p&gt;All new Editors support CRUD operations, Security System, Application Model options such as `AllowEdit` or `AllowClear`, `DataSourceXXX` filtering attributes, &lt;a href="https://docs.devexpress.com/eXpressAppFramework/DevExpress.ExpressApp.Editors.PropertyEditor.ImmediatePostData"&gt;ImmediatePostData&lt;/a&gt; and other standard XAF features.&lt;/p&gt;&lt;img src="https://community.devexpress.com/blogs/xaf/image_4.png" alt=""&gt;&lt;img src="https://community.devexpress.com/blogs/xaf/image_3.png" alt=""&gt;&lt;h2 id="web-api-service-enhancements"&gt;Web API Service Enhancements&lt;/h2&gt;&lt;p&gt;Our&amp;nbsp;&lt;a href="https://docs.devexpress.com/eXpressAppFramework/403394/backend-web-api-service"&gt;Backend Web API Service&lt;/a&gt;&amp;nbsp;introduces the following highly-requested usability features&amp;nbsp;(for EF Core&amp;nbsp;in this EAP, for XPO in the final release):&lt;/p&gt;&lt;ul&gt;&lt;li&gt;OData&amp;nbsp;&lt;a href="http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_CreateRelatedEntitiesWhenCreatinganE"&gt;Deep Insert and Deep Update&lt;/a&gt;&amp;nbsp;&amp;nbsp;(for Post, Patch and Put HTTP&amp;nbsp;verbs).&amp;nbsp;&lt;span&gt;You can now use the new Patch(DeltaSet&amp;lt;TEntity&amp;gt; deltaSet) method to create/update large amounts of objects.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;OData&amp;nbsp;&lt;a href="https://learn.microsoft.com/en-us/odata/client/batch-operations"&gt;Batch Operations&lt;/a&gt;&amp;nbsp;(aka Batch Update&amp;nbsp;support).&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;



&lt;h2&gt;Your Feedback Matters!&lt;/h2&gt;&lt;div class="Note"&gt;Early Access and CTP builds are provided solely for early testing purposes and are not ready for production use. This build can be installed side by side with other major versions of DevExpress products. Please backup your project and other important data before installing Early Access and CTP builds. &lt;strong&gt;This EAP may not include all features/products we expect to ship in our v25.1&amp;nbsp;release cycle&lt;/strong&gt;. As its name implies, the EAP offers an early preview of what we expect to ship in two months.&lt;/div&gt;&lt;p&gt;We recommend you try out the new features using Visual Studio 2022 and either MainDemo.NET.EFCore or MainDemo.NET.XPO&amp;nbsp;demo (located in the following folder:&amp;nbsp;&amp;quot;&lt;em&gt;c:\Users\Public\Documents\DevExpress Demos 25.1\Components\XAF\&lt;/em&gt;&amp;quot;). You can also test the EAP build against your project, but please remember that this build is not ready for production use. &lt;/p&gt;&lt;p&gt;We will keep you posted about &lt;strong&gt;additional features&lt;/strong&gt; we expect to ship in v25.1 (see&amp;nbsp;&lt;a href="https://www.devexpress.com/go/XAF_Roadmap.aspx" target="_blank"&gt;&lt;/a&gt;&lt;a href="https://community.devexpress.com/Blogs/xaf/archive/2025/02/17/xaf-v25-1-june-2025-roadmap-cross-platform-net-app-ui-and-web-api-service.aspx" target="_blank"&gt;our June 2025 Roadmap&lt;/a&gt;) as&amp;nbsp;we get closer to official release. If you&amp;#39;ve had the opportunity to use the EAP build, please post your thoughts&amp;nbsp;in our roadmap &lt;a href="https://community.devexpress.com/Blogs/xaf/archive/2025/02/17/xaf-v25-1-june-2025-roadmap-cross-platform-net-app-ui-and-web-api-service.aspx" target="_blank"&gt;survey&lt;/a&gt;&amp;nbsp;OR&amp;nbsp;&lt;a href="https://www.devexpress.com/ask" target="_blank"&gt;create a Support Center ticket&lt;/a&gt;. We will happily follow up.&lt;/p&gt;&lt;p&gt;Thanks,&lt;br&gt;Dennis Garavsky&lt;br&gt;Principal Product Manager&lt;br&gt;&lt;a href="mailto:dennis@devexpress.com" title="Email me if you have questions or suggestions"&gt;dennis@devexpress.com&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Mon, 21 Apr 2025 09:18:00 Z</pubDate>
      <dc:creator>Dennis Garavsky (DevExpress)</dc:creator>
    </item>
    <item>
      <guid isPermaLink="false">bd716303-653c-428d-8b8a-a7d998cde032:388221</guid>
      <link>https://community.devexpress.com/Blogs/xaf/archive/2025/02/17/xaf-v25-1-june-2025-roadmap-cross-platform-net-app-ui-and-web-api-service.aspx</link>
      <category domain="https://community.devexpress.com/Tags/.NET">.NET</category>
      <category domain="https://community.devexpress.com/Tags/.net+6">.net 6</category>
      <category domain="https://community.devexpress.com/Tags/.net+core">.net core</category>
      <category domain="https://community.devexpress.com/Tags/2025">2025</category>
      <category domain="https://community.devexpress.com/Tags/accessibility">accessibility</category>
      <category domain="https://community.devexpress.com/Tags/asp.net+Core">asp.net Core</category>
      <category domain="https://community.devexpress.com/Tags/blazor">blazor</category>
      <category domain="https://community.devexpress.com/Tags/EF">EF</category>
      <category domain="https://community.devexpress.com/Tags/EF+Core">EF Core</category>
      <category domain="https://community.devexpress.com/Tags/Entity+Framework">Entity Framework</category>
      <category domain="https://community.devexpress.com/Tags/Fluent">Fluent</category>
      <category domain="https://community.devexpress.com/Tags/Non-Windows">Non-Windows</category>
      <category domain="https://community.devexpress.com/Tags/OData">OData</category>
      <category domain="https://community.devexpress.com/Tags/OpenAPI">OpenAPI</category>
      <category domain="https://community.devexpress.com/Tags/REST">REST</category>
      <category domain="https://community.devexpress.com/Tags/restful">restful</category>
      <category domain="https://community.devexpress.com/Tags/roadmap">roadmap</category>
      <category domain="https://community.devexpress.com/Tags/security">security</category>
      <category domain="https://community.devexpress.com/Tags/survey">survey</category>
      <category domain="https://community.devexpress.com/Tags/Swagger">Swagger</category>
      <category domain="https://community.devexpress.com/Tags/Usability">Usability</category>
      <category domain="https://community.devexpress.com/Tags/v25.1">v25.1</category>
      <category domain="https://community.devexpress.com/Tags/web+api">web api</category>
      <category domain="https://community.devexpress.com/Tags/XAF">XAF</category>
      <category domain="https://community.devexpress.com/Tags/XPO">XPO</category>
      <title>XAF (Cross-Platform .NET App UI &amp; Web API Service) — June 2025 Roadmap (v25.1)</title>
      <description>&lt;p&gt;&lt;span style="background-color:#ffff99;"&gt;&lt;strong&gt;EDIT&lt;/strong&gt;: &lt;a href="https://community.devexpress.com/Blogs/xaf/archive/2025/08/15/xaf-cross-platform-net-app-ui-and-web-api-service-year-end-roadmap-v25-2.aspx" target="_blank"&gt;XAF v25.2 Roadmap&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Thank you for choosing &lt;a href="https://www.devexpress.com/products/net/application_framework/"&gt;XAF (Cross-Platform .NET App UI &amp;amp; Web API Service)&lt;/a&gt; for your software development needs. This blog post outlines some of our XAF-related development plans for the first half of 2025 (v25.1, set for release in June 2025). &lt;/p&gt;
&lt;p&gt;First, if you have not heard of XAF or are new to the DevExpress product line, XAF is a developer-centric .NET application framework designed to build feature-complete Office-inspired line-of-business apps (leveraging DevExpress Blazor and WinForms UI components via Entity Framework or XPO ORM). Feel free to &lt;a href="https://www.devexpress.com/support/demos/#xaf"&gt;review our XAF demos&lt;/a&gt; and &lt;a href="https://www.devexpress.com/products/net/application_framework/xaf-considerations-for-newcomers.xml"&gt;compare our implementation with other software&lt;/a&gt; development methodologies.&lt;/p&gt;
&lt;div class="Note"&gt;The information contained within this blog post details our current/projected development plans. Please note that this information is being shared for INFORMATIONAL PURPOSES ONLY and does not represent a binding commitment on the part of Developer Express Inc. This roadmap and the features/products listed within it are subject to change. You should not rely on or use this information to help make a purchase decision about Developer Express Inc products.&lt;/div&gt;&lt;p&gt; &lt;/p&gt;
&lt;h2 id="blazor-ui-enhancements"&gt;Blazor UI Enhancements&lt;/h2&gt;
&lt;h3 id="fluent-theme-and-ribbon-ui-support"&gt;Fluent Theme and Ribbon UI Support&lt;/h3&gt;
&lt;p&gt;&lt;span&gt;Just over a year ago, Microsoft released a&amp;nbsp;&lt;/span&gt;&lt;a href="https://support.microsoft.com/en-us/office/getting-started-with-the-new-outlook-for-windows-656bb8d9-5a60-49b2-a98b-ba7822bc7627" target="_blank"&gt;new Outlook for Windows&lt;/a&gt;&lt;span&gt;&amp;nbsp;with a modern and simplified design. This updated version of Outlook offers a streamlined, web–integrated experience that aligns with Microsoft&amp;#39;s Fluent 2 design standards.&amp;nbsp;&lt;/span&gt;Many of our customers have expressed interest in replicating this contemporary UI within their own DevExpress-powered desktop and web applications. If you&amp;#39;ve used the new version of Outlook, you know that Microsoft&amp;#39;s new user experience extends far beyond simple UI enhancements:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;The app&amp;#39;s sidebar extends up to the form title, optimizing vertical space to display more menu items on–screen.&lt;/li&gt;&lt;li&gt;The sidebar can be &amp;#39;collapsed&amp;#39; using the Ribbon&amp;#39;s hamburger button, allowing for a more compact layout.&lt;/li&gt;&lt;li&gt;The Ribbon control and form title can host additional UI elements, including buttons, a search panel, and other interactive UI components.&lt;/li&gt;&lt;li&gt;Fluent UI enhancements include semi–transparent effects, colorful flat icons, rounded corners, specious paddings, and more.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;We expect to support Fluent and Ribbon UI in XAF Blazor-powered apps at the end of 2025. This involves, but is not limited to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Dark and light &lt;a href="https://www.devexpress.com/subscriptions/whats-new/#blazor-new-fluent-theme-ctp"&gt;Fluent theme support&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Creating hundreds of XAF-specific icons (filled or outlined) to match the Fluent theme.&lt;/li&gt;
&lt;li&gt;Modifying menu and layout structures (to mimic modern Office-inspired web apps). &lt;/li&gt;
&lt;/ul&gt;

&lt;div class="Note"&gt;&lt;strong&gt;NOTE&lt;/strong&gt;: Since both DevExpress Blazor Ribbon and Fluent UI are currently available as a Community Technology Preview (for instance, the ribbon control has no Classic or multi-line view), we do not expect complete support in XAF Blazor v25.1 (likely in v25.2). Fluent UI support for XAF WinForms should be officially available in v25.2 as well (once support is added to corresponding DevExpress WinForms UI components).&lt;/div&gt;
&lt;h3 id="accessibility-enhancements"&gt;Accessibility Enhancements&lt;/h3&gt;
&lt;p&gt;As part of our ongoing &lt;a href="https://docs.devexpress.com/eXpressAppFramework/404762/accessibility"&gt;Accessibility (A11Y) investments&lt;/a&gt; for both XAF and DevExpress UI components, XAF Blazor v25.1 will support keyboard shortcuts for menu commands or Actions. XAF developers will be able to specify appropriate keystroke combinations in the Model Editor or in code (similar to XAF WinForms with its ActionBase.Shortcut API). &lt;/p&gt;&lt;p&gt;In addition to A11Y benefits, this will also accelerate CRUD operations for many end-users (for example, to save changes, create, or delete records).&lt;/p&gt;
&lt;h3 id="grid-list-editor-enhancements"&gt;Grid List Editor Enhancements&lt;/h3&gt;
&lt;p&gt;XAF Blazor v25.1 will support the following (for DxGridListEditor):&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.devexpress.com/eXpressAppFramework/113695/ui-construction/views/layout/list-view-bands-layout"&gt;Banded layout&lt;/a&gt; (much like in XAF WinForms).&lt;/li&gt;
&lt;li&gt;Double-click instead of a single-click to open a detail form from a ListView (much like in WinForms).&lt;/li&gt;
&lt;li&gt;Easier context menu customization for both grid rows and column headers.&lt;/li&gt;
&lt;li&gt;New &amp;quot;Best Fit&amp;quot; and &amp;quot;Clear Sorting&amp;quot; context menu commands for grid column headers.&lt;/li&gt;
&lt;li&gt;Virtual/infinite scrolling in all root and nested ListViews instead of a pager (much like in XAF WinForms).&lt;/li&gt;&lt;li&gt;The new IModelSplitLayout.RelativePosition property to specify&amp;nbsp;the splitter position relative to the DetailView in percentage (when MasterDetailMode = ListViewAndDetailView). RelativePosition takes priority over the IModelSplitLayout.SplitterPosition property (in pixels).&lt;/li&gt;
&lt;li&gt;Simplified API to access column settings for Grid List Editors across all XAF UI platforms. For example, you will be able to write platform-agnostic code (see below) or access platform-specific settings via ColumnWrapper descendants:&lt;/li&gt;
&lt;/ul&gt;
&lt;pre&gt;&lt;code class="lang-csharp"&gt;&lt;span class="hljs-function"&gt;&lt;span class="hljs-keyword"&gt;protected&lt;/span&gt; &lt;span class="hljs-keyword"&gt;override&lt;/span&gt; &lt;span class="hljs-keyword"&gt;void&lt;/span&gt; &lt;span class="hljs-title"&gt;OnViewControlsCreated&lt;/span&gt;(&lt;span class="hljs-params"&gt;&lt;/span&gt;) &lt;/span&gt;{
    &lt;span class="hljs-keyword"&gt;base&lt;/span&gt;.OnViewControlsCreated();
    &lt;span class="hljs-keyword"&gt;if&lt;/span&gt; (View.Editor &lt;span class="hljs-keyword"&gt;is&lt;/span&gt; ColumnsListEditor listEditor) {
        &lt;span class="hljs-keyword"&gt;foreach&lt;/span&gt; (&lt;span class="hljs-keyword"&gt;var&lt;/span&gt; column &lt;span class="hljs-keyword"&gt;in&lt;/span&gt; listEditor.Columns) {
            column.ShowInCustomizationForm = &lt;span class="hljs-literal"&gt;false&lt;/span&gt;;
        }
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;h3 id="simplified-chart-html-editor-and-pdf-viewer-integration"&gt;&lt;img src="https://community.devexpress.com/blogs/xaf/image(75).png" alt="" style="width:3840px;height:1822px;border-width:1px;border-color:#c0c0c0;border-style:solid;"&gt;&lt;/h3&gt;
&lt;h3 id="tooltip-enhancements"&gt;ToolTip Attribute Enhancements&lt;/h3&gt;&lt;p&gt;XAF Blazor v25.1 will support the following UI elements for the&amp;nbsp;&lt;a href="https://docs.devexpress.com/eXpressAppFramework/DevExpress.Persistent.Base.ToolTipAttribute" target="_blank"&gt;ToolTip attribute&lt;/a&gt;&amp;nbsp;(and the&amp;nbsp;&lt;a href="https://docs.devexpress.com/eXpressAppFramework/DevExpress.ExpressApp.Model.IModelToolTip.ToolTip"&gt;IModelToolTip.ToolTip&lt;/a&gt;&amp;nbsp;property in the Application Model):&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Navigation groups and items&lt;/li&gt;&lt;li&gt;DxGridListEditor and DxTreeListEditor column headers&lt;/li&gt;&lt;li&gt;Layout group headers&lt;/li&gt;&lt;/ul&gt;&lt;h3 id="simplified-chart-html-editor-and-pdf-viewer-integration"&gt;Simplified Chart, HTML Editor, and PDF Viewer Integration&lt;/h3&gt;
&lt;p&gt;With v25.1, we expect to reduce the amount of code needed to integrate popular UI elements such as Charts, HTML Editor, and PDF Viewer (you can check the current code required &lt;a href="https://github.com/DevExpress-Examples/xaf-create-multitenant-application/tree/24.2.1%2B/CS/OutlookInspired.Blazor.Server/Editors"&gt;in our Outlook-Inspired Demo&lt;/a&gt;). We do expect to build XAF WinForms/WebForms module counterparts, because these DevExpress Blazor components are totally different, so it will not be possible to reuse cross-platform features such as common layout XML settings and other code sharing techniques.&lt;/p&gt;
&lt;p&gt;For example, we want to ship a new Chart Property Editor, which will take a Razor file as input (with required graph layout and series settings). XAF Blazor will bind the underlying control to current View data automatically. For PDF Viewer and HTML Editor, we hope to implement seamless/codeless integrations, much like our Rich Text Property Editor (which can be bound to a string or byte array property).&lt;/p&gt;
&lt;h2 id="ef-core-enhancements"&gt;EF Core Enhancements&lt;/h2&gt;
&lt;h3 id="concurrency-control-for-ef-core"&gt;Concurrency Control for EF Core&lt;/h3&gt;
&lt;p&gt;XAF WinForms/Blazor EFCore-based apps will support Optimistic Concurrency control (&lt;a href="https://docs.devexpress.com/eXpressAppFramework/113596/business-model-design-orm/business-model-design-with-xpo/optimistic-concurrency-control"&gt;similar to existing XPO ORM functionality&lt;/a&gt;). It will support both object-level and field-level locking, as well as advanced collision resolution and data merging. &lt;/p&gt;
&lt;p&gt;No breaking changes are expected for existing EF Core projects when using the DevExpress Project Converter (to handle all the database changes automatically). See Also: &lt;a href="https://devexpress.com/kb=T1273764"&gt;T1273764 - Core - Database and data model code changes for XAF EF Core apps to support the Optimistic Locking&lt;/a&gt;&lt;/p&gt;
&lt;img src="https://community.devexpress.com/blogs/xaf/2025/upload_33236bb657203c9fbd48d0b612893637.png" alt="" style="width:2322px;height:1646px;border-width:1px;border-color:#c0c0c0;border-style:solid;"&gt;
&lt;h3 id="clone-object-module-for-ef-core"&gt;Clone Object Module for EF Core&lt;/h3&gt;
&lt;p&gt;XAF WinForms/Blazor EFCore-based apps will support the Clone command (to quickly copy data records, including aggregated detail collections. We unified cloning functionality and APIs for both ORMs, so XAF developers can use a single DevExpress.ExpressApp.CloneObject package. &lt;/p&gt;
&lt;p&gt;No breaking changes are expected for existing XPO-based projects when using the DevExpress Project Converter (to handle all naming-related changes automatically). See Also: &lt;a href="https://devexpress.com/kb=T1276850"&gt;T1276850 - Core - The DevExpress.ExpressApp.CloneObject.Xpo assembly and NuGet package have been renamed&lt;/a&gt;.&lt;/p&gt;
&lt;img src="https://community.devexpress.com/blogs/xaf/2025/upload_ec188f392e8463b17921c0729c30a161.png" alt="" style="width:2014px;height:1220px;border-width:1px;border-color:#c0c0c0;border-style:solid;"&gt;
&lt;h3 id="easier-database-updates-for-ef-core"&gt;Easier Database Updates for EF Core&lt;/h3&gt;
&lt;p&gt;v25.1 will simplify database updates for EF Core developers (targeting XAF WinForms/Blazor or Web API Service-based apps). For instance, when you add a new business class or a property at design time, XAF will automatically apply EF Core migrations to the database in Debug mode (&lt;a href="https://docs.devexpress.com/XPO/2632/create-a-data-model/when-and-why-xpo-extends-the-database-schema?p=net8#important-notes"&gt;similar to XPO ORM functionality&lt;/a&gt;). This will save development time because no extra methods will be necessary, especially for frequent data model changes.&lt;/p&gt;
&lt;p&gt;We will also get rid of the redundant DBUpdater tool for EF Core-based apps. EF Core developers will use &lt;a href="https://docs.devexpress.com/eXpressAppFramework/113239/deployment/production-database-and-application-updates#update-a-database"&gt;the updateDatabase CLI command&lt;/a&gt; of the underlying application instead. This will simplify the developer experience for both deployment and maintenance because a single method will be used.&lt;/p&gt;
&lt;h3 id="simplified-connection-settings-for-ef-core"&gt;Simplified Connection Settings for EF Core and XPO&lt;/h3&gt;
&lt;p&gt;The &lt;a href="https://marketplace.visualstudio.com/items?itemName=DevExpress.devexpress-template-kit-for-visual-studio"&gt;Template Kit&lt;/a&gt; will include popular connection options like PostgreSQL, SQL Azure, MySQL, Oracle, and SQLite (instead of just Microsoft SQL Server previously). Once selected, the new XAF project will automatically include all required NuGet packages and database-specific API calls like &lt;code&gt;UseNpgsql&lt;/code&gt; for the option.&lt;/p&gt;
&lt;p&gt;This will simplify the first-time experience because XAF developers will no longer need to &lt;a href="https://docs.devexpress.com/eXpressAppFramework/404290/business-model-design-orm/business-model-design-with-entity-framework-core/connect-to-different-database-providers"&gt;follow manual steps&lt;/a&gt; or know all specificities related to EF Core or XPO connection&amp;nbsp;providers.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://community.devexpress.com/blogs/xaf/2025/upload_1312ce4b1b21f3228930ff896eb1dc5d.png" alt=""&gt;&lt;/p&gt;
&lt;h3 id="easier-connection-to-middle-tier-server-in-non-xaf-apps-for-ef-core"&gt;Easier Connection to Middle-Tier Server in Non-XAF Apps for EF Core&lt;/h3&gt;
&lt;p&gt;In v25.1, we will simplify boilerplate code required to &lt;a href="https://docs.devexpress.com/WindowsForms/405147/data-access-security/connect-to-a-secure-middle-tier-api-server"&gt;connect to a secure Middle Tier API server&lt;/a&gt; in non XAF-powered WinForms/WPF apps (via XAF&amp;#39;s Security System and EF Core).&lt;/p&gt;
&lt;p&gt;In a Middle Tier server architecture, DbContext and other EF Core CRUD APIs are still used in UI client app code (which interacts with the server remotely). Only the server has direct access to the database. Before passing data to the client’s DbContext, the server enforces security measures such as authentication, authorization, and data validation.
&lt;img src="https://community.devexpress.com/blogs/xaf/2025/upload_9b53bea9faa547e257b19e83e6228a47.png" alt=""&gt;&lt;/p&gt;
&lt;h3 id="enhanced-filtering-by-non-persistent-fields-for-ef-core"&gt;Enhanced Filtering by Non-Persistent Fields for EF Core&lt;/h3&gt;
&lt;p&gt;FilterController (and other XAF APIs working with server-side criteria) will better process non-persistent business class properties in Client data access mode. Once non-persistent properties are detected in ListView criteria, we will fully process it on the client side.&lt;/p&gt;
&lt;h2 id="cross-platform-enhancements"&gt;Cross-Platform Enhancements&lt;/h2&gt;
&lt;h3 id="outlook-inspired-demo-in-the-installation"&gt;Outlook-Inspired Demo in the Installation&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://github.com/DevExpress-Examples/xaf-create-multitenant-application/"&gt;XAF&amp;#39;s Outlook-Inspired Demo&lt;/a&gt; will make its way to our Unified Component Installer in our v25.1 release cycle. We will also implement additional functionality in this demo, including aforementioned EF Core enhancements and new built-in XAF Property/List Editors.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://community.devexpress.com/blogs/xaf/2025/upload_2608693fb889f3b980a7ad0e61edd307.png" alt=""&gt;&lt;/p&gt;
&lt;h3 id="new-built-in-property-editors-tagbox-checked-combobox-progress-bar"&gt;Built-in Property Editors: TagBox, Checked ComboBox, Progress Bar&lt;/h3&gt;
&lt;p&gt;XAF Blazor/WinForms v25.1 will include built-in Property Editors based on these components. They will support CRUD, Security System, common Application Model options (AllowEdit, AllowClear, etc.), DataSourceXXX attributes for filtering, ImmediatePostData, and more standard XAF features.&lt;/p&gt;
&lt;p&gt;For example, TagBox and Checked ComboBox are two popular options to save space in detail forms for collection data (as an alternative to large data grids). Progress Bar in both list and detail forms can be used as an alternative to standard Integer Property Editors with additional validation rules.&lt;/p&gt;&lt;p&gt;XAF Blazor/WinForms v25.1 will also support &lt;a href="https://docs.devexpress.com/eXpressAppFramework/112701/business-model-design-orm/data-annotations-in-data-model" target="_blank"&gt;the&amp;nbsp;DataSourceXXX attributes&lt;/a&gt; for our Enumeration Property Editors. For example, you can filter your enumeration values with the&amp;nbsp;&lt;a href="https://docs.devexpress.com/eXpressAppFramework/DevExpress.Persistent.Base.DataSourceCriteriaPropertyAttribute" target="_blank"&gt;DataSourceCriteria&lt;/a&gt;&amp;nbsp;attribute and the following criteria: &amp;quot;Status != 0 and Status &amp;gt; 2&amp;quot;,&amp;nbsp;&amp;quot;Status In (0,1,2)&amp;quot;,&amp;nbsp;&amp;quot;Status != &amp;#39;@This.OtherSelectedStatus&amp;#39;&amp;quot;, etc.&lt;/p&gt;
&lt;h2 id="project-template-enhancements"&gt;Project Template Enhancements&lt;/h2&gt;
&lt;h3 id="xaf-blazor-middle-tier-security"&gt;XAF Blazor + Middle Tier Security&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=DevExpress.devexpress-template-kit-for-visual-studio"&gt;Template Kit&lt;/a&gt; v25.1 will include a new project template where XAF Blazor is connected to the &lt;a href="https://docs.devexpress.com/eXpressAppFramework/404389/data-security-and-safety/security-system/security-tiers/middle-tier-security-ef-core"&gt;Middle Tier Security application server&lt;/a&gt;. Much like XAF WinForms, this configuration will help XAF developers deliver more secure solutions, because the web server will not have direct access to the application database. &lt;/p&gt;&lt;p&gt;This is important for certain customers where hosting the application database on the same machine with the web server (where an XAF Blazor app is running) is a no-go due to strict security requirements.&lt;/p&gt;
&lt;h3 id="xaf-blazor-electron-net-for-windows-and-macos-linux-desktop"&gt;XAF Blazor + Electron.NET for Windows and macOS/Linux Desktop&lt;/h3&gt;
&lt;p&gt;The &lt;a href="https://marketplace.visualstudio.com/items?itemName=DevExpress.devexpress-template-kit-for-visual-studio"&gt;Template Kit&lt;/a&gt; will also include a new “hybrid” desktop app for Windows and macOS/Linux (powered by Electron.NET and XAF Blazor). An XAF Blazor app is wrapped inside a native “web view” container for the target OS and connected to our Middle Tier application server (or database directly, if allowed). When used, XAF developers can address both Windows and non-Windows support where WinForms and browser-based apps do not meet client needs.&lt;/p&gt;
&lt;p&gt;For end-users, this hybrid desktop app will feel and behave (performance-wise) no differently than Microsoft Teams, Visual Studio Code, Outlook (new), and similar hybrid apps. Let me quote &lt;a href="https://devexpress.com/kb=T1102932#781e7ba2-b038-4b83-943f-bd7c56e12216"&gt;one of our customers&lt;/a&gt; who successfully used this approach:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I use XAF Blazor to have a desktop application for macOS indeed. It is an administrative application for one-person businesses. Because this application contains normally sensitive data, I don&amp;#39;t want to host this data on servers where I am responsible for. So a good choice seems to run the application on a desktop. &lt;strong&gt;macOS users are growing in our country, so the Electron solution seems a good choice&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="xaf-blazor-and-web-api-service-antiforgery"&gt;XAF Blazor and Web API Service + AntiForgery&lt;/h3&gt;
&lt;p&gt;XAF project template code (Startup.cs) will include &lt;a href="https://learn.microsoft.com/en-us/aspnet/core/blazor/security/?view=aspnetcore-9.0&amp;amp;tabs=visual-studio#antiforgery-support"&gt;Antiforgery services and middleware&lt;/a&gt; to mitigate potential Cross-Site Request Forgery (CSRF/XSRF) attacks. This will reduce implementation costs (when compared with manual implementation).&lt;/p&gt;
&lt;h2 id="multi-tenancy-enhancements"&gt;Multi-Tenancy Enhancements&lt;/h2&gt;
&lt;p&gt;With XAF v25.1, &lt;a href="https://docs.devexpress.com/eXpressAppFramework/404436/multitenancy"&gt;our Multi-Tenancy module&lt;/a&gt; will allow you to store custom data in a shared/hosted database (for both EF Core and XPO ORM). This will be helpful when storing currency, tax, and other global application settings. For XAF developers, it should dramatically simplify code because it will no longer be necessary to set up &lt;a href="https://docs.devexpress.com/eXpressAppFramework/404322/business-model-design-orm/business-model-design-with-entity-framework-core/how-to-connect-data-models-to-different-databases"&gt;a separate Object Space Provider&lt;/a&gt; for the shared database manually.&lt;/p&gt;
&lt;p&gt;Tenants will be able to read these shared data tables, but will be unable to modify data in them (or have associations with tenant data) - only service/host UI administrators will have full CRUD capabilities. XAF developers will also have access to standard and transparent IObjectSpace APIs to query shared data (including methods like CreateObjectSpace/CreateNonSecuredObjectSpace&amp;lt;T&amp;gt;(“YourTenantName“)).&lt;/p&gt;
&lt;h2 id="web-api-service-enhancements"&gt;Web API Service Enhancements&lt;/h2&gt;
&lt;p&gt;Our &lt;a href="https://docs.devexpress.com/eXpressAppFramework/403394/backend-web-api-service"&gt;Backend Web API Service&lt;/a&gt; will introduce the following highly-requested usability features:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;OData &amp;quot;&lt;a href="http://docs.oasis-open.org/odata/odata/v4.01/odata-v4.01-part1-protocol.html#sec_CreateRelatedEntitiesWhenCreatinganE"&gt;Deep Insert&lt;/a&gt;&amp;quot; for XPO/EF Core and &amp;quot;Deep Update&amp;quot; for EF Core;&lt;/li&gt;&lt;li&gt;Concurrency Control for both EF Core and XPO ORM (currently &amp;quot;last wins&amp;quot;);&lt;/li&gt;&lt;li&gt;OData &lt;a href="https://learn.microsoft.com/en-us/odata/client/batch-operations"&gt;Batch Operations&lt;/a&gt; (aka &amp;quot;Batch Update&amp;quot; support).&lt;/li&gt;&lt;/ul&gt;&lt;h2&gt;Your Feedback Matters&lt;/h2&gt;&lt;p&gt;Just another reminder that our Roadmap v25.1 (below), &lt;a href="https://www.devexpress.com/subscriptions/whats-new/#xaf-survey" target="_blank"&gt;What&amp;#39;s New v24.2 (vote)&lt;/a&gt;, and other surveys give you the opportunity to communicate your needs/concerns and allow us to make more informed development decisions.&lt;/p&gt;&lt;div data-survey-id="fc5f2cf4-66da-4b57-9ae0-b0160f0ea199" data-survey-auth-required="false"&gt;&lt;/div&gt;</description>
      <pubDate>Mon, 17 Feb 2025 01:31:00 Z</pubDate>
      <dc:creator>Dennis Garavsky (DevExpress)</dc:creator>
    </item>
    <item>
      <guid isPermaLink="false">bd716303-653c-428d-8b8a-a7d998cde032:388201</guid>
      <link>https://community.devexpress.com/Blogs/xaf/archive/2024/10/02/xaf-v24-2-eap-passwordless-signins-and-mfa-calculated-fields-and-soft-deletion-in-ef-core-tabbed-mdi-and-performance-enhancements-in-blazor.aspx</link>
      <category domain="https://community.devexpress.com/Tags/.net+6">.net 6</category>
      <category domain="https://community.devexpress.com/Tags/.NET+8">.NET 8</category>
      <category domain="https://community.devexpress.com/Tags/.net+core">.net core</category>
      <category domain="https://community.devexpress.com/Tags/2024">2024</category>
      <category domain="https://community.devexpress.com/Tags/accessibility">accessibility</category>
      <category domain="https://community.devexpress.com/Tags/asp.net+Core">asp.net Core</category>
      <category domain="https://community.devexpress.com/Tags/blazor">blazor</category>
      <category domain="https://community.devexpress.com/Tags/eap">eap</category>
      <category domain="https://community.devexpress.com/Tags/EF">EF</category>
      <category domain="https://community.devexpress.com/Tags/EF+Core">EF Core</category>
      <category domain="https://community.devexpress.com/Tags/Entity+Framework">Entity Framework</category>
      <category domain="https://community.devexpress.com/Tags/Non-Windows">Non-Windows</category>
      <category domain="https://community.devexpress.com/Tags/OData">OData</category>
      <category domain="https://community.devexpress.com/Tags/OpenAPI">OpenAPI</category>
      <category domain="https://community.devexpress.com/Tags/prerelease">prerelease</category>
      <category domain="https://community.devexpress.com/Tags/REST">REST</category>
      <category domain="https://community.devexpress.com/Tags/restful">restful</category>
      <category domain="https://community.devexpress.com/Tags/roadmap">roadmap</category>
      <category domain="https://community.devexpress.com/Tags/security">security</category>
      <category domain="https://community.devexpress.com/Tags/survey">survey</category>
      <category domain="https://community.devexpress.com/Tags/Swagger">Swagger</category>
      <category domain="https://community.devexpress.com/Tags/Usability">Usability</category>
      <category domain="https://community.devexpress.com/Tags/v24.2">v24.2</category>
      <category domain="https://community.devexpress.com/Tags/web+api">web api</category>
      <category domain="https://community.devexpress.com/Tags/XAF">XAF</category>
      <category domain="https://community.devexpress.com/Tags/XPO">XPO</category>
      <title>XAF v24.2 EAP — Passwordless Sign-ins and MFA, Calculated Fields and Soft Deletion in EF Core, Tabbed MDI and Performance Enhancements in Blazor</title>
      <description>
&lt;p&gt;This post documents&amp;nbsp;&lt;strong&gt;a few&lt;/strong&gt;&amp;nbsp;&lt;a href="https://www.devexpress.com/products/net/application_framework/" target="_blank"&gt;XAF&lt;/a&gt;-related&amp;nbsp;features we expect to ship in early December and details what’s inside our Early Access Preview build (&lt;strong&gt;for additional information on what you can expect in December, please refer to&amp;nbsp;&lt;a href="https://www.devexpress.com/go/XAF_Roadmap.aspx" target="_blank"&gt;our Year-End v2024.2 roadmap&lt;/a&gt;&lt;/strong&gt;). As you will note below, XAF-related focus areas remain Blazor, Entity Framework&amp;nbsp;Core and Security.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If you own an active&amp;nbsp;&lt;a href="https://www.devexpress.com/subscriptions/universal.xml" target="_blank"&gt;Universal Subscription&lt;/a&gt;, feel free to download this Early Access Preview (EAP) build at your convenience. If you own an active&amp;nbsp;&lt;a href="https://www.devexpress.com/subscriptions/dxperience.xml" target="_blank"&gt;DXperience Subscription&lt;/a&gt;&amp;nbsp;and would like to learn more about our&amp;nbsp;&lt;a href="https://www.devexpress.com/products/net/application_framework/" target="_blank"&gt;Cross-Platform .NET App UI (XAF)&lt;/a&gt;&amp;nbsp;or&amp;nbsp;&lt;a href="https://www.devexpress.com/products/net/application_framework/security-web-api-service.xml" target="_blank"&gt;Web API Service&lt;/a&gt;, you can explore the features described herein by logging onto the DevExpress&amp;nbsp;&lt;a href="https://www.devexpress.com/ClientCenter/DownloadManager/" target="_blank"&gt;Download Manager&lt;/a&gt;&amp;nbsp;and installing this EAP build in trial mode. Once you do, please tell us whether these new features address your business needs. Your feedback will help us fine-tune our implementation before official launch.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://community.devexpress.com:443/blogs/xaf/image(67).png" alt=""&gt;&lt;/p&gt;


If you are using a trial and want to try these preview&amp;nbsp;features today, you can purchase a&amp;nbsp;&lt;a href="https://devexpress.com/buy"&gt;DevExpress Universal license online&lt;/a&gt;&amp;nbsp;(this will give you access to the early access preview build). If you own a non-Universal subscription and are ready to upgrade, email us at&amp;nbsp;&lt;a href="mailto:clientservices@devexpress.com"&gt;clientservices@devexpress.com&lt;/a&gt;&amp;nbsp;for upgrade pricing.



&lt;h2&gt;.NET Core / .NET Enhancements&lt;/h2&gt;


&lt;h3&gt;.NET 8, .NET Framework 4.6.2, Visual Studio 2019 are minimally supported versions for DevExpress libraries moving forward&lt;/h3&gt;


&lt;p&gt;Learn more about this global (v24.2+) change in the following &lt;a href="https://community.devexpress.com/blogs/news/archive/2024/07/08/net-net-8-and-net-framework-4-6-2-are-minimally-supported-target-frameworks-for-devexpress-libraries-in-v24-2.aspx" target="_blank" rel="noreferrer noopener"&gt;announcement&lt;/a&gt;.&lt;/p&gt;


&lt;p&gt;To simplify the migration process, the DevExpress Project Converter will attempt to re-target your XAF projects to .NET 8 automatically. &amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://community.devexpress.com:443/blogs/xaf/XAFConverter.png" alt=""&gt;&lt;br&gt;&lt;/p&gt;


&lt;p&gt;We will also try to update 3rd party packages to the latest compatible versions, where possible (for example, System.Text.Json, Microsoft.AspNetCore.*, Microsoft.EntityFrameworkCore.*, etc.) - almost 200 known dependencies in our Directory.Packages.props file. &lt;/p&gt;


&lt;p&gt;This automation should save hours of manual effort especially for those XAF customers with large .NET Framework or .NET solutions. Of course, if your team already uses props files and &lt;a href="https://learn.microsoft.com/en-us/nuget/consume-packages/central-package-management" target="_blank" rel="noreferrer noopener"&gt;Central Package Management (CPM)&lt;/a&gt;, then you can skip our Project Converter and update everything manually.&amp;nbsp;&lt;/p&gt;


&lt;p&gt;&lt;img src="https://community.devexpress.com:443/blogs/xaf/image(68).png" alt=""&gt;&amp;nbsp;&lt;/p&gt;

&lt;h3&gt;Easier Upgrade to .NET from .NET Framework&lt;/h3&gt;
&lt;p&gt;Our Project Converter can now convert DevExpress assembly references in your solution or specific projects to corresponding DevExpress NuGet packages. By selecting the &amp;quot;Convert DevExpress assembly references to NuGet packages&amp;quot; option under Advanced settings, you can easily transition to NuGet-based project management.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://community.devexpress.com/blogs/winforms/eap-24-2/devexpress-project-converter.png" alt="DevExpress Project Converter v24.2"&gt;&lt;/p&gt;
&lt;p&gt;To streamline the upgrade process, our Project Converter automatically creates backup (.bak) files for your CSPROJ and VBPROJ files. Once DevExpress assemblies are converted, complete the upgrade process by using the&amp;nbsp;&lt;a href="https://learn.microsoft.com/en-us/dotnet/core/porting/upgrade-assistant-overview" target="_blank"&gt;Microsoft .NET Upgrade Assistant&lt;/a&gt;&amp;nbsp;(to migrate your application to the most recent version of .NET).&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Documentation&lt;/strong&gt;: &lt;a href="https://docs.devexpress.com/WindowsForms/405091/net-net-core-support/migrate-net-framework-app-to-net?v=24.2"&gt;Migrate a .NET Framework App to .NET&lt;/a&gt; | &lt;a href="https://docs.devexpress.com/GeneralInformation/116042/nuget/obtain-your-nuget-feed-credentials"&gt;Choose Suitable NuGet Feed&lt;/a&gt; | &lt;a href="https://docs.devexpress.com/GeneralInformation/116698/nuget/setup-visual-studios-nuget-package-manager?v=24.2" target="_blank"&gt;Install NuGet Packages in IDE&lt;/a&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;.NET 9 Support&lt;/h3&gt;
&lt;p&gt;XAF UI and Web API Service will fully support&amp;nbsp;&lt;a href="https://devblogs.microsoft.com/dotnet/dotnet-9-release-candidate-1-is-now-available/" target="_blank"&gt;NET 9&lt;/a&gt;&amp;nbsp;in November (v24.2.2+).&amp;nbsp;If you are already using .NET 9 RC1, replace 8.0.0 with 9.0.0 in the Model Editor config file (C:\Program Files\DevExpress 24.2\Components\Tools\eXpressAppFrameworkNetCore\Model Editor\DevExpress.ExpressApp.Design.ModelEditorServer.NetCore.v24.2.runtimeconfig.json): See&amp;nbsp;&lt;a href="https://supportcenter.devexpress.com/ticket/details/t1200937#workaround" target="_blank"&gt;T1200937 - Core - Model Editor does not work with .NET 8 projects&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;Cross-Platform Enhancements&lt;/h2&gt;


&lt;h3&gt;Security Enhancements: Passkeys and MFA Support with Microsoft Entra ID, Google and Other Authentication Providers&lt;/h3&gt;

&lt;p&gt;As you may already know, both XAF UI (Blazor and WinForms) and our Web API Service offer a &amp;quot;1-click&amp;quot; solution to incorporate modern OAuth2 authentication providers with native Single Sign-On (SSO) (such as&amp;nbsp;&lt;a href="https://www.microsoft.com/en-us/security/business/identity-access/microsoft-entra-single-sign-on" target="_blank"&gt;Microsoft Entra SSO&lt;/a&gt;), Multi-Factor Authentication (MFA), and other security features. This works for both EF Core and XPO ORM. For additional information in this regard, refer to&amp;nbsp;&lt;a href="https://docs.devexpress.com/eXpressAppFramework/402197/data-security-and-safety/security-system/authentication/oauth-and-custom-authentication/active-directory-and-oauth2-authentication-providers-in-blazor-applications"&gt;Active Directory and OAuth2 Authentication Providers in ASP.NET Core Blazor Applications&lt;/a&gt;&amp;nbsp;and related documents.&lt;/p&gt;&lt;p&gt;&lt;img src="https://community.devexpress.com:443/blogs/xaf/image(74).png" alt=""&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;Passkeys uses your device lock (such as your fingerprint, face, pin or pattern) to sign in to your Microsoft, Google or other authentication provider accounts. For example, Microsoft Authenticator can be used to sign in to any Microsoft Entra ID account without using a password. Microsoft Authenticator uses key-based authentication to enable user credentials tied to a device (where the device uses a PIN or biometrics). &lt;a href="https://learn.microsoft.com/en-us/windows/security/identity-protection/hello-for-business/hello-identity-verification"&gt;Windows Hello for Business&lt;/a&gt; uses a similar technology.&lt;/p&gt;&lt;p&gt;&lt;img src="https://community.devexpress.com:443/blogs/xaf/entraID.png" alt=""&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;With v24.2, XAF UI (Blazor and WinForms) and our Web API Service will support all Passkey-related usage scenarios. This includes restoring a forgotten password, temporarily blocking access to accounts, account recovery, face recognition login, PIN, fingerprint, OTP, QR codes,&amp;nbsp;or various authenticator apps, using a Middle Tier Application Server or simpler configurations in WinForms, etc.&lt;/p&gt;&lt;img src="https://community.devexpress.com:443/blogs/xaf/fingerprint.jpg" alt=""&gt;&lt;br&gt;

&lt;h3&gt;EF Core Calculated Fields&lt;/h3&gt;


&lt;p&gt;We implemented a simpler solution for server-side calculated fields in EF Core.&amp;nbsp;&lt;span&gt;Note that you can sort, group, or filter List View data by calculated properties in Server and InstantFeedback modes.&lt;/span&gt; Use &lt;em&gt;DevExpress.ExpressApp.DC.CalculatedAttribute&lt;/em&gt; or &lt;em&gt;DevExpress.ExpressApp.DC.PersistentAliasAttribute&lt;/em&gt; to indicate whether a property&amp;#39;s value is calculated.&amp;nbsp;The following code snippet demonstrates how to create a class with a calculated property:&amp;nbsp;&lt;/p&gt;&lt;pre&gt;&lt;code class="language-csharp"&gt;using DevExpress.ExpressApp.DC;
public class Product : BaseObject {
 // ...
 public virtual decimal Quantity { get; set; }
 public virtual decimal Price { get; set; }
 
[PersistentAlias(&amp;quot;Quantity * Price&amp;quot;)]
 // or [Calculated(&amp;quot;Quantity * Price&amp;quot;)]
 public decimal TotalPrice {
     get {  return EvaluateAlias&amp;lt;decimal&amp;gt;();  }
 }
} &lt;/code&gt;&lt;/pre&gt;
&lt;h3&gt;EF Core Soft Deletion&lt;/h3&gt;
&lt;p&gt;v24.2 supports EF Core soft deletion&amp;nbsp;(aka &lt;a href="https://docs.devexpress.com/XPO/2026/crud/deleting-persistent-objects#deferred-object-deletion" target="_blank" rel="noreferrer noopener"&gt;XPO&amp;#39;s Deferred Deletion&lt;/a&gt;) for both XAF UI and Web API Service-powered apps. &lt;/p&gt;


&lt;p&gt;With soft or deferred object deletion, the ORM marks objects as deleted and does not physically remove them from the database immediately. This technique helps avoid database exceptions when deleting objects referenced by other entities.&amp;nbsp;&lt;/p&gt;


&lt;p&gt;We have also created an automatic converter for existing database tables (to add the new GCRecord column). For additional information in this regard, please review the following:&amp;nbsp;&lt;a href="https://supportcenter.devexpress.com/ticket/details/t1247762/core-database-and-data-model-code-changes-for-xaf-ef-core-apps-to-support-soft-deferred" target="_blank" rel="noreferrer noopener"&gt;Core - Database and data model code changes for XAF EF Core apps to support Soft/Deferred Deletion&lt;/a&gt;.&amp;nbsp;&amp;nbsp;&lt;/p&gt;

&lt;h3&gt;EF Core Filtering Capabilities Are Now on Par with XPO ORM&lt;/h3&gt;


&lt;p&gt;v24.2 introduces calculated properties for EF Core in XAF (see above). This change necessitated easy access to custom IsExactType and IsInstanceOfType functions regardless of the ORM used in an application.&amp;nbsp;&lt;/p&gt;


&lt;p&gt;To achieve parity, we moved custom IsExactType and IsInstanceOfType functions from the DevExpress.Xpo assembly to the DevExpress.Data assembly (see the following ticket for additional information: &lt;a href="https://supportcenter.devexpress.com/ticket/details/t1251791/xpo-the-isexacttype-and-isinstanceoftype-custom-functions-has-been-moved-to-the" target="_blank" rel="noreferrer noopener"&gt;XPO - The IsExactType and IsInstanceOfType custom functions has been moved to the DevExpress.Data assembly&lt;/a&gt;). &amp;nbsp;&lt;br&gt;&amp;nbsp;&lt;br&gt;The change allows this feature&amp;nbsp;to work in EF Core.&amp;nbsp;We would also like to mention that you can use the following features in EF Core projects: &lt;a href="https://docs.devexpress.com/XPO/2650/create-a-data-model/upcasting" target="_blank" rel="noreferrer noopener"&gt;Upcasting&lt;/a&gt; and &lt;a href="https://docs.devexpress.com/XPO/8130/query-and-shape-data/free-joins" target="_blank" rel="noreferrer noopener"&gt;Free Joins&lt;/a&gt;. This makes EF Core filtering capabilities&amp;nbsp;no different from what is available in XPO ORM today.&lt;/p&gt;

&lt;h3&gt;XPO DateOnly/TimeOnly Support&amp;nbsp;&lt;/h3&gt;


&lt;p&gt;In v24.2, XAF supports DateOnly/TimeOnly in XPO connection providers for .NET apps. This enhancement benefits XAF/Reporting/Dashboards and other products since XPO is at the core of data access code internally. As part of this, we also &lt;a href="https://supportcenter.devexpress.com/ticket/details/t1251731/xpo-changed-column-mappings-for-sql-types-date-and-time" target="_blank" rel="noreferrer noopener"&gt;changed column mappings&lt;/a&gt; for SQL types Date and Time.&amp;nbsp;&amp;nbsp;&lt;/p&gt;


&lt;p&gt;For more information on DateOnly/TimeOnly enhancements at the UI level of XAF WinForms apps (in grid and other controls), please review the following articles: v24.1 (&lt;a href="https://www.devexpress.com/subscriptions/whats-new/#winforms-dateonly-support" target="_blank" rel="noreferrer noopener"&gt;WinForms,&lt;/a&gt; &lt;a href="https://www.devexpress.com/subscriptions/whats-new/#blazor-grid-dateonly-timeonly-support" target="_blank" rel="noreferrer noopener"&gt;Blazor&lt;/a&gt;), v24.2 (the links to WinForms and Blazor EAP posts).&amp;nbsp;&lt;/p&gt;

&lt;h3&gt;Performance Enhancements&amp;nbsp;&lt;/h3&gt;


&lt;p&gt;We optimized image/icon load operations across all supported platforms. We noticed improvements in application startup time of up to 2 seconds (or more in complex applications with numerous Actions [&amp;gt;500]).&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Internally, we also used CriteriaCompiler instead of CriteriaEvaluator&amp;nbsp;in security Object and Member Permissions (EF Core and XPO ORM) and Calculated Fields (EF Core only). This &lt;strong&gt;cut calculation time and memory allocations in&amp;nbsp;half for specific usage&amp;nbsp;&lt;/strong&gt;&lt;strong&gt;scenarios&lt;/strong&gt;. Optimizations are not yet finalized, but our complete implementation should be available as we near Beta 1 in November (v24.2.2+). In the meantime, you can check out a few screenshots from our labs (these changes are not yet included into this EAP):&lt;/p&gt;&lt;p&gt;
&lt;img src="https://community.devexpress.com:443/blogs/xaf/image(69).png" alt="" style="width:1778px;height:1070px;border-width:1px;border-color:#c0c0c0;border-style:solid;"&gt;
&lt;/p&gt;&lt;p&gt;

&lt;img src="https://community.devexpress.com:443/blogs/xaf/image(71).png" alt="" style="width:1778px;height:1070px;border-width:1px;border-color:#c0c0c0;border-style:solid;"&gt;
&lt;/p&gt;&lt;img src="https://community.devexpress.com:443/blogs/xaf/image(72).png" alt="" style="width:1778px;height:1170px;border-width:1px;border-color:#c0c0c0;border-style:solid;"&gt;
&lt;h3&gt;Audit Trail Enhancements&amp;nbsp;&lt;/h3&gt;


&lt;p&gt;XAF now automatically excludes all non-persistent properties from the audit trail in XPO-based applications. This enhancement can improve performance if setter methods for non-persistent properties contain extensive logic.&amp;nbsp;&lt;/p&gt;


&lt;p&gt;To update existing apps, set the static ObjectAuditProcessor.ExcludeNonPersistentFromAudit property to true. For additional&amp;nbsp;information, please review the following:&amp;nbsp;&lt;a href="https://supportcenter.devexpress.com/ticket/details/t1246233/audit-non-persistent-properties-are-excluded-from-the-audit-log-xpo" target="_blank" rel="noreferrer noopener"&gt;T1246233 - Audit - Non Persistent Properties are Excluded from the Audit Log (XPO)&lt;/a&gt;.&amp;nbsp;&lt;/p&gt;

&lt;h3&gt;Usability Enhancements&amp;nbsp;&lt;/h3&gt;


&lt;p&gt;We added new extension methods to make it easier to create a new Object Space using XafApplication and IObjectSpaceFactory.&amp;nbsp;&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;// v24.1.3 and earlier
var os = Application.CreateObjectSpace(typeof(Person));
// v24.1.5+ and v24.2+
var os = Application.CreateObjectSpace&amp;lt;Person&amp;gt;();
&lt;/code&gt;&lt;/pre&gt;





&lt;p&gt;If you used IObjectSpaceFactory in ASP.NET Core apps (Web API Service controllers, custom Razor components, etc.), please consider the following minor&amp;nbsp;breaking change in v24.2:&amp;nbsp;&lt;a href="https://supportcenter.devexpress.com/ticket/details/t1254577/inonsecuredobjectspacefactory-and-iobjectspacefactory-classes-were-moved-to-the" target="_blank"&gt;T1254577 - INonSecuredObjectSpaceFactory and IObjectSpaceFactory classes were moved to the DevExpress.ExpressApp namespace&lt;/a&gt;.&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Artificial Intelligence (AI)&lt;/h2&gt;
&lt;p&gt;XAF Blazor and XAF WinForms-powered apps automatically derive all AI-related&amp;nbsp;features available in DevExpress components for each supported UI platforms. You can either access underlying UI controls and enable AI features as necessary (&lt;a href="https://supportcenter.devexpress.com/ticket/details/t1256162/ai-blazor-richedit-integration-in-v24-2eap#dac3b611-43da-4f3e-8dc3-b8a52631a137" target="_blank"&gt;an example with Blazor Rich Text Editor&lt;/a&gt;) OR create custom &lt;a href="https://docs.devexpress.com/eXpressAppFramework/113610/ui-construction/using-a-custom-control-that-is-not-integrated-by-default" target="_blank"&gt;XAF Property Editors /&amp;nbsp;user controls/forms&lt;/a&gt; based on AI-powered DevExpress controls like the Chat control.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://community.devexpress.com/blogs/news/archive/2024/09/18/devexpress-ai-powered-extensions-extending-text-editors-with-ai-eap-v24-2.aspx" target="_blank"&gt;DevExpress AI-powered APIs&lt;/a&gt;&amp;nbsp;allow&amp;nbsp;you to integrate the following AI services into your DevExpress-powered applications:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;OpenAI&lt;/li&gt;
&lt;li&gt;Azure OpenAI&lt;/li&gt;
&lt;li&gt;Ollama&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;AI services and DevExpress AI extensions (behaviors) follow a &amp;quot;bring your own key&amp;quot; approach. DevExpress does not provide a REST API or include built-in LLMs/SLMs. To use AI services, you need an active Azure/OpenAI subscription to obtain the&amp;nbsp;necessary REST API endpoint, key, and model deployment name. This information&amp;nbsp;must be provided at application startup to register AI clients and enable DevExpress AI-powered features in your applications.&lt;/p&gt;
&lt;p&gt;For additional information, please review the following documents: &lt;a href="https://community.devexpress.com/blogs/news/archive/2024/09/18/devexpress-ai-powered-extensions-extending-text-editors-with-ai-eap-v24-2.aspx" target="_blank"&gt;Overview&lt;/a&gt; |&amp;nbsp;&lt;a href="https://docs.devexpress.com/WindowsForms/405151/ai-powered-extensions?v=24.2" target="_blank"&gt;DevExpress AI-Powered Extensions for WinForms&lt;/a&gt;&amp;nbsp;| &lt;a href="https://community.devexpress.com/blogs/office/archive/2024/09/20/office-inspired-controls-winforms-amp-wpf-early-access-preview-v24-2-ai-powered-behaviors-and-accessibility-enhancements.aspx" target="_blank"&gt;AI-Powered Behaviors in Rich Text and Spreadsheet Editors for WinForms&lt;/a&gt; |&amp;nbsp;&lt;a href="https://community.devexpress.com/blogs/aspnet/archive/2024/09/18/new-devexpress-ai-focused-blazor-chat-control-early-access-preview-v24-2.aspx" target="_blank"&gt;AI-Powered Blazor Chat Component&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;ASP.NET Core Blazor UI&lt;/h2&gt;

&lt;h3&gt;HTML Markup Support within the&amp;nbsp;Rich Text Property Editor&amp;nbsp;&lt;/h3&gt;


&lt;p&gt;XAF Blazor v24.2 supports &lt;a href="https://docs.devexpress.com/eXpressAppFramework/400063/document-management/office-module/how-to-access-the-rich-text-editor-controls#change-the-document-storage-format" target="_blank" rel="noreferrer noopener"&gt;DocumentStorageFormat = Html&lt;/a&gt; for the&amp;nbsp;RichTextPropertyEditor. You can change this property via the Model Editor to support HTML markup instead of RTF (default).&amp;nbsp;&lt;/p&gt;

&lt;h3&gt;Default Caption or Image in Action Container with Drop-Down Menu&amp;nbsp;&lt;/h3&gt;


&lt;p&gt;In previous versions, action containers with drop-down menus required a default action which was displayed inside the container. In this instance, when the drop-down menu was opened, it displayed all actions except the default. Based on user feedback, we have changed this behavior in this release.&lt;/p&gt;


&lt;p&gt;You can now&amp;nbsp;leave the container without a default action and set a custom caption and image for the container instead. These captions and images will always be displayed regardless of which action is currently selected. In this instance, all actions added to the container are added to the drop-down menu.&amp;nbsp;&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;Toolbar.AddActionContainer(&amp;quot;DropdownContainer&amp;quot;, isDropDown: true, caption: &amp;quot;Actions&amp;quot;, imageName: &amp;quot;Action_Search&amp;quot;); &lt;/code&gt;&lt;/pre&gt;


&lt;h3&gt;Tabbed MDI Enhancements&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://docs.devexpress.com/eXpressAppFramework/DevExpress.ExpressApp.UIType#tabbedmdi" target="_blank" rel="noreferrer noopener"&gt;Tabbed MDI&lt;/a&gt; is a multiple document interface (MDI) UI metaphor found in many modern applications (including your favorite Web browser or Microsoft Outlook Web). It is a robust interface that maximizes document screen real estate, especially when working with multiple&amp;nbsp;documents, email messages, etc. Tabbed MDI is enabled in XAF Blazor and WinForms&amp;nbsp;apps by default.&lt;/p&gt;
&lt;p&gt;XAF Blazor v24.2 adds&amp;nbsp;tab context menu support (Close, Close All But This, Close All) and allows users to close a&amp;nbsp;tab by using a middle-mouse click. XAF also stores the last active tab in the Application Model and restores it when you restart the application.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://community.devexpress.com:443/blogs/xaf/image(73).png" alt=""&gt;&lt;br&gt;&lt;/p&gt;



&lt;div class="Note"&gt;Early Access and CTP builds are provided solely for early testing purposes and are not ready for production use. This build can be installed side by side with other major versions of DevExpress products. Please backup your project and other important data before installing Early Access and CTP builds. This EAP may not include all features/products we expect to ship in our v24.1&amp;nbsp;release cycle. As its name implies, the EAP offers an early preview of what we expect to ship in two months.&lt;/div&gt;&lt;h2&gt;Your Feedback Matters!&lt;/h2&gt;&lt;p&gt;We recommend that you test the new features outlined in this post within Visual Studio 2022 using our&amp;nbsp;MainDemo.NET.EFCore&amp;nbsp;or MainDemo.NET.XPO demo (located in the following folder:&amp;nbsp;&amp;quot;&lt;strong&gt;c:\Users\Public\Documents\DevExpress Demos 24.2\Components\XAF\&lt;/strong&gt;&amp;quot;). You can also test the EAP build against your project, but please remember that this build is not ready for production use. We will keep you posted about additional features we expect to ship in 2024 (see &lt;a href="https://www.devexpress.com/go/XAF_Roadmap.aspx" target="_blank"&gt;our Year-End v2024.2 roadmap&lt;/a&gt;) as&amp;nbsp;we get closer to official release.&lt;/p&gt;&lt;p&gt;If you&amp;#39;ve had the opportunity to use the EAP build, please post your thoughts&amp;nbsp;in our roadmap survey&amp;nbsp;below OR&amp;nbsp;&lt;a href="https://www.devexpress.com/ask" target="_blank"&gt;create a Support Center ticket&lt;/a&gt;. We will happily follow up.&lt;/p&gt;&lt;div data-survey-id="8765276f-944d-49be-9154-b6826c51c8a1" data-survey-auth-required="false"&gt;&lt;/div&gt;&lt;p&gt;Thanks,&lt;br&gt;Dennis Garavsky&lt;br&gt;Principal Product Manager&lt;br&gt;&lt;a href="mailto:dennis@devexpress.com" title="Email me if you have questions or suggestions"&gt;dennis@devexpress.com&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;</description>
      <pubDate>Wed, 02 Oct 2024 08:03:00 Z</pubDate>
      <dc:creator>Dennis Garavsky (DevExpress)</dc:creator>
    </item>
    <item>
      <guid isPermaLink="false">bd716303-653c-428d-8b8a-a7d998cde032:388178</guid>
      <link>https://community.devexpress.com/Blogs/xaf/archive/2024/07/21/xaf-cross-platform-net-app-ui-and-web-api-service-year-end-roadmap-v24-2.aspx</link>
      <category domain="https://community.devexpress.com/Tags/.NET">.NET</category>
      <category domain="https://community.devexpress.com/Tags/.NET+8">.NET 8</category>
      <category domain="https://community.devexpress.com/Tags/.NET+9">.NET 9</category>
      <category domain="https://community.devexpress.com/Tags/.net+core">.net core</category>
      <category domain="https://community.devexpress.com/Tags/2024">2024</category>
      <category domain="https://community.devexpress.com/Tags/asp.net+Core">asp.net Core</category>
      <category domain="https://community.devexpress.com/Tags/blazor">blazor</category>
      <category domain="https://community.devexpress.com/Tags/EF+Core">EF Core</category>
      <category domain="https://community.devexpress.com/Tags/Entity+Framework">Entity Framework</category>
      <category domain="https://community.devexpress.com/Tags/future">future</category>
      <category domain="https://community.devexpress.com/Tags/OData">OData</category>
      <category domain="https://community.devexpress.com/Tags/Performance">Performance</category>
      <category domain="https://community.devexpress.com/Tags/roadmap">roadmap</category>
      <category domain="https://community.devexpress.com/Tags/security">security</category>
      <category domain="https://community.devexpress.com/Tags/v24.2">v24.2</category>
      <category domain="https://community.devexpress.com/Tags/web+api">web api</category>
      <category domain="https://community.devexpress.com/Tags/WinForms">WinForms</category>
      <category domain="https://community.devexpress.com/Tags/XAF">XAF</category>
      <category domain="https://community.devexpress.com/Tags/XPO">XPO</category>
      <title>XAF (Cross-Platform .NET App UI &amp; Web API Service) — Year-End Roadmap (v24.2)</title>
      <description>&lt;strong&gt;&lt;span style="color:#ff0000;font-size:24px;"&gt;UPDATE:&amp;nbsp;&lt;a href="https://www.devexpress.com/subscriptions/new-2024-2.xml#xaf" target="_blank"&gt;What&amp;#39;s New in XAF (v24.2)&lt;/a&gt;&amp;nbsp;| &lt;a href="https://www.devexpress.com/go/XAF_Roadmap.aspx" target="_blank"&gt;June 2025 Roadmap (v25.1)&lt;/a&gt;&lt;/span&gt;&lt;/strong&gt;

&lt;p&gt;As always, thank you for choosing &lt;a href="https://www.devexpress.com/products/net/application_framework/" target="_blank"&gt;XAF&lt;/a&gt;.&amp;nbsp;&lt;span&gt;We appreciate your support.&amp;nbsp;&lt;/span&gt;This blog post outlines some of our XAF-related development plans for the second half of 2024&amp;nbsp;(v24.2).&amp;nbsp;&lt;span&gt;Strategically, our goal is to focus on performance, overall stability/usability in this release cycle.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;If you have not heard of&amp;nbsp;&lt;/span&gt;&lt;a href="https://www.devexpress.com/products/net/application_framework/" target="_blank"&gt;XAF&lt;/a&gt;&lt;span&gt;&amp;nbsp;before, XAF is a .NET application framework that helps you build powerful Office-inspired line-of-business apps with&amp;nbsp;DevExpress Blazor and WinForms UI components (using Entity Framework or&amp;nbsp;XPO ORM). Feel free to&amp;nbsp;&lt;a href="https://www.devexpress.com/support/demos/#xaf" target="_blank"&gt;review XAF demos&lt;/a&gt;&amp;nbsp;and&amp;nbsp;compare XAF with other software development methodologies &lt;a href="https://www.devexpress.com/products/net/application_framework/xaf-considerations-for-newcomers.xml" target="_blank"&gt;here&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;&lt;span&gt;&lt;span&gt;When new users try &lt;a href="https://community.devexpress.com/blogs/xaf/archive/2023/12/28/xaf-blazor-2023-highlights-5-unique-web-features-that-rival-powerful-windows-desktop-solutions.aspx" target="_blank"&gt;unique XAF Blazor features&lt;/a&gt;&amp;nbsp;live in our XAF Blazor demo (especially Tabbed MDI or runtime layout customizations)&lt;/span&gt;&lt;span&gt;, they often ask whether it is a WinForms app (or if they are familiar with XAF, they&amp;nbsp;cannot believe how much XAF Blazor apps and DevExpress Blazor Components have progressed over the last couple of years).&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&lt;div class="Note"&gt;The information contained within this blog post details our current/projected development plans. Please note that this information is being shared for INFORMATIONAL PURPOSES ONLY and does not represent a binding commitment on the part of Developer Express Inc. This roadmap and the features/products listed within it are subject to change. You should not rely on or use this information to help make a purchase decision about Developer Express Inc products.&amp;nbsp;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;Core/Cross-Platform&lt;/h2&gt;
&lt;p&gt;Enhancements within this category (for example, performance or security)&amp;nbsp;apply to XAF/WinForms UI, Web API Service, and to WebForms (.NET Framework).&lt;/p&gt;
&lt;h3&gt;.NET Core Enhancements&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;We will introduce &lt;strong&gt;.NET 9&lt;/strong&gt;&amp;nbsp;support for&amp;nbsp;XAF Blazor/WinForms UI v24.2 and our Web API Service v24.2&amp;nbsp;(after November 2024). We will also support the latest .NET 9 previews for v24.1 (for early adopters to test).&amp;nbsp;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;.NET 8, .NET Framework 4.6.2, Visual Studio 2019&lt;/strong&gt;&amp;nbsp;will be minimally supported versions for DevExpress libraries moving forward (v24.2+). Learn more about this global change in the following&amp;nbsp;&lt;a href="https://community.devexpress.com/blogs/news/archive/2024/07/08/net-net-8-and-net-framework-4-6-2-are-minimally-supported-target-frameworks-for-devexpress-libraries-in-v24-2.aspx" target="_blank"&gt;announcement&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;With v24.2, we will improve integration&amp;nbsp;with &lt;strong&gt;Microsoft&amp;#39;s .NET Upgrade Assistant Tool. &lt;/strong&gt;&amp;nbsp;This change will simplify migration from .NET Framework to .NET. We expect to offer&amp;nbsp;&lt;a href="https://devblogs.microsoft.com/dotnet/announcing-api-map-support-for-ua/" target="_blank"&gt;predefined mappings&lt;/a&gt;&amp;nbsp;for appropriate&amp;nbsp;DevExpress packages.&lt;/li&gt;&lt;li&gt;We expect to support XAF project and item templates for VS Code and Rider&amp;nbsp;(potentially) as part of the cross-platform DevExpress Template Gallery (our &lt;a href="https://docs.devexpress.com/eXpressAppFramework/404967/installation-upgrade-version-history/dotnet-cli-integration" target="_blank"&gt;CLI-based templates&lt;/a&gt;&lt;span&gt;&amp;nbsp;will be used under the hood).&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Source Code Builder Enhancements&lt;/h3&gt;
&lt;p&gt;We will simplify&amp;nbsp;the steps needed to&amp;nbsp;&lt;a href="https://docs.devexpress.com/GeneralInformation/403678/source-code/rebuild-assemblies-from-source-code"&gt;rebuild assemblies from source code&lt;/a&gt;&amp;nbsp;in our v24.2 release cycle:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Our source builder tool will ship in the DevExpress&amp;nbsp;Unified Component Installer.&lt;/li&gt;
&lt;li&gt;Our source builder tool will be more stable (we added more internal tests for the rebuild process on our build farm) and will require fewer steps to initiate/complete source rebuild.&lt;/li&gt;
&lt;li&gt;It will be&amp;nbsp;easier to rebuild .NET Core/.NET projects (currently, it is a manual process)&amp;nbsp;and generate corresponding NuGet packages (including localization packages).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;EF Core ORM Enhancements&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;We will add EF Core 9 ORM support for&amp;nbsp;XAF Blazor/WinForms UI and Web API Service.&lt;/li&gt;
&lt;li&gt;We will introduce&amp;nbsp;ServerView and InstantFeedbackView data access modes for&amp;nbsp;ListView, at least at the core level (additional integration for&amp;nbsp;XAF Blazor/WinForms UI may be pursued in future versions).&lt;/li&gt;
&lt;li&gt;We will implement a simpler solution for server-side calculated fields in EF Core (aka XPO&amp;#39;s PersistentAliasAttribute).&lt;/li&gt;
&lt;li&gt;We will support soft deletion for EF Core (aka XPO&amp;#39;s Deferred Deletion).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;XPO ORM Enhancements&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;We will support the latest versions of database drivers/connectors for PostreSQL, Oracle, and My SQL (and SQL Server 2024, should it be released).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;We will support DateOnly/TimeOnly in XPO connection providers for .NET apps (this enhancement will benefit XAF/Reporting/Dashboards and other products since XPO is at the core of data access code internally).&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Security Enhancements&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;We will simplify the following user management tasks for XAF-powered Blazor apps: MFA, Forgot&amp;nbsp;Password, and potentially Sign Up.&lt;/li&gt;
&lt;li&gt;We will enhance our built-in Tenant Resolvers (a part of our Multi-Tenancy module) so they work more effectively with OAuth2 providers such as Google or Microsoft Entra ID (&lt;a href="https://supportcenter.devexpress.com/ticket/details/t1229280/multitenant-module-google-oauth-improvement" target="_blank"&gt;example&lt;/a&gt;).&lt;/li&gt;
&lt;li&gt;We will enhance XAF Blazor and Web API Service project templates to enable &lt;a href="https://learn.microsoft.com/en-us/aspnet/core/blazor/security/?view=aspnetcore-8.0#antiforgery-support" target="_blank"&gt;angiforgery protection&lt;/a&gt; by default. Even though&amp;nbsp;CSRF tokens &lt;a href="https://github.com/dotnet/aspnetcore/issues/11787#issuecomment-508000446" target="_blank"&gt;aren&amp;#39;t involved in the server-side Blazor circuit&lt;/a&gt; by default, our customers can add custom code to&amp;nbsp;XAF Blazor apps where CSRF will make sense (for instance, complex client-side code, which can consume external web services).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Performance Enhancements&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;We will refactor our internal code to use&amp;nbsp;CriteriaCompiler instead of ExpressionEvaluator by default (wherever possible). This should enhance performance  in certain implementation scenarios (Security System, Object Space, etc).&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;We expect to modify default indices for Audit Trail business classes and enhance read performance for specific usage scenarios.&amp;nbsp;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;We expect to optimize Notifications Module performance when an app includes multiple scheduler appointments.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;ASP.NET Core Blazor UI&lt;/h2&gt;
&lt;p&gt;We expect to release the following XAF Blazor UI features/capabilities in our v24.2&amp;nbsp;release cycle (December&amp;nbsp;2024).&lt;/p&gt;
&lt;h3&gt;List and Property Editor Enhancements&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;XAF Blazor UI will include a built-in TreeListEditor (powered by the DevExpress Blazor&amp;nbsp;&lt;/span&gt;&lt;a href="https://docs.devexpress.com/Blazor/404942/components/treelist" target="_blank"&gt;TreeList&lt;/a&gt;&lt;span&gt;).&amp;nbsp;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;We will support storage of HTML-formatted documents within the Rich Text Property Editor (&lt;a href="https://docs.devexpress.com/eXpressAppFramework/401210/document-management/office-module/how-to-customize-the-rich-text-editors#change-the-document-storage-format" target="_blank"&gt;learn more&lt;/a&gt;).&amp;nbsp;&lt;/li&gt;&lt;li&gt;We want to support &lt;a href="https://docs.devexpress.com/eXpressAppFramework/DevExpress.Persistent.Base.DataSourceCriteriaAttribute" target="_blank"&gt;DataSourceXXX attributes&lt;/a&gt;&amp;nbsp;for Enumeration Property Editors (much like the attributes available for Lookup and Link List Views).&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;img src="https://docs.devexpress.com/Blazor/images/treelist/blazor-treelist-overview.png" alt="TreeList Overview"&gt;&lt;/p&gt;
&lt;h3&gt;Error Handling Enhancements&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;We will extend XAF&amp;#39;s Blazor error handling engine (to closely mirror&amp;nbsp;XAF WinForms/WebForms counterparts): non-critical exceptions will not crash the entire app and redirect to an error page&amp;nbsp;but will instead be isolated in regions or notification messages. We hope to leverage ASP.NET&amp;nbsp;&lt;a href="https://learn.microsoft.com/en-us/aspnet/core/blazor/fundamentals/handle-errors?view=aspnetcore-8.0#error-boundaries" target="_blank"&gt;Error Boundaries&lt;/a&gt;&amp;nbsp;to address our requirements.&lt;/li&gt;
&lt;li&gt;We hope to output more useful error information to developers during debug/development (currently, it requires using web browser tools - F12).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;Performance Enhancements&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;We will optimize page rendering for a variety of common Blazor-specific usage&amp;nbsp;scenarios (logon form, grid, and main menu toolbar rendering, etc.).&lt;/li&gt;&lt;li&gt;We hope to optimize tab close operations&amp;nbsp;when Tabbed MDI is enabled (to avoid execution of unnecessary logic when disposing off related Views).&lt;/li&gt;&lt;li&gt;We will support ServerView and InstantFeedbackView &lt;a href="https://docs.devexpress.com/eXpressAppFramework/113683/ui-construction/views/list-view-data-access-modes" target="_blank"&gt;data access modes&lt;/a&gt; for&amp;nbsp;ListView with EF Core, at least at the core level (additional integration for&amp;nbsp;XAF Blazor UI and DxGridListEditor with EF Core and XPO may be pursued in future versions).​&lt;/li&gt;&lt;/ul&gt;
&lt;h3&gt;Usability Enhancements&lt;/h3&gt;
&lt;ul&gt;&lt;li&gt;We will introduce tab context menus (Close, Close All But This, Close All), middle-mouse click, and potentially other usability enhancements.&lt;/li&gt;&lt;li&gt;
&lt;p&gt;We will add VisibleInCustomizationForm or similar attributes in the Application Model to hide certain properties or fields from ListView and DetailView customization forms much easier (&lt;a href="https://supportcenter.devexpress.com/ticket/details/q366279/how-to-hide-a-property-field-from-the-grid-s-column-chooser-layout-s-customization-form" target="_blank"&gt;without the need for manual code-based solutions&lt;/a&gt;).&lt;/p&gt;
&lt;/li&gt;&lt;li&gt;
&lt;p&gt;We hope to make it easier for end-users to add/remove tabs during DetailView layout customization at runtime (this is a quite complicated task, which we researched in the past, but we want to give it another try).&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;img src="https://www.devexpress.com/products/net/application_framework/i/appgallery/blazor-crm-employee-details-xaf@2x.png" alt="" style="width:1440px;height:1000px;border-width:1px;border-color:#c0c0c0;border-style:solid;"&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="color:#656565;font-family:&amp;#39;Open Sans Condensed&amp;#39;, HelveticaNeue-CondensedBold, Helvetica, &amp;#39;Arial Narrow&amp;#39;, Calibri, Arial, &amp;#39;Lucida Grande&amp;#39;, sans-serif;font-size:24px;"&gt;Deployment Enhancements&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;We will publish&amp;nbsp;a few examples and demonstrate how&amp;nbsp;&lt;a href="https://learn.microsoft.com/en-us/dotnet/aspire/get-started/aspire-overview" target="_blank"&gt;.NET Aspire&lt;/a&gt;&amp;nbsp;can simplify development/deployment of XAF Blazor and Web API Service-based apps, especially for non-Windows production environments. &lt;/p&gt;&lt;p&gt;Our ultimate goal is to fully automate manual steps documented in the following help topics:&amp;nbsp;&lt;a href="https://docs.devexpress.com/eXpressAppFramework/404614/deployment/asp-net-core-blazor/deploy-a-blazor-application-to-azure"&gt;Deploy an ASP.NET Core Blazor Server Application to Azure App Service&lt;/a&gt;&amp;nbsp;|&amp;nbsp;&lt;a href="https://docs.devexpress.com/eXpressAppFramework/404717/deployment/asp-net-core-blazor/deploy-a-blazor-application-to-linux-with-nginx"&gt;Deploy an ASP.NET Core Blazor Server Application to Linux with Nginx&lt;/a&gt;.&lt;/p&gt;&lt;h3&gt;And Much More in Blazor Components...&lt;/h3&gt;&lt;p&gt;&lt;span&gt;For even more enhancements in XAF Blazor UI, please check out&amp;nbsp;&lt;/span&gt;&lt;a href="https://community.devexpress.com/blogs/aspnet/archive/2024/02/12/blazor-v24-1-roadmap.aspx"&gt;&lt;/a&gt;&lt;a href="https://community.devexpress.com/blogs/aspnet/archive/2024/07/22/blazor-year-end-roadmap-v24-2.aspx"&gt;Blazor — Year-End Roadmap (v24.2)&lt;/a&gt;&amp;nbsp;&lt;span&gt;&amp;nbsp;- many of these component features (not all) will be available in XAF Blazor automatically.&lt;/span&gt;&lt;br&gt;&lt;/p&gt;

&lt;h2&gt;Your Feedback Matters&lt;/h2&gt;&lt;p&gt;Your response to the following questions will help us refine plans for our next major release:&lt;/p&gt;&lt;div data-survey-id="8765276f-944d-49be-9154-b6826c51c8a1" data-survey-auth-required="false"&gt;&lt;/div&gt;&lt;span&gt;If you have yet to review the features/capabilities introduced in our most recent major update (&lt;/span&gt;&lt;strong&gt;v24.1&lt;/strong&gt;&lt;span&gt;), please&amp;nbsp;&lt;/span&gt;&lt;a href="https://www.devexpress.com/subscriptions/whats-new/" target="_blank"&gt;visit the following webpage&lt;/a&gt;&lt;span&gt;&amp;nbsp;and let us know what you think of this release by responding to&amp;nbsp;&lt;/span&gt;&lt;a href="https://www.devexpress.com/subscriptions/whats-new/#xaf-survey" target="_blank"&gt;our online XAF v24.1 survey&lt;/a&gt;&lt;span&gt;.&lt;/span&gt;&lt;p&gt;Thanks,&lt;br&gt;Dennis Garavsky&lt;br&gt;Principal Product Manager&lt;br&gt;&lt;a href="mailto:dennis@devexpress.com" title="Email me if you have questions or suggestions"&gt;dennis@devexpress.com&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Sun, 21 Jul 2024 23:51:00 Z</pubDate>
      <dc:creator>Dennis Garavsky (DevExpress)</dc:creator>
    </item>
    <item>
      <guid isPermaLink="false">bd716303-653c-428d-8b8a-a7d998cde032:388145</guid>
      <link>https://community.devexpress.com/Blogs/xaf/archive/2024/04/18/xaf-v24-1-eap-tabbed-mdi-grid-batch-edit-notifications-module-customization-form-and-accessibility-enhancements-for-blazor-ef-core-8-and-performance-enhancements.aspx</link>
      <category domain="https://community.devexpress.com/Tags/.net+6">.net 6</category>
      <category domain="https://community.devexpress.com/Tags/.NET+8">.NET 8</category>
      <category domain="https://community.devexpress.com/Tags/.net+core">.net core</category>
      <category domain="https://community.devexpress.com/Tags/2024">2024</category>
      <category domain="https://community.devexpress.com/Tags/accessibility">accessibility</category>
      <category domain="https://community.devexpress.com/Tags/asp.net+Core">asp.net Core</category>
      <category domain="https://community.devexpress.com/Tags/blazor">blazor</category>
      <category domain="https://community.devexpress.com/Tags/eap">eap</category>
      <category domain="https://community.devexpress.com/Tags/EF">EF</category>
      <category domain="https://community.devexpress.com/Tags/EF+Core">EF Core</category>
      <category domain="https://community.devexpress.com/Tags/Entity+Framework">Entity Framework</category>
      <category domain="https://community.devexpress.com/Tags/Non-Windows">Non-Windows</category>
      <category domain="https://community.devexpress.com/Tags/OData">OData</category>
      <category domain="https://community.devexpress.com/Tags/OpenAPI">OpenAPI</category>
      <category domain="https://community.devexpress.com/Tags/prerelease">prerelease</category>
      <category domain="https://community.devexpress.com/Tags/REST">REST</category>
      <category domain="https://community.devexpress.com/Tags/restful">restful</category>
      <category domain="https://community.devexpress.com/Tags/roadmap">roadmap</category>
      <category domain="https://community.devexpress.com/Tags/security">security</category>
      <category domain="https://community.devexpress.com/Tags/survey">survey</category>
      <category domain="https://community.devexpress.com/Tags/Swagger">Swagger</category>
      <category domain="https://community.devexpress.com/Tags/Usability">Usability</category>
      <category domain="https://community.devexpress.com/Tags/v24.1">v24.1</category>
      <category domain="https://community.devexpress.com/Tags/web+api">web api</category>
      <category domain="https://community.devexpress.com/Tags/XAF">XAF</category>
      <category domain="https://community.devexpress.com/Tags/XPO">XPO</category>
      <title>XAF v24.1 EAP — Tabbed MDI, Batch Edit, Notifications, Customization Form and Accessibility for Blazor, EF Core 8 and Performance Boost for Middle Tier Server</title>
      <description>&lt;p&gt;As you may already know, we are a couple of months away from our next major update (v24.1). This post describes&amp;nbsp;&lt;strong&gt;a few&lt;/strong&gt;&amp;nbsp;&lt;a href="https://www.devexpress.com/products/net/application_framework/" target="_blank"&gt;XAF&lt;/a&gt;-related&amp;nbsp;features we expect to ship in early June and details what’s inside our Early Access Preview build (for additional information on what you can expect, refer to&amp;nbsp;&lt;a href="https://community.devexpress.com/blogs/xaf/archive/2024/01/31/xaf-v24-1-june-2024-roadmap-cross-platform-net-app-ui-blazor-winforms-and-web-api-service.aspx" target="_blank"&gt;our June 2024.1 roadmap&lt;/a&gt;).&lt;/p&gt;&lt;p&gt;As you will see below, XAF key focus areas will continue to remain &lt;strong&gt;Blazor, Entity Framework&amp;nbsp;Core, Security&amp;nbsp;and .NET 8&lt;/strong&gt;.&amp;nbsp;&lt;a href="https://www.devexpress.com/products/net/application_framework/xaf-considerations-for-newcomers.xml" target="_blank"&gt;One of XAF’s core development pillars&lt;/a&gt;&amp;nbsp;is Low-Code/No-Code .NET application development (for Web, Desktop and APIs simultaneously).&amp;nbsp;When time to market/efficiency matters (especially in today&amp;#39;s world), XAF can help you deliver line-of-business apps in the shortest possible time using familiar RAD methodologies.&lt;br&gt;&lt;/p&gt;&lt;p&gt;If you own an active&amp;nbsp;&lt;a href="https://www.devexpress.com/subscriptions/universal.xml" target="_blank"&gt;Universal Subscription&lt;/a&gt;, feel free to download this Early Access Preview (EAP) build at your convenience. If you own an active&amp;nbsp;&lt;a href="https://www.devexpress.com/subscriptions/dxperience.xml" target="_blank"&gt;DXperience Subscription&lt;/a&gt;&amp;nbsp;and would like to learn more about our&amp;nbsp;&lt;a href="https://www.devexpress.com/products/net/application_framework/" target="_blank"&gt;Cross-Platform .NET App UI (XAF)&lt;/a&gt;&amp;nbsp;or&amp;nbsp;&lt;a href="https://www.devexpress.com/products/net/application_framework/security-web-api-service.xml" target="_blank"&gt;Web API Service&lt;/a&gt;, you can explore the features described herein by logging onto the DevExpress&amp;nbsp;&lt;a href="https://www.devexpress.com/ClientCenter/DownloadManager/" target="_blank"&gt;Download Manager&lt;/a&gt;&amp;nbsp;and installing this EAP build in trial mode. Once you do, please take a moment to tell us whether these new features address your business needs. Your feedback will help us fine-tune our implementation before official launch.&lt;/p&gt;&lt;img src="https://community.devexpress.com:443/blogs/xaf/image(54).png" alt="" style="width:2824px;height:676px;border-width:1px;border-color:#c0c0c0;border-style:solid;"&gt;&lt;div&gt;&lt;div&gt;&lt;div class="Note"&gt;If you are using a trial and want to try these preview&amp;nbsp;features today, you can purchase a&amp;nbsp;&lt;a href="https://devexpress.com/buy"&gt;DevExpress Universal license online&lt;/a&gt;&amp;nbsp;(this will give you access to the early access preview build). If you own a non-Universal subscription and are ready to upgrade, email us at&amp;nbsp;&lt;a href="mailto:clientservices@devexpress.com"&gt;clientservices@devexpress.com&lt;/a&gt;&amp;nbsp;for upgrade pricing.&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;h2&gt;ASP.NET Core Blazor UI&lt;/h2&gt;&lt;h3&gt;Tabbed MDI Support&lt;/h3&gt;&lt;p&gt;Tabbed MDI is a multiple document interface (MDI) UI metaphor found in many modern applications (including your favorite Web browser or Microsoft Outlook Web). It is a robust interface that maximizes document screen real estate, especially when working with multiple&amp;nbsp;documents, email messages, etc.&lt;/p&gt;&lt;p&gt;Tabbed MDI is enabled in XAF WinForms apps by default, and&amp;nbsp;XAF Blazor will provide a similar user experience in v24.1. &lt;span style="background-color:#ffffff;"&gt;You can also customize Tabbed MDI in the Model Editor as follows:&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="background-color:#ffffff;"&gt;Restore previously opened tabs between application runs (RestoreTabbedMdiLayout&amp;nbsp;&lt;span&gt;=&amp;nbsp;&lt;/span&gt;True by default)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="background-color:#ffffff;"&gt;Refresh View data source on tab focus (&lt;span&gt;RefreshViewOnTabFocus =&amp;nbsp;&lt;/span&gt;False by default)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="background-color:#ffffff;"&gt;Display or hide tab images (&lt;span&gt;ShowTabImage&lt;/span&gt;&lt;span style="color:#242424;"&gt;&amp;nbsp;= True by default&lt;/span&gt;)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="background-color:#ffffff;"&gt;Display tabs at the top,&amp;nbsp;bottom, or right of the main window (TabPosition&amp;nbsp;&lt;span style="color:#242424;"&gt;= Top by default&lt;/span&gt;)&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="background-color:#ffffff;"&gt;In addition, you can access the underlying tab control in code and configure it as needed using a Controller (in the SolutionName.Blazor project). For instance, you can load tabs on demand or simultaneously.&lt;/span&gt;&lt;/p&gt;&lt;pre&gt;&lt;code class="language-csharp"&gt;protected override void OnFrameAssigned() {
    base.OnFrameAssigned();
    Frame.TemplateChanged += Frame_TemplateChanged;
}
private void Frame_TemplateChanged(object sender, EventArgs e) {
    if(Frame.Template is ApplicationMdiWindowTemplate template) {
        template.TabsModel.RenderMode = DevExpress.Blazor.TabsRenderMode.AllTabs;
    }
}&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;span style="background-color:#ffffff;"&gt;&lt;br&gt;&lt;/span&gt;Since our EAP v24.1 contains &lt;a href="https://supportcenter.devexpress.com/ticket/details/t1224820/24-1-eap-tabbedmdi-feedback" target="_blank"&gt;known issues&lt;/a&gt; with Tabbed MDI (fixed in our latest builds),&amp;nbsp;we mostly ask that you to test this UI metaphor in your app for feedback purposes.&amp;nbsp;&lt;/p&gt;

&lt;p&gt;&lt;img src="https://community.devexpress.com:443/blogs/xaf/image(59).png" alt="" style="width:2970px;height:1700px;border-width:1px;border-color:#c0c0c0;border-style:solid;"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://community.devexpress.com:443/blogs/xaf/image(64).png" alt="" style="width:2390px;height:1380px;border-width:1px;border-color:#c0c0c0;border-style:solid;"&gt;&lt;/p&gt;
&lt;h3&gt;Add New&amp;nbsp;Fields into the Customization Form of the Grid and&amp;nbsp;Layout Controls at Runtime&lt;/h3&gt;&lt;p&gt;XAF WinForms apps include an&amp;nbsp;Object Model dialog. With it, end-users can search, tick or untick data model fields (including sub-fields and collections), which are not yet displayed in the grid or layout control (as part of the Column Chooser or Customization Form).&lt;/p&gt;&lt;p&gt;Much like Microsoft Office apps, this capability allows users to fully customize&amp;nbsp;list and detail forms&amp;nbsp;(based on the structure of a data model). Again, this is helpful when developers need to address&amp;nbsp;changes to business requirements without&amp;nbsp;redeployment. For more information, refer to&amp;nbsp;&lt;a href="https://docs.devexpress.com/eXpressAppFramework/404353/ui-construction/views/layout/view-items-layout-customization-blazor?v=24.1"&gt;Runtime Layout Customization in ASP.NET Core Blazor Applications&lt;/a&gt;.&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color:#ffffff;"&gt;XAF Blazor provides a similar experience for both ListView and DetailView&amp;nbsp;in v24.1 (just remember&amp;nbsp;&lt;a href="https://supportcenter.devexpress.com/ticket/details/t1224818/24-1-eap-customization-form-feedback" target="_blank"&gt;this known issue&lt;/a&gt;). This feature removes the need for many UI customizations in the design-time Model Editor (inside Visual Studio) - something&amp;nbsp;many of you love in XAF WinForms UI.&amp;nbsp;Of course, you can also disable these runtime capabilities for end-users.&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="https://community.devexpress.com:443/blogs/xaf/image(58).png" alt=""&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://community.devexpress.com:443/blogs/xaf/image(57).png" alt=""&gt;&lt;/p&gt;

&lt;h3&gt;Notifications&amp;nbsp;Module&lt;/h3&gt;&lt;p&gt;XAF Blazor v24.1 supports our&amp;nbsp;&lt;a href="https://docs.devexpress.com/eXpressAppFramework/113690/event-planning-and-notifications/notifications/notifications-module-overview" target="_blank"&gt;Notifications Module&lt;/a&gt;. The module allows&amp;nbsp;you to display reminders for scheduler appointments or any custom objects (such as tasks). The detail form for&amp;nbsp;a&amp;nbsp;scheduler appointment/event&amp;nbsp;will also allow you to configure&amp;nbsp;reminders like those available in Microsoft Outlook. With the help of the Notifications Module, your&amp;nbsp;app can&amp;nbsp;display a popup window before appointment/event start times.&lt;/p&gt;&lt;p&gt;NOTE:&amp;nbsp;our Notifications module does not have to be bound to the Scheduler module: it can display notifications that originate&amp;nbsp;from anywhere. In the latter instance, your goal as a developer is to provide the notifications service with notification items and the service will process them as required.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://community.devexpress.com:443/blogs/xaf/image(56).png" alt="" style="width:2970px;height:1700px;border-width:1px;border-color:#c0c0c0;border-style:solid;"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://community.devexpress.com:443/blogs/xaf/image(55).png" alt=""&gt;&lt;/p&gt;

&lt;h3&gt;Batch / Cell Edit&amp;nbsp;in Grid List&amp;nbsp;Editor&lt;/h3&gt;&lt;p&gt;Batch Edit support&amp;nbsp;officially ships in XAF Blazor v24.1 via a single option (&lt;a href="https://docs.devexpress.com/eXpressAppFramework/113249/ui-construction/views/list-view-edit-modes?v=24.1#in-place-editing-customization-the-inlineeditmode-property-1" target="_blank"&gt;InlineEditMode = Batch&lt;/a&gt;) - much like its XAF WebForms counterpart.&amp;nbsp;&lt;span&gt;At present (v23.2), XAF Blazor developers must&amp;nbsp;manually enable this option&amp;nbsp;(&lt;/span&gt;&lt;a href="https://supportcenter.devexpress.com/ticket/details/t1206051/is-available-batch-editing-for-blazor-in-xaf-apps#e90097cf-624b-4129-a109-2adb97a38078" target="_blank"&gt;learn more&lt;/a&gt;&lt;span&gt;).&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="https://community.devexpress.com:443/blogs/xaf/chrome_19MGsCozq4.gif" alt="" style="width:2820px;height:1438px;border-width:1px;border-color:#c0c0c0;border-style:solid;"&gt;&lt;/p&gt;

&lt;h3&gt;Accessibility Enhancements and Keyboard Support&lt;/h3&gt;&lt;p&gt;Currently, XAF (UI for ASP.NET Core Blazor, WinForms, and ASP.NET WebForms)&amp;nbsp;ships with partial accessibility support mirroring those found in&amp;nbsp;corresponding DevExpress UI controls across&amp;nbsp;respective UI platforms:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://docs.devexpress.com/Blazor/404749/common-concepts/accessibility"&gt;DevExpress ASP.NET Core Blazor&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://docs.devexpress.com/WindowsForms/404293/build-an-application/accessibility"&gt;DevExpress WinForms&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://docs.devexpress.com/AspNet/5294/common-concepts/accessibility-support"&gt;DevExpress ASP.NET Web Forms&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="https://js.devexpress.com/DevExtreme/23_2/Guide/Common/Accessibility/"&gt;DevExpress DevExtreme&lt;/a&gt;&amp;nbsp;(DevExtreme UI controls are used in XAF ASP.NET Core Blazor and ASP.NET Web Forms UI.)&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;XAF Blazor also ships with its own set of UI components/elements (like property editors and action containers).&amp;nbsp;&lt;span style="background-color:#ffffff;"&gt;In v24.1, we extended accessibility support and improved&amp;nbsp;keyboard support for all&amp;nbsp;XAF Blazor UI elements (~20% of scenarios). XAF&amp;nbsp;accessibility support will also level up&amp;nbsp;automatically as&amp;nbsp;soon as we enhance accessibility in&amp;nbsp;DevExpress Blazor UI components&amp;nbsp;throughout&amp;nbsp;2024.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Our Blazor Grid&amp;#39;s keyboard navigation option also officially ships and is&amp;nbsp;enabled by default in XAF Blazor.&amp;nbsp; See also the &amp;quot;&lt;em&gt;Keyboard Support&amp;quot;&lt;/em&gt;&amp;nbsp;and &amp;quot;&lt;em&gt;Keyboard Support Enhancements and New Tab Navigation&lt;/em&gt;&amp;quot; sections in&amp;nbsp;&lt;a href="https://community.devexpress.com/blogs/aspnet/archive/2024/02/12/blazor-v24-1-roadmap.aspx"&gt;Blazor — June 2024 Roadmap (v24.1)&lt;/a&gt;.&lt;/p&gt;&lt;h3&gt;And Much More for Blazor...&lt;/h3&gt;&lt;p&gt;For even more enhancements in XAF Blazor UI, please check out&amp;nbsp;&lt;a href="https://community.devexpress.com/blogs/aspnet/archive/2024/02/12/blazor-v24-1-roadmap.aspx"&gt;&lt;/a&gt;&lt;a href="https://community.devexpress.com/blogs/aspnet/archive/2024/03/26/blazor-early-access-preview-v24-1.aspx"&gt;Blazor Component Suite — Early Access Preview (v24.1)&lt;/a&gt;&amp;nbsp;- many of these component features will be available in XAF Blazor automatically.&lt;/p&gt;&lt;h2&gt;Cross-Platform Enhancements&lt;/h2&gt;&lt;h3&gt;Migration from Newtonsoft.Json to System.Text.Json&lt;/h3&gt;&lt;p&gt;System.Text.Json library is now used to deserialize input parameters for &lt;a href="https://docs.devexpress.com/eXpressAppFramework/403394/backend-web-api-service" target="_blank"&gt;Backend Web API Service&lt;/a&gt; endpoints.&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span&gt;For more information, refer to my other post&amp;nbsp;&lt;a href="https://community.devexpress.com/blogs/news/archive/2024/04/02/net-and-net-framework-migration-from-newtonsoft-json-to-system-text-json-v24-1.aspx"&gt;.NET and .NET Framework — Migration from Newtonsoft.Json to System.Text.Json (v24.1)&lt;/a&gt;&amp;nbsp;and&amp;nbsp;this&amp;nbsp;&lt;a href="https://supportcenter.devexpress.com/ticket/details/t1225165/xaf-system-text-json-library-is-used-to-deserialize-input-parameters-of-the-web-api" target="_blank"&gt;Breaking Change&lt;/a&gt;&lt;span&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;h3&gt;EF Core 8 Support&lt;/h3&gt;&lt;p&gt;&lt;a href="https://docs.devexpress.com/eXpressAppFramework/404215/debugging-testing-and-error-handling/code-diagnostics/xaf0026?v=24.1" target="_blank"&gt;EF Core 8 support&lt;/a&gt; officially ships in&amp;nbsp;&lt;strong&gt;v24.1&amp;nbsp;&lt;/strong&gt;for&amp;nbsp;XAF&amp;nbsp;and associated&amp;nbsp;Backend Web API Service. EF Core 8&amp;nbsp;is the latest production-ready version of Entity Framework.&lt;/p&gt;&lt;p&gt;While EF Core 8&amp;nbsp;offers numerous advantages over its predecessor (performance and customization included), it also introduced a series of&amp;nbsp;breaking changes&amp;nbsp;that we will need to address (for instance, DateOnly and TimeOnly support). To solicit feedback before official release, we intentionally added preview (CTP) support of EF Core 8&amp;nbsp;in&amp;nbsp;&lt;strong&gt;v23.2.4+&lt;/strong&gt;.&lt;/p&gt;&lt;p&gt;For more information about recent EF Core updates, refer to the following Microsoft document:&amp;nbsp;&lt;a href="https://learn.microsoft.com/en-us/ef/core/what-is-new/ef-core-8.0/whatsnew" target="_blank"&gt;What&amp;#39;s New in EF Core 8&lt;/a&gt;&amp;nbsp;|&amp;nbsp;&lt;a href="https://learn.microsoft.com/en-us/ef/core/what-is-new/ef-core-8.0/breaking-changes" target="_blank"&gt;EF Core 8 Breaking Changes&lt;/a&gt;&amp;nbsp;|&amp;nbsp;&lt;a href="https://github.com/DevExpress-Examples/XAF_Security_E4908/tree/24.1.1%2B/Benchmarks" target="_blank"&gt;Performance Benchmarks for EF Core 8 vs XPO ORM&lt;/a&gt;.&lt;/p&gt;&lt;h3&gt;Multi-Tenancy: Extend the Built-in Tenant Class with Custom Fields&lt;/h3&gt;&lt;p&gt;You can now extend the standard Tenant class&amp;nbsp;to associate additional data (for instance, module and feature license info)&amp;nbsp;with tenants stored in the application’s Host Database. Of course, you can also access custom Tenant fields in code later (from a &lt;a href="https://docs.devexpress.com/eXpressAppFramework/404667/multitenancy/multitenant-application-artchitecture?v=24.1#access-custom-tenant-fields-in-code" target="_blank"&gt;Controller&lt;/a&gt; or &lt;a href="https://docs.devexpress.com/eXpressAppFramework/404667/multitenancy/multitenant-application-artchitecture?v=24.1#from-application-builders" target="_blank"&gt;Application Builders&lt;/a&gt;). We also supported this for both EF Core and XPO ORM.&lt;/p&gt;&lt;pre&gt;&lt;code class="language-csharp"&gt;// MySolution.Module\BusinessObjects\CustomTenant.cs
// EF Core
using DevExpress.Persistent.BaseImpl.EF.MultiTenancy;

public class CustomTenant : Tenant {
    public virtual string CustomField { get; set; }
}
// MySolution.Blazor.Server/Startup.cs (MySolution.Win/Startup.cs)
builder.AddMultiTenancy()
    .WithCustomTenantType&amp;lt;CustomTenant&amp;gt;()
    //...&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;a href="https://docs.devexpress.com/eXpressAppFramework/404667/multitenancy/multitenant-application-artchitecture?v=24.1#extend-the-built-in-tenant-class-with-custom-fields" target="_blank"&gt;Documentation&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;img src="https://docs.devexpress.com/eXpressAppFramework/images/multitenancy-custom-tenants.png?v=24.1" alt="Tenants List View"&gt;&lt;br&gt;&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;h3&gt;Cascade Deletion for Aggregated One-to-Many Collections in EF Core&lt;/h3&gt;&lt;p&gt;With v24.1, XAF&amp;#39;s Solution Wizard includes `&lt;em&gt;modelBuilder.SetOneToManyAssociationDeleteBehavior(DeleteBehavior.SetNull, DeleteBehavior.Cascade);&lt;/em&gt;` in the OnModelCreating method of EF Core-based apps. This code will&amp;nbsp;configure&amp;nbsp;DeleteBehavior.SetNull for non-aggregated One-to-Many associations and DeleteBehavior.Cascade for aggregated One-to-Many associations respectively. Previously, XAF&amp;#39;s Aggregated attribute was not considered by EF Core as it was for XPO ORM (and there might be exceptions in certain ListView scenarios).&lt;/p&gt;&lt;p&gt;&lt;a href="https://docs.devexpress.com/eXpressAppFramework/402958/business-model-design-orm/business-model-design-with-entity-framework-core/relationships-between-entities-in-code-and-ui?v=24.1#one-to-many-behavior-on-delete" target="_blank"&gt;Documentation&lt;/a&gt;&lt;/p&gt;&lt;h3&gt;&lt;span&gt;Bypass Security Permission&amp;nbsp;Checks for Internal Business Logic&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;In addition, it is&amp;nbsp;now possible to call the new&amp;nbsp;&lt;span style="color:#2b2b2b;"&gt;&lt;a href="https://docs.devexpress.com/eXpressAppFramework/DevExpress.Persistent.BaseImpl.EF.BaseObject.SetPropertyValueWithSecurityBypass--1(System.String---0)?v=24.1" target="_blank"&gt;SetPropertyValueWithSecurityBypass&lt;/a&gt;&lt;/span&gt;&lt;a href="https://docs.devexpress.com/eXpressAppFramework/DevExpress.Persistent.BaseImpl.EF.BaseObject.SetPropertyValueWithSecurityBypass--1(System.String---0)?v=24.1" target="_blank"&gt;&amp;nbsp;&lt;/a&gt;method&amp;nbsp;from within your BaseObject descendants to bypass security checks for certain protected properties in your internal application logic (custom base classes are also supported).&lt;/p&gt;&lt;p&gt;This capability is especially valuable to XAF developers when you wish to set service&amp;nbsp;properties like CreatedBy, ModifiedBy, CreatedOn, UpdatedOn, etc. - our Audit Trail and Model Difference modules operate using a similar mechanism.&amp;nbsp;The&amp;nbsp;SetPropertyValueWithBypassSecurity method can freely set protected properties on behalf of a restricted/regular user in code&amp;nbsp;much like an application administrator - without having to know admin&amp;nbsp;credentials&amp;nbsp;(like impersonation for service tasks).&lt;/p&gt;&lt;pre&gt;&lt;code class="language-csharp"&gt;    ApplicationUser GetCurrentUser() {
        return ObjectSpace.GetObjectByKey&amp;lt;ApplicationUser&amp;gt;(
            ObjectSpace.ServiceProvider.GetRequiredService&amp;lt;ISecurityStrategyBase&amp;gt;().UserId);
    }

    public override void OnSaving() {
        base.OnSaving();
        if (ObjectSpace.IsNewObject(this)) {
            SetPropertyValueWithSecurityBypass(nameof(CreatedBy), GetCurrentUser());
        }
        else {
            SetPropertyValueWithSecurityBypass(nameof(UpdatedBy), GetCurrentUser());
            SetPropertyValueWithSecurityBypass(nameof(UpdatedOn), DateTime.Now);
        }
    }&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;As you probably know, this is&amp;nbsp;&lt;a href="https://supportcenter.devexpress.com/ticket/details/q359904/securitystrategycomplex-how-to-modify-objects-properties-in-code-when-the-user-does-not" target="_blank"&gt;a long-requested option&lt;/a&gt;&amp;nbsp;for many XAFers - an option that prevented full&amp;nbsp;migration from Integrated Mode to Middle Tier Security (because&amp;nbsp;&lt;a href="https://docs.devexpress.com/eXpressAppFramework/DevExpress.EntityFrameworkCore.Security.SecuredEFCoreObjectSpaceProvider-1.CreateNonsecuredObjectSpace?p=net6" target="_blank"&gt;CreateNonsecuredObjectSpace&lt;/a&gt;&amp;nbsp;and other workarounds were inconvenient). The&amp;nbsp;SetPropertyValueWithBypassSecurity also includes certain limitations like&amp;nbsp;calling this method is only supported from inside BaseObject.OnSaving (for the best security) or the bypassed property cannot update other protected properties internally. We are of the opinion that this new option will cover 80% of popular use-cases.&lt;/p&gt;&lt;h3&gt;Enhanced Performance for Middle Tier Security for WinForms Apps&lt;/h3&gt;&lt;p&gt;XAF WinForms with Middle Tier Security will execute much faster in v24.1. Two&lt;span style="background-color:#ffffff;"&gt;&amp;nbsp;of our best engineers from the Core squad, Max and Pavel, boosted performance for both EF Core 8 and XPO ORM, as compared to v23.2 (XPO ORM results are even better - a 2.5x improvement). Folks have&amp;nbsp;not finished relevant optimizations, so we will share final numbers close to the official release in June).&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="background-color:#ffffff;"&gt;The graphs below show&amp;nbsp;the current duration of batch of performance tests and also&amp;nbsp;individual tests&amp;nbsp;in 24.1 vs v23.2 for EF Core 8.&lt;/span&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="https://community.devexpress.com:443/blogs/xaf/image(66).png" alt="" style="width:450px;height:440px;border-width:1px;border-color:#c0c0c0;border-style:solid;"&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://community.devexpress.com:443/blogs/xaf/image(63).png" alt="" class="small" style="border-width:1px;border-color:#c0c0c0;border-style:solid;"&gt;&lt;/p&gt;

&lt;p&gt;Along with associated performance enhancements, this was&amp;nbsp;the last step before we could enable Middle Tier Security in XAF WinForms apps in the Solution Wizard by default.&amp;nbsp;Hopefully, XAF developers will find these new capabilities&amp;nbsp;sufficient to switch to Middle Tier Security as well.&lt;/p&gt;&lt;div class="Note"&gt;Early Access and CTP builds are provided solely for early testing purposes and are not ready for production use. This build can be installed side by side with other major versions of DevExpress products. Please backup your project and other important data before installing Early Access and CTP builds. This EAP may not include all features/products we expect to ship in our v24.1&amp;nbsp;release cycle. As its name implies, the EAP offers an early preview of what we expect to ship in two months.&lt;/div&gt;&lt;h2&gt;Your Feedback Matters!&lt;/h2&gt;&lt;p&gt;We recommend that you test the new features outlined in this post within Visual Studio 2022 using our&amp;nbsp;MainDemo.NET.EFCore&amp;nbsp;or MainDemo.NET.XPO demo (from &amp;quot;&lt;strong&gt;c:\Users\Public\Documents\DevExpress Demos 24.1\Components\XAF\&lt;/strong&gt;&amp;quot;). You can also test the EAP build with your real app, but please remember that this build is not ready for production code. We hope to keep you posted about remaining features from&amp;nbsp;&lt;a href="https://community.devexpress.com/blogs/xaf/archive/2024/01/31/xaf-v24-1-june-2024-roadmap-cross-platform-net-app-ui-blazor-winforms-and-web-api-service.aspx" target="_blank"&gt;our June 2024.1 roadmap&lt;/a&gt;&amp;nbsp;as&amp;nbsp; we get closer to official release (set for June 2024).&amp;nbsp;&lt;/p&gt;&lt;p&gt;We realize alpha/beta-testing is a time-consuming process and we are grateful to those who invest time with our EAP builds.&amp;nbsp;Find the current implementation lacking flexibility? Feel we&amp;#39;ve overlooked a valuable usage scenario? Does our current implementation fail to address your business requirements?&lt;/p&gt;&lt;p&gt;Please post your thoughts&amp;nbsp;in our roadmap survey&amp;nbsp;below OR&amp;nbsp;&lt;a href="https://www.devexpress.com/ask" target="_blank"&gt;create a Support Center ticket&lt;/a&gt;. We will happily follow up and do what we can to extend the capabilities of our new products/features.&lt;/p&gt;&lt;div data-survey-id="943f13d8-d694-4a4a-ae3e-93727ec38643" data-survey-auth-required="false"&gt;&lt;/div&gt;&lt;p&gt;Thanks,&lt;br&gt;Dennis Garavsky&lt;br&gt;Principal Product Manager&lt;br&gt;&lt;a href="mailto:dennis@devexpress.com" title="Email me if you have questions or suggestions"&gt;dennis@devexpress.com&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;</description>
      <pubDate>Thu, 18 Apr 2024 13:04:00 Z</pubDate>
      <dc:creator>Dennis Garavsky (DevExpress)</dc:creator>
    </item>
    <item>
      <guid isPermaLink="false">bd716303-653c-428d-8b8a-a7d998cde032:388125</guid>
      <link>https://community.devexpress.com/Blogs/xaf/archive/2024/03/24/xaf-a-world-training-tour-by-xari-to-master-devexpress-xaf.aspx</link>
      <category domain="https://community.devexpress.com/Tags/.net+6">.net 6</category>
      <category domain="https://community.devexpress.com/Tags/.NET+8">.NET 8</category>
      <category domain="https://community.devexpress.com/Tags/.net+core">.net core</category>
      <category domain="https://community.devexpress.com/Tags/2024">2024</category>
      <category domain="https://community.devexpress.com/Tags/asp.net+Core">asp.net Core</category>
      <category domain="https://community.devexpress.com/Tags/blazor">blazor</category>
      <category domain="https://community.devexpress.com/Tags/education">education</category>
      <category domain="https://community.devexpress.com/Tags/EF+Core">EF Core</category>
      <category domain="https://community.devexpress.com/Tags/Entity+Framework">Entity Framework</category>
      <category domain="https://community.devexpress.com/Tags/security">security</category>
      <category domain="https://community.devexpress.com/Tags/training">training</category>
      <category domain="https://community.devexpress.com/Tags/v24.1">v24.1</category>
      <category domain="https://community.devexpress.com/Tags/web+api">web api</category>
      <category domain="https://community.devexpress.com/Tags/XAF">XAF</category>
      <category domain="https://community.devexpress.com/Tags/XPO">XPO</category>
      <title>XAF — World Training Tour by Xari to Master DevExpress .NET Application Framework</title>
      <description>&lt;p&gt;Good news for those of you interested in &lt;a href="https://www.devexpress.com/products/net/application_framework/" target="_blank"&gt;DevExpress XAF&lt;/a&gt; training.&lt;/p&gt;&lt;p&gt;Microsoft and DevExpress&amp;nbsp;MVPs, Jose Columbie of&amp;nbsp;&lt;a href="https://www.xari.io/our-services/#xaftraining" target="_blank"&gt;Xari.io&lt;/a&gt;&amp;nbsp;and&amp;nbsp;Joche&amp;nbsp;Ojeda of&amp;nbsp;&lt;a href="https://www.bitframeworks.com/" target="_blank"&gt;BitFrameworks.com&lt;/a&gt;&amp;nbsp;have organized a  world training tour for&amp;nbsp;DevExpress XAF (our Cross-Platform .NET App UI and Web API Service products). &lt;/p&gt;&lt;p&gt;For more information on Xari.io and their XAF training tour, visit: &lt;strong&gt;&lt;a href="https://xari.io/xaftraining/xari-xaf-training-tour/" target="_blank"&gt;https://xari.io/xaftraining/xari-xaf-training-tour/&lt;/a&gt;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;img src="https://community.devexpress.com:443/blogs/xaf/xaf-efcore-app-builder@2x[1].png" alt=""&gt;&lt;br&gt;&lt;/p&gt;
&lt;img src="https://community.devexpress.com:443/blogs/xaf/image(51).png" data-comparer-theme="dark" data-label-before="XAF WinForms UI" data-label-after="XAF Blazor UI" data-before-src="https://community.devexpress.com/blogs/xaf/2023/MainDemo.Win_puxspk1tmk.png" data-comparer-position="80" alt="" style="width:2904px;height:1920px;border-width:1px;border-color:#c0c0c0;border-style:solid;"&gt;
&lt;div class="Note"&gt;&lt;a href="https://docs.devexpress.com/eXpressAppFramework/113577/getting-started" style="background-color:#ffff99;"&gt;Get&amp;nbsp;Started with XAF today&lt;/a&gt;&amp;nbsp;if you want to build Office-like line-of-business (LOB) apps powered by Blazor, WinForms, or WebForms much faster than using traditional approaches. Check out XAF&amp;#39;s demos in your DevExpress installation or online at&amp;nbsp;&lt;a href="https://demos.devexpress.com/xaf/blazordemo/" target="_blank"&gt;https://demos.devexpress.com/xaf/blazordemo/&lt;/a&gt;. You can learn more about&amp;nbsp;&lt;a href="https://www.devexpress.com/products/net/application_framework/" target="_blank"&gt;XAF benefits here&lt;/a&gt;,&amp;nbsp;and our&amp;nbsp;&lt;a href="https://www.devexpress.com/products/net/application_framework/xaf-considerations-for-newcomers.xml" target="_blank"&gt;Considerations for Newcomers&lt;/a&gt;&amp;nbsp;will help you understand whether this application framework is right for your business.&lt;/div&gt;

&lt;p&gt;Thanks,&lt;br&gt;Dennis Garavsky&lt;br&gt;Principal Product Manager&lt;br&gt;&lt;a title="Email me if you have questions or suggestions" href="mailto:dennis@devexpress.com?subject=Feedback%20on%20XAF%20Experience"&gt;dennis@devexpress.com&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Sun, 24 Mar 2024 17:06:00 Z</pubDate>
      <dc:creator>Dennis Garavsky (DevExpress)</dc:creator>
    </item>
    <item>
      <guid isPermaLink="false">bd716303-653c-428d-8b8a-a7d998cde032:388101</guid>
      <link>https://community.devexpress.com/Blogs/xaf/archive/2024/02/06/xaf-v24-1-june-2024-roadmap-cross-platform-net-app-ui-blazor-winforms-and-web-api-service.aspx</link>
      <category domain="https://community.devexpress.com/Tags/.net+6">.net 6</category>
      <category domain="https://community.devexpress.com/Tags/.NET+8">.NET 8</category>
      <category domain="https://community.devexpress.com/Tags/.net+core">.net core</category>
      <category domain="https://community.devexpress.com/Tags/2024">2024</category>
      <category domain="https://community.devexpress.com/Tags/accessibility">accessibility</category>
      <category domain="https://community.devexpress.com/Tags/asp.net+Core">asp.net Core</category>
      <category domain="https://community.devexpress.com/Tags/blazor">blazor</category>
      <category domain="https://community.devexpress.com/Tags/EF">EF</category>
      <category domain="https://community.devexpress.com/Tags/EF+Core">EF Core</category>
      <category domain="https://community.devexpress.com/Tags/Entity+Framework">Entity Framework</category>
      <category domain="https://community.devexpress.com/Tags/Non-Windows">Non-Windows</category>
      <category domain="https://community.devexpress.com/Tags/OData">OData</category>
      <category domain="https://community.devexpress.com/Tags/OpenAPI">OpenAPI</category>
      <category domain="https://community.devexpress.com/Tags/REST">REST</category>
      <category domain="https://community.devexpress.com/Tags/restful">restful</category>
      <category domain="https://community.devexpress.com/Tags/roadmap">roadmap</category>
      <category domain="https://community.devexpress.com/Tags/security">security</category>
      <category domain="https://community.devexpress.com/Tags/survey">survey</category>
      <category domain="https://community.devexpress.com/Tags/Swagger">Swagger</category>
      <category domain="https://community.devexpress.com/Tags/Usability">Usability</category>
      <category domain="https://community.devexpress.com/Tags/v24.1">v24.1</category>
      <category domain="https://community.devexpress.com/Tags/web+api">web api</category>
      <category domain="https://community.devexpress.com/Tags/XAF">XAF</category>
      <category domain="https://community.devexpress.com/Tags/XPO">XPO</category>
      <title>XAF v24.1 — June 2024 Roadmap (Cross-Platform .NET App UI &amp; Web API Service)</title>
      <description>&lt;h2&gt;&lt;span style="color:#ff0000;"&gt;UPDATE:&amp;nbsp;&lt;/span&gt;&lt;a href="https://www.devexpress.com/subscriptions/new-2024-1.xml#xaf" target="_blank" style="color:#115bc0;"&gt;What&amp;#39;s New in XAF (v24.1)&lt;/a&gt;&amp;nbsp;- please vote in the survey&amp;nbsp;|&amp;nbsp;&lt;a href="https://community.devexpress.com/blogs/xaf/archive/2024/07/22/xaf-cross-platform-net-app-ui-and-web-api-service-year-end-roadmap-v24-2.aspx" target="_blank"&gt;Year-End Roadmap (v24.2)&lt;/a&gt;&lt;/h2&gt;
&lt;p&gt;---------&lt;/p&gt;&lt;p&gt;The following list outlines features/capabilities we expect ship for  XAF’s&amp;nbsp;&lt;a href="https://www.devexpress.com/products/net/application_framework/" target="_blank"&gt;Cross-Platform .NET App UI&lt;/a&gt;&amp;nbsp;and the DevExpress&amp;nbsp;&lt;a href="https://docs.devexpress.com/eXpressAppFramework/403394/backend-web-api-service" target="_blank"&gt;.NET App Security &amp;amp; Web API Service&lt;/a&gt;&amp;nbsp;(expected release date: June 2024). You can also test our Early Access Preview (EAP v24.1) live and share your feedback before June:&amp;nbsp;&lt;a href="https://community.devexpress.com/blogs/xaf/archive/2024/04/18/xaf-v24-1-eap-tabbed-mdi-grid-batch-edit-notifications-module-customization-form-and-accessibility-enhancements-for-blazor-ef-core-8-and-performance-enhancements.aspx" style="background-color:#ffff99;"&gt;XAF v24.1 EAP — Tabbed MDI, Batch Edit, Notifications, Customization Form and Accessibility for Blazor, EF Core 8 and Performance Boost for Middle Tier Server&lt;/a&gt;.&amp;nbsp;&lt;span&gt;We will outline&amp;nbsp;plans for our second major release of this year (expected release date: Dec 2024) in July.&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Before I detail our roadmap, please take a moment to review&amp;nbsp;&lt;strong&gt;&lt;a href="https://www.devexpress.com/subscriptions/whats-new/#xaf" target="_blank"&gt;XAF&amp;#39;s What&amp;#39;s New v23.2&lt;/a&gt;&amp;nbsp;&lt;/strong&gt;and please submit feedback using&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;strong&gt;&lt;a href="https://www.devexpress.com/subscriptions/whats-new/#xaf-survey" target="_blank" style="background-color:#ffff99;"&gt;the related survey&lt;/a&gt;&lt;/strong&gt;. What&amp;#39;s New and roadmap survey feedback gives you the&amp;nbsp;opportunity to communicate your needs/concerns and allows us to make more informed development decisions. &amp;nbsp;As always, thanks to everyone who has already submitted feedback/suggestions.&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&lt;div class="Note"&gt;The information contained within this blog post details our current/projected development plans. Please note that this information is being shared for INFORMATIONAL PURPOSES ONLY and does not represent a binding commitment on the part of Developer Express Inc. This blog post and the features/products listed within it are subject to change. You should not rely or use this information to help make a purchase decision about Developer Express Inc products.&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2&gt;ASP.NET Core Blazor UI&lt;/h2&gt;
&lt;p&gt;We expect to release the following XAF Blazor UI features/capabilities in our v24.1 release cycle (June 2024).&amp;nbsp;As you will see below, key focus areas will continue to remain Security, Blazor, and EF Core.&lt;/p&gt;
&lt;img src="https://community.devexpress.com:443/blogs/xaf/image(51).png" data-comparer-theme="dark" data-label-before="XAF WinForms UI" data-label-after="XAF Blazor UI" data-before-src="https://community.devexpress.com/blogs/xaf/2023/MainDemo.Win_puxspk1tmk.png" data-comparer-position="80" alt="" style="width:2904px;height:1920px;border-width:1px;border-color:#c0c0c0;border-style:solid;"&gt;
&lt;h3&gt;Accessibility Enhancements and Keyboard Support&lt;/h3&gt;
&lt;p&gt;Currently, XAF (UI for ASP.NET Core Blazor, WinForms, and ASP.NET WebForms)&amp;nbsp;ships with partial accessibility support mirroring those found in&amp;nbsp;corresponding DevExpress UI controls across&amp;nbsp;respective UI platforms:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://docs.devexpress.com/Blazor/404749/common-concepts/accessibility"&gt;DevExpress ASP.NET Core Blazor&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.devexpress.com/WindowsForms/404293/build-an-application/accessibility"&gt;DevExpress WinForms&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://docs.devexpress.com/AspNet/5294/common-concepts/accessibility-support"&gt;DevExpress ASP.NET Web Forms&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://js.devexpress.com/DevExtreme/23_2/Guide/Common/Accessibility/"&gt;DevExpress DevExtreme&lt;/a&gt;&amp;nbsp;(DevExtreme UI controls are used in XAF ASP.NET Core Blazor and ASP.NET Web Forms UI.)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;XAF Blazor also ships with its own set of UI components/elements that do not support accessibility and&amp;nbsp;have limited keyboard support.&amp;nbsp;XAF Blazor developers must&amp;nbsp;manually&amp;nbsp;customize  built-in HTML markup via the ComponentModel.SetAttribute() method (for property editors and action containers) to add required ARIA attributes.&lt;/p&gt;
&lt;p&gt;We expect to introduce accessibility-related enhancements for  unsupported XAF Blazor components throughout&amp;nbsp;2024. More information on accessibility will be forthcoming as we get closer to our mid-year release. &lt;/p&gt;&lt;p&gt;Our Blazor Grid&amp;#39;s keyboard navigation will also officially ship and be enabled by default.&amp;nbsp; See also the &amp;quot;&lt;em&gt;Keyboard Support&amp;quot;&lt;/em&gt; and &amp;quot;&lt;em&gt;Keyboard Support Enhancements and New Tab Navigation&lt;/em&gt;&amp;quot; sections in&amp;nbsp;&lt;a href="https://community.devexpress.com/blogs/aspnet/archive/2024/02/12/blazor-v24-1-roadmap.aspx"&gt;Blazor — June 2024 Roadmap (v24.1)&lt;/a&gt;.&amp;nbsp;&lt;/p&gt;

&lt;h3&gt;Tabbed MDI Support&lt;/h3&gt;
&lt;p&gt;Tabbed MDI is a multiple document interface (MDI) UI metaphor found in many modern applications (including your favorite Web browser or Microsoft Outlook Web). It is a robust interface that maximizes document screen real estate, especially when working with multiple&amp;nbsp;documents, email messages, etc.&lt;/p&gt;
&lt;p&gt;Tabbed MDI is enabled in XAF WinForms apps by default, and&amp;nbsp;XAF Blazor will provide a similar user experience in v24.1 (hopefully with an EAP in v23.2).&lt;/p&gt;&lt;p&gt;&lt;img src="https://community.devexpress.com:443/blogs/xaf/2024/tabbed-mdi-on-desktop.png" alt="" style="width:1560px;height:971px;"&gt;&lt;/p&gt;&lt;img src="https://community.devexpress.com:443/blogs/xaf/2024/tabbed-mdi-on-mobile.gif" alt="" style="width:401px;height:823px;" class="small"&gt;&lt;h3&gt;Add New&amp;nbsp;Fields into the Customization Form of the Grid and&amp;nbsp;Layout Controls at Runtime&lt;/h3&gt;
&lt;p&gt;XAF WinForms apps include an&amp;nbsp;Object Model dialog. With it, end-users can tick or untick data model fields (including sub-fields and collections), which are not yet displayed in the grid or layout control (as part of the Column Chooser or Customization Form).&lt;/p&gt;
&lt;p&gt;Much like  Microsoft Office apps, this capability allows users to fully customize&amp;nbsp;list and detail forms&amp;nbsp;(based on the structure of a data model). Again, this is helpful when developers need to address&amp;nbsp;changes to business requirements without&amp;nbsp;redeployment.&lt;/p&gt;
&lt;p&gt;XAF Blazor will provide a similar experience for both ListView and DetailView&amp;nbsp;in v24.1&amp;nbsp;(hopefully with an EAP in v23.2).&lt;/p&gt;&lt;img src="https://community.devexpress.com:443/blogs/xaf/2024/object-model.png" alt="" style="width:1560px;height:947px;"&gt;

&lt;h3&gt;Notifications&amp;nbsp;Module&lt;/h3&gt;
&lt;p&gt;XAF Blazor v24.1 will support our&amp;nbsp;&lt;a href="https://docs.devexpress.com/eXpressAppFramework/113690/event-planning-and-notifications/notifications/notifications-module-overview" target="_blank"&gt;Notifications Module&lt;/a&gt;. The module allows&amp;nbsp;you to display reminders for scheduler appointments or any custom objects (such as tasks). The detail form for&amp;nbsp;a&amp;nbsp;scheduler appointment/event&amp;nbsp;will also allow you to configure&amp;nbsp;reminders like those available in Microsoft Outlook. With the help of the Notifications Module, your&amp;nbsp;app can&amp;nbsp;display a popup window before  appointment/event start times.&lt;/p&gt;&lt;p&gt;NOTE:&amp;nbsp;&lt;span&gt;our Notifications module does not have to be bound to the Scheduler module: it can display notifications that originate&amp;nbsp;from anywhere. In the latter instance, your goal as a developer is to provide the notifications service with notification items and the service will process them as required.&lt;/span&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="https://community.devexpress.com:443/blogs/xaf/2024/notification-module.png" alt="" style="width:550px;height:300px;" class="small"&gt;
&lt;h3&gt;Scheduler Module - Shared/Multiple Resources&lt;/h3&gt;
&lt;p&gt;If the underlying Blazor scheduler component (&lt;a href="https://docs.devexpress.com/Blazor/DevExpress.Blazor.DxScheduler" target="_blank"&gt;DxScheduler&lt;/a&gt;) supports multiple resources for a scheduler appointment/event in v24.1 (see the &amp;quot;&lt;em&gt;Multiple Resources (Resource Sharing)&lt;/em&gt;&amp;quot; section in &lt;a href="https://community.devexpress.com/blogs/aspnet/archive/2024/02/12/blazor-v24-1-roadmap.aspx"&gt;Blazor — June 2024 Roadmap (v24.1)&lt;/a&gt;), XAF Blazor Scheduler module will allow&amp;nbsp;you to use shared resources as well. Currently, only a single resource is allowed in DxScheduler, and XAF displays a validation error message when you attempt to link multiple resources to an appointment.&lt;/p&gt;
&lt;h3&gt;Batch / Cell Edit&amp;nbsp;in Grid List&amp;nbsp;Editor&lt;/h3&gt;
&lt;p&gt;The underlying Blazor Grid component&amp;nbsp;(&lt;a href="https://docs.devexpress.com/Blazor/DevExpress.Blazor.DxGrid.EditMode#edit-cell-ctp" target="_blank"&gt;DxGrid&lt;/a&gt;) used by XAF Blazor now includes&amp;nbsp;batch and&amp;nbsp;cell edit support (&lt;a href="https://demos.devexpress.com/blazor/Grid/EditData/EditBatch" target="_blank"&gt;Online Demo&lt;/a&gt;). At present, XAF Blazor developers must&amp;nbsp;manually enable this option&amp;nbsp;(&lt;a href="https://supportcenter.devexpress.com/ticket/details/t1206051/is-available-batch-editing-for-blazor-in-xaf-apps#e90097cf-624b-4129-a109-2adb97a38078" target="_blank"&gt;learn more&lt;/a&gt;). Batch Edit support will officially ship in XAF Blazor v24.1 via a single option (&lt;a href="https://docs.devexpress.com/eXpressAppFramework/113249/ui-construction/views/list-view-edit-modes#in-place-editing-customization-the-inlineeditmode-property" target="_blank"&gt;InlineEditMode = Batch&lt;/a&gt;) much like its XAF WebForms counterpart.&lt;/p&gt;
&lt;h3&gt;Best Fit in Grid List Editor&lt;/h3&gt;
&lt;p&gt;As you probably know, the underlying Blazor Grid used by XAF Blazor can automatically adjust column width&amp;nbsp;to fit actual cell content (&lt;a href="https://supportcenter.devexpress.com/ticket/details/t1099604/blazor-how-to-use-columnresizemode-nextcolumn-and-apply-model-columns-width-in-percents" target="_blank"&gt;using the AutoFitColumnWidths method&lt;/a&gt;).&amp;nbsp;We have not enabled this behavior in XAF Blazor by default, because of conflicting interests of various user groups:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Some of XAF Blazor users wanted to have a Best Fit item in the context menu to apply Best Fit.&lt;/li&gt;
&lt;li&gt;Others did not like this behavior and wanted to specify column width in percentages (%) instead of pixels using the Model Editor.&lt;/li&gt;
&lt;li&gt;And a handful of our customers&amp;nbsp;wanted to specify&amp;nbsp;minimal default column width (120px or so) and did not want to deal with column width whatsoever, preferring to optionally resize columns at runtime, when necessary.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If you want to improve  current &amp;#39;status quo&amp;#39; behavior in v24.1, we kindly ask you to voice your opinion&amp;nbsp;&lt;strong&gt;&lt;a href="https://supportcenter.devexpress.com/ticket/details/t1099604/blazor-how-to-use-columnresizemode-nextcolumn-and-apply-model-columns-width-in-percents" target="_blank" style="background-color:#ffff99;"&gt;in the comments for&amp;nbsp;this Support Center ticket&lt;/a&gt;&lt;/strong&gt;, and describe your  expectations&amp;nbsp;for each  use-case scenario (both design-time and runtime ListView configuration). Feel free to share screenshots and  specific/actionable information. Please avoid posting &amp;quot;+1&amp;quot; or generic&amp;nbsp;information, because it will not help us develop&amp;nbsp;consensus or create the best possible solution to fully address the needs of the&amp;nbsp;majority position.&lt;/p&gt;&lt;h3&gt;Export Data from Grid List Editor to Excel when DataAccessMode = Server&amp;nbsp;&lt;/h3&gt;&lt;div&gt;Our Blazor Components v24.1 (&lt;a href="https://community.devexpress.com/blogs/aspnet/archive/2024/02/12/blazor-v24-1-roadmap.aspx" target="_blank"&gt;see their v24.1 roadmap separately&lt;/a&gt;)&amp;nbsp;will support Excel export functionality for grids bound to server-side data (for both EF Core and XPO ORM). To export data to Excel, the DevExpress Blazor Grid will display a loading indicator and download all records from a data source.&lt;/div&gt;
&lt;h3&gt;Simplified Creation of Custom Blazor Property and List Editors&lt;/h3&gt;
&lt;p&gt;Currently, XAF Blazor developers must create intermediate &lt;a href="https://docs.devexpress.com/eXpressAppFramework/402189/ui-construction/view-items-and-property-editors/property-editors/implement-a-property-editor-based-on-custom-components-blazor#component-adapter" target="_blank"&gt;Component Adapter, Renderer and other boilerplate classes&lt;/a&gt;. In v24.1, we want to reduce&amp;nbsp;boilerplate code for many popular scenarios, and make it possible to create custom Property Editors much like XAF WinForms. Our newest &lt;a href="https://github.com/DevExpress-Examples/xaf-create-multitenant-application" target="_blank"&gt;Outlook Inspired Demo app&lt;/a&gt;&amp;nbsp;contains many custom Property and List Editors, and it will be a good source of UX validation/comparison between v23.2 and v24.1 - please stay tuned.&lt;/p&gt;
&lt;h3&gt;Migration to the Native Blazor Report Viewer&lt;/h3&gt;
&lt;p&gt;In v24.1, XAF&amp;#39;s&amp;nbsp;Blazor Reporting Module will migrate from a JavaScript-based Report Viewer (&lt;a href="https://docs.devexpress.com/XtraReports/DevExpress.Blazor.Reporting.DxDocumentViewer" target="_blank"&gt;DxDocumentViewer&lt;/a&gt;) to the native Report Viewer for Blazor Server apps (&lt;a href="https://docs.devexpress.com/XtraReports/403594/web-reporting/blazor-reporting/server/blazor-report-viewer-native" target="_blank"&gt;DxReportViewer&lt;/a&gt;). We are kind of fixing a technical debt here, because the native report viewer &lt;a href="https://community.devexpress.com/blogs/reporting/archive/2021/07/27/reporting-new-native-report-viewer-for-blazor-server-available-in-v21-1.aspx" target="_blank"&gt;was introduced in 2021&lt;/a&gt;, and has a number of benefits for XAF Blazor developers:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Support of &lt;a href="https://docs.devexpress.com/Blazor/401784/styling-and-themes/size-modes" target="_blank"&gt;Size Modes&lt;/a&gt; and all &lt;a href="https://docs.devexpress.com/Blazor/401523/styling-and-themes/themes" target="_blank"&gt;Blazor themes&lt;/a&gt;&amp;nbsp;&lt;/li&gt;&lt;li&gt;Easier customization without JS using pure C#&lt;/li&gt;&lt;li&gt;Improved performance: Native implementation reduces load time and increases page navigation speed when compared to JavaScript wrapper based reporting tools.&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;And Much More...&lt;/h3&gt;&lt;p&gt;For even more enhancements in XAF Blazor UI, please check out&amp;nbsp;&lt;a href="https://community.devexpress.com/blogs/aspnet/archive/2024/02/12/blazor-v24-1-roadmap.aspx"&gt;Blazor — June 2024 Roadmap (v24.1)&lt;/a&gt;&amp;nbsp;- many of these component features will be available in XAF Blazor automatically.&lt;/p&gt;
&lt;h2&gt;Security Enhancements&lt;/h2&gt;
&lt;h3&gt;Single Sign-On (SSO) Support&lt;/h3&gt;
&lt;p&gt;Today, modern XAF Blazor and WinForms apps are integrated with many external&amp;nbsp;systems within organizations. For instance, if an organization uses&amp;nbsp;Microsoft 365, XAF apps are often available at &lt;a href="https://myapps.microsoft.com/" target="_blank"&gt;https://myapps.microsoft.com/&lt;/a&gt;&amp;nbsp;among many other apps within this organization.&amp;nbsp;Since XAF Blazor and WinForms&amp;nbsp;.NET 6+ apps (both XPO and EF Core-based) support Microsoft Entra ID and other &lt;a href="https://docs.devexpress.com/eXpressAppFramework/404648/data-security-and-safety/security-system/authentication/oauth-and-custom-authentication" target="_blank"&gt;OAuth2 providers&lt;/a&gt;,  organizations want/prefer XAF apps to share the same login details or authentication cookies&amp;nbsp;with  existing systems/services such as Microsoft Entra Single Sign-On (SSO). In v24.1, XAF apps will support SSO natively.&lt;/p&gt;
&lt;p&gt;Said differently, organizations require the following: When a user is already authenticated within the&amp;nbsp;organization (for instance, using Microsoft 365), XAF apps must seamlessly work with&amp;nbsp;SSO. Currently, XAF developers have to&amp;nbsp;implement custom solutions to modify&amp;nbsp;XAF’s login form&amp;nbsp;and authentication behavior to support&amp;nbsp;SSO. Important SSO scenarios include, but are not limited to the following:&lt;/p&gt;
&lt;div&gt;
&lt;ol&gt;
&lt;li&gt;If a user is NOT logged in within the organization, then XAF apps display a standard OAuth2/SSO provider logon form (just like Teams, Word or Outlook normally does for Microsoft 365). If a user was forced to sign out by administrators, then XAF apps&amp;nbsp;should display the standard logon form as well.&lt;/li&gt;
&lt;li&gt;If a user is logged in within the organization (it can be another non-XAF app), then no&amp;nbsp;XAF login form is displayed for the&amp;nbsp;user and focus moves&amp;nbsp;directly to the XAF app UI&amp;nbsp;(by a link from an organization&amp;#39;s `Apps dashboard` or via other methods). The&amp;nbsp;logon procedure in an XAF app proceeds automatically behind the scenes (via API calls). XAF users should NOT be forced to explicitly press the “Login with Microsoft” in this instance, because SSO will &amp;quot;just work&amp;quot; as expected.&lt;/li&gt;
&lt;li&gt;If a user within the organization needs to undergo additional security checks after a user is already logged on (for instance, reconfirm  MFA information via the&amp;nbsp;phone after 30-60 days), then XAF apps must provide a clear and understandable standard OAuth2 provider UI and disallow any operations within XAF UI.&amp;nbsp;For instance, Teams, Word or Outlook display modal dialogs to reconfirm your login details, before users can access and use these Microsoft 365 apps again.&lt;/li&gt;
&lt;/ol&gt;
&lt;/div&gt;
&lt;h3&gt;Support of ASP.NET Core Identity and Other External Permission Providers and Storages&lt;/h3&gt;
&lt;p dir="auto"&gt;With v24.1, you can enable  standard&amp;nbsp;&lt;a title="‌" href="https://learn.microsoft.com/en-us/aspnet/core/security/authentication/identity?view=aspnetcore-8.0&amp;amp;tabs=visual-studio" target="_blank" rel="noreferrer ugc nofollow"&gt;ASP.NET Core Identity&lt;/a&gt;&amp;nbsp;framework capabilities in your XAF Blazor and WinForms apps powered by .NET 6+ and Entity Framework Core. This includes&amp;nbsp;seamless integration of&amp;nbsp;Microsoft.AspNetCore.Identity.EntityFrameworkCore&amp;nbsp;and database-specific Identity packages like&amp;nbsp;Microsoft.EntityFrameworkCore.SqlServer.&lt;/p&gt;
&lt;p dir="auto"&gt;If you enable this opt-in feature in XAF’s Solution Wizard, your XAF project will generate&amp;nbsp;`&lt;em&gt;public class ApplicationUser : IdentityUser { /*...* /}&lt;/em&gt;` along with a preconfigured DbContext - both are&amp;nbsp;integrated with XAF’s security system for authentication and authorization (role-based access control or RBAC). The link between XAF’s RBAC (&lt;a title="‌" href="https://docs.devexpress.com/eXpressAppFramework/404633/data-security-and-safety/security-system/security-object-model/type-object-and-member-permissions" target="_blank" rel="noreferrer ugc nofollow"&gt;type, record, and field-level permissions&lt;/a&gt;) is established through the generic&amp;nbsp;&lt;a title="‌" href="https://learn.microsoft.com/en-us/aspnet/core/security/authentication/customize-identity-model?view=aspnetcore-8.0#model-generic-types" target="_blank" rel="noreferrer ugc nofollow"&gt;IdentityRole&lt;/a&gt;&amp;nbsp;and other EF Core data model classes, which are parts of the Identity data model. This Identity data model is mapped to the underlying databases with EF Core.&lt;/p&gt;
&lt;p dir="auto"&gt;In addition to the Identity model and database storage, XAF customers will experience the following benefits:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Automatically access all  standard Identity features such as Single Sign On (SSO), endpoints to register new users (&lt;a title="‌" href="https://devblogs.microsoft.com/dotnet/whats-new-with-identity-in-dotnet-8/" target="_blank" rel="noreferrer ugc nofollow"&gt;example&lt;/a&gt;), restore password, and other&amp;nbsp;Microsoft implementations (or future .NET implementations).&amp;nbsp;&lt;/li&gt;
&lt;li&gt;XAF-specific permissions are serialized as JSON, and are stored in  IdentityRole-related tables. For advanced scenarios, XAF developers can implement a custom permission provider, for instance, to synchronize user permissions and roles with an external service instead of the Identity database (technically you  need to pass JSON between your XAF app and external endpoints).&lt;/li&gt;
&lt;li&gt;The amount of security configuration code in your XAF project will also be minimized:&amp;nbsp;&lt;code&gt;builder.Services.AddIdentityCore&amp;lt;ApplicationUser&amp;gt;() .AddEntityFrameworkStores&amp;lt;AppDbContext&amp;gt;() .AddApiEndpoints();&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;If you already have external projects, which used EF Core and Identity, then XAF’s integration will become much easier as well. It will be easier to add developers to an XAF-powered project&amp;nbsp;as well, because EF Core and&amp;nbsp;&lt;a title="‌" href="http://asp.net/" target="_blank" rel="noreferrer ugc nofollow"&gt;ASP.NET&lt;/a&gt;&amp;nbsp;Core Identity frameworks are used by millions of .NET developers.&lt;/li&gt;
&lt;li&gt;XAF will continue generating its standard logon and CRUD UI screens for  Identity users and roles, and allow you to edit XAF’s permissions for these roles.&lt;/li&gt;
&lt;li&gt;You can also refer to your ApplicationUser class in other data models (for instance, to implement the CreatedBy or ModifiedBy properties). Standard criteria functions such as&amp;nbsp;&lt;a title="‌" href="https://docs.devexpress.com/eXpressAppFramework/113307/filtering/in-list-view/function-criteria-operators" target="_blank" rel="noreferrer ugc nofollow"&gt;CurrentUserId, IsUserInRole&lt;/a&gt;&amp;nbsp;and others will function as well.&lt;/li&gt;
&lt;/ul&gt;
&lt;img src="https://community.devexpress.com:443/blogs/xaf/2024/identity-efcore.png" alt="small" style="width:352px;height:567px;" class="small"&gt;
&lt;h3&gt;Middle Tier Security for WinForms Apps: Multi-Tenancy and OAuth2 Support&amp;nbsp;&lt;/h3&gt;
&lt;p&gt;In v24.1, XAF WinForms apps (.NET 6+)&amp;nbsp;with Middle Tier Security will natively support &lt;a href="https://docs.devexpress.com/eXpressAppFramework/404648/data-security-and-safety/security-system/authentication/oauth-and-custom-authentication" target="_blank"&gt;OAuth2 providers&lt;/a&gt; and &lt;a href="https://docs.devexpress.com/eXpressAppFramework/404436/multitenancy" target="_blank"&gt;Multi-Tenancy&lt;/a&gt;.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;As we described in our&amp;nbsp;&lt;a href="https://docs.devexpress.com/eXpressAppFramework/404691/security-considerations/general-security-considerations#data-store-protection" target="_blank"&gt;Security Considerations&lt;/a&gt;&amp;nbsp;document,&amp;nbsp;Windows desktop apps can better meet enterprise security standards with our Middle Tier application server. With our solution, EF Core or XPO developers can retain their standard DbContext or Session and initiate remote connections to a data store from any .NET client (like XAF WinForms or non-XAF apps). This capability is critical within certain environments/business apps (those that cannot maintain direct database connections because of security considerations).&lt;/p&gt;&lt;p&gt;I want to stress an important point: Non-XAF EF Core&amp;nbsp;or XPO developers can benefit from our Middle Tier application server and&amp;nbsp;preserve&amp;nbsp;DbContext or Session with their entity data model (&lt;a href="https://docs.devexpress.com/eXpressAppFramework/404398/data-security-and-safety/security-system/security-tiers/middle-tier-security-ef-core/connect-to-the-efcore-middle-tier-service-from-non-xaf-applications" target="_blank"&gt;learn more&lt;/a&gt;).&amp;nbsp;&lt;strong&gt;This is especially critical&amp;nbsp;for many desktop .NET developers (WinForms, WPF, WinUI, etc.), who are now required to&amp;nbsp;meet higher security standards.&amp;nbsp;&lt;/strong&gt;In a nutshell, these developers need to either retrofit/modernize their &amp;quot;fat clients&amp;quot; for Windows (#1)&amp;nbsp;or redo everything from scratch&amp;nbsp;using modern Web technologies and Cloud services (#2).&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;Our Middle Tier Security allows you to choose the&amp;nbsp;&amp;quot;easier&amp;quot; and potentially more&amp;nbsp;reliable route (#1), and to &amp;quot;replace&amp;quot;&amp;nbsp;direct database connections with middleware. Review the following code snippet for more information in this regard:&lt;/p&gt;
&lt;pre&gt;&lt;code class="language-csharp" data-line="3-4, 8"&gt;var httpRemoteRepository = new HttpRemoteRepository(httpClient, typeof(EFCoreDbContext).FullName);
var optionsBuilder = new DbContextOptionsBuilder&amp;lt;EFCoreDbContext&amp;gt;();
optionsBuilder.UseMiddleTier(opt =&amp;gt;
    opt.UseRemoteRepository(httpRemoteRepository));
optionsBuilder.UseChangeTrackingProxies();
optionsBuilder.UseLazyLoadingProxies();
var dbContextOptions = optionsBuilder.Options;
var dbContext = new EFCoreDbContext(dbContextOptions);
var users = dbContext.Employees.ToList();&lt;/code&gt;&lt;/pre&gt;

&lt;h3&gt;Middle Tier Security for WinForms Apps:&amp;nbsp;&lt;span&gt;Enhanced Performance and Usability&lt;/span&gt;&lt;/h3&gt;&lt;p&gt;XAF WinForms with Middle Tier Security will execute much faster in v24.1&amp;nbsp;(we will share exact numbers close to the official release in June). &lt;/p&gt;&lt;p&gt;In addition, it will now be possible to call the new SetPropertyValueWithBypassSecurity method&amp;nbsp;from within your BaseObject descendants  to bypass security checks for certain protected properties in  your internal application logic (custom base classes are also supported). &lt;/p&gt;&lt;p&gt;This capability is especially valuable to XAF developers when you wish to set service&amp;nbsp;properties like CreatedBy, ModifiedBy, CreatedOn, UpdatedOn, etc. - our Audit Trail and Model Difference modules operate using a similar mechanism.&amp;nbsp;The&amp;nbsp;SetPropertyValueWithBypassSecurity method can freely set protected properties on behalf of a restricted/regular user in code&amp;nbsp;much like an application administrator - without having to know admin&amp;nbsp;credentials &lt;span&gt;(like impersonation for service tasks)&lt;/span&gt;.&lt;/p&gt;&lt;pre&gt;&lt;code class="language-csharp"&gt;public override void OnSaving() {
    if (ObjectSpace.IsNewObject(this)) {
        SetPropertyValueWithBypassSecurity(nameof(CreatedBy), GetCurrentUser());
    }
    else {
        SetPropertyValueWithBypassSecurity(nameof(UpdatedBy), GetCurrentUser());
        SetPropertyValueWithBypassSecurity(nameof(UpdatedOn), DateTime.Now);
    }
    if (!IsRunningOnMiddleTierServer()) {
        // ...
    }
}&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;&lt;span&gt;As you probably know, this is &lt;a href="https://supportcenter.devexpress.com/ticket/details/q359904/securitystrategycomplex-how-to-modify-objects-properties-in-code-when-the-user-does-not" target="_blank"&gt;a long-requested option&lt;/a&gt; for many XAFers - an option that prevented full&amp;nbsp;migration  from Integrated Mode to Middle Tier Security  (&lt;/span&gt;&lt;span&gt;because&amp;nbsp;&lt;/span&gt;&lt;a href="https://docs.devexpress.com/eXpressAppFramework/DevExpress.EntityFrameworkCore.Security.SecuredEFCoreObjectSpaceProvider-1.CreateNonsecuredObjectSpace?p=net6" target="_blank"&gt;CreateNonsecuredObjectSpace&lt;/a&gt;&lt;span&gt;&amp;nbsp;and other workarounds were inconvenient). The&amp;nbsp;SetPropertyValueWithBypassSecurity also includes certain limitations like&amp;nbsp;calling this method is only supported from inside BaseObject.OnSaving (for the best security) or the bypassed property  cannot update other protected properties internally. We are of the opinion that this new option will cover 80% of popular use-cases. Along with associated performance enhancements, t&lt;/span&gt;his was&amp;nbsp;the last step before we could enable Middle Tier Security in XAF WinForms apps in the Solution Wizard by default.&amp;nbsp;Hopefully, XAF developers will find these new capabilities&amp;nbsp;sufficient to switch to Middle Tier Security as well.&lt;/p&gt;&lt;h2&gt;Cross-Platform Enhancements&lt;/h2&gt;&lt;p&gt;Before I move onto cross-platform enhancements, a quick reminder…XAF is fully extendable framework/constructor. You can incorporate Blazor and DevExtreme UI components, and by extension, customize XAF’s default UI today:&amp;nbsp;&lt;a href="https://docs.devexpress.com/eXpressAppFramework/403277/support-qa-troubleshooting/frequently-asked-questions-blazor-faq" target="_blank"&gt;Blazor UI (FAQ)&lt;/a&gt;&amp;nbsp;|&amp;nbsp;&lt;a href="https://www.devexpress.com/products/net/application_framework/xaf-considerations-for-newcomers.xml#advanced-ui-customization" target="_blank"&gt;More customization tips&lt;/a&gt;.&amp;nbsp;&lt;/p&gt;&lt;h3&gt;Command Line Interface (CLI) Solution Wizard Templates&amp;nbsp;&lt;/h3&gt;&lt;p&gt;XAF v24.1 will allow you to use the&amp;nbsp;&lt;a href="https://learn.microsoft.com/en-us/dotnet/core/tools/" target="_blank"&gt;.NET command line interface (CLI)&lt;/a&gt;&amp;nbsp;or the `dotnet` tool to quickly&amp;nbsp;create XAF Blazor and WinForms apps from the console (without using XAF&amp;#39;s Solution Wizard). This will be similar to the DevExpress Reports implementation:&amp;nbsp;&lt;a href="https://docs.devexpress.com/XtraReports/404160/web-reporting/blazor-reporting/get-started/use-cli-templates"&gt;Use .NET CLI Templates&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;This capability will be valuable for XAF developers using Microsoft Visual Studio Code (VS Code) or JetBrains Rider&amp;nbsp;in both Windows and non-Windows development environments (like Linux or MacOS). Previously, these users had to first create XAF projects in Visual Studio for Windows using the Solution Wizard.&lt;/p&gt;&lt;p&gt;Since you will be able to&amp;nbsp;create and modify&amp;nbsp;&lt;a href="https://community.devexpress.com/blogs/reporting/archive/2023/10/30/reporting-create-and-modify-devexpress-reports-in-vscode-on-macos-and-linux-ctp.aspx" target="_blank"&gt;DevExpress Reports in VS Code&amp;nbsp;on macOS and Linux&lt;/a&gt;, the only missing puzzle for non-Windows XAF development is a convenient way to modify the Application Model. While the Model Editor is available only in Visual Studio for Windows, plenty of&amp;nbsp;&lt;a href="https://supportcenter.devexpress.com/ticket/details/t1206756/xaf-linux-mac-development-support" target="_blank"&gt;code-based options&lt;/a&gt;&amp;nbsp;exist and&amp;nbsp;are actively&amp;nbsp;used by some XAF developers. Notwithstanding the visual capabilities of the Model Editor, XAF Blazor UI also includes great runtime customization capabilities much like in XAF WinForms. These capabilities address&amp;nbsp;many popular Application Model customization&amp;nbsp;scenarios. For more information, refer to the following post:&amp;nbsp;&lt;a href="https://community.devexpress.com/blogs/xaf/archive/2023/12/28/xaf-blazor-2023-highlights-5-unique-web-features-that-rival-powerful-windows-desktop-solutions.aspx" target="_blank"&gt;XAF (Blazor UI) 2023 Highlights — 5 Unique Web Features Designed to Rival Windows Desktop Solutions&lt;/a&gt;.&amp;nbsp;&lt;/p&gt;&lt;h3&gt;Automatic Code Error Diagnostics&lt;/h3&gt;&lt;p&gt;We expect to add 5-10 new automatic&amp;nbsp;&lt;a href="https://docs.devexpress.com/eXpressAppFramework/403389/debugging-testing-and-error-handling/code-diagnostics" target="_blank"&gt;Code Diagnostics&lt;/a&gt;.&amp;nbsp;We hope this will save you time in Visual Studio or validate build quality using internal CI/CD workflows. If you have not yet enabled these pre-built code &amp;amp; project error diagnostics, we strongly recommend that you do so for your .NET 6+ projects.&lt;/p&gt;&lt;h3&gt;Web API Service&amp;nbsp;for XAF &amp;amp; Non-XAF UI Clients (Powered by EF Core &amp;amp; XPO ORM)&lt;/h3&gt;&lt;p&gt;In v24.1, our Web API Service will support&amp;nbsp;&lt;a href="https://docs.devexpress.com/eXpressAppFramework/404436/multitenancy" target="_blank"&gt;Multi-Tenancy&lt;/a&gt;&amp;nbsp;for both EF Core and XPO ORM.&lt;/p&gt;&lt;p&gt;As you may already know, we officially released our&amp;nbsp;&lt;a href="https://docs.devexpress.com/eXpressAppFramework/403394/backend-web-api-service" target="_blank"&gt;Backend Web API Service&lt;/a&gt;&amp;nbsp;in mid-2022 and have enhanced&amp;nbsp;its capabilities and docs ever since. Our Web API Service has both&amp;nbsp;&lt;a href="https://www.devexpress.com/products/net/application_framework/security-web-api-service.xml" target="_blank"&gt;FREE (basic&amp;nbsp;CRUD)&lt;/a&gt;&amp;nbsp;and&amp;nbsp;&lt;a href="https://docs.devexpress.com/eXpressAppFramework/404176/backend-web-api-service/obtain-a-report-from-a-web-api-controller-endpoint" target="_blank"&gt;paid features&lt;/a&gt;&amp;nbsp;(such as reporting,&amp;nbsp;audit trail, validation, file attachments, localization, etc). We also distribute many demo applications illustrating the use of free and paid APIs with&amp;nbsp;&lt;a href="https://community.devexpress.com/blogs/news/archive/2023/03/29/authorize-ef-core-crud-operations-and-download-reports-in-net-maui-with-odata-web-api.aspx" target="_blank"&gt;.NET MAUI&lt;/a&gt;,&amp;nbsp;&lt;a href="https://www.devexpress.com/go/XAF_Security_NonXAF_Blazor_WebAssembly.aspx" target="_blank"&gt;Blazor WebAssembly&lt;/a&gt;,&amp;nbsp;&lt;a href="https://community.devexpress.com/blogs/news/archive/2023/04/11/consume-the-devexpress-backend-web-api-from-javascript-with-svelte-part-1.aspx" target="_blank"&gt;JavaScript&lt;/a&gt;&amp;nbsp;and&amp;nbsp;&lt;a href="https://go.devexpress.com/XAF_Security_NonXAF_Series.aspx" target="_blank"&gt;even more&lt;/a&gt;&amp;nbsp;(by paid features, I simply mean you must own a DevExpress Universal Subscription license).&lt;/p&gt;&lt;p&gt;To learn more about our Web API Service and determine whether it can be of value within your organization, please review the following blog post:&amp;nbsp;&lt;a href="https://community.devexpress.com/blogs/news/archive/2022/10/17/common-questions-about-the-new-devexpress-web-api-service-powered-by-entity-framework-and-xpo-orm.aspx"&gt;Common Questions about the New DevExpress Web API Service (powered by Entity Framework and XPO ORM)&lt;/a&gt;.&lt;/p&gt;&lt;h3&gt;Entity Framework Core 8&lt;/h3&gt;&lt;p&gt;EF Core 8 support will officially ship in&amp;nbsp;&lt;strong&gt;v24.1&amp;nbsp;&lt;/strong&gt;for&amp;nbsp;&lt;a href="https://www.devexpress.com/products/net/application_framework/" target="_blank"&gt;XAF&lt;/a&gt;&amp;nbsp;and associated&amp;nbsp;&lt;a href="https://docs.devexpress.com/eXpressAppFramework/403394/backend-web-api-service"&gt;Backend Web API Service&lt;/a&gt;. EF Core 8&amp;nbsp;is the latest version of Entity Framework.&lt;/p&gt;&lt;p&gt;While EF Core 8&amp;nbsp;offers numerous advantages over its predecessor (performance and customization included), it also introduced a series of&amp;nbsp;breaking changes&amp;nbsp;that we will need to address. To solicit feedback before official release in 4 months, we intentionally added preview (CTP) support of EF Core 8&amp;nbsp;in&amp;nbsp;&lt;strong&gt;v23.2.4+&lt;/strong&gt;.&amp;nbsp;&lt;/p&gt;&lt;p&gt;For more information about recent EF Core updates, refer to the following Microsoft document:&amp;nbsp;&lt;a href="https://learn.microsoft.com/en-us/ef/core/what-is-new/ef-core-8.0/whatsnew" target="_blank"&gt;What&amp;#39;s New in EF Core 8&lt;/a&gt;&amp;nbsp;|&amp;nbsp;&lt;a href="https://learn.microsoft.com/en-us/ef/core/what-is-new/ef-core-8.0/breaking-changes" target="_blank"&gt;EF Core 8 Breaking Changes&lt;/a&gt;&amp;nbsp;|&amp;nbsp;&lt;a href="https://github.com/DevExpress-Examples/XAF_Security_E4908/tree/24.1.1%2B/Benchmarks" target="_blank"&gt;Performance Benchmarks for EF Core 8 vs XPO ORM&lt;/a&gt;.&lt;/p&gt;&lt;h3&gt;Support of New .NET DateOnly and TimeOnly Types for Entity Framework&amp;nbsp;Core 8 and Blazor/WinForms UI&lt;/h3&gt;&lt;p&gt;As you probably read in the EF Core 8 breaking changes above,&amp;nbsp;&lt;a href="https://learn.microsoft.com/en-us/ef/core/what-is-new/ef-core-8.0/breaking-changes#sqlserver-date-time-only" target="_blank"&gt;SQL Server date and time now scaffold to .NET DateOnly and TimeOnly&lt;/a&gt;. XAF Blazor and WinForms apps for .NET 6+ will update associated Date and Time Property Editors to support the new .NET types accordingly. The underlying Blazor and WinForms grid components will support operations with DateOnly/TimeOnly (sorting, grouping, filtering, etc.) - as will Criteria Language, Server Mode, and other underlying data access components for EF Core.&lt;/p&gt;&lt;h3&gt;Cascade Deletion for Aggregated One-to-Many Collections in EF Core&lt;/h3&gt;&lt;p&gt;With v24.1, XAF&amp;#39;s Solution Wizard will include&amp;nbsp;`&lt;em&gt;modelBuilder.SetOneToManyAssociationDeleteBehavior(DeleteBehavior.SetNull, DeleteBehavior.Cascade);&lt;/em&gt;` in the OnModelCreating method of EF Core-based apps. This code will&amp;nbsp;configure&amp;nbsp;DeleteBehavior.SetNull for non-aggregated One-to-Many associations and DeleteBehavior.Cascade for aggregated One-to-Many associations respectively. Previously, XAF&amp;#39;s Aggregated attribute was not considered by EF Core as it was for XPO ORM (and there might be exceptions in certain ListView scenarios).&lt;/p&gt;&lt;h2&gt;Your Feedback Matters&lt;/h2&gt;&lt;p&gt;Just another reminder that our Roadmap v24.1,&amp;nbsp;&lt;span&gt;&lt;a href="https://www.devexpress.com/subscriptions/whats-new/#xaf-survey" target="_blank" style="background-color:#ffff99;"&gt;What&amp;#39;s New v23.2&lt;/a&gt;, and other surveys give&amp;nbsp;you the&amp;nbsp;opportunity to communicate your needs/concerns and allow&amp;nbsp;us to make more informed development decisions.&lt;/span&gt;&lt;/p&gt;&lt;div data-survey-id="943f13d8-d694-4a4a-ae3e-93727ec38643" data-survey-auth-required="false"&gt;&lt;/div&gt;&lt;p&gt;Thanks,&lt;br&gt;Dennis Garavsky&lt;br&gt;Principal Product Manager&lt;br&gt;&lt;a href="mailto:dennis@devexpress.com" title="Email me if you have questions or suggestions"&gt;dennis@devexpress.com&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Tue, 06 Feb 2024 23:38:00 Z</pubDate>
      <dc:creator>Dennis Garavsky (DevExpress)</dc:creator>
    </item>
    <item>
      <guid isPermaLink="false">bd716303-653c-428d-8b8a-a7d998cde032:388102</guid>
      <link>https://community.devexpress.com/Blogs/xaf/archive/2024/02/02/xaf-cross-platform-net-app-ui-amp-web-api-entity-framework-core-8-support-and-updated-performance-benchmarks-for-net-8.aspx</link>
      <category domain="https://community.devexpress.com/Tags/.net+6">.net 6</category>
      <category domain="https://community.devexpress.com/Tags/.NET+8">.NET 8</category>
      <category domain="https://community.devexpress.com/Tags/.net+core">.net core</category>
      <category domain="https://community.devexpress.com/Tags/2024">2024</category>
      <category domain="https://community.devexpress.com/Tags/asp.net+Core">asp.net Core</category>
      <category domain="https://community.devexpress.com/Tags/benchmarks">benchmarks</category>
      <category domain="https://community.devexpress.com/Tags/blazor">blazor</category>
      <category domain="https://community.devexpress.com/Tags/EF+Core">EF Core</category>
      <category domain="https://community.devexpress.com/Tags/Entity+Framework">Entity Framework</category>
      <category domain="https://community.devexpress.com/Tags/future">future</category>
      <category domain="https://community.devexpress.com/Tags/Performance">Performance</category>
      <category domain="https://community.devexpress.com/Tags/roadmap">roadmap</category>
      <category domain="https://community.devexpress.com/Tags/security">security</category>
      <category domain="https://community.devexpress.com/Tags/web+api">web api</category>
      <category domain="https://community.devexpress.com/Tags/WinForms">WinForms</category>
      <category domain="https://community.devexpress.com/Tags/XAF">XAF</category>
      <category domain="https://community.devexpress.com/Tags/XPO">XPO</category>
      <title>XAF — Entity Framework Core 8 Support and Updated Performance Benchmarks for .NET 8</title>
      <description>&lt;p&gt;Great news for customers using Entity Framework Core (EF Core): &lt;a href="https://www.devexpress.com/products/net/application_framework/" target="_blank"&gt;XAF&lt;/a&gt; &lt;strong&gt;v23.2.4+&lt;/strong&gt; and associated &lt;a href="https://docs.devexpress.com/eXpressAppFramework/403394/backend-web-api-service" id="OWA16ba00dc-bba6-df6e-b155-3ec907715220"&gt;Backend Web API Service&lt;/a&gt; include preview (CTP) support of EF Core 8. We intentionally added support for EF Core 8 in v23.2.4+ to solicit feedback before official release in 4 months (EF Core 8 support will officially ship in &lt;strong&gt;v24.1&lt;/strong&gt;).&amp;nbsp;&lt;/p&gt;
&lt;p&gt;We also updated our &lt;a href="https://github.com/DevExpress-Examples/XAF_Security_E4908/tree/24.1.1%2B/Benchmarks" target="_blank"&gt;performance benchmarks for EF Core 8 vs XPO ORM&lt;/a&gt;. Kudos to Microsoft with &lt;strong&gt;.NET 8&lt;/strong&gt; &lt;strong&gt;-&lt;/strong&gt; &lt;strong&gt;noticeable speed enhancements&lt;/strong&gt; as compared to .NET 6-7 (and older EF Core versions). For more information about recent EF Core updates, refer to the following Microsoft document: &lt;a href="https://learn.microsoft.com/en-us/ef/core/what-is-new/ef-core-8.0/whatsnew" target="_blank"&gt;What&amp;#39;s New in EF Core 8&lt;/a&gt;.&lt;/p&gt;&lt;div data-survey-id="ee6d2982-0b85-406f-8ea1-a1dc551db714" data-survey-auth-required="false"&gt;&lt;/div&gt;

&lt;h2&gt;Getting Started with XAF&lt;/h2&gt;
&lt;p&gt;If you have not heard of &lt;a href="https://www.devexpress.com/products/net/application_framework/" target="_blank"&gt;XAF&lt;/a&gt; before, XAF is a .NET application framework that helps you build powerful Office-inspired line-of-business apps with&amp;nbsp;DevExpress Blazor and WinForms UI components (using Entity Framework or&amp;nbsp;XPO ORM). We often call XAF the &amp;quot;&lt;em&gt;Fastest App UI Builder for EF Core ORM&lt;/em&gt;&amp;quot;, because it allows&amp;nbsp;you to progress&amp;nbsp;from a C# entity class to powerful Web, Desktop, and Mobile UI forms in minutes using its&amp;nbsp;integrated &lt;a href="https://docs.devexpress.com/eXpressAppFramework/113624/installation-upgrade-version-history/visual-studio-integration/solution-wizard" target="_blank"&gt;Solution Wizard&lt;/a&gt; and&amp;nbsp;built-in  modules such as Validation, Reporting, Scheduler, Office, Dashboards, etc. &lt;/p&gt;&lt;p&gt;For complex enterprise-level usage scenarios, XAF ships the&lt;span&gt;&amp;nbsp;&lt;/span&gt;&lt;a href="https://docs.devexpress.com/eXpressAppFramework/404436/multitenancy"&gt;Multi-Tenancy&lt;/a&gt;, &lt;a href="https://docs.devexpress.com/eXpressAppFramework/112782/data-security-and-safety/audit-trail-module-overview" target="_blank"&gt;Audit Trail&lt;/a&gt;,&lt;span&gt;&amp;nbsp;and &lt;a href="https://docs.devexpress.com/eXpressAppFramework/113366/data-security-and-safety/security-system" target="_blank"&gt;Security System&lt;/a&gt; modules. Built-in security features include:&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;span&gt;&lt;strong&gt;Role-based access control (RBAC)&lt;/strong&gt; including type, record, and field-level permissions (&lt;/span&gt;&lt;a href="https://docs.devexpress.com/eXpressAppFramework/404633/data-security-and-safety/security-system/security-object-model/type-object-and-member-permissions" target="_blank"&gt;learn more&lt;/a&gt;&lt;span&gt;). You can  manage users and roles at runtime using XAF&amp;#39;s administrative UI/ portal&amp;nbsp;for&amp;nbsp;Blazor,&amp;nbsp;WinForms, and WebForms (or in code manually).&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Flexible authentication strategies&lt;/strong&gt; including &lt;span&gt;&lt;span&gt;Microsoft Entra ID (former Azure Active Directory), Google, and other&amp;nbsp;OAuth2 providers &lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;a href="https://docs.devexpress.com/eXpressAppFramework/119064/data-security-and-safety/security-system/authentication" target="_blank"&gt;learn more&lt;/a&gt;&lt;span&gt;).&lt;/span&gt; &lt;span&gt;The XAF login form automatically renders UI controls based on authentication settings you specified in the Solution Wizard (or in code manually). &lt;/span&gt;&lt;/span&gt;&lt;br&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt; &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Middle Tier application server&lt;/strong&gt;&amp;nbsp;for modern desktop, web and mobile apps (&lt;a href="https://docs.devexpress.com/eXpressAppFramework/404389/data-security-and-safety/security-system/security-tiers/middle-tier-security-ef-core" target="_blank"&gt;learn more&lt;/a&gt;).&amp;nbsp;&lt;span&gt;&lt;span&gt;EF Core developers can retain their&amp;nbsp;standard&amp;nbsp;DbContext&amp;nbsp;and initiate remote connections to a data store from any .NET client (like&amp;nbsp;XAF WinForms or even&amp;nbsp;&lt;a href="https://docs.devexpress.com/eXpressAppFramework/404398/data-security-and-safety/security-system/non-xaf/connect-to-the-efcore-middle-tier-service-from-non-xaf-applications" target="_blank"&gt;non-XAF apps&lt;/a&gt;). This capability is critical within certain&amp;nbsp;environments/business apps (those that cannot maintain direct database connections because of &lt;a href="https://docs.devexpress.com/eXpressAppFramework/404691/security-considerations/general-security-considerations#data-store-protection" target="_blank"&gt;security considerations&lt;/a&gt;).&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;


&lt;p&gt;&lt;img src="https://community.devexpress.com:443/blogs/xaf/xaf-efcore-app-builder@2x[1].png" alt="" style="width:1500px;height:952px;border-width:1px;border-color:#c0c0c0;border-style:solid;"&gt;&lt;/p&gt;
&lt;img src="https://community.devexpress.com:443/blogs/xaf/image(51).png" data-comparer-theme="dark" data-label-before="XAF WinForms UI" data-label-after="XAF Blazor UI" data-before-src="https://community.devexpress.com/blogs/xaf/2023/MainDemo.Win_puxspk1tmk.png" data-comparer-position="80" alt="" style="width:2904px;height:1920px;border-width:1px;border-color:#c0c0c0;border-style:solid;"&gt;

&lt;div class="Note"&gt;&lt;a href="https://docs.devexpress.com/eXpressAppFramework/113577/getting-started" style="background-color:#ffff99;"&gt;Get&amp;nbsp;Started with XAF today&lt;/a&gt;&amp;nbsp;if you want to build Office-like line-of-business (LOB) apps powered by Blazor, WinForms, or WebForms much faster than using traditional approaches. Check out XAF&amp;#39;s demos in your DevExpress installation or online at&amp;nbsp;&lt;a href="https://demos.devexpress.com/xaf/blazordemo/" target="_blank"&gt;https://demos.devexpress.com/xaf/blazordemo/&lt;/a&gt;. You can learn more about&amp;nbsp;&lt;a href="https://www.devexpress.com/products/net/application_framework/" target="_blank"&gt;XAF benefits here&lt;/a&gt;,&amp;nbsp;and our&amp;nbsp;&lt;a href="https://www.devexpress.com/products/net/application_framework/xaf-considerations-for-newcomers.xml" target="_blank"&gt;Considerations for Newcomers&lt;/a&gt;&amp;nbsp;will help you understand whether this application framework is right for your business.&lt;/div&gt;
&lt;p&gt;Thanks,&lt;br&gt;Dennis Garavsky&lt;br&gt;Principal Product Manager&lt;br&gt;&lt;a title="Email me if you have questions or suggestions" href="mailto:dennis@devexpress.com?subject=Feedback%20on%20XAF%20Experience"&gt;dennis@devexpress.com&lt;/a&gt;&lt;/p&gt;</description>
      <pubDate>Fri, 02 Feb 2024 13:56:00 Z</pubDate>
      <dc:creator>Dennis Garavsky (DevExpress)</dc:creator>
    </item>
  </channel>
</rss>