Archivo de la etiqueta: asp.net

Primeros pasos con ASP.net vNext

Desde hace pocas horas podemos acceder al código de las primeras demos de ASP.net vNext. En este artículo veremos cómo configurar nuestro entorno para usar kvm y además veremos qué trae el código de pruebas.

KVM y KRE

Uno de los grandes cambios a partir de esta versión es que ya no hablamos de un único .NET framework, sino de múltiples versiones que existen de manera concurrente (como ocurre con los paquetes de nuget) y para la gestión de estas versiones tenemos el K Version manager que gestionará la K Runtime Environment, que es lo primero que debemos obtener.

Para su instalación necesitamos clonar el repositorio que aloja la solución en github:

git clone https://github.com/aspnet/home.git

Una vez descargado, el siguiente paso es ejecutar kvmsetup.cmd para agregar kvm a nuestro path. Para finalizar esta fase, necesitamos obtener la versión del KRE con la que vamos a trabajar, en este caso la 0.1 alpha.

kvm install 0.1-alpha-build-0421

Al finalizar contaremos con los siguientes ficheros:

Capture_alpha

Descargando el código de ejemplo

Ya con todo listo para empezar a “cacharrear” podemos obtener el código del bugtracker:

git clone https://github.com/aspnet/BugTracker.git

Y justo a continuación movernos a la rama “dev”, que es la más actualizada.

git checkout dev
git pull origin dev

Una vez descargado, el siguiente paso es ejecutar el comando kpm restore desde la carpeta \src\BugTracker para que configure nuestro entorno. Este comando descargará los componentes de .NET y las librerías de terceros que necesite nuestra aplicación:

Capture_restore

Estos requisitos vienen definidos en un nuevo fichero, llamado project.json, que incluye por una parte dependencias, acciones permitidas, y configuraciones soportadas. Hasta ahora esta información solamente la encontrábamos o bien en el proyecto, o en fichero packages.config de nuget, pero ahora se unifican.

Una vez que el proceso de “restore” finalice, tenemos varias opciones para arrancar la solución, en mi caso he optado por arrancar un IIS Express mediante el comando Helios.cmd, y he aquí el resultado:

Capture_hosting

Cosas que han cambiado

Además de la gestión de dependencias, tenemos más novedades, si echamos un vistazo a la carpeta src, como que no encontramos fichero Global.asax, y que el fichero Startup.cs contiene toda la información de inicialización (que estamos acostumbrados si hemos trabajado con SignalR o Web API).

Tanto si ejecutamos la app como aplicación web como aplicación de consola usando el código de Program.cs, ambos buscarán la configuración en el fichero Startup.cs, el primero por convención y el segundo por la línea services.GetService()

Otro gran cambio, que empezó con SignalR y Web API, es que la dependencia de System.Web desaparece por completo, siendo sustituida para MVC por Microsoft.AspNet.Mvc

Conclusiones

Puede que sacar conclusiones para un primer vistazo sea algo precipitado, aunque resulta interesante el concepto y cómo se ha planteado la manera de modularizar el .net framework, y vemos cómo van tomando forma y convergiendo iniciativas como owin, katana, web api, signalR o el propio NuGet. Queda mucho por llegar…

Más información:

Anuncios

Half ToDo: Un caso de uso de ASP.net MVC4

Página principal

He de reconocer que me gustan los gestores de tareas, me imagino que será por lo mal que gestiono yo las mías. He probado muchos de los disponibles en el mercado y además quería hacer mi propia solución. Han sido varios intentos (MVCTask usando Azure, MetroTask para Windows 8, otro cliente por línea de comandos), pero creo que esta es la buena.

Las bases

La idea para desarrollar la aplicación era la siguiente:

  • Debía de ser simple
  • Debía de ser visualmente atractiva
  • Debía de resolver un problema

La idea era simple: Una práctica está dividida en varias tareas, y las tareas pueden tener dos estados, completada y sin completar. El porcentaje de terminación de una práctica está definido por el cociente entre las prácticas completadas dividido entre las prácticas totales.

Además, cada práctica estará enlazada a una persona concreta, de tal manera que yo solamente tenga acceso a las mías y no a las del resto de la gente (por aquello de la seguridad y tal).

Bajo el capó

Con esas tres premisas abrí Visual Studio y empecé un proyecto de nombre PracticasManager, ya que en un principio el proyecto va destinado a gestión de prácticas en la universidad.

Para realizar el proyecto me basé en la última versión de ASP.net MVC, la 4 que se encuentra en estos momentos en su fase de Developer Preview, ya que quería probar ciertas capacidades relativas al uso como aplicación móvil. El lenguaje de programación es C# y la interfaz para la creación de la aplicación es Razor.

El sistema ORM para el mapeo desde los objetos hasta la base de datos no podía ser otro que Entity Framework, usando el método Code-First, que permite definir nuestros objetos usando POCO (Plain Old C# object) y que las tablas de la base de datos se generen automáticamente.

La base de datos está gestionada por un SQL Server 2008 R2 que proporciona el proveedor del alojamiento.

Una cara bonita

Para la interfaz gráfica he usado Twitter Bootstrap, un conjunto de plantillas CSS y Javascript que permiten a los desarrolladores que no sabemos combinar colores que salga una interfaz decente. Finalmente la barra de progreso está creada con JQuery UI.

Detalle del listado de las tareas

También para móviles

Otra de las cosas que quería probar era el comportamiento de la aplicación en un móvil, así que usando las nuevas características de ASP.net MVC4, jQuery Mobile (y algun que otro paquete de nuget), pude implementar una interfaz básica de la aplicación para dispositivos móviles.

Detalle de la interfaz para dispositivos móviles

Alojamiento

Para el alojamiento decidí buscar algo diferente, tras probar Azure para otros proyectos (muy potente, y muy escalable, pero muy complejo para las necesidades de este proyecto) descubrí AppHarbor, un sistema de despliegue en la nube basado en Git (como Heroku, el sistema de despliegue preferido de las aplicaciones Ruby on Rails), completamente gratuito (para proyectos pequeños) y muy fácil de usar. La experiencia ha sido muy gratificante y recomiendo probarlo aunque sea con proyectos muy pequeños.

Detalle de interfaz de administración de AppHarbor

Conclusiones

Este proyecto me ha servido para poder lanzar una solución funcional para un problema concreto, así como la ocasión de probar tecnologías que no había visto hasta ahora, como JQuery Mobile, Bootstrap, el despliegue en AppHarbor entre otros.

Te animo a que la pruebes, está en una fase bastante experimental, así que puedes encontrar algún que otro fallo. Tanto si te gusta como si no, dejame un comentario y sabré qué puedo mejorar.

Enlace: Half todo en AppHarbor

Nuevo proyecto: MVCTask

Hoy he empezado mi primera contribución a CodePlex, un gestor de tareas bastante simplón, y (por el momento) monousuario, aunque personalmente me resuelve mis problemas ;).

Motivación:

Quiero una manera sencilla de gestionar mis tareas, sé que hay soluciones en el mercado muy buenas y muy completas, pero quería hacer algo para mí, y además, era una buena oportunidad para grear un proyecto en Codeplex, aprovechar el Team Foundation Server que proporciona la plataforma, y aprender más ASP.net que es el objetivo último.

Detalles:

La primera versión publicada (0.1) tiene la siguiente estructura:

Tareas

  • Descripcion
  • Detalles
  • Categoría
  • Estado

Tanto las categorías como los estados son plenamente configurables por el usuario, y cualquier crítica o características adicionales será agradecida.

La aplicación está escrita en ASP.net, y el código fuente está disponible en http://mvctask.codeplex.com/