Ради интереса я создал простое приложение Blazor, которое подключается к Northbricks и перечисляет банки.

Инструменты

  • Визуальная студия 2019
  • Код Visual Studio
  • Последний пакет SDK для dotnet core 3.0.100-preview6–012264 — https://dotnet.microsoft.com/download/dotnet-core/3.0
  • Служба приложений Azure Linux
  • Служба приложений Azure Windows
  • Служба SignalR

Код

Получить код этого приложения https://github.com/mrweiland/NorthbricksBlazorServerSide

Чтобы начать работу, следуйте https://docs.microsoft.com/en-gb/aspnet/core/blazor/get-started?view=aspnetcore-3.0&tabs=visual-studio.

dotnet new blazorserverside-o NorthbricksDemo

Демо получило только отдых, как код, я хотел сделать что-то более похожее на то, как я это делаю в С#, поэтому я добавил в классы

Banks.cs
с использованием System;
с использованием System.Collections.Generic;

пространство имен BlazorTestServerSide.Data
{
public class Bank
{
public string bic { get; набор; }
общедоступная строка shortName { get; набор; }
public string fullName { get; набор; }
общедоступная строка { get; набор; }
общественный логотип строки { получить; набор; }
веб-сайт общедоступной строки { get; набор; }
}
открытый класс банков
{
открытый список‹банков› банков { get; набор; }
}
}

NorthbricksApi.cs

используя System;
используя System.Linq;
используя System.Threading.Tasks;
используя System.Net.Http;
используя Newtonsoft.Json;
используя System. Коллекции.Общие;

пространство имен BlazorTestServerSide.Data
{
общедоступный класс NorthbricksApi
{
static только для чтения HttpClient client = new HttpClient();
public async Task‹Bank[]› GetBanks()
{
Banks model = null;
HttpResponseMessage response = await client.GetAsync("https://api.northbricks.io/api/v1/banks»);
> response.EnsureSuccessStatusCode();

string responseBody = await response.Content.ReadAsStringAsync();
model = JsonConvert.DeserializeObject‹Banks›(responseBody);

вернуть модель.банки.ToArray();

}
}
}

Не забудьте добавить пакет nuget в csproj

‹Проект Sdk="Microsoft.NET.Sdk.Web"›

‹PropertyGroup›
‹TargetFramework›netcoreapp3.0‹/TargetFramework›
‹LangVersion›7.3‹/LangVersion›
‹/PropertyGroup›

‹ItemGroup›
‹PackageReference Include=”Microsoft.Azure.SignalR” Version=”1.1.0-preview1–10426 /›
‹PackageReference Include=”Newtonsoft.Json” Version=”12.0.2/ ›
‹/ItemGroup›

Будущее?

Я люблю Angular, Reactjs, Ionic, и всем стоит обратить внимание на stencils. Если вы знакомы с С#, это может быть хорошей альтернативой.

Действительно с нетерпением жду, чтобы увидеть, как прогресс идет с Blazor.

Твики и причуды

  • Из-за ограничений на службы приложений, которые они поддерживают только по умолчанию в LTS-версии dotnet core, и мне не удалось установить расширение для службы приложений, я сделал решение dotnet core автономным с предварительной версией dotnet core.
  • Я предпочитал использовать код Visual Studio при написании кода, потому что иногда Visual Studio начинает жаловаться на синтаксическую ошибку… а иногда помогает перезапуск, но, в конце концов, кодирование и компиляция в VSCode очень просты.
  • Кажется, возникает проблема при запуске Blazor и SignalR на стороне сервера в службе приложений Linux в Azure. Я создал вопрос здесь https://github.com/aspnet/AspNetCore/issues/12115