OITA: Oika's Information Technological Activities

@oika 情報技術的活動日誌。

ASP.NET HttpApplicationへの依存をスタブ化する

Visual C# .NET を使用して ASP.NET HTTP モジュールを作成する方法に、ASP.NETでhttpモジュールクラスを自作する方法が書かれている。

ポイントだけ書くと、以下のようになる。

  • IHttpModule インタフェースを実装する
  • HttpApplication から購読するイベントを選択
  • Init メソッド内で、そのイベントのハンドラを登録する
public void Init(HttpApplication app)
{
   app.BeginRequest += new EventHandler(OnBeginRequest);
}

ここで、Init メソッドで受け取る HttpApplication のインスタンスは、ASP.NETでマネージされているもの。
そして HttpApplication 内の BeginRequest などのイベントも ASP.NET 側から発生されるものになる。

困ったことに、IHttpModuleインタフェースがこの HttpApplication という具体クラスに依存しちまってるんで、テストどうしましょうね、という話。

続きを読む

ブログをWordPressからはてなブログに移行

VPSで運用してたWordPressをやめたいなーと思ってました。

  • バージョンアップめんどくさい
  • SSL化しなきゃと思いつつ腰が重い
  • markdown使いたいだけなのにプラグインが競合したりする
  • カスタマイズ自由と言われてもデザインセンスがないからいじれない
  • バックアップ自分でやるの心配

といった意識の低い理由で。

続きを読む

TypeScript コンパイルなしでこっそり型の恩恵を得る

TypeScript Advent Calendar 23日の記事になります。

TypeScript良さそうだなーと思うんだけど既存のビルドプロセスに組み込むのがめんどくさかったり、使いたいんだけどチーム開発で自分だけ使うわけにいかないというようなしがらみがあったりします。

TypeScript 2.3 から、JavaScriptのままでもコンパイラが静的な型チェックをしてくれるようになったんですけど、すごさのわりに自分の観測範囲ではあまり話題になっていない。
まあすでにTypeScript使ってる人にとってはふつう関係ない話なので、そりゃそうかという気もしますが。

ともかくこれなら簡単に導入できて、コンパイル(トランスパイル)を挟むこともなく、自分だけこっそり型チェックの恩恵を得るようなことができます。

続きを読む

C# (WPF) で算出プロパティ

C# Advent Calendar ぽっかり今日だけ空きができたみたいなので、急きょ参加しておきます。

Webのバインディング系フレームワークでよくある算出(Computed / Calculated)プロパティをC# のMVVMでも使いたいという話。

ちらっと検索してみた感じ、当然のように同じことをやろうとしている人がいっぱいいそうですが、他の実装例は未確認です。

だいたい同じような形になるんじゃないかなーと思いつつも、ちょっと微妙にスッキリと実装できない部分があったので、そこをどう工夫しているかは他のも見てみたいところではあります。

続きを読む