Datapayasadas

Octubre 25, 2009

Actualizador (2da Parte)

Archivado en: .Net, C#, Desarrollo — Etiquetas:, — Matías @ 12:11 am

En el artículo previo (Actualizador 1era Parte) llegamos a definir la estructura iba a tener nuestro archivo de actualizaciones, ahora solo nos falta descargar esa información, parsearla y hacer algo útil con ella.

Recuerden que el formato a utilizar en dicho archivo será el siguiente:

ruta relativa y nombre de archivo : versión

donde la primer parte antes de caracter : es la ruta relativa tanto remota como local; y la segunda es la última versión disponible.
Veamoslo con un ejemplo que va a ser más fácil de entender. Suponiendo que mi programa consiste de los siguientes archivos:

C:\Mi Programa\EjecutablePrincipal.exe
C:\Mi Programa\una_carpeta\OtroArchivo.dll
C:\Mi Programa\otro path con espacio\Lala.dll

En el servidor de actualizaciones tendríamos:

http://miservidor.algo/actualizaciones.txt
http://miservidor.algo/EjecutablePrincipal.exe
http://miservidor.algo/una_carpeta/OtroArchivo.dll
http://miservidor.algo/otro path con espacio/Lala.dll

(más…)

Octubre 22, 2009

Pimp my Visual Studio / Enchúlame el Visual Studio

Archivado en: Boludeces, Desarrollo, Herramientas — Etiquetas: — Matías @ 12:34 pm

Levante la mano aquel que todavía no se cansó de ese fondo blanco con letras negras y colores apagados con el que Visual Studio nos tiene acostumbrados desde tiempos inmemoriales. O si sos uno de esos que ya no aguanta más tener los ojos en compota cada vez que te quedas hasta tarde programando, donde la única fuente de luz es la brillante pantalla de tu notebook o desktop; o si simplemente mirabas Pimp My Ride y te gusta llevarlo a cada extremo de tu vida, hoy tengo la solución para ustedes, y no involucra ningún ¡llame ya!.

Ragnarok Grey

Ragnarok Grey

(más…)

Octubre 20, 2009

Actualizador (1era Parte)

Archivado en: .Net, C#, Desarrollo — Etiquetas:, — Matías @ 10:17 am

Buenas,

Esta es la primera parte de una serie de artículos en los que voy a mostrarles como hacer su propio Actualizador para utilizar en sus programas. Todavía no he decidido de cuantas partes va a constar, porque en realidad no he planificado nada, así que si después terminan siendo solo dos, ¡quedan avisados de antemano!.

Comencemos

Por lo general, siempre que creamos un programa y lo liberamos al público, vemos al (poco) tiempo la necesidad de hacerle algunos retoques ya sea por la aparición de bugs (si, si, aparecen de la nada, no es que estaban y los pasamos por alto, jajaja) que nos reportan nuestros usuarios o porque queremos agregarle nuevas funcionalidades. Sea por lo que sea, una parte importante para mantener un software estable es la capacidad del mismo para informar la existencia de nuevas versiones o mejor aún, auto actualizarse simplificándole la vida al usuario.

(más…)

Octubre 19, 2009

IDataPayasadas: Trabajando con Interfaces

Archivado en: C# — Etiquetas:, — pabloide86 @ 9:00 am

Buenas amigos! Hoy vamos a hablar un poquito sobre el uso de interfaces. ¿Qué son? ¿Para qué sirven? ¿Cómo usarlas? Éstas son algunas de las interrogantes que intentaremos responder.

¿Qué son?

Las interfaces son un conjunto de miembros abstractos (es decir, que no proveen una implementación por defecto) definidos bajo un nombre. Dichos miembros pueden ser por ejemplo métodos.

¿Para qué sirven?

Las interfaces expresan un protocolo o un comportamiento que las clases o estructuras deben implementar. Podemos pensarlo como un contrato que aceptan las clases si quieren implementar ese protocolo.

¿Cómo se usan?

Veamos un ejemplo para aclarar el panorama. Supongamos que tenemos la siguiente interface:

(más…)

Septiembre 15, 2009

Hack Reporting Services 2005 y la división por cero

Archivado en: Reporting Services — Etiquetas:, , , — pabloide86 @ 9:14 am

Buenas amigos… me he encontrado con este problemita de la división por cero en Reporting Services 2005.

Lo primero que pensé fue en hacer algo como esto:

=IIF(Fields!Numerador.Value <> 0, (Fields!Numerador.Value) / (Fields!Denominador.Value), 0)

