鷲ノ巣

C# とか PowerShell とか。当ブログの記事は(特に公開直後は)頻繁に改定される場合があることをご了承ください。

PE ファイルについて (2) - IMAGE_FILE_HEADER

この記事は Windows & Microsoft技術 基礎 Advent Calendar 2015 の 23 日目です。
今度は期日前に書き上げましたよ!

前回は肝心なところで終わってしまいました。
今回は続きの NT ヘッダー編から。
と言ってもですね、NT ヘッダーを全部解説し終わったら、PE ファイルの解説なんて 9 割方終わったようなもんです。
なので、しばらくは NT ヘッダーの解説が続きます。

続きを読む

TypeScript のモジュールの使い方

この記事は ASP.NET Advent Calendar 2015 の 11 日目の記事です。

最近 JavaScript 系の技術に興味を持って、Angular を中心に調べています。
やっぱり MS クラスターとしては、生の JavaScript よりも TypeScript を書きたいじゃないですか。
今回は JavaScriptNode.js)と TypeScript のモジュール機構についてまとめてみました。

続きを読む

LINQ で動的に OR 検索するやつ

Entity Framework なんかを使っていて、データを検索したいとき。
検索フォームからユーザーに検索条件を入力してもらって、それで OR 検索をしたいとなると、ちょっと面倒です。
もちろん、何も入力しなかった項目ではフィルタリングを行いません。

AND 検索だけなら、Where メソッドをチェーンさせて行けばいいのですが、OR 検索が絡むと、そう簡単にはいきません。
こういう場合は Expression Tree を頑張って組み立てなければいけないわけですが、やり方はこのへんを見て頂いてですね…

LINQ文で動的にWhere句を組み立てるには?[3.5、C#、VB] - @IT
Expressionを使った動的なOR文の生成 - Architect Life

いや、いやいやいや。わけがわからないし面倒くさい。そんなのやってらんない。

続きを読む

async/await と SynchronizationContext (2)

前回SynchronizationContext の説明だけで async/await に絡んだ話が出来ませんでした。
今回はその続きになります。

まずは復習。
以前の記事で詳しくやりましたが、async/await は、以下のような特徴を持つ非同期処理の方式です。

  • コード上に明示的にコールバック関数が現れない
  • ほとんど同期処理と似た見た目を実現できる

コールバック関数が見当たらないのは、メソッドを分割して、自分自身をコールバック関数にしているからでしたね。

さて、同期処理とほとんど同じように書けるというからには、前回やった APM のように、現在のスレッドが UI スレッドなのかワーカー スレッドなのかを気にするようではいけません。
というわけで、当然ながら SynchronizationContext が一枚噛んでいて、「いい感じ」に処理されるようになっています。

続きを読む