Primera Jornada del Pre Summit Solid Quality 2010

Comenzó Daniel Seara, Director de Formación de Solid Quality Mentors con una calurosa bienvenida.

Fernando Guerrero, CEO, fundador y mentor de Solid Quality introdujo la Conferencia, planteando una charla – debate con preguntas que nos preocupan a nosotros como desarrolladores: qué son los datos?, dónde los almaceno? cómo accedo a los datos? Y …qué les preocupa a los clientes? El cliente está pensando en su negocio, en la mejora del mismo, más rentabilidad, productividad, menos costes, en fin … el cliente se pregunta: Cómo encuentro la información que necesito? Me puedo fiar de ella? Qué puedo aprender de mis datos? Fernando fue respondiendo a todas estas y otras preguntas desde la experiencia de proyectos reales antiguos y actuales de Solid. Muy muy interesante, muchas gracias Fernando, buen comienzo.

Fernando dio paso a Guillermo Son, “el Gille” con las Novedades VS 2010, una presentación muy interesante, con muchos ejemplos didácticos y demostrativos.

Entre las novedades de VB 2010 comentó sobre el continuador de líneas, nos contó que el compilador no necesita del signo _ ni necesita nada para definir el fin de línea, como es el “;” de C#. El compilador encuentra una línea en blanco u otra instrucción y entiende que la anterior ha terminado. El compilador no entiende de continuador de líneas, lo sigue leyendo en una línea. Aunque esto no es válido en todos los casos, no podemos separar una línea en una definición de variables y que empiece en el with, en resumen, hay que ver la documentación de VS 2010. Y como yo soy de Fox, me ha parecido raro, en VFP tenemos el “;” para separar líneas y nada para indicar el final, lo contrario de C#. Las expresiones lambda que devuelvan valor o no, también pueden ser multilínea.

Siguiendo con el Guille, nos mostró otras muchas novedades, sobre por ejemplo, las propiedades autoimplementadas, inicialización de arrays con inferencia de tipos, que se activa con el option infer (que está desactivado de forma predeterminado). Sobre la nueva inicialización de las colecciones, aplicable a aquellas colecciones con método Add(). Para rellenar la colección, se emplea FROM. Interesantísima explicación sobre la varianza en los delegados generic, la co-varianza (OUT) y contra-varianza(IN). Para los amantes de C#, también comentó un grupo de novedades de la versión 2010 ó 4.0  como late binding o (compilación tardía), parámetros opcionales, uso de propiedades indexadas y la misma novedad de varianza que nos explicó para VB.

La sesión preparadísima y muy bien defendida por el Guille, nos deja la misión de adentrarnos en el mundo de VS 2010. Gracias Guille !!

Salimos corriendo a por un café !! Han llegado más mentores, el evento va quedando de maravilla.

Tocó el turno a Daniel Seara para hablar sobre Vinculación de datos en .Net Framework 4.0. Dani contó las ventajas del empleo del uso de datasets, entre ellas, el DS es fácil de usar e implementar, (pero ojo que tiene peligro porque hay menos control de lo que sucede con los datos y encapsula elementos de actualización, lo que dificulta el control), el DS encapsula elementos de relación, “trae al cliente” integridad referencial, “tipifica” los datos.  Se serializa fácil. La forma predeterminada es serializar a XML, que está bien para lo que está bien.HAbló también de DataTables, los que exponen parte de la lógica de restricciones en el cliente y contiene mucho código interno, para controles inesperados. Comentóa que es más efectivo emplear LinQ contra DT que ejecutar el método Select del DT. Esto es posible, porque DT expone el conjunto como Iqueryable.

Sobre LinQ to SQL, es muy intuitivo para los programadores no T-SQL, tiende a resolver los problemas muy genéricamente, lo que para nosotros, gente de T-SQL puede no ser lo más efectivo. Además auto resuelve la sintaxis de T-SQL, lo que como todo lo automático puede no ser lo deseado. Facilita mucho el aislamiento de la capa de datos. LinQ tiene que convertir de tipos anónimos a datos reales y por tanto su rendimiento es más bajo. LinQ como tecnología es buena; pero LinQ to SQL no es lo más indicado para trabajar con acceso a datos SQL.

Con Net 4.0 aparece Net Data Services orientado a servicios (SOA), habría que considerar los tiempos de respuesta.

Y por fin, el código directo. Nos da el control absoluto del proceso de acceso a datos, limpieza completa del código; pero … siempre hay pero, aquí hay que escribirlo todo, se corre el riesgo de especificar demasiado y que no sea reproducible en otros casos o evolucionar aplicaciones en el tiempo. Tendríamos que ser capaces de escribir tanto código como sea preciso para que el usuario tenga el menor tiempo de ejecución posible. Por tanto el código es el mejor método para acceder a datos desde net Framework.

