martes, 16 de octubre de 2012

TempData y ViewData en MVC2

Cuando uno lleva mucho tiempo trabajando con el clásico paradigma de N capas planteado al estilo .NET y trata de ir al mundo del MVC (también de .NET) se encuentra con que las clásicas variables de sesión son poco usadas y en su lugar se usan TempData y ViewData. Aunque en un principio los nombres son algo descriptivos, estos mismos también son confusos, por lo que me han dado más de un dolo de cabeza al querer usarlo y más al tratar de entenderlos.
Antes de pasar a explicar el funcionamiento de cada uno de estos debo aclara que Session aún existe, ahora paso a la explicación.

TempData, ViewData y Session funcionan igual en lo que se refiere a la forma de guardar información, todo son pares key - value.
TempData guarda la información solo durante el Request actual y el siguiente, muy útil cuando necesitas pasar data en redirecciones a páginas de error.
ViewData guarda la información solo durante un Request, más específicamente durante el camino Vista - Controlador (y viceversa), muy útil para mostrar mensajes de confirmación.
Session sigue trabajando igual, guarda datos que están disponibles durante toda la sesión de cliente.


Saludos,
Giank

lunes, 15 de octubre de 2012

LinQ To SQL y los archivos dbml

Linq To Sql es un ORM ligero, con soporte para Linq (Tecnologia .NET) integrado. Un ORM es un componente de software que se encarga de hacer el mapeo de una BD relacional a clases/objetos.
Como en todo trabajo con .NET existe una herramienta visual para hacer este trabajo y es realmente útil, en unos minutos podemos tener toda nuestra BD, relaciones incluidas, mapeada en nuestro sistema sin mayor esfuerzo.
Los pasos para trabajar con LinQ to SQL son simples:
  • Se agrega al proyecto un archivo de clases de LinQ to SQL, extension dbml. 
  • En el explorador de servidores realizamos un conexión a la BD de nuestro sistema. 
  • Agregamos todas las tablas que necesitemos de nuestra al archivo dbml, esto se hace solo "jalando" las tablas al archivo. 
  • Nombramos nuestras tablas con los nombres que queramos que tengan las clases en nuestro sistema. 
  • y listo! 
Hecho esto ya tenemos mapeadas todas las tablas de BD que necesitemos para trabajar y gracias al poder de LinQ podemos hacer inserciones, modificaciones y eliminaciones de manera rápida y sin generar un solo caracter en Transact-SQL.

Saludos,
Giank

ActionLink a otro controlador

Siempre hay cosas nuevas que aprender y hoy he aprendido mucho de MVC2. Entre todo mi trajín del día, haciendo el proyecto de DSD, me topé con la necesidad de llamar a un controlador diferente al que manejaba una vista determinada. Busque un rato entre las sobrecargas del método ActionLink, pero no encontré nada que calzara al 100% con mi necesidad, al final me aventuré por un constructor con 5 parámetros y como no tenia idea de que pasarle al último le di un null.. y ¡ohh sorpresa!, funcionó; se hizo una llamada a un controlador diferente al asociado con la vista en la que trabajaba en ese momento. El constructor es este:

Html.ActionLink("TextoDelLink", "NombreDelAction", "NombreDelControlador", new { NombreParametro1 = Valor1, NombreParametro2 = Valor2, etc, etc }, null)

Como "bonus track" para este post, agrego que este método no reconoce entre sobrecargas de métodos en el controlador al que se llame.

Saludos,
Giank

miércoles, 7 de marzo de 2012

Mi nuevo Razer Onza Tournament Edition


Debido a la mala experiencia con mi experimento iPod-joypad me quedé con las ganas de jugar con un buen joypad, así que me puse en busca de uno. Al principio pensé en solo comprar un conector para mandos de PS2 a PC, pero conforme iba leyendo reseñas y opiniones me convencía de que no era buena idea. Al final, por pura casualidad, recordé que, según los conocedores, el mejor mando del mercado es el del Xbox 360 y ya que es un mando inalámbrico me gusto mucho la idea.

