Archivo de la categoria ‘C#’

Existe vida después de Crystal Reports…

Domingo, Junio 29th, 2008

Ya alguna vez Emilio mi ex jefe y master de programación me comentó que usar Crystal Reports era como meterte al castillo de Vlad el Empalador sin previo permiso defendiendo a los Sajones.

Estos últimos días tuve la “suerte” de tomar un proyecto en la oficina que había que entregar pronto. Uno de los requerimientos del proyecto era imprimir una factura la cual se diseña con un reporte. La “tecnología” de reportes utilizada es la que viene por default con Visual Studio 2005: Crystal Reports.

La sensación de desolación que me dejó utilizar crystal reports es incomparable con cualquier otro tipo de dolor. De entrada quise utilizar dos DataTable’s que tenía definidos en un DataSet, de ahí, uno de estos datatables contenía la información general de la factura y por otra parte el otro datatable contenía los detalles o conceptos de la factura, o sea los datos que se “repiten” en la factura. Después de intentar me dí por vencido hasta que Alfredo, compañero de trabajo y mi jefe anterior de proyecto me dijo que lo mejor para mi tranquilidad mental era meter como parámetros los datos generales y solamente meter un datatable para los detalles. Sí, de algún modo crystal reports no soportó manejar dos tablas para generar el reporte, solamente una, algún error de autentificación me marcó que ya no recuerdo.

Ayer pasé la tarde y la noche diseñando la factura y fué una experiencia terrible, las herramientas de diseño que tiene crystal reports son bastante inestables y de hecho muy, pero muy limitadas. Después de pasar preciadas 6 a 8 horas de mi sabado de descanso en esta tarea (y arreglando algunos otros bugs) me quedé a ver TV un rato y me fuí a dormir ya que Yari se había ido a Rosarito con sus amigos y todos los demás conocidos que viven aquí se habían ido a San Luis.

Hoy recordé que tenía un pendiente con el proyecto y mañana debo ir a instalarlo con el cliente así que decidí solucionarlo hoy domingo. Sorpresa que, al abrir Visual Studio e intentar cerrar las pestañas de los archivos aspx que habían quedado abiertas al abrir la solución, este se colgaba.

No me había pasado esto de hecho hasta que comencé a utilizar Crystal Reports, la solución fue cerrar unicamente la pestaña del reporte y acto seguido cerrar visual studio, posteriormente lo volví a abrir y el problema desapareció. Parece ser que el problema es que crystal reports carga algún control ActiveX no soportado por Windows Vista lo cual crea incompatibilidad e inestabilidad.

Uno de los bugs que me causó mas problemas fue que, al agregar un objeto tipo “CrystalReportSource” a la página aspx y dirijirme a seleccionar el reporte este se negaba a mostrarme la vista previa y por lo tanto el reporte no se visualizaba. Resulta que al seleccionar el archivo de reporte me aparecía la siguiente ventana:

 

Después de varios intentos y de estar seguro que el reporte que estaba seleccionando era el correcto decidí eliminarlo y crear uno nuevo. Después, también gracias a la ayuda de Alfredo, pude solucionarlo, me dijo con una tranquilidad de monje tibetano: “No, así no va a funcionar, quitale el path y deja solamente el nombre del archivo” y es que sucede que, crystal (o visual studio) tiene un bug que hace que no tome el path correctamente del archivo, es decir, el archivo aspx que contiene el código que utilizará este reporte estaba mas o menos así:

/Invoice/getInvoice.aspx

Y el reporte:

/Invoice/Invoice.rpt

Por lo cual dí por hecho que lo que me estaba mostrando el combobox era correcto, para solucionar el problema debía eliminar la carpeta “/Invoice” de la ruta del repore aun sabiendo que efectivamente ahí estaba el reporte:

Sé, y entiendo perfectamente que todos los desarrolladores de software nos equivocamos, nadie es perfecto, pero, por Dios, ¿Cómo algo tan importante paso las pruebas de calidad? Supongo que nadie en el grupo de desarrollo de Visual Studio utiliza Crystal Reports, de hecho, hablando con varios compañeros de la oficina me dí cuenta que efectivamente ahí nadie utilizaba crystal reports, preferian hacerlo “a mano” generando páginas con código html.

¿Alguién tiene alguna buena historia con este producto? Por que creo que de lo contrario de hoy en adelante trataré de mantenerme al margen del mismo ya que la primera impresión fué mala y en esto como en las relaciones amorosas, eso es lo mas importante.

Microsoft libera el código del framework .Net y Visual Studio

Viernes, Octubre 5th, 2007
Cuando las barbas de tu vecino veas cortar…

Microsoft finalmente ha decidido liberar parte de su framework .Net y de Visual Studio 2008… Razón? Supongo que un poco de presión por parte de las demás empresas, la tendencia y sobre todo de los desarrolladores.