Ninguno de estos mecanismos reconoce los datos espaciales de SQL Server 2008 y como recomendación final, realizar múltiples métricas. Comparó la misma tabla, los mismos registros, la misma consulta y aplicó cada método, luego lo hizo con un entorno de cuatro tablas relacionadas. Ha comparado estadísticas de conexión y velocidad de acceso.

Tremendísimo ritmo y energía le impuso Daniel a su presentación muy bien preparada con ejemplos ilustrativos. Esta comparativa ha resultado muy interesante. Para terminar, con broche de oro, mostró y explicó la aplicación utilizada para obtener las métricas explicadas anteriormente.

¡ Gracias Daniel, tan inmenso como siempre !

Hora de comer, compartí sitio con Miguel Egea y otro de los participantes del Pre-Summit. Hablamos de todo, de la familia, los hijos, el tiempo libre… y como no podía ser de otra forma ¡¡¡ de BI !!!! Y como premio me llevo la experiencia de Miguel en el uso preferente de CASE vs IIF con MDX. Anotado !!! IIF es una instrucción que existe en VFP, que a mí en particular me gusta mucho y que suelo cambiar por CASE en casos de varios (más de 3) IIF anidados. Resulta que con MDX, es mejor, muuuucho mejor a nivel de rendimiento CASE que IIF.

Entre comida y trabajo, más trabajo. Estuve compartiendo experiencias en el trabajo con SSIS 2008 con Pablo Ahumada, mentor de Solid, quien me ha aportado un grupo de sugerencias interesantes. Gracias Pablo !!

Una vez comidos y relajados tras agradable y útil charla, entramos de lleno a la sesión de la tarde de la mano de Enrique, Kike Puig que nos habló de Entity Framework en general y las Novedades en la versión 4.0 en particular. Nos habló de la integración de T-SQL con EF, algo que agradecen los desarrolladores T-SQL, el lenguaje T-SQL  integrado se ha mejorado, está mejor traducido y está enriquecido. Además hay mejoras en el mapeo de procedimientos almacenados CRUD – Creation Read, Update, Delete, lo nuevo es Read. Se produjo un intercambio interesante en temas de actualización de modelos y BBDD.

Los ejemplos estuvieron muy bien conseguidos, el primero, creado desde cero, mostró las funcionalidades y demostró desde el SSMS las acciones de creación de BBDD y tablas, así como alta, baja y modificación de datos. En el segundo ejemplo realizó acciones comparando versiones y demostrando las mejoras. El tercer la generación de scripts T-SQL en versiones 3.5 y 4.0 con el Profile activo para analizar las trazas y poder recuperar ese código T-SQL. En 3.5 el código creado es bastante más ineficiente. En la 4.0 la traducción del LIKE, BETWEEN está mejor conseguida, además están correctamente enlazadas las tablas a través de JOINs, lo que antes no quedaba bien. El cuarto y último ejemplo mostró el tratamiento de campos de tipos de datos espaciales. El EF omite ese campo. El último ejemplo, el 5to mostró comparativas de tiempo de ejecución.

Recomendó ver blogs La cueva de desarrollo y El rincón del DBA

Gracias Kike, muy bien, Enhorabuena !!

Para terminar, regresó Daniel Seara para tratar el tema Acceso a Datos y Aplicaciones SOA.

Daniel regresó al inicio de la jornada, a la programación eficiente de cara al usuario. No se trata de OOP, 3 capas, programación estrictamente “purista”, se trata de eficiencia para el Cliente. Se trata de aislar funcionalidades y permitir actualizar en cada capa sin afectar al resto. El asilamiento entre las capas es esencial. Se trata de brindar servicios. Nos habló de las interfaces como intérpretes necesarios entre los usuarios y los sistemas, ya sea informátivos, tvs, etc.  A partir de la interfaz se encapsula funcionalidad. No se trata de escribir código sino de generarlo, a partir de una plantilla creada para un entorno no excesivamente genérico, para que sea realmente funcional y pueda protegerse de errores.

Daniel es un excelente orador, a pesar de que iba cayendo la tarde y el cansancio iba haciéndose sentir, lo interesante del tema nos mantuvo atentos. El ejemplo de su código, la aplicación de interfaces y la creación de soluciones en corto plazo y de calidad mediante plantillas que emplean lo mejor de cada mundo, es algo a ver con detalle.

¡¡ Muchas gracias Daniel !!

En fin, que aún sabiendo que no íbamos a hablar de BI, que es en lo que estoy ahora, el reencuentro con tanta gente conocida, valiosa y amable y la posibilidad de poder por primera vez, al menos para mí, tantas Novedades de Visual Studio y tanta técnica eficiente de acceso a datos, la intensísima jornada de charlas ha resultado muy interesante e instructiva.

Enhorabuena a todos por esta primera jornada, muchas gracias a ponentes y presentes por sus debates … mañana más; pero no mejor …aunque habrá más SQL 🙂

Saludos,

Ana