The 3.1.4 release is primarily focused on stabilization. This includes a variety of performance optimizations, user experience improvements, and localization enhancements.
As mentioned in the Oqtane Philosophy, performance is one of overarching principles for the framework. In this release we conducted some load testing and identified the most frequently executed methods both from a client and server workload perspective.
On the client, we discovered that the Control Panel was making an HTTP request to the backend API to retrieve the list of languages each time the user navigated to a new page in a site. This was happening regardless of whether the site was simply using the default language or had enabled multiple languages. This was adding unnecessary rooundtrips between the client and server and we were able to optimize this behavior similar to other core entities by loading the list of languages into client-side state on the first request to a site, thus eliminating the need for further HTTP requests.
On the server, we noticed that the permissions repository was being executed very frequently and calling the backend database in order to satisfy the permissions policies for various API Controller methods. In this case we added memory caching to the permissions repository to reduce the number of out-of-process interactions with the database.
The net effect of these optimizations was an overall reduction in application workload and an increase in application performance from a user perspective. These types of optimization exercises are an essential aspect of software product engineering, as described in the It's Never Done principle.
This release includes 25 pull requests by 4 different contributors, pushing the total number of project commits all-time to 2949. The Oqtane framework continues to evolve at a rapid pace to meet the needs of .NET developers. The 3.1.4 release is available for download on Github and is running in production at https://www.oqtane.org.