「ASP.NET MVC」を編集中
ナビゲーションに移動
検索に移動
この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 | 編集中の文章 | ||
1行目: | 1行目: | ||
− | '''ASP.NET MVC''' | + | '''ASP.NET MVC'''とは、Webアプリケーション開発のためのフレームワークである。 |
− | + | [[Mono]]を用いて動かす方法などについては[[xsp]]や[[mod_mono]]の項目も参照。 | |
== 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 | + | 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となってしまったため、拡張子という共通点すら無くなった。 | ||
== 概要 == | == 概要 == | ||
− | + | 従来のASP.NETでは、Windowsアプリケーションに近い開発スタイルが取られており、HTMLを気にせず、ビジュアル・デザイナーでGUIアプリケーションを作るような感じで開発を行うというものであった。逆を言えばHTMLは実行時に自動生成されるものであり、人間が直接編集するものではないという独特のシステムであった。 | |
− | + | 一方でWebアプリケーション開発で主力であるPHPやPerl、Pythonの開発者からしたら、HTMLを触れないとか意味不明すぎて誰もが敬遠し、クソだクソだと口コミが広まった。 | |
− | + | こうした批評をうけ、PHPとSmartyの組合せのようなシンプルなものを、装いも新たに実装したのがASP.NET MVCである。 | |
== Mono == | == Mono == | ||
− | ASP.NET | + | ASP.NET MVCをMonoで利用に関しての特記事項を記載する。 |
その他にも色々あるだろうが、個人的にはまった部分について記載しておく。 | その他にも色々あるだろうが、個人的にはまった部分について記載しておく。 | ||
− | |||
− | |||
=== ハンドラーの強制変更 === | === ハンドラーの強制変更 === | ||
32行目: | 30行目: | ||
=== ファイル名の大文字小文字 === | === ファイル名の大文字小文字 === | ||
− | + | Windowsはファイル名の大文字小文字は区別しないが、Linux/Unixではファイル名の大文字小文字を区別するため、この点を考慮していないウェブアプリは注意。 | |
+ | 個人的にはASP.NET MVCで「マスターページが見つからない」というエラーではまった。 | ||
+ | |||
+ | == MVC == | ||
+ | MVCとは「Model(モデル)、View(ビュー)、Controller(コントローラ)」の頭文字をとった1980年代にSmalltalkで確立されたアプリケーションのアーキテクチャパターン。 | ||
+ | モデルはデータとビジネスロジック(業務処理)、ビューは表示処理、コントローラはモデルとビューの連結を担当する。 | ||
+ | |||
+ | === モデル === | ||
+ | モデルはビジネスロジックを記述するものだが、作り手によっては単純にデータベースとのマッピングをモデルとなっておりコントローラにビジネスロジックが書いてあるようなシステムも結構見かける。 | ||
+ | |||
+ | === ビュー === | ||
+ | ビューは名前の通り見た目を表す部分を記述する。ウェブアプリであればHTMLテンプレートに相当する。 | ||
+ | 最近流行のjQueryあたりを使ってJavaScriptでゴリゴリ動かす処理などもビューである。 | ||
+ | |||
+ | === コントローラ === | ||
+ | コントローラは、モデルとビューを繋ぐ役割を担う。コントローラは大きくわけてページコントローラ方式とフロントコントローラ方式があり、ASP.NET MVCではフロントコントローラ方式が採用されている。 | ||
+ | |||
+ | ASP.NET MVCでは、すべてのリクエストはフロントコントローラで受け、ルーティングに従い、個々のコントローラクラスのアクション(クラスメソッド)を呼び出す。 | ||
+ | |||
+ | {{stub}} | ||
== ルーティング == | == ルーティング == | ||
41行目: | 58行目: | ||
== マスターページ == | == マスターページ == | ||
− | + | ウェブサイトを作るうえで、ヘッダやフッタなどの大枠のデザインは統一されるのが一般的ということで、大枠部分をテンプレート化しておける機能(テンプレートファイル)をマスターページという。 | |
+ | |||
+ | 便利。 | ||
{{stub}} | {{stub}} | ||
== ビューヘルパー == | == ビューヘルパー == | ||
− | + | ビューヘルパーとはデザインパターンのひとつ。 | |
+ | 簡単に言うと「ビューの中に複雑なロジックを書くな」という掟。 | ||
+ | ヘルパークラスに静的メソッドを用意して、複雑なロジックはそこに記述し、デザイナーなどのプログラマー以外の人も触るであろうビューでは簡潔に1行で書けるようにして、見通しを良くしておきましょうというお話らしい。 | ||
+ | |||
+ | ASP.NET MVCではよく使われるであろうビューヘルパーがあらかじめいくつか用意されている。 | ||
+ | |||
+ | {{stub}} | ||
== その他 == | == その他 == | ||
− | + | {{stub}} | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== 関連項目 == | == 関連項目 == | ||
− | * [[ | + | * [[mod_mono]] |
− | * | + | * [[xsp]] |
− | |||
− | |||
− | == | + | == 外部リンク == |
− | |||
{{stub}} | {{stub}} |