domingo, 26 de enero de 2014

Knockoutjs: Primeros pasos


Ejemplo Hola mundo

Básicamente lo que mostrare aquí es un estracto del primer ejemplo de la pagina oficial de Knockoutj (KO desde ahora).
En este ejemplo existen 2 controles 'input' los cuales fueron enlazados a 2 variables del tipo ko.observable alojadas en un objeto javascript al cual llamaremos viewmodel (este tipo de variables será tratado en entregas posteriores). Ademas existe una tercera variable la cual es dependiente de las dos primeras, es decir, cualquier cambio en las variables "firstName" o "lastName" provocara que cambios en la variable "fullName". Como ven mas abajo les dejo el ejemplo funcionando sobre http://jsfiddle.net/ (Desde el ejemplo ustedes pueden ir a las distintas pestañas: Result,Html, Css,Javascript).


Knockoutjs: Introducción

La idea de este primer articulo es poder entregar algunas definiciones de acuerdo al contenido desde la pagina oficial de http://knockoutjs.com
Vamos a ver que nos dice la knockoutjs !!

Introducción:

knockout es una  libreria javascript que te ayuda a crear interfaces de usuario ricas junto con un modelo de datos subyacente. Cada vez que tu tienes secciones en la UI que se actualize dinamicamente (por ejemplo cambiar algo dependiendo de las acciones del usuario o cuando una fuente de datos cambia), entonces knockout (KO) te puede ayudar a implementarlo de manera simple y mantenible.

Características:
Elegante traking de dependencias: Automáticamente actualiza las partes correctas de tu interfaz de usuario cada vez que tu modelo de datos cambia.
Binding declarativo. Entrega una simple manera de conectar los elementos de tu interfaz de datos a tu modelo. Tu puedes construir elementos complejos en tu UI y fácilmente usando "binding contexts" anidados arbitrariamente.
Extensible: Implementar comportamientos personalizados como nuevos bindings declarativos para fácil reuso en solo pocas lineas de código.

Beneficios adicionales:
Libreria Javascript pura: Trabaja con cualquier servidor o tecnología al lado del cliente.
Puede ser agregada a tu aplicacion web ya existente sin requerir mayores cambios de arquitectura.
Compacta: pesa alrededor de 13kb.
Trabaja sobre cualquier navegador convencional: (IE 6+, Firefox 2+, Chrome, Safari, otros).

¿Donde comenzar?

La forma más rápida de aprender es pasar por la pagina oficial de knockout. Una vez dentro ustedes van a la sección Live examples.

Espero ir pronto con algunos ejemplo prácticos...!!!

jueves, 19 de marzo de 2009

Perfomance en ASP.NET

Algunas veces sucede que al hacer un request a una pagina X, no encontramos que estamos haciendo llamdas identicas
a la base de datos, ya sea porque tenemos distintos objetos de negocio que utilizan los
mismos proveedores de datos (DAL) o porque dentro de las misma pagina se encuentran insertos dos o más controles de usuario (ascx).
Ahora bien, una manera de optimizar nuestros tiempos de respuesta sin tener que ir a la base de datos dos o más veces es utilizar la coleccion items inserta dentro del objeto
HttpContext.Current.

Para que les quede más claro, un ejemplo escrito en VB.NET




En el codigo anterior lo primero que se hace es consultar si existe un objeto UserInfo cuya clave sea "user" & userID.toString, y en caso que no se encuentre
se hace la llamda a la base de datos y se inserta el objeto dentro de la coleccion items de tal forma que la siguiente llamada al metodo GetUserByUserId utilize
la informacion guardada en nuestra hashtable items.

El post es corto y no entra en detalles, pero creo que se entiende.

martes, 10 de febrero de 2009

Perfomance: Como recorrer un ArrayList

Alquien se ha puesto a pensar, cual es la mejor forma de iterar sobre un objeto del tipo de dato arraylist?. Las alternativas para poder iterar sobre este tipo de dato es:
  • Usar for
  • Usar un foreach
  • o un ciclo while utilizando GetEnumerator()
Para salir de esta dudita, cree tres metodos para revisar cual de ellos es el menor tiempo toma en ser ejecutado.
Aqui va el codigo,

Usando for:



Usando forEach


Usando GetEnumerator


Y mis resultados fueron:




Bueno, llego hasta aqui... saquen sus propias conclusiones :)
Saludos,

sábado, 5 de julio de 2008

Como instalar Nant en Linux

Decidido en que Nant, NUnit y CCNet deben funcionar en Linux, comencé con la instalación de Nant. En español no encontre mucho ( ¿o no supe buscar?), asi que aquí les dejo los comandos para aquellas personas que necesiten hacer correr Nant en Linux :=)
  • Crear un archivo script llamado nant en /usr/local/bin
  • Abrelo y agrega la siguiente instruccion :
       #!/bin/sh
exec mono /usr/local/nant/bin/NAnt.exe "$@
  • Se cambien los permiso del archivo.
    chmod a+x /usr/local/bin/nant
Para probar si realmente tu instalación fue un exito ejecuta el comando nant -help y deberias ver una lista con argumentos aceptados por NAnt. :)

Para el caso de NantContrib, solo debieran copiar el contenido de la carpeta bin de nantcontrib dentro de la carpeta bin de NAnt.

Espero este pequeño post te ayude :)

domingo, 20 de abril de 2008

Como crear una tarea MySql para Nant

Hola a todos, hace tiempo que no escribía, pero ahora ya estoy aquí con alguna información interesante!!!

Pero bueno, vamos al grano. Hace algunas semanas atrás intente ejecutar un pequeño script de MySql utilizando la herramienta Nant(una buena referencia de lo que es Nant la puedes encontrar aquí) . Y lo primero que hice para llegar a mi objetivo es suscribirme a la lista de nant y enviar un pequeño correo explicando mi problema, y que sonaba como esto:
"Hola a todos, necesito ayuda para correr un script de MySql utilizando Nant" (bueno el correo era algo más extenso, pero la idea se entiende ).
Lamentablemente, para mí, no logre encontrar una solución. Algunas personas de la lista me aconsejaron que utilizara la tarea sql del proyecto nantcontrib, pero no hubo caso (la respuesta del porque esta tarea no me servia es algo extensa, así que creo que la daré en un próximo articulo).
Y entonces, ¿que paso?, que me decidí a escribir mi propia tarea para MySql. =). El código es bastante sencillo y me base en el código de la tarea sql del proyecto Nantconttrib.
Si alguien quiere el código se encuentra aquí.
Una vez compilada la dll, ustedes podrán escribir archivos .build como el siguiente





Espero esto le ayude a alguna persona que se ha topado con el mismo problema que yo =)

jueves, 20 de marzo de 2008

Cómo ejecutar nuestros tests con MbUnit

A continuación les dejo las tres formas de ejecutar nuestros Test con MBUnit:

  • Mediante consola: Dentro de los archivos instalados por MbUnit se encuentra la aplicación de consola MbUnit.Cons.exe. Un ejemplo de cómo usarlo se encuentra aqui.
  • Via aplicación de Windows: Junto con la aplicación de consola, se encuentra una aplicación de Windows llamada MbUnit.GUI.exe. Para mas información de cómo utilizarla ver el siguiente post.
  • TestDriven.Net: Add-in que se integra con Visual Studio y el cual te permite ejecutar tus test dentro tu entorno de desarrollo. Esto sin necesidad de usar ninguna de las dos primeras opciones. Para más información ver mi post anterior.

Saludos,