El único verdadero desafío que he enfrentado con la exposición de datos a través de un servicio web basado en ASMX estaba soñando con todos los métodos necesarios para obtener datos de forma eficiente. A veces es difícil tener la disciplina para respetar el nivel entre la aplicación y la base de datos.
Si se está implementando en un entorno de Intranet con AD, la Autenticación de Windows integrada es una forma excelente de controlar quién puede y quién no puede interactuar con un servicio. Es útil agrupar las clases de servicio según las funciones del consumidor, de modo que permissions can be controlled declaratively in the Web.config. Tiendo a mantener los métodos de lectura en una clase de servicio diferente que inserte métodos de actualización y eliminación
Evite las llamadas al servicio de conversación. Por supuesto, es conveniente evitar las llamadas de la base de datos de conversación en un sistema de dos niveles, pero pagarás al hablador por las llamadas habladas cuando aumente la cantidad de niveles. Elige enviar objetos más grandes. Por ejemplo, si tiene una tabla con algunas búsquedas, el envío de un objeto a través del cable con valores pre-consultados a menudo le ahorrará una segunda o tercera llamada, y no debería causar una carga excesiva en el sistema.
Espero que estas ideas ayuden.
¿Está preguntando acerca de los inconvenientes asociados con la entrega de sus datos en el servicio web en lugar del acceso directo a los datos por parte de los clientes, o acerca de las cosas a considerar al construir un DAL en general? – SqlRyan
Pregunto si el uso de un DAL como servicio web es una buena idea en general para la reutilización en varios sitios ASP.NET. – thinkindeveloper