En posts anteriores hicimos una pequeña introducción sobre cómo crear una aplicación ASP.NET Core 1.0 y cómo Dockerizarla. Pero, para llegar aquí, ¿cómo se prepara un equipo de desarrollo para .NET Core? Después del salto encontrarás una guía paso a paso para Mac. ¿Usando Windows o Linux? Los pasos y herramientas son muy similares, y seguro que igualmente útiles.

OBSOLETO. ADVERTENCIA: El 28 de enero de 2016, el Readme.md del proyecto DNX se modificó anunciando la retirada de DNX a favor de “dotnet-cli”. Los pasos aquí expuestos funcionan con ASP.NET Core RC1. No se garantiza con que versiones más recientes los pasos aquí expuestos funcionen.

DNX (retired)

The DNX is being retired in favor of the new dotnet CLI command line tools. See:

As a result, we’re not accepting anymore changes to this project. Please file any new issues on http://github.com/dotnet/cli.

Antes de empezar

¿Aún no tienes brew? Brew es el package manager que faltaba a Mac OS X. Si aún no lo tienes, te recomiendo que lo instales antes de continuar:

 

Visión global de .NET Core y herramientas de desarrollo

El primer paso de este pequeño viaje es, obviamente, instalar el propio .NET Core 1.0 Framework.

Para hacernos una idea rápida, podemos decir que los principales componentes implicados durante el proceso de desarrollo son:

dot-net-core-components

  • DNX: .NET Execution Environment. Contiene todos los componentes nativos y herramientas necesarias para compilar y ejecutar la aplicación, incluyendo  el sistema de compilación, la SDK y la CLR nativa del host.
  • DNVM: DotNet Version Manager. Conjunto de herramientas de consola para instalar, actualizar y configurar qué DNX va a utilizarse.
  • DNU: DNX Utility. Herramienta responsable de todas las operaciones que tengan que ver con Packages.

Es decir, DNVM nos ayuda a gestionar los Runtimes de .NET Core (podemos tener tantas versiones de DNX instaladas como queramos de forma paralela). DNX es el encargado de ejecutar nuestro código .NET. Mientras tanto, DNU nos ayuda a gestionar las dependencias de nuestras soluciones.

En lo que respecta a herramientas de desarrollo, en la actualidad existen “dos caminos” distintos para desarrollar para .NET Core 1.0:

  • Visual Studio 2015 (Community, Professional o Ultimate)
  • Omnisharp

Ambas vías, sin embargo, se apoyan en una serie de herramientas externas, como son Bower, Gulp/Grunt, Nuget, Yeoman, Jasmine…


dotnet-core-development-stack

 

El proyecto Omnisharp

¿Qué es realmente Omnisharp? Si damos un vistazo rápido a su web, vemos la siguiente declaración:

CROSS PLATFORM .NET DEVELOPMENT!
OmniSharp is a family of Open Source projects, each with one goal: To enable a great .NET experience in YOUR editor of choice.

OmniSharp offers a lightweight alternative to traditional IDE’s for developers wishing to write in their favourite editors. Offering code completion, formatting and other popular refactoring operations, syntax checking and easy code navigation

Es decir, es un proyecto cuyo objetivo es mejorar la experiencia de desarrollo fuera de los herramienta de desarrollo integrado tradicionales.

Si elegimos el camino de Omnisharp (como es el caso), podemos elegir entre una amplia selección de editores de texto, entre los cuales encontramos el nuevo Visual Studio Code:

omnisharp-development-stack

¿Tenemos claro el contexto? Pues es hora de empezar a instalar cosas.

Preparando el entorno de desarrollo

Instalar DNVM y DNX

Para empezar, por tanto, vamos a necesitar instalar DNVM en nuestro equipo. La opción recomendada día de hoy es descargarse la última versión de desarrollo a través del Terminal:

Una vez instalado dnvm, cerramos y volvemos abrir nuestro terminal, e invocamos a dnvm sin ningún argumento:

“Up and running”. Es hora de instalar nuestra primera DNX:

La opción “-r” nos permite indicar qué runtime queremos utilizar (coreclr o mono). En nuestro caso vamos a utilizar el runtime de Mono.

Comprobamos que la DNX está instalada y activa:

Como indicaba anteriormente, podemos instalar tantas DNX como queramos, e ir moviendo la DNX que se utiliza “por defecto”. Vamos a instalar la última build “inestable” como prueba:

Y comprobamos las DNX instaladas en el sistema:

Por seguridad, vamos a utilizar la última versión estable, aunque dejaremos (RC1 Update 1), aunque dejaremos la RC2 para alguna pequeña prueba:

Y, nuevamente, validamos que la DNX activa por defecto vuelve a ser RC1 Update 1:

Intalando Visual Studio Code

Esta es la parte que más me gusta (comparado con la instalación tradicional de Visual Studio). Solo hay un pequeño prerequisito que hemos de cumplir, y es que Mono debe estar instalado en nuestra máquina. ¿No lo tienes instalado aún? Con Brew, fácil:

Unos minutos más tarde, tendrás Mono instalado y listo para funcionar:

Ahora, instalar Visual Studio Code es ya “un paseo en barca”:

  1. Descargar la última versión desde la web: https://code.visualstudio.com
    download-vscode
  2. Abrir la carpeta “Aplicaciones” de nuestro Mac:
    finder-goto-applications
  3. Arrastras y soltar de “Descargas” a “Aplicaciones”

Sí, ya esta todo.

Otras herramientas de desarrollo

Con DNVM, DNX y Visual Studio Code ya tendríamos todo nuestro “core” de desarrollo. Sin embargo, para acelerar al máximo el desarrollo siempre es recomendable rodearse de una buena “caja de herramientas”. En nuestro caso, recomiendo instalar:

  • Yeoman: Un conjunto de herramientas para clientes de desarrollo, que incluye un Scaffolder, Un task-runner (Gulp o Grunt) y un gestor de paquetes (NPM/Bower)
  • ASP.NET Generators for Yeoman: Plantillas de scaffolding Yeoman para .NET Core
  • NPM: Gestor de dependencias Node.JS. Puerta de entrada para el resto de componentes.
  • Bower: Gestor de dependencias front-end.
  • Gulp/Grunt: Automatización de tareas repetitivas/aburridas/pesadas en tiempo de desarrollo. A gusto de cada cual. En este caso utilizaremos Gulp.

A continuación podrás encontrar los comandos necesarios para realizar la instalación de cada uno de ellos:

Utilizaremos brew para instalar NPM y, a partir de ahí, NPM para gestionar todas las herramientas de desarrollo front.

¡Listos!, ya puede seguir los step-by-step:

Conclusiones

.NET Core 1.0 supone un cambio de rumbo importante para Microsoft, ya que implica una apertura de puertas hacia nuevas plataformas y formas de hacer las cosas. Crear un entorno de desarrollo resulta, por el momento, algo menos obvio, más complejo (y más rápido, todo sea dicho) que antes.

En cambio, tenemos más opciones, alternativas y formas de desarrollar soluciones basadas en nuestros lenguajes de programación favoritos.

¿Nuevo en .NET Core? Explora este nuevo, paso a paso, sin prisa pero sin pausa. Te gustará. Y recuerda, no necesitas un Mac para utilizar Visual Studio Code y .NET Core. En Windows también puedes iniciarte.