Информация об изменениях

Сообщение Re[2]: Blazor Desktop от 24.05.2020 16:28

Изменено 24.05.2020 17:00 Serginio1

Re[2]: Blazor Desktop
Здравствуйте, Rhino, Вы писали:

R>Здравствуйте, Serginio1, Вы писали:


S>>Интересная статья

S>>Exploring lighter alternatives to Electron for hosting a Blazor desktop app
R>Похоронят как Сильвер и скажут что так и нужно было. В пень Блазор.
То есть у блазора нет надежды даже на Вэб?
Сильвер не Blazor Desktop и не Blazor WebAssembly.
Тогда проблема была в Хром https://support.microsoft.com/ru-ru/help/3058254/microsoft-silverlight-may-not-work-in-recent-versions-of-google-chrome
C WebAssembly и Mono это уже другая технология.
А Blazor Desktop это и близко к Сильвер, так как это десктоп для UI использующй Web браузер

Exploring WebWindow examples for Blazor on desktop

static void Main(string[] args)
{
     var window = new WebWindow(".NET Core + Vue.js file explorer");
     window.OnWebMessageReceived += HandleWebMessageReceived;
     window.NavigateToLocalFile("wwwroot/index.html");
     window.WaitForExit();
}


В данном случае можно обрабатывать методы из браузера через OnWebMessageReceived
 window.external.sendMessage(JSON.stringify({

                command: 'navigateTo',

                basePath: app.directoryInfo.name,

                relativePath: relativePath

            }));


И обрабатывать на стороне .Net

 static void HandleWebMessageReceived(object sender, string message)

        {

            var window = (WebWindow)sender;

            var parsedMessage = JsonDocument.Parse(message).RootElement;

            switch (parsedMessage.GetProperty("command").GetString())

            {

                case "navigateTo":


И отсылать обратно
 static void SendCommand(WebWindow window, string commandName, object arg)

        {

            window.SendMessage(JsonSerializer.Serialize(new { command = commandName, arg = arg }));

        }


Это очень близко к CEF CEF, ES6, Angular 2, TypeScript использование классов .Net Core. Создание кроссплатформенного GUI для .Net с помощью CEF
Re[2]: Blazor Desktop
Здравствуйте, Rhino, Вы писали:

R>Здравствуйте, Serginio1, Вы писали:


S>>Интересная статья

S>>Exploring lighter alternatives to Electron for hosting a Blazor desktop app
R>Похоронят как Сильвер и скажут что так и нужно было. В пень Блазор.
То есть у блазора нет надежды даже на Вэб?
Сильвер не Blazor Desktop и не Blazor WebAssembly.
Тогда проблема была в Хром https://support.microsoft.com/ru-ru/help/3058254/microsoft-silverlight-may-not-work-in-recent-versions-of-google-chrome
C WebAssembly и Mono это уже другая технология.
А Blazor Desktop это и близко к Сильвер, так как это десктоп для UI использующй Web браузер

Exploring WebWindow examples for Blazor on desktop

static void Main(string[] args)
{
     var window = new WebWindow(".NET Core + Vue.js file explorer");
     window.OnWebMessageReceived += HandleWebMessageReceived;
     window.NavigateToLocalFile("wwwroot/index.html");
     window.WaitForExit();
}


В данном случае можно обрабатывать методы из браузера через OnWebMessageReceived
 window.external.sendMessage(JSON.stringify({

                command: 'navigateTo',

                basePath: app.directoryInfo.name,

                relativePath: relativePath

            }));


И обрабатывать на стороне .Net

 static void HandleWebMessageReceived(object sender, string message)

        {

            var window = (WebWindow)sender;

            var parsedMessage = JsonDocument.Parse(message).RootElement;

            switch (parsedMessage.GetProperty("command").GetString())

            {

                case "navigateTo":


И отсылать обратно
 static void SendCommand(WebWindow window, string commandName, object arg)

        {

            window.SendMessage(JsonSerializer.Serialize(new { command = commandName, arg = arg }));

        }


Это очень близко к CEF CEF, ES6, Angular 2, TypeScript использование классов .Net Core. Создание кроссплатформенного GUI для .Net с помощью CEF


Но можно хостить и блазоровские страницы
https://blog.stevensanderson.com/2019/11/18/2019-11-18-webwindow-a-cross-platform-webview-for-dotnet-core/
static void Main(string[] args)
{
    ComponentsDesktop.Run<Startup>("My Blazor App", "wwwroot/index.html");
}


Напомним, что это не включает в себя WebAssembly, Node.js, или Chromium. Это просто .NET Core работает изначально, напрямую взаимодействуя с собственной технологией веб-рендеринга ОС.