none
comprobacion de los tipos. de quien es responsabilidad??

    General discussion

  • hola estoy tratando de hacer un proyecto en capas,

    estoy haciendo ahora la capa de  datos con linq, que para sus metodos ocupa parametros

    la pregunta es si es un parametro que se obtiene obia de la capa presentacion, quien tiene la resposabilidad de validarlo,

    por ejemplo buscaremos un medicamento en la base de datos el metodo buscar pide un id como parametro y regresa un medicamento

    pero quien valida si lo que se capturo en el textbox es un numero, que tal si pusieron una letra, generaria un error, creo yo pero no estoy seguro que le corresponde a la capa neggocio, validar el parametro si es correcto continua enviando la informacion a la capa de datos si es incorrecto debe regresar un mensaje de error.

    pero que mensaje?? si quiera enviar un messagebox.show, no me estaria metiendo en la capa de presentacion???,

    Monday, May 21, 2012 4:31 PM

All replies

  • Hola,

    Debes de validar en dos sitios.

    1. Capa de presentación, para ayudar al usuario.

    2. Capa de Aplicación, piensa que lo lógico es que hoy estés trabajando con una app Windows Forms por lo que veo, pero y si ese mismo método lo quieres exponer por un servicio o mañana quieres cambiar tu capa de presentación.

    Lo que se hace en esta capa es lanzar un Exception nunca el messagebox.show puesto que entonces lo que haces es ligar esta capa a una tecnología en este caso Windows Forms.

    Te has leido la guia que te pase? :)

    Saludos,


    phurtado
    Mi Blog Blog
    Sigueme en Twitter

    Monday, May 21, 2012 4:43 PM
    Moderator
  • la pregunta es si es un parametro que se obtiene obia de la capa presentacion, quien tiene la resposabilidad de validarlo,

    la capa de negocio

    podrias aplicar algo como esto

    http://fabiomaulo.blogspot.com.ar/2010/06/altnet-hispano-vale.html

    que es un feamework de validacion creado por la comunidad de alt.net hispano, yo lo use y es muy bueno

    pero quien valida si lo que se capturo en el textbox es un numero, que tal si pusieron una letra, generaria un error

    ese input primario de datos lo validas en la presentacion, porque es logico que ni siquiera pasara a la capa de negocio si al propiedad espera un int

    o sea no podrias asignarlo nunca por eso lo validas previanrte en la presentacion y cuando sabes que es numerio lo asignas

    ahora si la validacion dice que es un numero den entre 1 y 20, eso lo validas en la presentacion (si puede) pero si o si lo haces en el negocio

    si quiera enviar un messagebox.show, no me estaria metiendo en la capa de presentacion???,

    debes enviar un Exception desde la capa de negocio a la presentacion, el Mesagebox esta ams que claro debe ir en la presentacion, la forma de comunciar esta validacion desde el negocio a la presentacion es mediante un Exception con el mensaje que defines

    es mas si puede crear un exception custom aun mejor

    para asi poder diferenciar entre un error comun y uno de validacion

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina

    Monday, May 21, 2012 4:49 PM
  • la verdad no lo he leido lo voy hacer

    es que cuando vi que era para netframework 4.0, pues pense que a la mejor no me aplicaria todo aunque como tu dices es mejor aprender lo nuevo, pero el proyecto que hago lo estoy haciendo netframework 3.5, por cuestiones de licencia, es el paquete que la empresa compro visual studio 2008 netframework 3.5, pero claro que lo estudiare disculpa por no hacerlo aun.

    Monday, May 21, 2012 5:07 PM
  • leandro gracias por la respuesta, pues empesare intentar crear  la exepcion custom
    Monday, May 21, 2012 5:09 PM
  • me estoy aventando el de arquitectura

    a que buen libro meses buscando algo asy muchas gracias pedo

    Monday, May 21, 2012 5:52 PM
  • la verdad no lo he leido lo voy hacer

    es que cuando vi que era para netframework 4.0, pues pense que a la mejor no me aplicaria todo aunque como tu dices es mejor aprender lo nuevo, pero el proyecto que hago lo estoy haciendo netframework 3.5, por cuestiones de licencia, es el paquete que la empresa compro visual studio 2008 netframework 3.5, pero claro que lo estudiare disculpa por no hacerlo aun.

    Niqel,

    No se si tu empresa tiene la posibilidad o quiere actualizar a 2010-2011 , pero si has leido el post que esta mañana te pase de Eduard todas las clases que escribas con linq to sql son dependientes de tecnología y eso es lo primero que tienes que intentar conseguir. Si quieres un consejo yo para utilizar linq to sql me quedo con Ado.Net y DataReader.

    Te recuerdo el linq

    http://geeks.ms/blogs/etomas/archive/2010/03/04/linq-to-sql-y-repository-pattern-s-237-pero-ojo.aspx

    Saludos,


    phurtado
    Mi Blog Blog
    Sigueme en Twitter

    Monday, May 21, 2012 6:51 PM
    Moderator