lunes, enero 07, 2008

ASP en capas: obtener valores por QueryString

Vamos a comenzar a desarrollar la aplicación que mencionamos en el post anterior, y como queremos hacerlo con estilo, vamos a necesitar un poco de abstracción.

Lo primero que necesitamos es una forma para obtener valores desde "QueryString". Hace un tiempo comentamos como obtener valores por QueryString en .NET, ahora necesitamos hacerlo en ASP.

Hace algún tiempo construí la clase clsRequester para obtener valores por los tres métodos: querystring, form y cookie. Lo más importante de esta clase es que, al llamar a alguno de sus tres métodos públicos, debemos proporcionar un valor por defecto que será el resultado de la función cuando el obtenido no sea válido o no exista. Este valor por defecto debe ser del subtipo que esperamos conseguir (Integer, Byte, String, Date, etc).

Los métodos públicos de la clase clsRequester son:

public function Obtener(byval metodo, byval key, byval def)
Este método obtiene el valor de "key" por el "metodo" indicado. El dato obtenido se intenta convertir al subtipo de dato de "def". En caso de error se devuelve "def".
Ej: p = objRequester.Obtener("QueryString", "pagina", cint(1))

public function ObtenerB(byval metodo, byval key, byval def, byval min, byval max)
Obtiene el valor de "key" por el "metodo" indicado pero valida que dicho valor se encuentre entre un valor mínimo y un máximo (la B de ObtenerB es por Between). En caso de error o superar los límites, devuelve "def".
Ej: p = objRequester.ObtenerB("Cookie", "BirthDate", cdate("1901-01-01"), cdate("1910-01-01"), cdate("2000-12-31"))
Obtiene el de la cookie "BirthDate" y verifica que este comprendida entre las fechas indicadas. En caso de error devuelve la fecha 1 de enero del 1901.

public function ObtenerR(byval metodo, byval key, byval def, byval regex)
Obtiene el valor de "key" por el "metodo" indicado y lo valida con una Regular Expression. Este método es, por supuesto, para obtener "strings".
Ej: p = objRequester.ObtenerR("Form", "email", "", "\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*")
En este ejemplo, el email debe ser validado por la Reqular Expression, en caso contrario devuelve un string vacío.

Los métodos privados son:

Private Sub Class_Initialize
Para inicializar las variables.

Private Sub Class_Terminate
Si usamos un objeto Regular Expression lo destruye.

private sub MetodoDefault(byval metodo)
Verifica que exista el método indicado exista.

private function getValue(byval metodo, byval key)
Obtiene el valor por el método indicado.

private function Castear(byref dato, byval def)
Convierte el valor obtenido al subtipo del valor por defecto.

private Function ValidaExpresionesRegulares(ByVal texto, ByVal patron)
Valida el valor con la Regular Expression

Esta clase la utilizo en cada una de las aplicaciones que debo construir en ASP.
Aquí les dejo la clase Requester para que se la puedan bajar.