「POCO」を編集中
ナビゲーションに移動
検索に移動
この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 | 編集中の文章 | ||
2行目: | 2行目: | ||
==概要== | ==概要== | ||
− | POCOは一般的には[[構造体]]のようなにシンプルな[[データ]]の受け渡しに特化した[[プロパティ]]だけで構成された[[クラス]] | + | POCOは一般的には[[構造体]]のようなにシンプルな[[データ]]の受け渡しに特化した[[プロパティ]]だけで構成された[[クラス]]を指す。 |
− | POCOはいわゆる[[MVC]]や[[MVVM]]の「[[モデル]]」と似ているが、本来の[[モデル]]は[[UML]]などで表される操作を[[メソッド]] | + | POCOはいわゆる[[MVC]]や[[MVVM]]の「[[モデル]]」と似ているが、本来の[[モデル]]は[[UML]]などで表される操作を[[メソッド]]として定義したものまで含まれ、本来であればそれだけで[[UI]]を除く部分の[[テスト]]までは完結できる物であるとされる。ただし、日本の[[IT土方]]の世界に限れば実際にそこまで本格的に実装された[[モデル]]は稀で、ほぼPOCOと同義になっているものが多い。 |
一方、POCOでは[[データ]]受け渡しに特化し、[[ドメインモデル]]に影響を及ぼす意味のある操作は含めてはいけない。[[データベース]]と[[サーバー]]間のデータ受け渡し([[Micro ORM]]的なマッピング)と、[[サーバー]]と[[クライアント]]間のデータ受け渡しの形式が共通であれば無駄が少なく似たようなクラスを乱立させることもない。[[Visual Studio]]や[[Xamarin Studio]]のソリューション中に共通で使用するPOCOだけを格納したプロジェクトを作り、サーバーやクライアントの各プロジェクトから参照すればマッピングも楽になる。 | 一方、POCOでは[[データ]]受け渡しに特化し、[[ドメインモデル]]に影響を及ぼす意味のある操作は含めてはいけない。[[データベース]]と[[サーバー]]間のデータ受け渡し([[Micro ORM]]的なマッピング)と、[[サーバー]]と[[クライアント]]間のデータ受け渡しの形式が共通であれば無駄が少なく似たようなクラスを乱立させることもない。[[Visual Studio]]や[[Xamarin Studio]]のソリューション中に共通で使用するPOCOだけを格納したプロジェクトを作り、サーバーやクライアントの各プロジェクトから参照すればマッピングも楽になる。 | ||
− | なお、[[PHP]]や[[Python]],[[Ruby]]などの[[スクリプト言語]]の世界では「[[型]]とかメンドクセー」と、POCOをも超越する概念として[[RESTful]]な[[JSON]]が流行っており、それらに対応するため[[.NET]] | + | なお、[[PHP]]や[[Python]],[[Ruby]]などの[[スクリプト言語]]の世界では「[[型]]とかメンドクセー」と、POCOをも超越する概念として[[RESTful]]な[[JSON]]が流行っており、それらに対応するため[[.NET]]でも[[dynamic]]が搭載されるに至っている。 |
==関連項目== | ==関連項目== |