Archive for the Aplicaciones Category

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"!

Anuncios

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

Un “Tail” en WPF

Posted in Aplicaciones, WPF on septiembre 10, 2009 by César Intriago

 Estoy preparando un nuevo proyecto que permite hacer un “tail -f” de archivos de texto, hay algunas soluciones ya existentes pero me llamó la antención hacer una propia usando WPF, desde luego el código fuente estará disponible pero en esta ocasión planeo subirla a CodePlex para ver como me va!, UPDATE: EL código fuente será subido en SkyDrive como el resto de aplicaciones para evitar tener repartidos los proeyctos en varios lugares. Será en otra ocasión CodePlex!!

Les dejo un adelanto de la IU:

 

image

[ Ventana Principal ]

 

image

[ Creación de Keywords ]

 

image

[ Lista de Keywords ]

 

image

image

[ Tailing de un archivo de texto ]

Sandcastle, genera y presenta la documentación XML de tu código.

Posted in Aplicaciones, Microsoft on abril 27, 2009 by César Intriago

 

sandcastlelogo_jpg En estos días he estado trabajando parcialmente en un proyecto de desarrollo de una API para un CMS, de tal forma que podamos extender y automatizar ciertas funcionalidades desde aplicaciones .Net como ASP.NET, Silverlight o Windows Client.

Como una forma de ayudarme a organizar el código y a cualquiera que use mi código, agregué comentarios XML a mis clases en C#, tratando de poner la descripción de los métodos al estilo de las clases de .Net. Esta interesante característica de documentación ofrece ayuda contextual en línea cuando alguien usa un método dentro de Visual Studio  (a manera de tool tips). El compilador de C# es capaz de extraer estos comentarios y generar un archivo XML usado por Visual Studio, pero también puede ser usado por otras aplicaciones como el caso de Sandcastle que se encarga de leer este tipo de archivos XML y aplicar reflexión al proyecto relacionado para extraer metadatos adicionales para generar una documentación completa al estilo MSDN.

Sandcastle es de Microsoft, gratis y de código abierto, pueden descargarlo desde el sitio en CodePlex. Adicionalmente les recomiendo descargar el Sandcastle Help File Builder que es la interfaz gráfica para la aplicación Sandcastle. Su forma de uso es simple y al estilo del extrañado NDoc, les dejo algunas capturas de pantalla de esta herramienta y cómo se ve la documentación generada:

sc1 sc2 Imagen 1

¿Problemas al instalar SQL Server 2008 ?

Posted in Aplicaciones, Errores, Microsoft, Tutorial on abril 4, 2009 by César Intriago

El día de hoy descargué la versión Express de SQL Server 2008, pero al momento de la instalación esta terminaba con un error, el link de soporte indicaba que debía remover el SQL Native Client e intentarlo nuevamente, así que fui a la ventana de “Agregar o Quitar Programas” lo removí, intenté nuevamente la instalación y… error otra vez, el mismo mensaje. Hmmm.. dando una vistazo al LOG de instalación, este indicaba que el problema estaba realmente en el componente MSXML 6, regresé a “Agregar o Quitar Programas” para intentar remover el MSXML6 SP2, pero recibía otro mensaje de error que imposibilitaba quitarlo.

Buscando un poco por Internet, encontré la solución, resulta que con Windows XP Sp3 el SMXML6 SP2 se bloquea y no se puede remover, cuando SQL Server 2008 intenta instalar la versión anterior incluida en el instalador, se genera el error descrito anteriormente. La solución fue descargar “Windows Installer Clean Up” y remover el MSXML SP2, luego volver a instalar SQL Server 2008 y listo, la instalación fue exitosa.

Si tienen un ambiente con Windows XP SP3 y están con problemas similares de instalación de SQL Server 2008, prueben lo que les cuento, les podría solucionar su problema.

Tutorial Gráfico Silverlight: Consumiendo Servicios

Posted in Aplicaciones, ASP.NET, Blend, Microsoft, Silverlight, Tutorial, WPF on marzo 23, 2009 by César Intriago

 

En este tutorial veremos algunas cómo desarrollar un servicio sencillo y consumirlo desde una aplicación Silverlight 2, además usaremos el control DataGrid y el Popup control.

En el siguiente tutorial se mostrarán los pasos generales e importantes para crear un servicio WCF, crear una aplicación Silverlight 2 y consumir el servicio. Al final se provee un enlace al proyecto con el código fuente para que se lo descarguen y lo revisen a mayor detalle.

