この記事は ASP.NET Advent Calendar 2015 の 11 日目の記事です。
最近 JavaScript 系の技術に興味を持って、Angular を中心に調べています。
やっぱり MS クラスターとしては、生の JavaScript よりも TypeScript を書きたいじゃないですか。
今回は JavaScript(Node.js)と TypeScript のモジュール機構についてまとめてみました。
この記事は ASP.NET Advent Calendar 2015 の 11 日目の記事です。
最近 JavaScript 系の技術に興味を持って、Angular を中心に調べています。
やっぱり MS クラスターとしては、生の JavaScript よりも TypeScript を書きたいじゃないですか。
今回は JavaScript(Node.js)と TypeScript のモジュール機構についてまとめてみました。
Entity Framework なんかを使っていて、データを検索したいとき。
検索フォームからユーザーに検索条件を入力してもらって、それで OR 検索をしたいとなると、ちょっと面倒です。
もちろん、何も入力しなかった項目ではフィルタリングを行いません。
AND 検索だけなら、Where メソッドをチェーンさせて行けばいいのですが、OR 検索が絡むと、そう簡単にはいきません。
こういう場合は Expression Tree を頑張って組み立てなければいけないわけですが、やり方はこのへんを見て頂いてですね…
LINQ文で動的にWhere句を組み立てるには?[3.5、C#、VB] - @IT
Expressionを使った動的なOR文の生成 - Architect Life
いや、いやいやいや。わけがわからないし面倒くさい。そんなのやってらんない。
続きを読む前回は SynchronizationContext の説明だけで async/await に絡んだ話が出来ませんでした。
今回はその続きになります。
まずは復習。
以前の記事で詳しくやりましたが、async/await は、以下のような特徴を持つ非同期処理の方式です。
コールバック関数が見当たらないのは、メソッドを分割して、自分自身をコールバック関数にしているからでしたね。
さて、同期処理とほとんど同じように書けるというからには、前回やった APM のように、現在のスレッドが UI スレッドなのかワーカー スレッドなのかを気にするようではいけません。
というわけで、当然ながら SynchronizationContext が一枚噛んでいて、「いい感じ」に処理されるようになっています。
前回の記事に続き、非同期処理シリーズの第 2 弾。
今回は SynchronizationContext について。
SynchronizationContext は、.NET Framework 2.0 から登場したクラスです。「同期コンテキスト」と訳される場合もあります。
これが何かと言うと、誤解を恐れずに大雑把に言えば、「スレッドをまたがる際の問題をいい感じに処理してくれるクラス」です。
いやまぁ、ふわっとしすぎているのは分かっているんですが、実際にどういう処理をするかは派生クラスによるので、こういう言い方しかできないんです。
ASP.NET 5 はまだプレビュー、Azure API App もプレビューなので、Visual Studio にはそれらを組み合わせたプロジェクト テンプレートが用意されていません。
今回、いくつかのエラーに阻まれながらも、試行錯誤して、なんとか動かすことができたので、手順を報告したいと思います。
ただ ASP.NET 5 の Web API を動かすだけであれば、普通に Azure API App にデプロイすれば一応動くのですが、API App としてはいくつかのお約束事がありますので、その辺りを中心に解説します。*1
なお、開発環境は、Visual Studio 2015 上に ASP.NET 5 Beta7 の開発環境を整えた状態になっています。
とりあえず最新の ASP.NET 開発ツールはインストールしておいてください。