Plain Old CLR Object
Encyclopedia
Plain Old CLR Object
Common Language Runtime
The Common Language Runtime is the virtual machine component of Microsoft's .NET framework and is responsible for managing the execution of .NET programs. In a process known as just-in-time compilation, the CLR compiles the intermediate language code known as CIL into the machine instructions...

or POCO is a play on the term POJO
Plain Old Java Object
In computing software, POJO is an acronym for Plain Old Java Object. The name is used to emphasize that a given object is an ordinary Java Object, not a special object...

, from the Java EE
Java Platform, Enterprise Edition
Java Platform, Enterprise Edition or Java EE is widely used platform for server programming in the Java programming language. The Java platform differs from the Java Standard Edition Platform in that it adds libraries which provide functionality to deploy fault-tolerant, distributed, multi-tier...

 programming world, and is used by developers targeting the Common Language Runtime
Common Language Runtime
The Common Language Runtime is the virtual machine component of Microsoft's .NET framework and is responsible for managing the execution of .NET programs. In a process known as just-in-time compilation, the CLR compiles the intermediate language code known as CIL into the machine instructions...

 of the .NET Framework
.NET Framework
The .NET Framework is a software framework that runs primarily on Microsoft Windows. It includes a large library and supports several programming languages which allows language interoperability...

.

Similar to the Java context, the term is used to contrast a simple object with one that is designed to be used with a complicated, special object frameworks such as an ORM
Object-relational mapping
Object-relational mapping in computer software is a programming technique for converting data between incompatible type systems in object-oriented programming languages. This creates, in effect, a "virtual object database" that can be used from within the programming language...

 component. Another way to put it is that POCOs are objects unencumbered with inheritance or attributes needed for specific frameworks. In .NET terms, the word is most often used in the programmatic sense, to differentiate a non-Serviced Component (see MTS
Microsoft Transaction Server
Microsoft Transaction Server was software that provided services to Component Object Model software components, to make it easier to create large distributed applications. The major services provided by MTS were automated transaction management, instance management and role-based security...

) from a "standard object". It can also be used in a tongue-in-cheek
Tongue-in-cheek
Tongue-in-cheek is a phrase used as a figure of speech to imply that a statement or other production is humorously intended and it should not be taken at face value. The facial expression typically indicates that one is joking or making a mental effort. In the past, it may also have indicated...

 manner, referencing the perceived complexity and invasiveness of Java-based programming frameworks such as the legacy EJB2.

POCO is often incorrectly expanded to Plain Old C# Object, but POCOs can be created with any language targeting the CLR. An alternative acronym sometimes used is PONO, for Plain Old .NET Object, leading also to the possiblity of POPO; or Plain Old PHP Object.
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK