Can someone define what exactly ‘POCO’ means? I am encountering the term more and more often, and I’m wondering if it is only about plain classes or it means something more?
Can someone define what exactly ‘POCO’ means? I am encountering the term more and
Share
‘Plain Old C# Object’
Just a normal class, no attributes describing infrastructure concerns or other responsibilities that your domain objects shouldn’t have.
EDIT – as other answers have stated, it is technically ‘Plain Old CLR Object’ but I, like David Arno comments, prefer ‘Plain Old Class Object’ to avoid ties to specific languages or technologies.
TO CLARIFY: In other words, they don’t derive from some special base class, nor do they return any special types for their properties.
See below for an example of each.
Example of a POCO:
Example of something that isn’t a POCO:
The example above both inherits from a special class to give it additional behavior as well as uses a custom attribute to change behavior… the same properties exist on both classes, but one is not just a plain old object anymore.