un aiuto architetturale c#
michele.alda non è online. Ultima attività: 12/05/2008 10.24.07michele.alda
Inserito il: 07 dicembre 2007 12.17
197 messaggi dal 29 giu 2007
Salve,

con buona volontà ho deciso di iniziare a scrivere in c#, ma forse ho scelto il progetto sbagliato...fattostà, sono a chiedervi lumi!

voglio scrivere un provider di appartenenze e fin qui sono liscio come l'olio.

vorrei però che la sorgente dati sia indipendente e trasparente per il provider, sicchè pensavo di scrivere un interfaccia i cui metodi siano chiamati dal provider ma siano implementati da delle classi che mi fanno da DAL in maniera indipendente (es su DB differenti), così che possa avere un provider aziendale (write once) che posso riutilizzare per ogni progetto che mi serva, customizzando solo il DAL specifico per il cliente per cui lavoro.

se sto delirando fermatemi!!!

come posso fare in modo che nel mio codice del provider non vi sia traccia del DAL da utilizzare?è possibile?

se sì, suppongo mi serva qualche cosa che mi agganci la DLL del DAL ai metodi chiamati dal provider...come posso fare?

so di chiedere molto, ma se potete aiutarmi postando uno stralcetto di codice, grazie!
RE: un aiuto architetturale c#
Ricciolo non è online. Ultima attività: 12/05/2008 10.29.10Ricciolo
Inserito il: 07 dicembre 2007 12.38
Microsoft Most Valuable Professional
contributi / Top Poster / Community manager / blogs.aspitalia.com / Blog / 4470 messaggi dal 26 feb 2001
L'idea è giusta
Parti dal definire un'interfaccia che definisca i metodi e le proprietà che il dal deve implementare.
Poi fai una configurazione dove indichi il FQD (namespace.classe, assembly) del dal caricare.
Dove hai bisogno crei il dal leggendo la configurazione, usando Type.GetType per ottenere il tipo e Activator.CreateInstance per crearlo, ne fai il cast sull'interfaccia e da lì in poi lavori con l'interfaccia.
Leggi questi
http://blogs.aspitalia.com/sm15455/post1235/Factory-Pattern-Generics-Astrazione-DB.aspx
http://www.aspitalia.com/articoli/asp.net/reflection.aspx
http://www.aspitalia.com/articoli/asp.net2/provider_model_pattern.aspx?

Ciao

Il mio blog
Homepage
RE: un aiuto architetturale c#
michele.alda non è online. Ultima attività: 12/05/2008 10.24.07michele.alda
Inserito il: 07 dicembre 2007 16.05
197 messaggi dal 29 giu 2007
WOW!


Poi fai una configurazione dove indichi il FQD (namespace.classe, assembly) del dal caricare.


significa che nel web.config specifico che assemply carico?


Dove hai bisogno crei il dal leggendo la configurazione, usando Type.GetType per ottenere il tipo e Activator.CreateInstance per crearlo, ne fai il cast sull'interfaccia e da lì in poi lavori con l'interfaccia.


ok, quindi in linea di principio faccio il cast in questo modo?

(miaInterfaccia)Activator.CreateInstance

e i metodi li chiamo dall'interfaccia?

fico
molto fico
GRAZIE

mi domando...ho letto anche delle classi astratte..qual'è la soluzione che mi porta più vantaggi?

Modificato da michele.alda il 07 dicembre 2007 16.08 -
RE: un aiuto architetturale c#
Ricciolo non è online. Ultima attività: 12/05/2008 10.29.10Ricciolo
Inserito il: 07 dicembre 2007 16.10
Microsoft Most Valuable Professional
contributi / Top Poster / Community manager / blogs.aspitalia.com / Blog / 4470 messaggi dal 26 feb 2001
michele.alda ha scritto:
WOW!

[quote]
[quote]Poi fai una configurazione dove indichi il FQD (namespace.classe, assembly) del dal caricare.


significa che nel web.config specifico che assemply carico?[/quote]

Esatto


[quote]
Dove hai bisogno crei il dal leggendo la configurazione, usando Type.GetType per ottenere il tipo e Activator.CreateInstance per crearlo, ne fai il cast sull'interfaccia e da lì in poi lavori con l'interfaccia.


ok, quindi in linea di principio faccio il cast in questo modo?

(miaInterfaccia)Activator.CreateInstance

e i metodi li chiamo dall'interfaccia?
[/quote]

Esatto

mi domando...ho letto anche delle classi astratte..qual'è la soluzione che mi porta più vantaggi?

Modificato da michele.alda il 07 dicembre 2007 16.08 -


Dipende, c'è qualcosa che può essere utile già implementato per tutti ai dal, pur restando indipendente? Allora fai una classe abstract, ma se la fai vuota allora tanto vale usare le interfacce.

Ciao

Il mio blog
Homepage
RE: un aiuto architetturale c#
michele.alda non è online. Ultima attività: 12/05/2008 10.24.07michele.alda
Inserito il: 10 dicembre 2007 08.41
197 messaggi dal 29 giu 2007
scusate l'ignoranza...

ma l'assembly che creo in chesezione lo metto del web config?mi potete fare un esempio..grazie
RE: un aiuto architetturale c#
michele.alda non è online. Ultima attività: 12/05/2008 10.24.07michele.alda
Inserito il: 10 dicembre 2007 09.25
197 messaggi dal 29 giu 2007
mi viene generato questo errore...come posso risolverlo?


System.IO.FileLoadException: Impossibile caricare il file o l'assembly 'file:///C:\Documents and Settings\Administrator\Documenti\Visual Studio 2005\Projects\TimeProvider\Timegroup.Base\bin\Release\Timegroup.Base.dll' o una delle relative dipendenze. Accesso negato.
RE: un aiuto architetturale c#
Ricciolo non è online. Ultima attività: 12/05/2008 10.29.10Ricciolo
Inserito il: 10 dicembre 2007 19.59
Microsoft Most Valuable Professional
contributi / Top Poster / Community manager / blogs.aspitalia.com / Blog / 4470 messaggi dal 26 feb 2001
Eh te l'avevo già detto. Non devi mettere la dll, ma namespace.classe, assembly. es
TuoNamespace.TuaClasse, mioassembly(senza .dll)
Eventualmente puoi mettere l'intero strong name composto da version, culture, publickeytoken

Ciao

Il mio blog
Homepage

Vai a:

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.


COMMUNITY
ULTIMI MESSAGGI


IN EVIDENZA
MISC
Powered by .db Forums