Skip to content

RoadMap

GioviQ edited this page Jun 4, 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

Breeze

Breeze integration completed with ToDo example.

With Breeze the API design takes less code and makes easy some complex update.

In this project the Breeze Controller is ApplicationController. The EFPersistenceManager is ApplicationPersistenceManager and the Breeze.Sharp Entities (i.e. the Dto) are in BlazorBoilerplate.Shared.Dto.Db.

The breeze.sharp library is rarely updated, so to make BlazorBoilerplate working with Breeze I used my fork. You can find the package in folder nupkg and nuget.config tells Visual Studio to use this folder as a package source.

The ApplicationController has no Authorize attribute, because to keep policy management with Breeze, I implemented a simple custom policy management in ApplicationPersistenceManager.

First of all you can mark the EF entities with Permissions attribute which takes CRUD Actions flag enum as parameter. Examples:

[Permissions(Actions.Delete)]
public partial class Todo
{
 ...
}

[Permissions(Actions.Create | Actions.Update)]
public partial class Todo
{
 ...
}

[Permissions(Actions.CRUD)]
public partial class Todo
{
 ...
}

In BeforeSaveEntities method of ApplicationPersistenceManager the actions of the entities to be saved are compared with the claims of permission type of the current user. If a policy is violated an EntityErrorsException is thrown.

Clone this wiki locally