XPO - Updated .NET Core Examples, Performance Benchmarks for EF Core 5.0 and More (v20.1)

XPO Team Blog
04 June 2020

Performance Benchmarks

The release of XPO v20.1 gave us an opportunity to update our benchmarks for XPO and Entity Framework Core: https://github.com/DevExpress/XPO/tree/master/Benchmarks. We were primarily interested in EF Core 3.1.3 vs EF Core 5.0, but we did not notice much difference in our tests (PDF). As for XPO vs EF Core 3.1.3, results are very similar to v19.2.

As always, we welcome your feedback. If you had the opportunity to execute our benchmark tests, please share your thoughts below. We’d love to know whether our findings are in-line with yours.

Updated .NET Core Examples

We identified 30 of our most popular XPO examples and added .NET Core 3.1 projects to them. I hope you find this update useful as .NET Core gains in popularity. To learn XPO faster, feel free to explore the following technical resources:

We have also updated XPO and EF Core examples with XAF's user authentication and group authorization API to v20.1.4 (GitHub). Hopefully, you will find these access control/security functions of value for your enterprise. To quickly familiarize yourself with XAF's security system, please review these Frequently Asked Questions.

Noteworthy Support Center Tickets

  • Changes in Visual Studio 2019 v16.6.0 caused the standard Class.cs item template (with an empty class) to disappear in the Add | New Item dialog. As a fix, you can update to the latest version or disable the XPO extension (T892485).
  • We softened default parameter validation with regard to SELECT, UPDATE, and INSERT statements in XPO v20.1.4 (T890958).
  • We demonstrated how to unit test custom logic in XAF/XPO business classes with InMemoryDataStore (T884471).
  • Check how to use XPO Dependency Injection extensions to setup multiple data layers for ASP.NET Core Web API services (T864202).
  • Learn how to troubleshoot the "Reentrancy or cross thread operation detected" errors (T419520).
  • We implemented a console version of XPO Profiler to detect performance bottlenecks and code issues (T882761).
  • FileNotFoundException and TypeLoadException related to Microsoft.Data.SqlClient may occur in debug mode (T885153).

Free DevExpress Products – Get Your Copy Today

The following free DevExpress product offers remain available. Should you have any questions about the free offers below, please submit a ticket via the DevExpress Support Center at your convenience. We’ll be happy to follow-up.
Martin Pelletier
Martin Pelletier

Could I suggest to add a specific tutorial on using XPO with WPF in your documentation? Or a document stating on recommended approaches on using XPO with WPF?


Or maybe, XPO is a framework made principally for Winform? And that the preferred framework for WPF would be EF and not XPO? 

Martin.

4 June 2020
Martin Pelletier
Martin Pelletier
Lol, just saw you added the best practices in the documentation. Sorry about that. 
4 June 2020
Uriah (DevExpress Support)
Uriah (DevExpress Support)

@Martin, I believe you mean this article: XPO Best Practices in WPF applications.

We have WPF-specific examples as well. Here are examples demonstrating how to create a WPF CRUD application: https://github.com/DevExpress/XPO/tree/master/Tutorials/WPF. I believe you can find some useful approaches there.

This example demonstrates how to work with large data sets: How to Bind Data to WPF Data Grid Using XPO and XPServerModeView or XPInstantFeedbackView.

Some XPO examples demonstrate the use of XPO core API. For instance:
How To Implement Custom Aggregates for Collections of Persistent Objects
.
How to implement the ICustomFunctionOperatorFormattable interface

LINQ to XPO

They apply to any platform, including WPF. We often use Console or WinForms projects in such examples because they are the simplest.

 
5 June 2020
RoBa
RoBa
Are there any news regarding xpo progress?
15 March 2021
Dennis (DevExpress)
Dennis Garavsky (DevExpress)
@RoBa: What are you looking for specifically?
15 March 2021

Please login or register to post comments.