Plain old CLR object


In software engineering, a plain old CLR object, or plain old class object is a simple object created in the.NET Common Language Runtime that is unencumbered by inheritance or attributes. This is often used in opposition to the complex or specialized objects that object-relational mapping frameworks often require. In essence, a POCO does not have any dependency on an external framework.

Etymology

Plain Old CLR Object is a play on the term plain old Java object from the Java EE programming world, which was coined by Martin Fowler in 2000. POCO is often expanded to plain old C# object, though POCOs can be created with any language targeting the CLR. An alternative acronym sometimes used is plain old.NET object.

Benefits

Some benefits of POCOs are: