🚀 Welcome to MDriven Learn –  Don’t miss the latest Release Notes.
Blazor

Newer comments are on top - older comments are further down.

2025 September

The DataGrid used for Blazor is based on QuickGrid. It is extended with a filtering mechanism. Virtualization of QuickGrid rows is turned on. To set the row size - known as ItemSize - you set the css variable --quickgrid-row-height to a number, like 30px. Then your css should match this so that your rows really are 28px in height (by default); otherwise, QuickGrid can flicker.

2025 July

ServerSide blazor is now supported with "appli":

"http://localhost:5020/Appli/SeekerThings/$null$"

To make it the default, set GlobalMainUIEngine to appli as described here.

2024 September

The older implementations of ServerSide-Blazor are deprecated, and we now offer Client side Blazor via the controller named appl.

Test this by having an AngularJS URL and changing app# to appl; for example, change "http://localhost:5020/App#/SeekerThings/$null$" to "http://localhost:5020/Appl/SeekerThings/$null$".

To make the Blazor client the default, set GlobalBlazorClient GlobalMainUIEngine as described here.

To add your own components to Blazor client, read here: Documentation:EXT_ComponentsBlazor

2021 - December

Serverside Blazor with VS2022 and .net5.

Using the MDriven bits for .net472 (I do this to see how it works - there are .netStandard and .net5 builds as well)

I now understand that Dispatcher and everything related to it are classified as "WPF threading". We do make some assumptions on Dispatcher in ViewModels and AsyncService that will trip you up when using 472 builds in .net5.

To avoid stops, set this early:

PeriodActionTimerTuple.Environment_HasDispatcher = false;

Blazor may have a Singleton service installed in Startup ConfigureServices like this:

services.AddSingleton<MyDataService>();

Example of an implementation:

public class MyDataService
{
  private EcoProject1EcoSpace _es;
  public MyDataService()
  {
    PeriodActionTimerTuple.Environment_HasDispatcher = false;
    _es = new EcoProject1EcoSpace();
    _es.Active = true;
    var list=_es.Extents.AllInstances<Class1>();
    if (list.Count == 0)
    {
      new Class1(_es) { Attribute1="Hello"};
    }
  } 

 public Task<IList<Class1>> GetSomeData(DateTime startDate)        
 {            
   return Task.FromResult(_es.Extents.AllInstances<Class1>() as IList<Class1>);        
 }

2018

Initial tests of MDriven via .netStandard2.1 to run on Blazor.

WCF-Client is not supported: https://github.com/aspnet/Blazor/issues/598. I will remove WCF dependencies in the new build set called MDriven.netStandard.Blazor.

We use System.Runtime.Serialization.Formatters.Soap.SoapFormatter to handle serializing of complex keys (I think it is overkill and should work away). SoapFormatter does not work in Blazor. Replacing this with a dummy stub initially - only in MDriven.netStandard.Blazor builds.