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''.See, for example, a reference to PONO in this whitepaperBenefits
Some benefits of POCOs are: * allows a simple storage mechanism for data, and simplifies serialization and passing data through layers; * goes hand-in-hand with dependency injection and the repository pattern; * minimised complexity and dependencies on other layers (higher layers only care about the POCOs, POCOs don't care about anything) which facilitates loose coupling; * increases testability through simplification.See also
* Plain old data structure * Plain old Java object * Data transfer objectReferences