「ASP.NET MVC」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
imported>Administrator
imported>Fallout New Tokyo
1行目: 1行目:
'''ASP.NET MVC'''とは、Webアプリケーション開発のためのフレームワークである。名称に[[MVC]]とあるようにMVCパターンとなっている。
+
'''ASP.NET MVC'''(読み:えーえすぴーどっとねっと・えむぶいしー)とは、Webアプリケーションを開発するためのフレームワークである。名称に[[MVC]]とあるようにMVCパターンとなっている。
  
2012年3月27日に、[[Razor]]や[[JSON]]などの実装を含む[[ASP.NET MVC]]および関連ライブラリのほぼ全てがApache License 2.0のもとで[[オープンソース]]化され<ref>http://aspnetwebstack.codeplex.com/</ref>、翌日には[[Mono]]への取込が始まった<ref>https://github.com/mono/aspnetwebstack</ref>。
+
2012年3月27日に、[[Razor]]や[[JSON]]などの実装を含む[[ASP.NET MVC]]および関連ライブラリのほぼ全てが[[Apache License 2.0]]のもとで[[オープンソース]]化され<ref>http://aspnetwebstack.codeplex.com/</ref>、翌日には[[Mono]]への取込が始まった<ref>https://github.com/mono/aspnetwebstack</ref>。
  
 
== ASP.NET と ASP.NET MVC ==
 
== ASP.NET と ASP.NET MVC ==
9行目: 9行目:
 
大事なことなのでもう一度言うが、[[ASP.NET MVC]]と[[ASP.NET]]はまったくの別物である。
 
大事なことなのでもう一度言うが、[[ASP.NET MVC]]と[[ASP.NET]]はまったくの別物である。
  
このようなクソな名称を採用したマイクロソフトのセンスの無さには驚愕する。
+
このようなクソな名称を採用した[[マイクロソフト]]のセンスの無さには驚愕する。
  
ASP.NET(無印)とASP.NET MVCの唯一の共通点は、ASP.NET MVCで用いるデフォルトのビューエンジン([[PHP]]でいうSmarty、[[Ruby]]のeRuby/erbに相当)で用いるテンプレートファイルの拡張子がaspxである点くらいである。拡張子は同じだが、ASP.NET(無印)のaspxファイルは人間が直接触ることを想定していないのに対して、ASP.NET MVCでは至って普通のHTMLテンプレートファイルであり、本当に共通点は拡張子だけある。
+
ASP.NET(無印)とASP.NET MVCの唯一の共通点は、ASP.NET MVCで用いるデフォルトのビューエンジン([[PHP]]でいう[[Smarty]]、[[Ruby]]の[[eRuby]]/erbに相当)で用いるテンプレートファイルの[[拡張子]]がaspxである点くらいである。[[拡張子]]は同じだが、ASP.NET(無印)のaspxファイルは人間が直接触ることを想定していないのに対して、ASP.NET MVCでは至って普通のHTMLテンプレートファイルであり、本当に共通点は[[拡張子]]だけある。
  
 
しかもASP.NET MVC 3からは[[Razor]]という新型ビューエンジンが導入され、HTMLテンプレートファイルの拡張子も.cshtmlまたは.vbhtmlとなってしまったため、拡張子という共通点すら無くなった。
 
しかもASP.NET MVC 3からは[[Razor]]という新型ビューエンジンが導入され、HTMLテンプレートファイルの拡張子も.cshtmlまたは.vbhtmlとなってしまったため、拡張子という共通点すら無くなった。
18行目: 18行目:
 
従来の[[ASP.NET]]では、Windowsアプリケーションに近い開発スタイルが取られており、[[HTML]]を気にせず、ビジュアル・デザイナーでGUIアプリケーションを作るような感じで開発を行うというものであった。逆を言えばHTMLは実行時に自動生成されるものであり、人間が直接編集するものではないという独特のシステムであった。
 
従来の[[ASP.NET]]では、Windowsアプリケーションに近い開発スタイルが取られており、[[HTML]]を気にせず、ビジュアル・デザイナーでGUIアプリケーションを作るような感じで開発を行うというものであった。逆を言えばHTMLは実行時に自動生成されるものであり、人間が直接編集するものではないという独特のシステムであった。
  
一方でWebアプリケーション開発で主力である[[PHP]]や[[Perl]]、[[Python]]の開発者からしたら、[[HTML]]を触れないとか意味不明すぎて誰もが敬遠し、クソだクソだと口コミが広まった。
+
一方でWebアプリケーション開発で主力である[[PHP]]や[[Perl]]、[[Python]]の開発者から見ると、[[HTML]]を触れないとか意味不明すぎて誰もが敬遠し、また[[SEO]]的にも良くないなど、クソだクソだと口コミが広まった。
  
こうした批評をうけ、[[PHP]]とSmartyの組合せのようなシンプルなものを、装いも新たに実装したのがASP.NET MVCである。
+
こうした批評をうけ、[[PHP]]と[[Smarty]]の組合せのようなシンプルなものを、装いも新たに実装したのがASP.NET MVCである。
  
 
== Mono ==
 
== Mono ==
32行目: 32行目:
  
 
=== ファイル名の大文字小文字 ===
 
=== ファイル名の大文字小文字 ===
Windowsはファイル名の大文字小文字は区別しないが、Linux/Unixではファイル名の大文字小文字を区別するため、この点を考慮していないウェブアプリは注意。
+
[[Windows]]は[[ファイル名]]の大文字小文字は区別しないが、[[Linux]]/[[Unix]]では[[ファイル名]]の大文字小文字を区別するため、この点を考慮していないウェブアプリは注意する必要がある。個人的にはASP.NET MVCで「マスターページが見つからない」というエラーではまった。
個人的にはASP.NET MVCで「マスターページが見つからない」というエラーではまった。
 
  
 
== ルーティング ==
 
== ルーティング ==
42行目: 41行目:
  
 
== マスターページ ==
 
== マスターページ ==
ウェブサイトを作るうえで、ヘッダやフッタなどの大枠のデザインは統一されるのが一般的ということで、大枠部分をテンプレート化しておける機能(テンプレートファイル)をマスターページという。
+
[[ウェブサイト]]を作るうえで、ヘッダやフッタなどの大枠のデザインは統一されるのが一般的ということで、大枠部分をテンプレート化しておける機能(テンプレートファイル)をマスターページという。便利。
 
 
便利。
 
  
 
{{stub}}
 
{{stub}}
66行目: 63行目:
  
 
== 参考文献 ==
 
== 参考文献 ==
<references/>
+
{{reflist}}
 
 
== 外部リンク ==
 
  
 
{{stub}}
 
{{stub}}

2014年3月6日 (木) 06:06時点における版

ASP.NET MVC(読み:えーえすぴーどっとねっと・えむぶいしー)とは、Webアプリケーションを開発するためのフレームワークである。名称にMVCとあるようにMVCパターンとなっている。

2012年3月27日に、RazorJSONなどの実装を含むASP.NET MVCおよび関連ライブラリのほぼ全てがApache License 2.0のもとでオープンソース化され[1]、翌日にはMonoへの取込が始まった[2]

ASP.NET と ASP.NET MVC

ASP.NET MVCは、ASP.NET(無印)と名称が非常に似ているが、まったくの別物である。 どちらかというとASP.NET MVCは元祖ASP(.NETが付く前)に近い。

大事なことなのでもう一度言うが、ASP.NET MVCASP.NETはまったくの別物である。

このようなクソな名称を採用したマイクロソフトのセンスの無さには驚愕する。

ASP.NET(無印)とASP.NET MVCの唯一の共通点は、ASP.NET MVCで用いるデフォルトのビューエンジン(PHPでいうSmartyRubyeRuby/erbに相当)で用いるテンプレートファイルの拡張子がaspxである点くらいである。拡張子は同じだが、ASP.NET(無印)のaspxファイルは人間が直接触ることを想定していないのに対して、ASP.NET MVCでは至って普通のHTMLテンプレートファイルであり、本当に共通点は拡張子だけある。

しかもASP.NET MVC 3からはRazorという新型ビューエンジンが導入され、HTMLテンプレートファイルの拡張子も.cshtmlまたは.vbhtmlとなってしまったため、拡張子という共通点すら無くなった。

概要

従来のASP.NETでは、Windowsアプリケーションに近い開発スタイルが取られており、HTMLを気にせず、ビジュアル・デザイナーでGUIアプリケーションを作るような感じで開発を行うというものであった。逆を言えばHTMLは実行時に自動生成されるものであり、人間が直接編集するものではないという独特のシステムであった。

一方でWebアプリケーション開発で主力であるPHPPerlPythonの開発者から見ると、HTMLを触れないとか意味不明すぎて誰もが敬遠し、またSEO的にも良くないなど、クソだクソだと口コミが広まった。

こうした批評をうけ、PHPSmartyの組合せのようなシンプルなものを、装いも新たに実装したのがASP.NET MVCである。

Mono

ASP.NET MVCをMonoで利用に関しての特記事項を記載する。 その他にも色々あるだろうが、個人的にはまった部分について記載しておく。

Monoを用いてASP.NET MVCを使ったアプリケーションを動かす方法などについてはxspmod_monoの項目も参照。

ハンドラーの強制変更

詳細は「mod_mono#ASP.NET MVCを使うための設定」を参照。

ファイル名の大文字小文字

Windowsファイル名の大文字小文字は区別しないが、Linux/Unixではファイル名の大文字小文字を区別するため、この点を考慮していないウェブアプリは注意する必要がある。個人的にはASP.NET MVCで「マスターページが見つからない」というエラーではまった。

ルーティング

アクション

マスターページ

ウェブサイトを作るうえで、ヘッダやフッタなどの大枠のデザインは統一されるのが一般的ということで、大枠部分をテンプレート化しておける機能(テンプレートファイル)をマスターページという。便利。


ビューヘルパー

ビューヘルパー」を参照。

その他

ASP.NET MVCの主なバージョン

関連項目

  • MonoRail - ASP.NET(無印)上にRuby on RailsのActionPackっぽい独自MVCを実装しているオープンソースプロジェクト。
  • MvcContrib - ASP.NET MVC向けの独自ライブラリ群を作っているオープンソースプロジェクト。主要メンバーにはMonoRailsの中の人もいる。
  • xsp - ASP.NET系のフレームワークを使ったウェブアプリをLinuxやMac上で動かすためのWebサーバーJavaでいうApache Tomcatのようなもの。
  • mod_mono - xspをApacheモジュール化したもの。

参考文献