ASP.NET en Linux usando Azure

En este post mostraré paso a paso cómo es posible preparar desde cero una máquina linux para poder ejecutar aplicaciones ASP.NET.

Para ello, haremos uso de Microsoft Azure, la cuál nos permite crear de forma rápida y sencilla nuestro servidor Linux, en este caso usaremos Ubuntu 14.04 para nuestras pruebas.

Como veréis a continuación, los pasos son prácticamente los mismos que veíamos cuando creábamos una VM con Visual Studio 2015 ya instalado:

Linux01

Seleccionamos la versión que queremos instalar:

Linux02

Establecemos la configuración de la máquina:

Linux03

y después de unos minutos, tendremos la máquina creada y accesible para seguir trabajando sobre ella.

Linux04

Linux05

Linux06

Prerequisitos

Lo primero será instalar los prerequisitos que necesitaremos para los pasos posteriores, lanzando estos comandos:

sudo apt-get install make
sudo apt-get install git autoconf libtool automake build-essential mono-devel gettext mono-complete unzip
sudo apt-get install bash zsh curl

Linux07

El siguiente paso será instalar mono, la versión 3.4.1 o superior.  En el momento de escribir este post la versión de ASP.NET disponible en linux requiere mono, pero dentro de poco verá la luz la versión Core en Linux, la cuál no tendrá dependencia de Mono.

Estos son los comandos necesarios para descargarse y compilar la versión 3.10.0:(Esta operación tardará un buen rato…)

PREFIX=/usr/local
PATH=$PREFIX/bin:$PATH
VERSION=3.10.0
wget
http://download.mono-project.com/sources/mono/mono-$VERSION.tar.bz2
tar -xjvf mono-$VERSION.tar.bz2
cd mono-$VERSION
./autogen.sh –prefix=$PREFIX
make
make install

Una vez instalado mono, tendremos que añadir al store de certificados de mono las URLs a las cuales queremos acceder por SSL.

sudo certmgr -ssl -m https://nugetgallery.blob.core.windows.net
sudo certmgr -ssl -m https://nuget.org
sudo certmgr -ssl -m https://www.myget.org/F/aspnetvnext/

Así mismo podemos configurar evitar tener problemas con certificados no seguros ejecutando el siguiente comando:

mozroots –import –sync

Antes de empezar a instalar KVM, puedes comprobar que tienes la versión adecuada de mono con el siguente comando:

mono –version

Linux13

Instalar KVM

Instalar KVM se puede hacer de forma sencilla ejecutando esta línea de comandos:

curl -SSL https://raw.githubusercontent.com/aspnet/Home/master/kvminstall.sh | sh && source ~/.kre/kvm/kvm.sh

source /home/ibon/.kre/kvm/kvm.sh

Una vez ejecutada estos comandos, ya tendremos en nuestro entorno el comando KVM, así como una runtime (KRE) por defecto.

Si queremos asegurarnos que tenemos la última versión disponible, lanzaremos este comando:

kvm upgrade

Así mismo, con kvm podremos listar todas las versiones disponibles (kvm list), instalar nuevas versiones (kvm install [version]) o establecer la versión que queremos usar (kvm use [version]) . Si ponéis simplemente “kvm” veréis todos los comandos disponibles.

Linux11

Instalar  Kestrel

sudo apt-get install npm
npm install kestrel-server

Para poder seguir adelante y ejecutar aplicaciones ASP.NET  tendremos que hacer unos pasos adicionales si no queremos ver este error:

Linux14

wget http://dist.libuv.org/dist/v1.0.0-rc1/libuv-v1.0.0-rc1.tar.gz
tar -xvf libuv-v1.0.0-rc1.tar.gz
cd libuv-v1.0.0-rc1/
./gyp_uv.py -f make -Duv_library=shared_library
make -C out
sudo cp out/Debug/lib.target/libuv.so /usr/lib/libuv.so.1.0.0-rc1
sudo ln -s libuv.so.1.0.0-rc1 /usr/lib/libuv.so.1

 

Hello World

Si queremos hacer una prueba rápida de si todo se encuentra instalado de forma adecuada lo más rápido puede ser descargarse alguno de los ejemplos que existen en el repositorio de GitHub de ASP.NET.

