ASP.NET MVC y NHibernate (Partes 1 y 2)

Posted in Aplicaciones, ASP.NET, Tutorial on noviembre 3, 2009 by César Intriago

Tengo publicados dos artículos sobre cómo empezar a trabajar con NHibernate y ASP.NET MVC, puede leerlos desde el sitio de ForerunnerG34:

Espero les sirva de ayuda para las personas que recién están empezando con NHibernate"!

Bienvenido Forerunner-G34

Posted in ASP.NET, Noticias, WPF on octubre 30, 2009 by César Intriago

forerunenrG34

Mi nuevo blog sobre ASP.NET y WPF (and it’s Green):
[ http://forerunnerg34.wordpress.com ]

Forzar comentarios en SVN

Posted in Tutorial on octubre 15, 2009 by César Intriago

Continuando con los temas relacionados a SubVersion, encontré este script para marcar como requeridos los comentarios antes de hacer commit de los cambios en el SVN. Esta es la forma de habilitar esta función usando Visual SVN Server:

Habiendo seleccionado un repositorio, seleccione “Propiedades” del menú contextual (click derecho sobre el repositorio):

image

De la ventana propiedades seleccione la pestaña “Hooks”, luego “Pre-commit hook” y clic en “Edit…”

image

Finalmente copie y pegue el siguiente script y guarde todos los cambios.

@echo off
::
:: Stops commits that have empty log messages.
::
@echo off
setlocal
rem Subversion sends through the path to the repository and transaction id
set REPOS=%1
set TXN=%2
rem check for an empty log message
svnlook log %REPOS% -t %TXN% | findstr . > nul
if %errorlevel% gtr 0 (goto err) else exit 0
:err
echo. 1>&2
echo Su commit ha sido bloqueado porque no ingresó ningún comentario. 1>&2
echo Por favor escriba un comentario describiendo el propósito de sus cambios y 1>&2
echo luego intente realizar nuevamente un commit. — Gracias 1>&2
echo. 1>&2
echo — Si no tienes nada que comentar, entonces probablemente no tienes nada que hacer commit.–  1>&2

exit 1

Ahora cuando se intente guardar cambios o nuevo contenido sin ingresar comentarios, SVN bloqueará el proceso de commit:

image

KDE 4.3 parece Snow Leopard mezclado con Windows 7

Posted in Opinion on octubre 15, 2009 by César Intriago

Esto no tiene nada que ver ni con .Net, ni Apple ni Microsoft, es solo que se me viene a la mente que el nuevo KDE 4.3 y su tema “Plasma” es la fusión de Snow Leopard y Windows 7.

 

kde430-desktop

Usando SVN

Posted in Aplicaciones, Tutorial on octubre 15, 2009 by César Intriago

 

En un post anterior comentaba sobre herramientas para control de código fuente, y entre ellas estaba probando Subversion (SVN) la cuál explicaré ahora un poco mas a detalle:

Herramientas

Subversion (de ahora en adelante SVN) es una herramienta para  el control de código fuente, independiente de la tecnología de desarrollo o IDE. Para la administración del servidor y cliente se usa principalmente la línea de comandos, pero también existe herramientas visuales tanto para el lado del servidor como del cliente que nos facilitan en el trabajo:

  • VisualSVN: Permite configurar y administrar de forma simple y rápida el servidor.
  • TortoiseSVN: Excelente herramienta de cliente para SVN, se integra con el shell de Windows.
  • Desde luego que también necesitamos descargar e instalar Subversion.

Repositorios

SVN permite crear varios repositorios, por ejemplo podemos tener dos:

  • DevTeam”: Donde se almacena la línea principal de desarrollo de nuestras aplicaciones.
  • Sandbox”: Repositorio personal donde puedo subir cosas personales de prueba o de investigación.

Usando VisualSVN también podemos configruar el servidor para que soporte comunicación segura via el protocolo Https, y la autenticación y autorización integrada a un servidor LDAP, por lo que podemos usar nuestras credenciales del red para entrar al servidor.

 

Proyectos y su organización

Los proyectos de desarrollo se crean dentro de los Repositorios, normalmente cada proyecto nuevo tiene la siguiente estructura inicial: branches, tags y trunk, que son simplemente carpetas que nos ayudan a organizar el proyecto y se recomienda que todos tengan esa estructura:

 

Trunk

Dentro de esta carpeta se almacena todo el código del proyecto, el que está constantemente siendo modificado por el equipo de desarrollo.

Branches

Permite tener ramificaciones del proyecto, por ejemplo: si tenemos una primera versión de la aplicación lista para que sea probada crearíamos un branch llamando “Certificacion-1.0” con una copia del contenido del “trunk”. En este punto tendríamos dos líneas de desarrollo: el “trunk” donde se seguirían agregando nuevas funcionalidades y el branch “Certificacion-1.0” donde se daría soporte a la primera versión del producto, como la corrección de bugs. SVN nos permite sincronizar el trunk con cualquier branch y viceversa, de al forma que si se detecta un bug en el branch “Certificacion-1.0”´ el código que lo corrige (llamando ChangeSet) se lo puede fusionar al trunk principal. Una vez que se finalice el proceso de pruebas se puede reintegrar todo el branch al trunk para fusionar los cambios.

TIP: No es bueno esperar al último momento para fusionar las dos ramas ya que se podrían dar grandes conflictos, es mejor hacerlo con anticipación, cada cierto tiempo y por grupos para evitar problemas en el futuro.

Tags

Esta carpeta nos permite representar estados del proyecto que están listos para ser entregados, por ejemplo: “Version-1.0”, “Version-1.1”, “Version-2.0”. Siguiendo el ejemplo anterior: luego de corregir todos los incidentes del branch “Certificacion-1.0” crearíamos un Tag  nuevo llamado “Version-1.0” con el contenido del branch y, posteriormente borraríamos el branch “Certificacion-1.0”.

 

Ignorar archivos y carpetas

SVN puede ser configurado para no incluir en el repositorio los archivos o carpetas que le especifiquemos, para esto se usan propiedades que se configuran en el lado del cliente. Estas propiedades pueden ser exportadas para que otro cliente las aplique.

image

IMPORTANTE: Si un archivo ya fue subido al servidor, y luego se lo agrega en la lista de elementos que se deben ignorar, SVN no hará caso a esa propiedad ya que tienen prioridad los elementos que ya están bajo el control de código fuente, es decir SVN seguirá versionando el archivo.

 

TortoiseSVN

TortoiseSVN es una herramienta muy buena que se integra al shell de Windows y permite interactuar con el repositorio, nos permite entre otras cosas:

  1. Crear proyectos en el repositorio
  2. Importar contenido
  3. Actualizar contenido
  4. Agregar propiedades
  5. Crear branches y tags
  6. Comparar versiones
  7. Resolver conflictos entre archivos
  8. Deshacer cambios

Control de Código Fuente

Posted in Opinion on octubre 15, 2009 by César Intriago

 

El control de código fuente es un tema importante durante el desarrollo de software, ya que nos permite primero que nada respaldar nuestro trabajo en un servidor central, y adicionalmente otros usuarios pueden trabajar sobre dichos archivos. En el caso de un daño grave de la computadora donde trabajamos no perderíamos algo tan valioso como el código que se hemos generado.

Existen algunos herramientas para control de código fuente, probablemente conozcan de Source Safe de Microsoft, que fue descontinuada luego de la versión 2005 para convertirse en Team Foundation. En todo caso esa herramienta está fuertemente ligada al trabajo con el IDE de Visual Studio. En un ambiente multidisciplinario por ejemplo donde se trabajan con mas de un IDE o algunas veces sin ninguno, talvez SourceSafe no cumpla con todos los requerimientos.

Otro punto importante sobre el control de código fuente es la actualización concurrente de archivos, en SourceSafe existe el mecanismo de:

Lock –> Update –> Unlock

Lo que significa que para poder cambiar un archivo, primero se aplica un bloqueo sobre el mismo en el lado del servidor, luego el usuario puede cambiar el archivo, y finalmente cuando lo sube al servidor, este es desbloquedo. Esto tiene la principal característica de que cuando un usuario A está trabajando sobre un archivo F, un usuario B no podrá cambiar ese archivo hasta que el usuario A lo desbloquee. Es decir la edición de archivos es secuencial, en lo personal pienso que este trae mas molestias que ventajas ya que se pierde tiempo esperando que otro usuario desbloquee el archivo para poder seguir trabajando.

Otros tipos de soluciones como SVN (Subversion) siguen un modelo:

Copy–> Update  -> Merge

En SVN cuando un usuario hace un “checkout” de un archivo, éste no queda bloqueado en el servidor, -de tal forma que otro usuario puede hacer lo mismo-, luego de realizar los cambios y querer subirlos al servidor SVN compara la copia local (working copy) con el contenido del servidor, si el contenido original no cambió mientras se modificaba el archivo, éste es copiado al servidor, caso contrario: si mientras estábamos editando el archivo, otro usuario alteró también el contenido, se realiza un proceso de MERGE (fusión) del contenido de ambas versiones, en el caso de que exista algún conflicto que SVN no pueda resolver, se le presenta al usuario las herramientas para comparar ambas versiones y solucionar los conflictos manualmente. Adicionalmente SVN lleva un número de revisón del proyecto, lo que nos permite conocer si tenemos o no la última versión del proyecto en nuestra carpeta local.

SVN es ampliamente usado a nivel mundial, gratuito y existen varios clientes para poder trabajar con este servidor, antes había usado esta herramienta, y actualmente estoy probando la versión oficial de SVN.

Mayor información:

Sitio oficial de SVN: http://subversion.tigris.org/

Un pequeño paraiso llamado Mindo. En Ecuador!!

Posted in Opinion on octubre 14, 2009 by César Intriago

 

Este fin de semana fue excelente, pasamos dos días en Mindo haciendo deportes de aventura. Aquí les dejo unas pocas fotos que tomé de los lugares que visitamos:

P1000505 P1000517 P1000518

P1000508

P1000519 P1000594

P1000577

P1000583

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.