「POCO」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
(ページの作成:「'''POCO'''(読み:ぽこ、語源:plain old CLR Object)とは、特定のフレームワークに依存しないオブジェクトのことである。 =...」)
 
4行目: 4行目:
 
POCOは一般的には[[構造体]]のようなにシンプルな[[データ]]の受け渡しに特化した[[プロパティ]]だけで構成された[[クラス]]を指す。
 
POCOは一般的には[[構造体]]のようなにシンプルな[[データ]]の受け渡しに特化した[[プロパティ]]だけで構成された[[クラス]]を指す。
  
POCOはいわゆる[[MVC]]や[[MVVM]]の「[[モデル]]」と似ているが、本来の[モデル]は[[UML]]などで表される操作を[[メソッド]]として定義したものまで含まれ、本来であればそれだけで[[UI]]を除く部分の[[テスト]]までは完結できる物であるとされる。ただし、日本の[[IT土方]]の世界に限れば実際にそこまで本格的に実装された[[モデル]]は稀で、ほぼPOCOと同義になっているものが多い。
+
POCOはいわゆる[[MVC]]や[[MVVM]]の「[[モデル]]」と似ているが、本来の[[モデル]]は[[UML]]などで表される操作を[[メソッド]]として定義したものまで含まれ、本来であればそれだけで[[UI]]を除く部分の[[テスト]]までは完結できる物であるとされる。ただし、日本の[[IT土方]]の世界に限れば実際にそこまで本格的に実装された[[モデル]]は稀で、ほぼPOCOと同義になっているものが多い。
  
 
一方、POCOでは[[データ]]受け渡しに特化し、[[ドメインモデル]]に影響を及ぼす意味のある操作は含めてはいけない。[[データベース]]と[[サーバー]]間のデータ受け渡し([[Micro ORM]]的なマッピング)と、[[サーバー]]と[[クライアント]]間のデータ受け渡しの形式が共通であれば無駄が少なく似たようなクラスを乱立させることもない。[[Visual Studio]]や[[Xamarin Studio]]のソリューション中に共通で使用するPOCOだけを格納したプロジェクトを作り、サーバーやクライアントの各プロジェクトから参照すればマッピングも楽になる。
 
一方、POCOでは[[データ]]受け渡しに特化し、[[ドメインモデル]]に影響を及ぼす意味のある操作は含めてはいけない。[[データベース]]と[[サーバー]]間のデータ受け渡し([[Micro ORM]]的なマッピング)と、[[サーバー]]と[[クライアント]]間のデータ受け渡しの形式が共通であれば無駄が少なく似たようなクラスを乱立させることもない。[[Visual Studio]]や[[Xamarin Studio]]のソリューション中に共通で使用するPOCOだけを格納したプロジェクトを作り、サーバーやクライアントの各プロジェクトから参照すればマッピングも楽になる。

2015年10月30日 (金) 02:40時点における版

POCO(読み:ぽこ、語源:plain old CLR Object)とは、特定のフレームワークに依存しないオブジェクトのことである。

概要

POCOは一般的には構造体のようなにシンプルなデータの受け渡しに特化したプロパティだけで構成されたクラスを指す。

POCOはいわゆるMVCMVVMの「モデル」と似ているが、本来のモデルUMLなどで表される操作をメソッドとして定義したものまで含まれ、本来であればそれだけでUIを除く部分のテストまでは完結できる物であるとされる。ただし、日本のIT土方の世界に限れば実際にそこまで本格的に実装されたモデルは稀で、ほぼPOCOと同義になっているものが多い。

一方、POCOではデータ受け渡しに特化し、ドメインモデルに影響を及ぼす意味のある操作は含めてはいけない。データベースサーバー間のデータ受け渡し(Micro ORM的なマッピング)と、サーバークライアント間のデータ受け渡しの形式が共通であれば無駄が少なく似たようなクラスを乱立させることもない。Visual StudioXamarin Studioのソリューション中に共通で使用するPOCOだけを格納したプロジェクトを作り、サーバーやクライアントの各プロジェクトから参照すればマッピングも楽になる。

なお、PHPPython,Rubyなどのスクリプト言語の世界では「とかメンドクセー」と、POCOをも超越する概念としてRESTfulJSONが流行っており、それらに対応するため.NETでもdynamicが搭載されるに至っている。

関連項目

参考文献