domenica 14 agosto 2011

XA.EF Entity framework (2)

Il post precedente si era concluso con queste affermazioni:

L'Entità per il mio framework deve:
A)contenere delle proprietà che rappresentino la fonte da cui arriva,
B)contenere un metodo o un delegato che ne esegua la traccia,
C)contenere un evento che mi sappia indicare che lo stato è cambiato.


La collezione di elementi per il mio Entity Framork:
A)sarà reso con un lista,
B)conterrà i commenti come per l'entità,
C)non avrà bisogno d'altro.


Entrambe vere e parzialmente incomplete. Nel senso che mi ero già permesso di asserire, che avrei lasciato spazio a più possibilità. Quindi questo implica che volendo un utente potrà comunque scrivere una sua entità, magari indipendente dalla base dati da cui siamo partiti per realizzare le nostre entità.

Quindi potrbbe tornarci utile avere una base astratta che rappresenti l'entità

abstract class XAEntiy

{
public event EventHandler

}

delegate void XAEntityChangedEventHandler(XAEntityChangedEventArg Args);


class XAEntityChangedEventArg : EventArgs
{
public string ActualEntityValue { get; set; }

public XAEntityChangedEventArg( string Arg )
{
ActualEntityValue =Arg ;
}
}


abstract class XAEntiy
{
public event XAEntityChangedEventHandler StatusChanged;
}


Il tutto potrebbe sembra decisamente incomprensibile, ma analizzando il codice scopriamo che :
delegate void XAEntityChangedEventHandler(XAEntityChangedEventArg Args);


Sarà il nostro delegato che firma l'evento.

In più abbiamo anche gli eventuli argomenti legati all'evento, e di seguito la classe
astratta.

abstract class XAEntiy

{
public event XAEntityChangedEventHandler StatusChanged;
}



Tuttavia, vorrei anche implementare un interfaccia IXAEntity che ci darà la possibilità di avere un legame forte con la struttra.

In tutto questo emerge che il mio E.F. fondamentalmente si occuperà di scrivere le classi e di renderle sempre disponibili. Verosimilmente l'idea ora mi convince, tuttavia ho qualche dubbio sulla sincornizzazione.

Quindi :

L'Entità per il mio framework deve:
A)contenere delle proprietà che rappresentino la fonte da cui arriva,
B)contenere un metodo o un delegato che ne esegua la traccia,
C)contenere un evento che mi sappia indicare che lo stato è cambiato,
E)Implementeranno un interfaccia, un contratto solido,
F)una base astratta per tutti quello che non dovrà essere reimplemenato.
G)Le mie classi saranno scritte fisicamente nella soluzione.

Nessun commento: