Definición ‘POCO’

¿Puede alguien definir exactamente qué significa ‘POCO’? Cada vez encuentro el término más y más, y me pregunto si se trata solo de clases simples o si significa algo más.

“Objeto simple de C # antiguo”

Solo una clase normal, sin atributos que describan preocupaciones de infraestructura u otras responsabilidades que los objetos de su dominio no deberían tener.

EDITAR – como han indicado otras respuestas, es técnicamente “Objeto de CLR sin formato” pero, como comenta David Arno, prefiero el “Objeto de clase simple antiguo” para evitar vínculos con idiomas o tecnologías específicos.

CLARIFICAR: en otras palabras, no derivan de alguna clase base especial ni devuelven ningún tipo especial para sus propiedades.

La mayoría de la gente lo ha dicho – Objeto CLR sencillo antiguo (a diferencia del POJO anterior – Objeto simple antiguo de Java)

El POJO salió de EJB, que requería que heredaras de una clase principal específica para cosas como objetos de valor (lo que obtienes de una consulta en un ORM o similar), así que si alguna vez quisiste moverte de EJB (p. Primavera), estabas lleno.

Los POJO son solo clases que no fuerzan la herencia ni ningún atributo de marcado para hacer que funcionen en el marco que estés utilizando.

Los POCO son iguales, excepto en .NET.

En general, se usará en torno a los ORM: los más antiguos (y algunos actuales) requieren que heredes de una clase base específica, lo que te vincula con ese producto. Los más nuevos no lo hacen (nhibernate es la variante que conozco): simplemente haces una clase, la registras con el ORM y estás apagado. Más fácil.

POCO son las siglas de “Plain Old CLR Object”.

Puedo estar equivocado acerca de esto … pero de todos modos, creo que POCO es un Objeto CLR de Plain Old Class y proviene de POJO plain Java Object. Un POCO es una clase que contiene datos y no tiene comportamientos.

Aquí hay un ejemplo escrito en C #:

  class Fruit { public Fruit() { } public Fruit(string name, double weight, int quantity) { Name = name; Weight = weight; Quantity = quantity; } public string Name { get; set; } public double Weight { get; set; } public int Quantity { get; set; } public override string ToString() { return Name.ToUpper() + " (" + Weight + "oz): " + Quantity; } } 

Para agregar las otras respuestas, todos los términos de POxx parecen provenir de POTS ( servicios telefónicos antiguos simples).

El POX, utilizado para definir XML simple (antiguo), en lugar de las complejas cosas de varias capas asociadas con REST, SOAP, etc., era un término útil y vagamente divertido. PO (inserte el idioma de elección) O los términos han gastado bastante la broma.

En .NET, un POCO es un “viejo objeto CLR simple”. No es un ‘Objeto simple de C # antiguo’ …

En la tierra de Java, por lo general, “PO” significa “simple viejo”. El rest puede ser complicado, así que supongo que su ejemplo (en el contexto de Java) es “objeto simple de clase anterior”.

algunos otros ejemplos

  • POJO (objeto viejo y simple de java)
  • POJI (interfaz antigua de Java simple)

Interesante. Lo único que sabía que tenía que ver con la progtwigción y tenía POCO en él es el marco POCO C ++ .

En términos de MVVM de WPF, una clase POCO es aquella que no activa eventos PropertyChanged

Aunque estoy seguro de que POCO significa Objeto llano de clase anterior o Objeto llano antiguo de C para el 99.9% de las personas aquí, POCO también es el lenguaje de guiones incorporado de Animator Pro (Autodesk).