Requisitos:

  • Visual Studio 2008 SP1
  • Expression Blend 2
  • Silverlight Tools para Visual Studio 2008
  • Soliverlight Toolkit Marzo 2009

 

Paso 1: Crear un Servicio para Silverlight

Partiendo de una solución vacía, creamos un nuevo proyecto tipo ASP.NET Web Service, borramos el servicio que VS2008 crea de forma automática y agregamos un nuevo elemento tipo “Silverlight-enabled WCF Service” que llamaremos SimpleService.svc como se ve en la siguiente  figura:

Imagen 2

Esto creará la siguiente plantilla para escribir nuestro servicio:

Imagen 1

Nuestro leerá datos de un archivo XML y tendrá dos métodos, uno que retorne la lista completa de usuarios y otro que retorne un usuario en particular.

Al proyecto agregamos un nuevo archivo XML con los siguientes datos:

Imagen 3

Y luego creamos una nueva clase para representar cada usuario:

Imagen 4

Finalmente, escribimos el código complete del servicio:

Imagen 7

Ejecutamos el proyecto y se nos deberá presentar la siguiente pantalla indicando que nuestro servicio está levantado.

Imagen 5

 

Paso 2: Crear una nueva aplicación Silverlight

Agregamos un nuevo proyecto a la solución, de tipo “Silverlight Application” a la que llamaremos MySilverlightApp.

Imagen 8 

El asistente de VS2008 nos preguntará si deseamos crear una aplicación Web para hospedar y probar nuestra aplicación y presionamos OK:

Imagen 9

Hasta este punto nuestra solución se verá algo así:

Imagen 10

Usando Blend 2 o VS008 editamos el archivo Page.xaml para crear la interfaz gráfica de nuestra aplicación que estará formada por una caja de texto, dos botones y un Grid (Disponible en el Silverlight Toolkit Mazo 2009)

Imagen 12 

Desde VS2008 procedemos a enlazar los eventos Click de ambos botones al código en C#, esto se hace de forma sencilla desde VS2008:

Imagen 13

 

Paso 3: Consumir el Servicio

Lo siguiente será agregar una referencia al servicio y escribir el código para consultar los datos. Para agregar la referencia al servicio damos clic derecho sobre la solución y seleccionamos “Add Service Reference”, del cuadro de dialogo seleccionamos nuestro servicio y presionamos aceptar:

Imagen 6

Algo interesante es que en Silverlight todos los servicios son asincrónicos, de tal forma que en nuestro código tendremos que manejar los eventos de cuando se termine de ejecutar una operación, El código fuente de page.xaml.cs quedaría así:

Imagen 100 

Ejecutamos nuestra aplicación y se verá algo así:

Imagen 15

Pero al presionar el botón “Find All” recibiremos una EXCEPCION al tratar de conectar con el servicio Web:

Imagen 14

Esta se debe a un tema de seguridad de comunicación entre dominios, la forma de resolver esto es muy simple, se agrega un archivo XML en la raíz del servicio Web con las políticas de acceso para los clientes, el archivo se llama clientaccesspolicy.xml y tendrá el siguiente contenido:

Imagen 17

Volvemos a probar nuestra aplicación y listo:

Imagen 16

Hemos creado una aplicación en Silverlight que consume un servicio WCF y hemos configurado las políticas de acceso del cliente al servicio.

 

El proyecto completo lo pueden descargar desde aquí.

WPF: Catálogo de juegos para Xbox360

Posted in Aplicaciones, Blend, WPF on enero 5, 2009 by César Intriago

Investigando un poco sobre temas de WPF, en especial sobre el uso de Viewport encontré este enlace sobre un panel que permite hospedar elementos en 3D escrito por Josh Smith. Esta librería consiste de una clase personalizada derivada de "Panel" y de un Viewport; permite por ejemplo colocar los ítems de un Listbox en un ambiente 3D. Me puse a jugar con esta librería y terminé con esta pequeña aplicación que pueden descargar junto con el código, se trata de un catálogo de juegos para Xbox360 (los de PS3 pueden modificarlo a su gusto).

x360GameCatalogScreenshot 

Descarga + Código Fuente.

* La verdad no modifiqué el título de la ventana (Window1), el scrollbar y el botón, de todas formas son muy fáciles de personalizar 🙂 si desean hacerlo.

Esta librería me parece muy buena, y no es complicada de usar. Como podrán ver el poder de WPF es muy grande y las posibilidades de lo que se puede hacer con esta tecnología son muchas, así que manos a las obras y a empezar a usar WPF en el desarrollo de aplicaciones de negocio.

Chao.