Y bueno, no precisamente se liberó el codigo ya que solamente se puede “ver” bajo una licencia medio restrictiva que no permite modificacion o redistribución pero creanme, esto, para la empresa de Redmond es historico, de verdad.

Parece que solo estamos a algunos pasos de que finalmente esto se convirtiera en realidad: Microsoft liberando código fuente de sus plataformas.

Quiza no mañana, pero pronto un dia pueda volverse OpenSource… Office, Visual Studio gratis, SQL Server gratis… lo se perfectamente, no es OpenSource aun pero las prácticas de la empresa al final estan cambiando, por presion, gusto o estrategia, pero al final, los únicos que salimos beneficiados somos los usuarios y los desarrolladores.

Nota completa aquí

PD: No, no se puede implementar el código en mono
PD2: Internet Explorer es una mierda :)

Juego en 3d de Java

Miércoles, Abril 25th, 2007
Siguiendo la antigua tradición geek de hablar sobre juegos online como Seigi, rondando por Internet buscando algo sobre java (del cual he querido hablar ultimamente pero no he tenido el tiempo para hacerlo) me encontré con este juego, siendo sinceros no le avancé demasiado por que tenía cosas importantes que hacer como la columna del semanario que, valientemente escribo cada semana, pero vale la pena jugarlo. Me quede pensando dos cosas:

  1. Los juegos desarrollados en flash son impresionantes

  2. Sun necesita mas marketing de su plataforma
Lo primero por que recuerdo que en mi niñez ver Donkey Kong Country, aquel juego de nintendo, en el SNES era impresionante, digo, para una maquina de 16 bits era algo muy novedoso, los gráficos pseudo-3d de donkey era muy buenos, como los del famoso killer instinct, de hecho creo que donkey era un juego de 32 bits que se emulaba en el hardware de 16 del SNES, no se si esto es correcto (no soy tan fanático de las consolas) pero si estoy equivocado haganmelo saber.

Por otra parte me “sacó de onda” ver que Sun hace publicidad de su tecnología en una aplicación desarrollada en flash. No tengo nada en contra de flash pero me extraña que el juego no estuviera hecho en java, digo, hasta donde se java tiene soporte para interfaces 3d.

Bueno si tienen tiempo (cosa que extraño últimamente) jueguenlo ustedes adictos a los juegos online.

Que es lo mas interesante del juego? Si, para pasar los checkpoints hay que responder preguntas de programación, lo se, demasiado geek, las preguntas (hasta donde llegué) se basaban en C++ pero son preguntas muy genéricas que cualquier programador de java/C# puede responder.

Salu2.

Entorno de desarrollo gratuito para C# y VB.Net

Martes, Marzo 20th, 2007
Por cierto que leyendo un post del blog de Seigi mencionaba que estuvo en la necesidad de programar algo en .Net con C# y por lo tanto de utilizar un entorno de desarrollo y es que, ya se que se puede hacer con notepad y csc.exe pero en pleno siglo XXI me parece arte de trogloditas seguir esas tendencias de “hombres”.

Ya alguna ves mencione en un post que Microsoft ofrece sus versiones “express” de Visual Studio, una para C#, otra para VB.Net y me parece que otra para ASP.Net llamada Visual Web Developer e incluso ofrecen su version Express de SQL Server. Estas versiones express son gratuitas (no libres) y se pueden descargar y utilizar libre de costo, muy útil.

Pero como muchos saben Visual Studio 2005 es igual de rápido que una vaca enferma y en equipos con pocos recursos es simplemente INUTILIZABLE, la versión express es un poco mas rápida ya que no carga todos los componentes de las versiones “pesadas” como Team Foundation o Visual Source Safe o cualquier otra cosa extra pero aun así se siente a veces lento en proyectos grandes y con equipos “viejos”.

Una muy buena alternativa, sobre todo si eres estudiante o no tienes proyectos que requieran tecnología 100% microsoft es utilizar SharpDevelop. SharpDevelop es un IDE muy bueno que soporta C#, VB.Net y boo y prácticamente casi cualquier cosa que sea estandar en .Net.

SharpDevelop además de contar con el editor de código y un depurador con soporte de breakpoints y todo el demás “candy” soporta creación de interfaces gráficas con Windows Forms, así que se pueden crear aplicaciones gráficas. Además soporta “refactoring” y completado de código estilo IntelliSense. Para cualquiera que quiera utilizar alguna herramienta de desarrollo para .Net le recomiendo SharpDevelop.

Ahh si, y por cierto lo mejor de todo es el precio: gratis, y el código del entorno es gratuito, es un proyecto LGPL :)

Pueden ver mas acerca de SharpDevelop aquí