Przejdź do zawartości

Plain Old CLR Object

Z Wikipedii, wolnej encyklopedii
To jest stara wersja tej strony, edytowana przez 85.221.143.240 (dyskusja) o 17:18, 6 paź 2021. Może się ona znacząco różnić od aktualnej wersji.

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, zawierający logikę biznesową (w odróżnieniu od DTO) jak przystało na paradygmat OOP[1] i nieposiadający atrybutów wymaganych do współpracy ze specyficznymi frameworkami, takimi jak mappery ORM[2].

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[3], 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.

Przypisy

  1. c# - Plain Old CLR Object vs Data Transfer Object [online], Stack Overflow [dostęp 2021-10-06].
  2. Artykuł z MSDN: Data Contracts – POCO Support
  3. Odniesienie do PONO w dokumencie: Spring.net Reference Documentation