ASP.NET MVCについて

他人に説明する時に、どうにもうまく言語化できないので、ここにまとめてみます。

そもそもASP.NETってなんぞ?

概念はWikipediaさんでも見てもらうとして、これまでASP.NETと表現していたフレームワークは、ASP.NET WebFormsを指し示すことが多かったはずです。

これは、Web技術を抽象化して、Windowsアプリと似たような感覚でWebアプリを作成するためのフレームワークです。

メリット:
イニシャル開発の生産性は、そこそこ高いこと
Web技術に精通していなくても開発が可能であること

デメリット:
CSSJavaScriptの適用が煩雑であること。
自動生成されるオブジェクト(=コードも)が大量にあるため、非常にファットなアプリになりがち。また、自動生成に汚染されたコードになりがち。

元々の.Net戦略の思想って、割となんでも抽象化して、ビルド時に中間言語生成して、動作はみんな仲良く一緒だよ。っていうノリが強かったかと思います。
なので、自動生成がものすごく多かったし、その被害にあってきた人たちも数多いです。

そしてASP.NET MVC

個人的に、このネーミングセンスは絶望的に悪いと思っているのでMSさんは改名した方がいいと思うんですけど(笑)
ASP.NET MVCは、WebFormsの失敗を教訓に作られたWebアプリケーションフレームワークです。

※ アーキテクチャの名前じゃないんです……。
MVCって聞くとアーキテクチャの話かなって思いますよね。いや、アーキテクチャの話でもあるっちゃあるんですが、そういうことじゃないんです。

ASP.NET MVCは、WebFormsの悪い点が改善されています。
出力されるHTMLはプレーンなものだから、軽量でCSSJavaScriptの適用も楽にできます。

ASP.NETのワーカープロセス上で動作することは変わりありませんが、フレームワークの設計思想や概念は全くの別物といっていいです。

まだ、あまり浸透していないこのASP.NET MVCですが、個人的にとても好みなので、少しずつ学習していこうと思います。