Skip to content

RoadMap

GioviQ edited this page Jul 2, 2020 · 27 revisions

Blazor Boilerplate Project Roadmap

Blazor Boilerplate has a decent start but we have several features that could use additional collaborator support to tackle. Below is the initial list. As more collaborator's join please make suggestions on the Gitter community

Project | Assigned Contributor

  • Review Logging and Test on local & published | n/a
  • Add Local Storage for User Profile & Theme options | n/a
  • Create Wiki for Deployment both IIS and Azure | n/a
  • Simple CRUD for Customers -> Orders or or Blog | n/a
  • Unit, Integration and Automatized Tests | n/a
  • Simple Chat using SignalR - maybe this repo can be a resource: https://github.com/conficient/BlazorChatSample | n/a

Development branch

Modularization

Goal: web application starts and reads from database which modules to load for the current tenant.

At the moment the modules are implemented in folder Modules:

BlazorBoilerplate.Theme.Material is the main theme with general purpose pages. It is based on MatBlazor. All UI modules depends on main theme.

BlazorBoilerplate.Theme.Material.Admin is the admin UI. If the current tenant is the master tenant, you can manage tenant CRUD actions.

BlazorBoilerplate.Theme.Material.Demo contains the application UI, in this case BlazorBoilerplate Demo.

BlazorBoilerplate.GoogleAnalytics injects Google Analytics script with TrackingId read from appsettings.json.

Every module has to contain a class implementing IModule or deriving from BaseModule. If the module is also a theme a class has to implement ITheme. The project file .csproj contains

<Target Name="PostBuild" AfterTargets="PostBuildEvent">
  <Exec Command="copy $(TargetPath) $(SolutionDir)Server\BlazorBoilerplate.Server\Modules\" />
</Target>

to copy dll in Modules folder. Sometimes Visual Studio does not compile automatically the project if you run Debug without compile solution.

If the module has wwwroot folder this implementation does not take in consideration, so for now all modules have been statically referenced in solution. Future goal: package modules as nupkg and implement something to load them like in the Oqtane framework.

A module can add ITagHelperComponent to inject something in _Index.html like e.g. GoogleAnalyticsTagHelperComponent.cs.

A module can add pages and inject IDynamicComponent in NavMenu, Footer, DrawerFooter and TopRightBarSection of main theme module like BlazorBoilerplate.Theme.Material.Demo.