QA@IT
«回答へ戻る

回答を投稿

必要性うんぬんの話ではなくて、単なる興味の問題と理解して回答します。

Web Forms アプリも MVC アプリも ASP.NET ランタイム上で動きますから、HttpRequest, HttpResponse, HttpSessionState, Cache などの ASP.NET ランタイムの組み込みコンポーネントに完全にアクセスできます。

アクセスする方法は Web Forms でも MVC でも同じです。

ではなぜ MVC では Web Forms と同様な方法でアクセスしないかと言えば、ASP.NET ランタイムの組み込みコンポーネントへの依存性を緩和しテスタビリティを向上させるためです。(自分が知る限りです。他にも理由はあるかもしれません)

Web Form のように Response プロパティを使って HttpResponse オブジェクトを取得したのでは、単体テストの際に HttpResponse のモックを作るという作業が必要になってくるはずです。

必要性うんぬんの話ではなくて、単なる興味の問題と理解して回答します。

Web Forms アプリも MVC アプリも ASP.NET ランタイム上で動きますから、HttpRequest, HttpResponse, HttpSessionState, Cache などの ASP.NET ランタイムの組み込みコンポーネントに完全にアクセスできます。

アクセスする方法は Web Forms でも MVC でも同じです。

ではなぜ MVC では Web Forms と同様な方法でアクセスしないかと言えば、ASP.NET ランタイムの組み込みコンポーネントへの依存性を緩和しテスタビリティを向上させるためです。(自分が知る限りです。他にも理由はあるかもしれません)

Web Form のように Response プロパティを使って HttpResponse オブジェクトを取得したのでは、単体テストの際に HttpResponse のモックを作るという作業が必要になってくるはずです。