Pero resulta que el IIF siempre ejecuta tanto la expresión de la parte verdadera como la expresión de la parte falsa y por eso siempre va a devolver #Error.

Ahora bien, una pequeña chanchada que podemos hacer para evitar ésto es:

=IIF(Fields!Numerador.Value <>  0, (Fields!Numerador.Value) / (IIF(Fields!Denominador.Value <> 0, Fields!Denominador.Value  0, 1), 0)

Qué fue lo que hicimos? Simplemente engañamos al IIF cuando el denominador es 0. Cuando eso ocurre de todas formas el primer IIF va a devolver 0 pero ya la expresion (Fields!Numerador.Value) / (Fields!Denominador.Value) no va a dar #Error ya que estaríamos dividiendo por 1 y no por 0.

No es lo mejor ni lo mas óptimo, pero remitiendome a las palabras de mi amigo Carlos A.:
“Primero que funcione, despues que funcione bien, y por último que funcione como uno quiere.”

Salutes!

Septiembre 11, 2009

Recuperar el QueryString en un WebPart de SharePoint

Archivado en: ASP.NET, C#, SharePoint — Etiquetas:, , , — pabloide86 @ 4:01 pm

Para recuperar un parametro del QueryString en un WebPart de SharePoint:

Supongamos que queremos recuperar el valor de tipo int del Parametro IdProyecto en el QueryString:

using System.Web;
.
.
.

int idProyecto = Convert.ToInt32(HttpContext.Current.Params["IdProyecto"]);

Espero que les sirva. Saludos!

Parámetros Multivalor con Reporting Services 2005 y ASP.NET ReportViewer

Archivado en: .Net, ASP.NET, C#, Reporting Services — Etiquetas:, , , — pabloide86 @ 3:21 pm

Buenasss como les va? Esta vez me trae por aquí este tema de los reportes. Resulta que me han pedido que haga un reporte donde pueda filtrar los valores a mostrar en el reporte pero desde el Report Viewer en una página Aspx…

Empecemos por el reporte. Supongamos que tenemos un reporte que debe mostrar un listado de proyectos y quiero elegir cuales mostrar y cuales no.

(más…)

Junio 4, 2009

Obtener WorkItems de TFS mediante código C#

Archivado en: .Net, TFS — Etiquetas:, — pabloide86 @ 12:53 pm

Recientemente me tocó armar una pequeña aplicación que debía tomar desde el repositorio de Team Foundation Server los items de trabajo de todos los proyectos asignados a mí, que no hayan sido completados o eliminados.

(más…)

Octubre 28, 2008

Assembla 2.0: Nuevos planes

Archivado en: Desarrollo, Herramientas — Etiquetas:, , — pabloide86 @ 10:35 pm

Buenas gentes como va? Hace unos días nos enteramos de una nueva version de este sitio para hostear proyectos.

Lamentablemente para nosotros va a haber cambios en las suscripciones y no van a dar mas soporte a espacios privados en forma gratuita. Para los proyectos publicos (como los Open Source) van a seguir ofreciendo soporte gratuito con las mismas herramientas. Y para los que ya poseen planes comerciales van a actualizar los planes que supuestamente son mucho mas flexibles.

El motivo que nos brindan es que debido a la creciente popularidad del servicio (que por cierto consideramos que es excelente!) hace que no den a basto con la demanda.

Esto nos lleva a empezar a analizar otras posibilidades para hostear nuestros proyectos personales y en otras herramientas de colaboración y seguramente vamos a estar compartiendo con ustedes cuales son las opciones que encontramos.

Por el momento el que mas se acerca en funcionalidades y facilidad de uso es http://www.bitbucket.org/

La mayor diferencia que tiene con Assembla es que BitBucket trabaja solo con Mercurial mientras que Assembla nos permite elegir entre SVN, Git, Mercurial e incluso un servidor externo de SVN.

Hasta la próxima!

Agosto 26, 2008

Bug gráfico: TabControl dentro de un SplitContainer

Archivado en: .Net, C#, Desarrollo — Etiquetas:, , — Matías @ 1:54 pm

Hola,

Como recordarán, o no, en un artículo pasado nos ocupamos de solucionar el parpadeo molesto de los ListView, pero lo que nos convoca hoy, es la necesidad de solucionar otro pequeño, aunque también molesto, bug gráfico que incluye el TabControl … bug que se encuentra reportado desde la versión 2005 (al menos), pero que aún no se ha solucionado en la 2008.

(más…)

Entradas más antiguas »

Blog de WordPress.com.