81

I have seen many articles about POCO. What is this?

Kevin Panko
  • 7,844
  • 19
  • 46
  • 58
chugh97
  • 8,936
  • 24
  • 81
  • 132

7 Answers7

53

Plain old CLR object

Iain Holder
  • 13,731
  • 10
  • 61
  • 84
  • 6
    Its the C# equivalent of a POJO http://en.wikipedia.org/wiki/POJO – Gishu May 26 '09 at 11:41
  • It's C++ in every thing that I've read outside of that Wikipedia article. Could you link to a use of this outside of Wikipedia? – Thomas Owens May 26 '09 at 11:42
  • https://www.hibernate.org/hib_docs/nhibernate/html/quickstart.html – Iain Holder May 26 '09 at 11:45
  • As Gishu states - POCO is derived from POJO. – Iain Holder May 26 '09 at 11:45
  • 1
    Not derived from, just the equivalent of. –  May 26 '09 at 11:51
  • 2
    @Will - It is the equivalent of but it was derived from POJO as POJO was first. – Iain Holder Oct 27 '09 at 07:32
  • How can the description of an acronym have an acronym inside it!!! Come on! –  Nov 25 '11 at 09:19
  • To try give an example, rather than just a definition: the classes you build in your BL are often POCOs. So if you create a simple Customer class, with attributes of int CustomerID, string Name, DateTime DateOfBirth - that's a POCO; it's only used by you. The List class is not a POCO - it inherits IList, ICollection, IEnumerable, (etc) and it's often user by other parts of the .NET Framework - i.e. it's part of the .NET Framework fabric, and is not a POCO. – Sean Mar 22 '13 at 18:56
33

Based in the language you want to choose POCO means

Plain Old CLR Object

as Wikipedia mention or,

Plain Old C++ Object

as the PocoCapsule mentions it or,

POrtable COmponents

as the POCO Project mentions it.

For what I'm concerned and for the reason of this question, and of course in simple words, it's a C++ library. :)

The POCO C++ Libraries aim to be for network-centric, cross-platform C++ software development what Apple's Cocoa is for Mac development, or Ruby on Rails is for Web development — a powerful, yet easy to use platform to build your applications upon.

The POCO C++ Libraries are built strictly on standard ANSI/ISO C++, including the standard library. The developers of the POCO C++ Libraries attempt to find a good balance between using advanced C++ features and keeping the classes comprehensible and the code clean, consistent and easy to maintain.

Community
  • 1
  • 1
balexandre
  • 69,002
  • 44
  • 219
  • 321
  • 1
    This is probably the lesser known acronym in .NET circles :-) Don't know why you got a downvote for that, though - compensated. – marc_s May 26 '09 at 11:41
  • :) no need to compensate, but thank you anyway. They downvoted for a reason... I would love this to happend: http://stackoverflow.uservoice.com/pages/1722-general/suggestions/41056-force-user-to-comment-on-downvote – balexandre May 26 '09 at 11:45
  • Isn't normal C++ term "Plain Old Data"? – Johan Kotlinski May 26 '09 at 12:55
9

The POCO C++ Libraries (POCO stands for POrtable COmponents) are open source C++ class libraries that simplify and accelerate the development of network-centric, portable applications in C++. The libraries integrate perfectly with the C++ Standard Library and fill many of the functional gaps left open by it. Their modular and efficient design and implementation makes the POCO C++ Libraries extremely well suited for embedded development, an area where the C++ programming language is becoming increasingly popular, due to its suitability for both low-level (device I/O, interrupt handlers, etc.) and high-level object-oriented development. Of course, the POCO C++ Libraries are also ready for enterprise-level challenges.

The POCO C++ Libraries free developers from re-inventing the wheel, and allow them to spend their time on more worthwhile areas, such as getting things done quickly and working on the features that make their application unique.

Source and More Information

Tamara Wijsman
  • 11,892
  • 8
  • 51
  • 80
6

If you are talking .NET:

POCO = Plain Old Class (or CLR) Object

Please See: POCO vs DTO

Community
  • 1
  • 1
Mitch Wheat
  • 280,588
  • 41
  • 444
  • 526
4

Acronyms like this usually stand for "Plain Old..." such as POX meaning Plain Old XML.

I would therefore guess that POCO was either Plain Old C Object, or Plain Old Class Object or some derivative. It would help if I knew the context (such as the programming language you are using).

samjudson
  • 53,412
  • 7
  • 55
  • 67
2

lainMH and Darnell have already given you the answer. As is says in the Wikipedia article is a reference to the term POJO, and the background of that term is found at Martin Fowlers' website.

Fredrik Mörk
  • 147,210
  • 26
  • 277
  • 333
1

POCO stands for Plain Old C++ Object.

Thomas Owens
  • 107,741
  • 94
  • 299
  • 427