Una vez clonado el repositorio puedes ir a cualquiera de los ejemplos, restaurar las dependencias y lanzar la aplicación usando el comando adecuado.

git clone https://github.com/aspnet/Home.git
cd Home/samples/HelloMvc

kpm restore

k Kestrel

Linux15

Si queremos acceder a la web que estamos ejecutando, primeramente tendremos que configurar el endpoint de la máquina virtual para que esté accesible…y una vez hecho, ya podemos abrir nuestro navegador y ver la aplicación funcionando en linux.

5004 es el puerto en el que está configurada la aplicación de ejemplo para arrancarse con el comando Kestrel.

Linux08

http://youserver.cloudapp.net

Linux09

[Evento Sevilla] ALMdeando

Aprovechando que estaré unos días por Sevilla la gente del grupo de usuarios de CartujaDotNet me ha invitado a participar en un evento que han organizado para el día 11 de marzo donde se hablará de integración continua, Xamarin o testing entre otras cosas, temas muy interesantes para todo desarrollador!!

El evento será el 11 de Marzo, miércoles, de 19:00h a 21:00h.

Toda la información y registro la podéis encontrar en http://cartujadotnet.es/almdeando/ 

Agenda.

Utilizando Integración continua con Apps Xamarin (Javier Suárez) (45 minutos)

En esta sesión Javier Suárez nos hablará de integración continua con Apps Xamarin. La integración continua es fundamental en el desarrollo de software, independientemente de la plataforma. Detectar problemas tan pronto como sea posible es una gran victoria, sobre todo en el mundo móvil. Veremos cómo ejecutar pruebas como parte del proceso de Build, que cubren las pruebas unitarias, etc.

Continuous Delivery con Release Management (Ibon Landa) (45 minutos)

En esta sesión veremos qué papel juega Release Management en el ciclo de vida de la aplicaciones y como lo podemos utilizar para implementar de principio a fin un pipeline de release para nuestras aplicaciones.

Después de una introducción a los conceptos más básicos de Continuous Delivery intentaremos ver de la forma más práctica posible la funcionalidad que aporta Release Management.

Making better tests (Juan María Laó Ramos) (30 minutos)

En esta sesión Juanma nos contrará algunos trucos y buenas prácticas que ha aprendido arrastrándose por los barrizales de la programación, más que nada para evitar tener que poner muchas lavadoras después de llegar a casa y tener más tiempo para los suyos.

ASP.NET 5 daily builds

Como todos ya sabéis ASP.NET 5 es open source y es posible acceder al código incluso contruir al mismo a través de sus repositorios de GitHub.

Si habéis seguido el post sobre cómo instalar el entorno con Visual Studio 2015 o cómo instalar las herramientas de líneas de comandos, habréis notado que al resturar las dependencias, éstas se descargan desde https://www.nuget.org/api/v2. siendo éste el sitio dónde Microsoft sube las versiones estables y testeadas de los productos.

   

image

Aunque ASP.NET 5 es open source y se aceptan contribuciones, Microsoft quiere ofrecer el mismo soporte y calidad que ofrece actualmente con cada versión Release del framework, por lo que periódicamente Microsoft une las diferentes versiones, la somote a un proceso de certificación y las sube al repositorio de nuget.org

¿Pero podríamos usar otros repositorios? Por ejemplo, para usar siempre lo último de lo último sobre lo que se está desarrollando?

De forma diaria, las últimas versiones se están subiendo https://www.myget.org, y sólo tenemos que cambiar la URL del repositorio de nuget para que se use la versión que queramos.

https://www.myget.org/F/aspnetmaster/api/v2

Este repositorio contiene las versiones que se generan de forma diaria desde la rama master de GitHub.

https://www.myget.org/F/aspnetrelease/api/v2

Este repositorio contiene las versiones que se generan de forma diaria desde la rama release de GitHub.

https://www.myget.org/F/aspnetvnext/api/v2

Este repositorio contiene las versiones que se generan de forma diaria desde la rama desarrollo de GitHub.

El comando “kpm restore” dispone de un parámetro adicional que nos permite indicarle el repositorio:

