Ради интереса я создал простое приложение 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