Pregunta sobre diseño aplicación: Control de errores Base de Datos

24/02/2004 - 11:18 por Alejandro Bibiano González | Informe spam
A ver si me explico bien y alguien me puede ayudar con esta questión de
diseño.

Estoy desarrollando ua aplicación Cliente/Servidor tradicional con WinForms
en C#.

Me he creado unos dataset personalizados para cada tabla, así como un objeto
que gestiona los inserts, updates y selects.

Por ejemplo, tengo una clase Usuario que tiene métodos para seleccionar,
insertar y modificar usuarios (siempre a través de un dataset).

En mis formularios uso este objeto para poblar los dataset y actualizar los
datos. Hasta aquí todo bastante bien, pero ahora viene mi pregunta. ¿Donde
hago el control de errores? Por ejemplo, quiero comprobar que no haya 2
usuarios con el mismo nombre. En la base de datos el campo es "Unique" por
lo que mi objeto usuario lanzará una excepción cuando intente actualizar los
datos. ¿Debo controlar este error en mi objeto usuario (al haser el update
del dataadapter), en el formulario donde hago la actualización, o en otro
sitio?

Me gustaría centralizar la detección de errors de base de datos para no
tener que repetir siempre el mismo código.

Saludos y gracias

Alex Bibiano

Preguntas similare

Leer las respuestas

#6 Alejandro Bibiano González
26/02/2004 - 09:53 | Informe spam
Muchas gracias a todos, me habeis ayudado mucho.


"Rodrigo Corral González [MVP]" escribió en el
mensaje news:%23xQ$YFy%
A mi el enfoque que me gusta y que puedo asegurarte que funciona muy bien


es
tratar las excepciones propias de acceso a datos en la capa de negocio


pero
nunca mostrar ninguna interfaz de usuario en esta capa. El principal


motivo
de no mostrar interfaz en esta capa es que no sabes donde va a residir, no
tiene por que estar en el cliente donde hay un usuario para responder,


sino
que tipicamente estará en un servidor de aplicaciones. Otro motivo es que


la
capa de negocio no debe saber nada de la interfaz, supon que muestras un
dialog box, que pasará si un dia quieres que la interfaz de tu aplicación
sea web? o si quieres exponer la funcionalidad de tu aplicación con un Web
Service para facilitar la integración con otro sistema.

En la capa de negocio lo que yo hago es convertir las excepciones propias


de
el manejo de datos en excepciones que tengan un significado para mi
aplicación. Por ejemplo si al insertar un registro en una tabla recibo un
error por que la clave primaria esta duplicada yo combierto eso en una
excepción que informa de que el codigo de usuario esta duplicado y luego
cuando la interfaz recibe esta excepción hara lo que tenga que hacer.

Te recomiendo que le heches un vistazo a:

Arquitectura de aplicaciones de .NET: Diseño de aplicaciones y servicios
http://www.microsoft.com/spanish/ms...istapp.asp


Un saludo
Rodrigo Corral González [MVP]

microsoft.public.es.vc FAQ
http://vcfaq.europe.webmatrixhosting.net


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida