POCO
2015年10月30日 (金) 02:40時点における153.219.225.170 (トーク)による版 (ページの作成:「'''POCO'''(読み:ぽこ、語源:plain old CLR Object)とは、特定のフレームワークに依存しないオブジェクトのことである。 =...」)
POCO(読み:ぽこ、語源:plain old CLR Object)とは、特定のフレームワークに依存しないオブジェクトのことである。
概要
POCOは一般的には構造体のようなにシンプルなデータの受け渡しに特化したプロパティだけで構成されたクラスを指す。
POCOはいわゆるMVCやMVVMの「モデル」と似ているが、本来の[モデル]はUMLなどで表される操作をメソッドとして定義したものまで含まれ、本来であればそれだけでUIを除く部分のテストまでは完結できる物であるとされる。ただし、日本のIT土方の世界に限れば実際にそこまで本格的に実装されたモデルは稀で、ほぼPOCOと同義になっているものが多い。
一方、POCOではデータ受け渡しに特化し、ドメインモデルに影響を及ぼす意味のある操作は含めてはいけない。データベースとサーバー間のデータ受け渡し(Micro ORM的なマッピング)と、サーバーとクライアント間のデータ受け渡しの形式が共通であれば無駄が少なく似たようなクラスを乱立させることもない。Visual StudioやXamarin Studioのソリューション中に共通で使用するPOCOだけを格納したプロジェクトを作り、サーバーやクライアントの各プロジェクトから参照すればマッピングも楽になる。
なお、PHPやPython,Rubyなどのスクリプト言語の世界では「型とかメンドクセー」と、POCOをも超越する概念としてRESTfulなJSONが流行っており、それらに対応するため.NETでもdynamicが搭載されるに至っている。