https://de.wikipedia.org/w/api.php?action=feedcontributions&feedformat=atom&user=83.244.205.129Wikipedia - Benutzerbeiträge [de]2025-05-01T14:58:50ZBenutzerbeiträgeMediaWiki 1.44.0-wmf.25https://de.wikipedia.org/w/index.php?title=Plain_old_CLR_object&diff=209936506Plain old CLR object2015-04-30T09:29:01Z<p>83.244.205.129: Removed broken ref tag which encompassed a broken link</p>
<hr />
<div>{{Redirect|POCO||Poco (disambiguation)}}<br />
'''Plain Old [[Common Language Runtime|CLR]] Object''' or '''POCO''' is a play on the term [[Plain Old Java Object|POJO]], from the [[Java Platform, Enterprise Edition|Java EE]] programming world (which was coined by Martin Fowler in 2000<br />
Similar to the Java context, the term is used to identify an object as a simple object, as opposed to the complicated, specialized objects that frameworks like [[object-relational mapping|ORM]] systems usually generate. Another way to put it is that POCOs are objects unencumbered with inheritance or attributes needed for specific frameworks <ref> See, for example, this MSDN article: [http://msdn.microsoft.com/en-us/library/cc681329.aspx Data Contracts - POCO Support]</ref> and are persistence ignorant objects. In .NET terms, the word is most often used in the programmatic sense, to differentiate a non-serviced component (see [[Microsoft Transaction Server|MTS]]) from a "standard object". It can also be used in a [[tongue-in-cheek]] manner, referencing the perceived complexity and invasiveness of Java-based programming frameworks such as the legacy [[Ejb#Legacy|EJB2]].<br />
<br />
POCO is often incorrectly expanded to '''Plain Old [[C Sharp (programming language)|C#]] Object''', but POCOs can be created with any language targeting the CLR. An alternative acronym sometimes used is '''PONO''',<ref>See, for example, a reference to PONO in this whitepaper: [http://www.springframework.net/doc-latest/reference/pdf/spring-net-reference.pdf Spring<br />
Some benefits of POCO objects are:<br />
* Allows a simple storage mechanism for data, and simplifies serialization/passing data through layers.<br />
* Goes hand-in-hand with dependency injection, and the repository pattern. <br />
* Minimized complexity and dependencies on other layers (higher layers only care about the POCOs, POCOs don't care about anything) which facilitates loose coupling.<br />
* Increases testability through simplification.<br />
<br />
==See also==<br />
* []<br />
* [[Data Transfer Object]]<br />
* POTS for [[Plain old telephone service]]<br />
<br />
== References ==<br />
<references/><br />
<br />
{{DEFAULTSORT:Plain Old Clr Object}}<br />
[[Category:.NET Framework]]<br />
<br />
{{Comput-lang-stub}}</div>83.244.205.129