var textBox = new TextBox("This is initial text.").Dump(); // TextBox 表示
var button = new Button("Execute").Dump(); // Button 表示
button.Click += (sender, e) =>
{
$"Hello, my name is {textBox.Text}.".Dump();
};
#!/bin/bash# Here you need to specify these parametersreadonlyAZURE_ACCT="xin9le"readonlyACI_RES_LOC="japaneast"readonlyACI_RES_GRP="${AZURE_ACCT}democraft"readonlyACI_STR_SH_NAME="acishare"readonlyRCON_PASSWORD="すごく文字列です"readonlyACI_CNT_NAME="${ACI_RES_GRP}-container"readonlyACI_STR_AN="democraftstorage"
async Task Main()
{
var fqdn = "xin9ledemocraft-container.japaneast.azurecontainer.io";
var ipAddresses = await Dns.GetHostAddressesAsync(fqdn);
var ipAddress = ipAddresses.FirstOrDefault(x => x.AddressFamily == AddressFamily.InterNetwork);
ushort port = 25575;
var password = "すごく文字列です";
var command = "/time set night"; // テクマクマヤコン!夜にな〜れ!
var connection = new CoreRCON.RCON(ipAddress, port, password);
var result = await connection.SendCommandAsync(command);
Console.WriteLine(result);
}
async Task Main()
{
var fqdn = "xin9ledemocraft-container.japaneast.azurecontainer.io";
var ipAddresses = await Dns.GetHostAddressesAsync(fqdn);
var ipAddress = ipAddresses.FirstOrDefault(x => x.AddressFamily == AddressFamily.InterNetwork);
ushort port = 25575;
var password = "すごく文字列です";
var commands = new []{ "/time set day", "/time set night" };
var connection = new CoreRCON.RCON(ipAddress, port, password);
var isDay = true;
while (true)
{
await Task.Delay(3000);
var index = Convert.ToInt32(isDay);
var command = commands[index];
var result = await connection.SendCommandAsync(command);
Console.WriteLine($"{DateTimeOffset.Now} - {result}");
isDay = !isDay;
}
}
このサンプルでは ReactiveProperty を利用して変更通知をしているのですが、.NET Standard で作ると Windows デスクトップアプリも Web アプリも完全に同一のコードベースで動作させることができます。Web フロントエンドに JavaScript を利用していたらこんなことは簡単には実現できませんが、Blazor があれば C#/.NET で Web フロントエンドまで完全にカバーすることができます。
みなさんが作ってきた既存のコード資産、日々お世話になっているライブラリが Web フロントエンドでも動きます。そんな夢のような時代が本当に来た、というのを実際にお見せしたくてこのサンプルを作りました。
ASP.NET SignalR 時代に作り、ASP.NET Core SignalR が出てからも長らく放置していた ReactiveSignalR を ASP.NET Core SignalR 向けに作り直しました!ということで、晴れて v1.0 をリリース!バージョン番号なんて特に意味はないんですが...。
ASP.NET SignalR の頃にはクライアント向けとサーバー向けのライブラリを用意していたのですが、今回の ASP.NET Core SignalR 対応でサーバー側は削っています。理由はいくつかあるのですが、作ったくせに自分でも使わなかった (!) というあたりに必要性を感じなくなったというのが大きいです。