kpm restore –s https://www.myget.org/F/aspnetvnext/api/v2


Si queremos cambiarlo de forma global, en Windows, sólo tenemos que abrir una consola y lanzar el siguiente comando:

setx KRE_NUGET_API_URL https://www.myget.org/F/aspnetvnext/api/v2


En MAC y Linux, el comando es similar, pero no igual:

KRE_FEED=https://www.myget.org/F/aspnetvnext/api/v2

Trabajando con Sublime, Kulture y OmniSharp

Después de en la entrada anterior cómo podemos trabajar con ASP.NET desde línea de comandos en Windows, en ésta hablaremos de algunas herramientas y utilidades nos pueden ser útiles si elejimos no trabajar con Visual Studio.

Esta entrada no pretende comentar ni discutir si Visual Studio es mejor o pero que otras opciones, sino dar las diferentes opciones que hay, para que cada uno pueda elegir la opción que más se adecue a sus necesidades. Lo importante en este caso es ver cómo ASP.NET es completamente abierto y agnóstico al IDE y que nos permite que cada desarrollador tome sus propias decisiones.

En este caso, una de las herramientas que mejores prestaciones puede ofrecer para trabajar con ASP.NET 5 es Sublime, así que el primer paso es ir a su web e instalarnos Sublime.

image

Una vez instalado Sublime, vamos a completar el entorno instalando:

  • Node.js
  • Yeoman
  • Plugin Kulture para Sublime
  • Plugin OmniSharp para Sublime

El siguiente paso, si no lo tenemos ya instalado, será instalarnos node, el cuál podemos instalarnos de forma sencilla a través de su web http://nodejs.org/

Si lugar a equivocarnos, podemos decir que node se está conviertiendo es algo básico de todo desarrollo web debería tener instalado.

image

Una vez instalado node, el siguiente paso será instalar Yeoman, una herramienta que nos va a permitir de forma sencilla y eficiente un “scaffolding” que nos permita empezar a trabajar con ASP.NET…básicamente, algo parecido a lo que podríamos tener al crear un nuevo proyecto desde el wizard de nuevo proyecto de Visual Studio.

image

Instalar yeoman y los generadores para ASP.NET 5 se puede hacer de forma fácil a través de npm.

npm install -g yo

npm install -g generator-aspnet

yo aspnet

Ejecutando yo aspnet, podemos crear una primera aplicación ASP.NET 5.

image

image

image

Una vez creado el proyecto, tal y como nos aparece en la consola podemos resturar las dependencias con “kpm restore” y ejecutar la aplicación con “k web”.

image

En este caso, queremos olvidarnos de las líneas de comandos y usar el Sublime.

image

image[81]

