Remove IVT from Components.Web to Blazor/Components.Server
See original GitHub issueCurrently, the ComponentsElectron prototype is very hacky, fragile, and extremely hard to upgrade from one version of Blazor to the next. One key reason is that it doesn’t have access to some of the internals of M.A.Components
, so it gets what it wants by private reflection. It doesn’t follow the correct integration patterns because it can’t, so it just cheats and relies on implementation details of a specific version.
To make it possible to build alternate hosting models for M.A.Components
, we need to expose the necessary APIs publicly. To prove we are doing this, we should remove the IVT that we currently have from M.A.Components
to M.A.Blazor
and M.A.Components.Server
, and make the relevant hosting APIs public and supported.
There are only a few internal
APIs used this way by M.A.Blazor
and M.A.Components.Server
(e.g., RenderRegistry.Current.Add
and Interop.EnableNavigationInterception
).
Or, if we decide we really can’t do this right now, we should add an additional IVT to M.A.Components.Electron
so that hosting model at least can be done cleanly.
Issue Analytics
- State:
- Created 4 years ago
- Comments:5 (5 by maintainers)
If possible/reasonable we should do the same for Ignitor. All of the things we do in ignitor are similar to what another host would do if it were implemented in C#.
I have not gotten past the investigat stage. Re-assigned to you.