Hacking Day @ UNIVA

Wow… Hoy si que ha estado hectic el día …

Primero decidí la arquitectura de la aplicación, que para efectos de la prueba de concepto la estaré dividiendo en dos capas lógicas principales, que será la capa de acceso a datos y la capa de negocio. La capa de negocio específicamente es el WebService, que estará consumiendo información de la capa de datos; y el UI será obviamente SharePoint Portal Server mediante WebParts y ASPX dentro del contexto del SPOM.

Uno de los puntos interesantes que me encontré al desarrollar; es que realmente nunca había consumido un procedimiento almacenado desde una base de datos de Infomix. Ha he tenido encuentros cercanos con Informix, pero lo que encontré es:

Para mandar a ejecutar un procedimiento almacenado, es exactamente igual que hacerlo con SQL Client, solo que no te regresa de ninguna manera los nombres de las columnas del procedimiento; esto quiere decir que te las deja llenas con Expr001 … Expr(n)

Para esto, decidi consumir los procedimientos almacenados vía dataReaders y de ahi paso la información manualmente a DataSets. Si, que flojera; mucha talacha pero después podemos mejorar el código con un poco de refactoring. Nazul me comenta que si quieres usar ODBC / OLEDB tienes que mandar a ejecutar el procedimiento almacenado con CommandType = Text y el texto que sea el SQL … ejemplo: «EXECUTE PROCEDURE mysp(?,?)» y después puedes añadir los parámetros (o en todo caso, concatenarlos dentro de la cadena).

Este es un ejemplo de como consumir un procedimiento almacenado usando el Informix .NET Provider:

1 IfxConnection cn = new IfxConnection(_connectionString);
2 cn.Open();
3
4 IfxCommand cmd = new IfxCommand(«fnselcalificacionfinal», cn);
5 cmd.CommandType = CommandType.StoredProcedure;
6
7 cmd.Parameters.Add(«matricula», IfxType.Char, 10);
8 cmd.Parameters.Add(«periodo», IfxType.Char, 5);
9
10 cmd.Parameters[0].Value = Matricula;
11 cmd.Parameters[1].Value = ObtenPeriodoActual();

Notese que los parámetros no son necesarios que concuerden con la lista de parámetros del storeprocedure (como en el caso de OLEDB con SQL Server u Oracle).

Hoy nos aventamos casi toda la funcionalidad de dos módulos principales de la aplicación en casi 4 horas, buen record y como siempre; modestia aparte mi código compila a la primera y cero runtime errors … (ajáaaaa.. claaaroo) jejeje

Este fin de semana la voy a pasar en Guadalajara. Hasta ahorita no tengo nada planeado, aunque los muchachos de aquí probablemente me inviten a salir a algún lado el Sábado o Domingo. A ver que tal… el hotel donde me estoy quedando tiene alberca, podría pasar a relajarme un buen rato, pero desgraciadamente el clima esta bastante chafa…

Ahh… y ya me enteré de mi nuevo apodo 😛

Cheers! xD