Para trabajar con Sublime, dos plugins esenciales son Kulture y OmniSharp, los cuáles podemos instalar a través del Package Control ( https://packagecontrol.io/ )

Una vez tenemos Package Control, con Ctrl + K + P, podemos acceder a la opción de instalar paquetes e instalar tanto “Kulture” como “OmniSharp”.

image

image

image

 

Kulture es una extensión de Sublime para ASP.NET 5. Una vez instalado, directamente desde Sublime y con un proyecto ASP.NET 5 abierto….

F5 para lanzar los diferentes comandos de “K”, por ejemplo para ejecutar directamente la aplicación seleccionadno k kestrel (servidor multiplataforma) o k web.

image

F7, compila el proyecto (kpm build) y nos muestra los errores en la consola. Con F4 nos podremos mover entre los diferentes errores que pudiera haber.

image

Una vez hemos visto la funcionalidad básica de Kulture, la otra extensión que hemos instalado es OmniSharp.

image

OmniSharp nos va a pemitir disponer de un entorno de desarrollo .NET en el editor que tu elijas; Sublime, Atom, Emacs, Brackets, Vim…

¿Qué ofrece? Instellisense, code snippets, rename, goto definition….la verdad que es un proyecto open source que se está actualizando de forma rápida y continua, por lo que en este caso os recomiendo visitar su web para ver la funcionalidad que ofrece su última versión. http://www.omnisharp.net/

Si queremos disponer de Intellisense estableceremos la siguiente configuración:

image

{
    "auto_complete": true,
    "auto_complete_selector": "source - comment",
    "auto_complete_triggers": [ {"selector": "source.cs", "characters": ".<"} ],
 }


image

ASP.NET 5. Trabajando desde línea de comandos

En el post anterior explicábamos cómo es posible montar un entorno de desarrollo con Visual Studio 2015 para poder empezar a probar la nueva versión de ASP.NET.

Pero como todos ya sabéis, la nueva versión de ASP.NET es completamente agnóstica a Visual Studio, siendo posible trabajar desde otros IDEs o sistemas operativos que no sean Windows.

A continuación os explicaré los pasos que tenéis que realizar para instalar las líneas de comando multiplataforma que hacen posible trabajar sin Visual Studio. En este post usaré Windows, dejando para post posteriores los pasos necesarios en MAC y Linux.

KVM (K Version Manager)

Es una utilidad de línea de comandos que me permite gestionar las versiones de KRE que tengo en mi máquina; listar las versiones, instalar, actualizar, establecer la versión por defecto etc….

KRE (K Runtime Engine)

Es la runtime de ASP.NET y la cuál nos permitirá ejecutar aplicaciones que desarrollemos. Dentro de una misma máquina podemos tener tantas versiones como queramos, pudiente tener varias versiones de una aplicación contra diferentes versiones de KRE (side-by-side).

KPM (K Package Manager)

Es una utilidad de línea de comandos que permita instalar o restaurar las dependencias de un aplicación ASP.NET o por ejemplo, empaquetar la aplicación para ser desplegada.

K

Permite ejecutar una aplicación ASP.NET….k build, k run…

Por tanto, si queremos trabajar en un entorno no dependiente de Visual Studio desde línea de comandos, lo primero que tendremos que instalar el KVM, el cuál de forma sencilla podemos instalar ejecutando esta línea de comandos de powershell:

@powershell -NoProfile -ExecutionPolicy unrestricted -Command "iex ((new-object net.webclient).DownloadString('https://raw.githubusercontent.com/aspnet/Home/master/kvminstall.ps1'))"

Una vez ejecutada este comando, ya tendremos en nuestro entorno el comando KVM, así como una runtime por defecto.

Si queremos asegurarnos que tenemos la última versión disponible, lanzaremos este comando:

 kvm upgrade

Así mismo, con kvm podremos listar todas las versiones disponibles (kvm list), instalar nuevas versiones (kvm install [version]) o establecer la versión que queremos usar (kvm use [version]) . Si ponéis simplemente “kvm” veréis todos los comandos disponibles.

image

Una vez ejecutado este comando tendremos todo lo necesario en nuestro entorno para crear aplicaciones ASP.NET 5.

Si queremos hacer una prueba rápida de si todo se encuentra instalado de forma adecuada lo más rápido puede ser descargarse alguno de los ejemplos que existen en el repositorio de GitHub de ASP.NET, ya sea descargándoselos como un zip o clonando el repositorio:

git clone https://github.com/aspnet/Home.git
cd samples
cd HelloMvc

kpm restore

k web

Una vez clonado el repositorio puedes ir a cualquiera de los ejemplos, restaurar las dependencias y lanzar la aplicación usando el comando adecuado.

image

Una vez ejecutado si abres el navegador en http://localhost:5001 podrás ver la aplicación de ejemplo ASP.NET 5 en ejecución.

image

Empezando con ASP.NET 5…el entorno.

Cuando alguien empieza a escuchar a hablar de ASP.NET 5 y ASP.NET MVC 6 una de las primeras preguntas que se le viene a la cabeza es cómo puede empezar a probarlo, lo que necesita para montarse un entorno de desarrollo sobre el cuál hacer sus pruebas.

Existen diferentes alternativas y aproximaciones, en función de si queremos usar Visual Studio o queremos hacer pruebas en algún otro sistema operativo dónde no tengamos Visual Studio…en esta post, hablaremos sobre cómo empezar con Visual Studio 2015.

Actualmente, en el momento de escribir este post, la versión disponible para descarga es la CTP5, la cuál podemos descargar e instalarla en nuestro equipo en local, ya sea dentro de una máquina virtual o en nuestro propio equipo si somos así de atrevidos.

VisualStudio2015_00

Pero sin lugar a dudas, la forma más rápida de empezar es usando Microsoft Azure, usando las plantillas que ya viene con Visual Studio 2015, y que se van actualizando a medida que salen nuevas versiones, de ahí que ésta sea mi recomendación.

Aquí os pongo los pantallazos del proceso, que como veréis, es muy sencillo y que hace que en cuestión de pocos minutos estemos probando todo lo último de ASP.NET.

VisualStudio2015_01

VisualStudio2015_02

VisualStudio2015_03

VisualStudio2015_05

VisualStudio2015_06

Una vez que tenemos la máquina creada, después de haber esperado unos minutos, nos podremos conectar por RDP usando las credenciales que hemos establecido al crear la máquina…y ya está, a disfrutar!

VisualStudio2015_07

VisualStudio2015_08

image

En próximos post iremos viendo más detalles sobre cómo seguir probando ASP.NET sin usar Visual Studio, ya sea desde plataforma Windows o de cualquier otra plataforma como Linux o MAC.

[Evento] Plain Concepts Web Day – Valladolid

El día 3 de Marzo hemos organizando un evento en Valladolid sobre desarrollo web donde veremos muchas de las novedades que no traerá la nueva versión de ASP.NET, así como muchos otras tecnologías y frameworks que se están convirtiendo casi en “imprescindibles” para el desarrollo de aplicaciones web.

El registro lo podéis ver aquí.

AGENDA

9:30 – 11:00 Desarrollo de aplicaciones web .NET multiplataforma (Ibon Landa – @ibonilm )

Microsoft ha dado un giro completo a su estrategia abriéndose por completo al mundo open source; .NET core es ya open source, hay versiones de .NET para Linux y MAC, se puede desarrollar con Visual Studio (o sin él) para todas las plataformas e incluso existe una versión completa gratuita.

  • Introducción al nuevo stack Microsoft para desarrollo multiplataforma

  • ASP.NET con Visual Studio 2015.

  • Entorno de desarrollo .NET para MAC y Linux.

  • Despliegue en cloud de soluciones .NET desde Linux y MAC

  • Despliegue en cloud de aplicaciones .NET con docker y Microsoft Azure.

11:00 – 11:30 Cafe

11:30-12:15 Ecosistema javascript (Hugo Biarge & Ibon Landa)

Durante esta sesión hablaremos de herramientas y frameworks que pueden ser de gran utilidad para construir un entorno de desarrollo cliente que nos permita desarrollar aplicaciones de la forma más productiva posible.

  • Introducción a grunt/gulp.

  • Introducción a bower.

  • Introducción a Karma y Jasmine.

  • Integración con Visual Studio.

12:15-13:45 Creando directivas para AngularJs (Hugo Biarge – @hbiarge )

Las directivas son uno de los elementos más innovadores a los que nos tenemos que enfrentar en el desarrollo de aplicaciones con AngularJs. Acercan la idea de los futuros Web Componets al desarrollo actual de aplicaciones web. Además de conocer cómo podemos utilizar las directivas existentes, es importante que conozcamos y entendamos como escribir nuestras propias directivas para poder escribirlas de una forma rápida y eficiente.

En esta sesión intentaremos dar una visión muy práctica de la creación de directivas personalizadas, en la que iremos descubriendo como podemos configurar las directivas para cubrir diferentes escenarios.

logoPlaincyliconvalley

[Evento] BilboStack

El día 17 de enero organizamos en Bilbao la cuarta edición del BilboStack!  un evento gratuito de mañana dónde tocaremos diferentes y variadas temáticas sobre desarrollo web, agile, diseño, usabilidad…

Toda la información y registro la podéis encontrar en http://bilbostack.com 

Aquí os dejo también un vistazo rápido de la agenda:

Track 1 Track 2
9:00 9:45 Desarrollo de aplicaciones web con .NET en MAC: open source, multiplataforma e incluso gratuitoby  Ibon Landa Errores comunes en la visualización de datos y algunas solucionesby Pablo Garaizar
10:00 10:45 Google es ciegoby Oihana Alberdi ReactJS: un enfoque distinto a la UI en JavaScriptby Eduard Tomás
11:15 12:00 Descubriendo los Beaconsby Borja Reinares Creando directivas para AngularJsby Hugo Biarge
12:15 13:00 ¿Qué es eso de IoT?by Quique Martinez WordPress al limiteby Asier Marqués
13:15 14:00 Bomberos pirómanosby Ujue Agudo y Aritz Suescun Arquitectura frontend de CartoDBby Javi Santana

ReConnect(); Microsoft Visual Studio vNext & Azure

El de 12 de noviembre Microsoft ha celebrado en New York un evento para desarrolladores dónde hemos conocido muchos detalles sobre su estrategia y servicios para Visual Studio, Microsoft Azure y el desarrollo de apps multiplataforma entre otras muchas novedades.

Entre otras cosas se ha anunciado la apertura total de Microsoft convirtiendo .NET core en open source, versiones de .NET para Linux y MAC, posibilidad de desarrollar con Visual Studio para todas las plataformas y dispositivos o la versión Visual Studio Community Edition 2013 que será completamente gratuita en muchos escenarios.

Por tercer año consecutivo Plain Concepts ha colaborado en la realización de este evento trabajando durante varios meses con Microsoft. Han sido meses muy interesantes dónde hemos tenido la posibilidad de trabajar con las primeras versiones de la nueva Microsoft. Interesante y a veces algo estresante!

En este post de Somasegar podéis ver un buen resumen de dichas novedades: http://blogs.msdn.com/b/somasegar/archive/2014/11/12/opening-up-visual-studio-and-net-to-every-developer-any-application-net-server-core-open-source-and-cross-platform-visual-studio-community-2013-and-preview-of-visual-studio-2015-and-net-2015.aspx 

Aprovechando esta experiencia hemos organizado una serie de eventos en Madrid, Bilbao y Barcelona dónde intentaremos profundizar de forma práctica en los aspectos técnicos más importantes que se anunciaron.

27 de noviembre. Madrid
Hotel Vía Castellana 
Paseo de la Castellana 220 
28046 Madrid

Registro

16 de diciembre. Bilbao
Universidad de Deusto 
Unibertsitate Etorbidea, 24, 
48007 Bilbao, Bizkaia

Registro

18 de diciembre. Barcelona
Foment del Treball (Planta Principal)
Vía Laietana, 32 
08003 Barcelona

Registro

En este enlace podéis ver toda la información detallada del evento: http://www.plainconcepts.com/reconnect/

Dentro de las demos de MyShuttle hemos podido disfrutar de diferentes tecnologías y herramientas; ASP.NET vNext con MVC, SPA, bower, grunt, karma….apps móviles multiplataforma con universal apps, Xamarin para Android e iOS, apps móviles HTML con Cordova, WPF, .NETMF, HDInsight, DocumentDB, Machine Learning….vamos, que no nos hemos aburrido!

Aquí os dejo unos pantallazos de las aplicaciones:

0103

04050706

Car

Y también alguna del sitio del evento, selfie desde el backstage incluido 🙂

WP_20141112_003WP_20141112_008WP_20141111_005WP_20141112_005

[Artalde] Introducción a Test Driven Development

Desde el grupo de usuarios de .NET de Bilbao volvemos a el día 23 de octubre con una introducción a Test Driven Development.

Descripcion:

Una vez repasada la teoría que acompaña a TDD y familiarizados con esta forma distinta de realizar tu trabajo, pasaremos a ver un ejemplo práctico en el que iremos avanzando en la realización de un ejemplo sencillo y cambiante en cuanto a la evolución de sus requisitos.

Fecha

23 de octubre, jueves. 19:00h.

Ponentes

Fernando Perez ( @ferpega_ ), Development Advisor en Plain Concepts

Dirección del evento:

Universidad de Deusto

Avda. de las Universidades, 24
Aula de videoconferencia (2º piso)

Edificio ESIDE

Bilbao

Registro:

https://www.eventbrite.es/e/entradas-introduccion-a-test-driven-development-teoria-y-practica-en-net-13587822543 

 

artaldeelComite

DeustoCampusBilbao_Satellite