Developer Meeting: July 3, 2024 at 12:00 PM ET
Status Updates
Version 5.2.0 is still under development and is expected to be released in late July 2024. The release will include several major enhancements:
- Scalability improvements
- Text Editor abstraction
- Content Search Engine
- Bootstrap 5.3.3
- .NET 8.0.7
Scalability
Some aspects of the scalability improvements were shared in the Oqtane Developer Meeting notes from June. These included the changes to only load the collection of modules for the current page rather than all modules in a site, and caching Site objects per site rather than per site/user. Additional scalability improvements were required for sites which use static rendering, as Blazor uses serialization and encryption for component state which is passed as standard parameters which cross a render mode boundary. This has the potential to bloat your page output with a lot of additional content which can affect both performance and scalability. This issue was mitigated by trimming the PageState prior to passing the parameter values. The side effect is that interactive components being used within a statically rendered site will no longer be able to access the PageState.Pages collection - the interactive component will need to explicitly load this information if its required.
Text Editor
An extensibility model has been introduced which allows alternate implementations of text editors to be created and integrated with the framework. The default Text Editor will continue to be based on QuilJS (1.x currently). An alternate TextArea Text Editor has been included for demonstration purposes as an example for how the framework can support other text editors. We expect that developers will use this new extensibility model to create wrappers around popular rich text editors such as Radzen, etc...
Content Search Engine
A content search capability has been integrated into the framework. It has 2 main extensibility points:
- ISearchable - an interface which modules can implement that allows their content to be indexed
- ISearchProvider - an interface which allows developers to create custom Search Providers (ie. to allow integration with 3rd party search solutions and services)
The default Search Provider uses a standard inverted index to provide lexical search capabilities based on key words. The search content is stored in the Oqtane tenant database (ie. SQL Server, MySQL, SQLite, PostgreSQL). The default search provider requires no additional infrastructure or dependencies and should satisfy the needs of the majority of sites.
More detailed information is available in this discussion post.
Content Localization
Oqtane has supported the localization of static assets since version 1.0. This solution allows developers to translate the static text in the user interface of the framework and third party modules, however it does not support the localization of dynamic content provided by end users - usually referred to as content localization. The topic of content localization has been raised numerous times in the recent years - in particular, how it would be implemented from a technical perspective into the framework.
Although Oqtane has used similar concepts to DNN in a number of areas, content localization is an area where it will not follow the DNN approach. This is because the DNN implementation of content localization was tightly coupled and highly invasive to the application architecture. Essentially, the DNN approach attempted to create a multi-tenancy model within a multi-tenancy model, which resulted in a lot of complexity and performance impacts to every usage scenario.
Oqtane will instead leverage its existing multi-tenancy model. Each Site will only support content in a single Language. Tools will be created which allow content to be synchronized across sites so that localized versions can be maintained in different Languages. This technical approach provides a much cleaner, more modular solution which leverages the core framework capabilities and integrates . Content localization is not on the immediate roadmap as there are currently other features which are higher priority.
Roadmap
The following roadmap outlining the expected releases in 2024 were shared:
- 5.2.0 - July 2024
- 5.2.* - monthly patch releases
- 6.0.0 - Q4 2024 (.NET 9 - Scale Out Support)
The next Oqtane Developer Meeting will be on August 7, 2024.