Cuando ya tenía decidido en donde comparar mi futuro mando Microsoft de Xbox 360 para PC, me encontré con el motivo de este post, mi actual Razer Onza Tournament Edition. Fue pura casualidad aunque yo lo llamaría destino. Estaba viendo los anuncios de venta nuevamente y vi que al final de la lista alguien vendía un gamepad Razer; la marca me sonó al instante, sé que Razer hace muy buen hardware y que se especializa en pro gaming lo que llamo mi atención. Hice un par de preguntas al vendedor, leí reviews en internet y me convencí que ese era el mando que quería.

Hecha la compra regresé a mi casa emocionadísimo, instalé Gears Of War, conecté el mando y a jugar se ha dicho!.

No tengo nada malo que decir del joypad, su desempeño es optimo, su peso, sus botones,  sus joysticks, su retro iluminación, su velocidad de respuesta y sus botones configurables, todo es genial. Si algo malo tendría que decir, es que el cable que lo conecta a la PC es demasiado rígido y por momentos hace incomodo moverlo para conectarlo.



Saludos,
GNK.

martes, 6 de marzo de 2012

WifiPad + iPod + Pc = Retrogaming - Resultado



En mi cabeza la idea de utilizar mi iPod como joypad para mi PC y poder jugar viejojuegos de SNES o PSONE parecía buena, pero la verdad fue otra. Puede conectar el iPod a la PC, pude abrir los emuladores y correr los juegos, pero el look and feel es totalmente distinto; además que la funcionalidad de un iPod como joypad no es ni mínimamente parecida a uno de verdad. Es difícil mantener apretado 2 botones a la vez y más difícil aún saber si de verdad los estas apretando a la vez, la distribución de los mismos no es igual, no se tiene a la mano los famosos R y L, y principalmente el "feeling" de tener un joypad real en mano se extraña.

Todo este tema del iPod-joypad despertó mis ganas de jugar nuevamente y decidí buscar algunos de mis no tan antiguos juegos, he comprado un muy buen joypad, pero cual es y que tal me va es tema de otra entrada.

Saludos,
GNK.

lunes, 27 de febrero de 2012

WifiPad + iPod + Pc = Retrogaming

Hoy sin querer se me ha ocurrido un nuevo "proyecto" muy geek. Me he dedicado a los vídeo juegos desde muy pequeño, comencé con un snes y pronto salté al PC donde finalmente me quedé, pero realmente nunca deje de jugar juegos de consolas. Siempre me conseguía emuladores nuevos y roms nuevas también, así me mantenía actualizado de todo lo último en vídeo juegos sin gastar en consolas nuevas.

Por simple curiosidad compré, en una página de oferta por cupones, un cable HDMI para conectar mi portátil a la TV y como caída del cielo encontré una app que podía transformar mi iPod en un joypad, se llama WifiPad. Al principio no me di cuenta, solo vi los dos sucesos por separado, pero en un toque de iluminación se me ocurrió: Con el nuevo cable puedo conectar mi portátil, corriendo algún emulador, a la TV; luego sincronizar mi iPod, corriendo WifiPad con el portátil; correr alguno de mis emuladores y voila! una "consola" retro a la orden y lista para jugar.

Llegando a mi casa pondré manos a la obra para que tal me va con el experimento, deséenme suerte que me hace muchísima ilusión.


Saludos,
GNK.

martes, 3 de enero de 2012

Jailbreak iOS 5.0.1, hecho.

Desde que compré mi iPod,  he seguido detenidamente las noticias sobre el Jailbreak para la última versión de OS de la manzanita. Empecé a buscar en blogs y foros sobre el tema hasta que caí en el blog de Pod2G, quien se encontraba en pleno desarrollo del Jailbreak. Durante un par de semanas seguí asiduamente su blog esperando noticias positivas sobre el desarrollo, hasta que avisó el traspaso del desarrollo al Dev Team. Luego del traspaso deje de seguirle la huella al estado del Jailbreak y grande fue mi sorpresa al ver en blog geek que el Jailbreak ya había sido liberado. Decidí esperar un tiempo a ver si causaba problemas, pero como no encontré nada grave, me anime. El proceso fue limpio y rápido, totalmente diferente al primero que hice un año atrás donde todo fue fallos y hasta tuve que restaurar el iPod de mi amigo. Por el momento solo he descargado modificaciones visuales y controles extra y no me ha dado ningún problema. Mi recomendación es que liberen sus iCosas ya mismo.

P.d: El Jailbreak no funciona con dispositivos con procesadores A5 (iPhone 4S e iPad2)

Saludos,
GNK