Plain Old CLR Object (POCO) – odpowiednik występującego na platformie Java EE terminu POJO używany przez programistów tworzących kod na środowisko Common Language Runtime platformy .NET Framework.
Podobnie jak w Javie, termin ten oznacza prosty obiekt nieobciążony dziedziczeniem, nieposiadający atrybutów wymaganych do współpracy ze specyficznymi frameworkami, takimi jak mappery ORM.
W środowisku programistów.NET termin POCO najczęściej używany jest w celu odróżnienia zwykłego obiektu, służącego zazwyczaj tylko do reprezentacji danych, od specjalistycznych, złożonych obiektów związanych z zewnętrznymi komponentami. Czasami określenia POCO używa się żartobliwie w odniesieniu do zauważalnej złożoności frameworków opartych na Javie, takich jak EJB.
Skrót POCO jest często nieprawidłowo rozwijany jako Plain Old C# Object, jednakże obiekty POCO można tworzyć w dowolnym języku opartym na CLR. Czasami używa się także terminu PONO, rozwijanego jako Plain Old.NET Object.
Zastosowanie
Obiekty POCO są często definiowane przez programistę, kiedy celem jest stworzenie systemu skalowalnego i łatwego do modyfikacji, gdzie istotne jest wyraźne ograniczenie obszarów styku jego własnego kodu z kodem zewnętrznych frameworków. Pociąga to za sobą zasadę minimalizacji wpływu frameworków wymagających użycia specjalnych atrybutów lub dziedziczenia na własny kod. W tym celu zamiast obiektów zdefiniowanych we frameworku, którego wpływ programista stara się ograniczyć, używa on własnych obiektów POCO.