dll para todo

05/05/2005 - 19:58 por eazoft | Informe spam
Buenas:
No termino de aclararme.
Asi que empiezo a filosofar.
Suelo programar aplicaciones de escritorio, n-capas, con
dll para cada capa, incluyendo la capa de control de
errores etc.

He leido en mas de un sitio que una de las mayores
ventajas de la programacion por capas es hacer dll que se
puedan acceder desde escritorio y desde web.
Hasta ahi todos estaremos de acuerdo.

Tengo un problema.
Cuando controlo los errores, desde un programa de
escritorio (cliente/servidor), por ejemplo: en el try
catch de la capa de acceso a datos, debo llamar a la capa
de control de errores que es un form. Pero si estoy en
una web, tendré que llamar a una web, con su
correspondiente paso de datos, que tambien de diferente a
un winform.


Asi que o me estoy equivocando en conceptos (100%
provable), o hay otra forma de hacerlo.
o tendria que cambiar de un proyecto web a uno escritorio
todo el codigo de los try catch.

Asi que como creo que me estoy equivocando.
Me gustaria que me ayudarais.
Lo unico que quiero es poder hacer capas en las que la
parte del codigo del control de errores sea iguales.
Evidentemente si es una aplicacion de escritorio el
proyecto de control de errores sera un winform, en caso
de ser una aplicacion asp.net tendria un control de
errores en asp.

Un saludo.
PD: sigo sin comprender tanta diferencia en asp, a
winform.
PD2: Sigue siendo un atraso programar un ERP en ASP, php
etc.
 

Leer las respuestas

#1 Octavio Hernandez
06/05/2005 - 02:45 | Informe spam
Hola,

Básicamente, la idea es que la capa de negocio y de acceso a datos no deben
atrapar (catch) las excepciones, sino dejarlas fluir hacia la interfaz de
usuario que es donde deben aparecer los mensajes y donde generalmente se
debe tomar la decisión de qué hacer a continuación.

Esta idea tiene dos extremos:
a) puedes programar esas capas sin preocuparte por poner un solo try/catch;
los errores que se produzcan en los métodos de ess capas "rebotarán" hacia
el método de la interfaz de usuario que provocó su llamada.
b) una idea más elaborada es la de atrapar las excepciones que se puedan
producir en esas capas y transformarlas en otras que tengan más sentido para
tu aplicación, para que en la interfaz de usuario sea más fácil tratarlas.
Pondrías sentencias try/catch con un throw new MiExcepcion("mensaje");
dentro del catch.

En ambos casos, no habría que tocar esas capas al pasar de una aplicación
Windows a Web o viceversa.

Slds - Octavio

"eazoft" escribió en el mensaje
news:026001c5519c$03b52b80$
Buenas:
No termino de aclararme.
Asi que empiezo a filosofar.
Suelo programar aplicaciones de escritorio, n-capas, con
dll para cada capa, incluyendo la capa de control de
errores etc.

He leido en mas de un sitio que una de las mayores
ventajas de la programacion por capas es hacer dll que se
puedan acceder desde escritorio y desde web.
Hasta ahi todos estaremos de acuerdo.

Tengo un problema.
Cuando controlo los errores, desde un programa de
escritorio (cliente/servidor), por ejemplo: en el try
catch de la capa de acceso a datos, debo llamar a la capa
de control de errores que es un form. Pero si estoy en
una web, tendré que llamar a una web, con su
correspondiente paso de datos, que tambien de diferente a
un winform.


Asi que o me estoy equivocando en conceptos (100%
provable), o hay otra forma de hacerlo.
o tendria que cambiar de un proyecto web a uno escritorio
todo el codigo de los try catch.

Asi que como creo que me estoy equivocando.
Me gustaria que me ayudarais.
Lo unico que quiero es poder hacer capas en las que la
parte del codigo del control de errores sea iguales.
Evidentemente si es una aplicacion de escritorio el
proyecto de control de errores sera un winform, en caso
de ser una aplicacion asp.net tendria un control de
errores en asp.

Un saludo.
PD: sigo sin comprender tanta diferencia en asp, a
winform.
PD2: Sigue siendo un atraso programar un ERP en ASP, php
etc.

Preguntas similares