Matias,
Vos me habias comentado esto:
"La diferencia es que un componente se utiliza generalmente para
empaquetar alguna funcionalidad con interfaz de usuario o no y luego
poder usarlo desde el designer de VS.NET o Web Matrix o cualquier editor
que lo soporte.
Nota que cuando creas un componente, VS.NET genera el codigo base en
donde se ve que la clase deriva de Component. A su vez Component deriva
de MarchalByRefObject e implementa IComponent. Esto hace que no tengas
que escribir mucho codigo a la hora de escribir un componente, pero trae
desventajas a la hora de armar tu logica de negocios.
- No podrias derivar tu clase de negocios de una clase base ya que ni c#
ni VB.NET soportan multiple herencia. Es decir si queres implementar una
clase base que implementa una serie de metodos y crear clases que deriven
de esta no podrias, porque al crear un Componente estas heredando de
Component y no se puede heredar de nadie mas.
- Usando un Component es necesario implementar una serie de cosas por lo
tanto produce un overhead. Sin embargo creando una clase que derive de
System.Object, logras un objeto muy liviano."
En principio todo esto lo lei y es asi, pero he descubierto algo que no se
si es como lo decis, o me estoy equivocando yo...
es aca
"- No podrias derivar tu clase de negocios de una clase base ya que ni c#
ni VB.NET soportan multiple herencia. Es decir si queres implementar una
clase base que implementa una serie de metodos y crear clases que deriven
de esta no podrias, porque al crear un Componente estas heredando de
Component y no se puede heredar de nadie mas."
Segun lei, en el libro de Professional VB.Net, es que no hay que
confundir "Multiple Herencia" con "Multiple Niveles de Herencia", es decir
que la primera es los niveles de herencia a partir de una clase base, que
segun el libro se puede crear relaciones de muchos niveles de profundidad,
no importando si es una clase o un componeente.
Lo que no soporta el Framework (ya no VB.Net ni C# sino ningún
lenguaje .Net), es "Multiple Herencia", esto es que una Sub clase herede
de 2 (o más) clases base al mismo tiempo.
RESUMEN:
Los "Multiples Niveles de Herencia", no están limitados por si es una
Clase o un Componente.