News

Project Oqtane Provides Blazor-Based Modern App Framework

The .NET Foundation recently shined a spotlight on Project Oqtane, a modern application framework for Blazor, Microsoft's red-hot open source project that enables web development in C#.

Blazor, in the works for a couple years now, is a game-changing framework that leverages WebAssembly as a binary instruction format, acting as a compilation target for C# code. By obviating the need to use web mainstay JavaScript, a whole new world of web development is opened up to .NET-centric coders.

The project was the latest to be highlighted by the .NET Foundation, an independent, non-profit organization established to support an open source ecosystem around the .NET platform, working hand in hand with Microsoft.

Oqtane
[Click on image for larger view.] Oqtane (source: Project Oqtane).

"Oqtane is a modular application framework which accelerates the development of modern digital experiences," the .NET Foundation said. "It was architected from the ground up to utilize Blazor, a modern single-page application framework for building interactive web apps with C# and .NET. Oqtane offers advanced capabilities such as multi-tenancy, a fully dynamic page compositing model, designer friendly themes, extensibility via third party plug-in modules, a headless API, and supports Blazor Server and Blazor WebAssembly hosting models."

The project is headed by creator Shaun Walker, who discussed his brainchild in a recent .NET Foundation video.

"Rather than building applications from the ground up in sort of a in a static way, the idea behind a modular framework is that you basically get a complete foundation of an application to build on top of and then you focus on building your specific business applications as modules which sort of seamlessly plug in to the overall foundation to create a cohesive application," explained Walker. "There's a lot of benefits of doing things in a modular way in that you can ... break down the problem into smaller pieces. You can develop them independently from the main application. You can deploy them independently."

Walker -- who also created the popular DotNetNuke (now DNN) web CMS -- announced Oqtane 2.0 for .NET 5 during the latter's debut last fall at Microsoft's .NET Conf 2020. The next update is scheduled for the first quarter of this year.

The project's GitHub site states Oqtane was inspired by Walker's DotNetNuke web application framework. "Initially created as a proof of concept, Oqtane is a native Blazor application written from the ground up using modern .NET Core technology. It is a modular application framework offering a fully dynamic page compositing model, multi-site support, designer friendly templates (skins), and extensibility via third party modules."

Oqtane Architecture
[Click on image for larger view.] Oqtane Architecture (source: Project Oqtane).

As it's a still fairly young, developing project, the documentation is skimpy, with one page stating, "Here we would like to explain why Oqtane works the way it does," followed only by one entry about DLL handling. The API documentation is much more robust, however.

Walker in November said Oqtane would be transferring development to .NET 5 immediately, while also announcing localization support spearheaded by a community contributor.

The project's roadmap indicates that for the next update, coming this quarter, the following is planned:
  • Complete Static Localization of Admin UI
  • Cross Platform Database Support ( ie. SQLite )
  • EF Core Migrations for Database Installation/Upgrade

Last November, Walker provided further updates on the project. "Since the official 1.0 release in May 2020, the Oqtane community has continued to grow and expand," he said. "To date, the open source repository has attracted 568 pull requests from 21 contributors and has published 6 official releases, which ranks it among the most active open source projects within the .NET Foundation. We also need to recognize the expert assistance and encouragement we have received directly from members of the Microsoft ASP.NET team including Daniel Roth, Steve Sanderson, Pranav Krishnamoorthy, and Safia Abdalla."

For the future, Walker in his video talked more about the next major feature for Oqtane as requested by the community: support for other databases beyond its default support for SQL Server variants. Along with the aforementioned SQLite, he mentioned MySQL and Postgres specifically. He also noted continued work on localization.

Walker also encouraged more community involvement, noting that developers who might be uncomfortable with technical pull requests would especially be welcomed to shore up the project's documentation, which he described as "a weak area."

Seeing as how the next update should be landing within the next couple months, developers won't have to wait too long to see how the project is advancing.

About the Author

David Ramel is an editor and writer at Converge 360.

comments powered by Disqus

Featured

  • Compare New GitHub Copilot Free Plan for Visual Studio/VS Code to Paid Plans

    The free plan restricts the number of completions, chat requests and access to AI models, being suitable for occasional users and small projects.

  • Diving Deep into .NET MAUI

    Ever since someone figured out that fiddling bits results in source code, developers have sought one codebase for all types of apps on all platforms, with Microsoft's latest attempt to further that effort being .NET MAUI.

  • Copilot AI Boosts Abound in New VS Code v1.96

    Microsoft improved on its new "Copilot Edit" functionality in the latest release of Visual Studio Code, v1.96, its open-source based code editor that has become the most popular in the world according to many surveys.

  • AdaBoost Regression Using C#

    Dr. James McCaffrey from Microsoft Research presents a complete end-to-end demonstration of the AdaBoost.R2 algorithm for regression problems (where the goal is to predict a single numeric value). The implementation follows the original source research paper closely, so you can use it as a guide for customization for specific scenarios.

  • Versioning and Documenting ASP.NET Core Services

    Building an API with ASP.NET Core is only half the job. If your API is going to live more than one release cycle, you're going to need to version it. If you have other people building clients for it, you're going to need to document it.

Subscribe on YouTube