SignalR でリアルタイムウェブが超カンタン!

ねぇジョニー知ってる? SignalR のこと。
ASP.NET 界隈じゃ node.js も socket.io もいらないらしいわよ。
そう SignalR。なんの略かって?そんなことアタシも知らないわよ!

・・・って何を言われてるのかわからねーと思わせる名人のポルナレフもびっくりの SignalR。
自分で初めて試してびっくりした。マジか!?って感じ。

自身の学習コストを考えて、node + socket.io でいつものように実装しようと思ってたんやけど、まあものは試しに先に SignalR の雰囲気だけでも確認しとっかって思ってやってみたら SignalR だともっと早く実現出来た。
ただし、ASP.NET に限る(キリッ やけどね。

ゼロ知識から取り掛かって2時間ぐらいで、当初予定してたリアルタイム同時編集処理の実装が終わった。
もちろん、これは自分に node.js と socket.io(WebSocket)の知識がちゃんとあっての話なんやけど、恐らくゼロ知識であっても Visual Studio で環境が一式揃ってるアドバンテージを考えたら、SignalR でのリアルタイムウェブの理解はすぐ出来ると思う。

俺っちがサーバーサイド JavaScript をやり始めた時に大きなハードルになったのがサーバーサイドのデバッグなのな。console.log でちまちまトレーサ埋め込んで結構つらい思いをしたかんね。

でも、逆に ASP.NET + SignalR の世界から入っちゃうと SignalR の使い方は習得出来てもサーバーサイドとクライアントサイドの境界線や詳細な仕組みの理解は難しいやろと思う。
ひととおりかじって慣れた後で、ブラックボックスの仕組みを解きほぐす必要があるっつーか。

現時点での俺っちも Hub クラスや Hub のクラスをサーバーに登録するみたいなコードの意味は正直理解出来ていないんでね。

    protected void Application_Start(object sender, EventArgs e)
    {
        RouteTable.Routes.MapHubs();
    }

↑こういう奴。

理解出来てなくても定型文を打っときゃそれなりに動くってのが、マイクロソフトの戦略だわね。Visual Basic よろしく、間口は広く、敷居は低く、奥が深いって奴ね。(良くも悪くも)
しかも、書かなくちゃいけないホットスポット(カスタムコード)の量がほんと少ない。マイクロソフトべったりってわけでも無い俺っちでもこれは認めざるを得ないのな。

しかし、ここまで簡単やと Windows Server を用意できる(もしくは Azure で動かせる)状況で、リアルタイムウェブが単なる手段でしか無いなら恐ろしく容易にそれを実現出来るのは間違い無い。
アーキテクチャを上から下まで自分とこで支配してる強さがそこにはある。さらに言えば近代的プログラミング言語としてかなり優秀な C# もアドバンテージとなりうる。

ちゅーわけで、なんやかんやで技術検証用のプロタイプは概ね出来上がった。嬉しい反面、ちょっと拍子抜け。