L'unica vera sfida che io abbia mai affrontato con l'esposizione di dati su un servizio web-based è stato ASMX sognare tutti i metodi necessari per ottenere i dati in modo efficiente. A volte è difficile avere la disciplina per onorare il livello tra l'applicazione e il database.
Se si sta eseguendo la distribuzione in un ambiente Intranet con AD, l'autenticazione integrata di Windows è un modo eccellente per controllare chi può e non può interagire con un servizio. È utile raggruppare le classi di servizio in base ai ruoli dei consumatori, in modo che permissions can be controlled declaratively in the Web.config. Tendo a mantenere i metodi di lettura in una classe di servizio diversa rispetto all'inserimento di metodi di aggiornamento e cancellazione
Evitare le chiamate di servizio chatty. Naturalmente, è bene evitare le chiamate al database di chiacchiere in un sistema a due livelli, ma si pagherà il piper per le chiamate chatty quando si aumenta il numero di livelli. Scegli di inviare oggetti più grandi. Ad esempio, se si dispone di una tabella con poche ricerche, l'invio di un oggetto attraverso il filo con valori cercati in precedenza spesso vi salverà una seconda o terza chiamata e non dovrebbe causare un onere eccessivo sul sistema.
Spero che queste idee aiutino.
Stai chiedendo degli svantaggi associati alla consegna dei dati da parte dei servizi web anziché all'accesso diretto ai dati da parte dei clienti o a cose da considerare durante la creazione di un DAL in generale? – SqlRyan
Mi chiedo se l'utilizzo di un DAL come servizio Web sia una buona idea in generale per riutilizzare attraverso alcuni siti ASP.NET. – thinkindeveloper