Che cosa significa una classe fornitore di dire al mondo .NET?
Domanda
Ci sono molte classi che hanno questo suffisso provider
. (I dati, appartenenza, modelmetadata, ...).
Quando dovrebbe essere una classe chiamata come classe fornitore?
Soluzione
I fornitori sono per lo più tra la logica e memorizza i dati di qualsiasi tipo (database, xml, etc.). MSDN cita:
Provider supporti di memorizzazione astratto più o meno allo stesso modo in cui i driver di periferica astratto dispositivi hardware.
Per ulteriori informazioni: Microsoft ASP.NET 2.0 Provider: Introduzione
Ad esempio: Invece di lavorare con un database o XML, si desidera lavorare con la memorizzazione di file piatta su un disco da qualche parte all'interno della rete. Per gestire questo si costruisce un provider personalizzato e utilizzarlo nella vostra logica per salvare i dati.
Altri suggerimenti
Ecco descrizione del modello di fornitore da MS (http://msdn.microsoft.com/en-us/library/ms972319.aspx):
Il modello stesso è estremamente semplice e viene dato il nome "Provider" in quanto fornisce la funzionalità per un'API. Definito, un fornitore è semplicemente un contratto tra un'API e la Business Logic / Data Livello di astrazione. Il fornitore è la implementazione delle API separata dall'API stessa. Ad esempio, la nuova funzione di appartenenza Whidbey ha un metodo statico chiamato Membership.ValidateUser (). Il classe di appartenenza per sé non contiene logica di business; invece semplicemente inoltra questo invito alla configurato fornitore. E 'responsabilità di la classe fornitore per contenere la attuazione di tale metodo, chiamando qualunque Business Layer Logic (BLL) o Data Access Layer (DAL) è necessario.
Ci sono alcune regole su come un fornitore si comporta. Un provider attuazione deve derivare da un classe astratta di base, che viene utilizzato per definire un contratto per un particolare caratteristica. Ad esempio, per creare un provider di appartenenze per Oracle, è creare una nuova classe OracleMembershipProvider, che deriva da MembershipProviderBase. La classe funzione di base, ad esempio, MembershipProviderBase, a sua volta deriva da una comune ProviderBase classe di base. La classe è ProviderBase utilizzato per contrassegnare gli esecutori come provider e costringe l'attuazione di un metodo richiesto e proprietà comune a tutti i fornitori. Figura 4 fornisce un esempio dell'eredità catena.