Cómo publiqué la primera versión de este blog
Mi primera preocupación al iniciar un proyecto es publicarlo pase lo que pase. Si es una aplicación web, como es el caso, significa publicarlo en el servidor y si se trata de una aplicación de escritorio (o app) instalarla en un pc. Para ello creo una aplicación con lo mínimo imprescindible para ejecutarla y la publico. Es mi manera de aplicar el principio "release early, release often" comentado en el post anterior.
En este post voy a explicar como creé la primera versión de este Blog con Visual Studio y los pasos que seguí para publicarlo en Azure App Services. Como verás la primera versión no tuvo nada de especial, por eso, estas indicaciones sirven para cualquier proyecto que inicies con .net.
Empezando
Para empezar debes tener instalado el Visual Studio. Normalmente siempre existe una versión gratuita que te puedes descargar en http://www.asp.net/downloads. Para crear este blog he utilizado Visual Studio Community 2015.
Una vez instalado podemos crear un nuevo proyecto a través del menú superior: File > New Project,o mediante el acceso directo de la página de inicio:
Creando mi primer blog desde cero
Selecciona Visual C# > Web y escoge la plantilla ASP.NET Web Application.
Introduce un nombre de proyecto, una ubicación y un nombre de solución a tu gusto. En mi caso, cuando escojo estos valores presto especial atención al nombre de la solución y al nombre del proyecto.
Habitualmente sigo la siguiente nomenclatura:
Proyecto: Fabricante.Proyecto.CapaApplicacion
Solución: Fabricante.Proyecto
En este proyecto no voy a poner nombre de fabricante porque es un proyecto de código abierto, pero cuando lo utilizo suelo poner una abreviatura de dos o tres letras.
ASP.NET tiene algunas plantillas por defecto que permiten empezar a trabajar inmediatamente.
Las plantillas están divididas según el tipo de Framework:
- El Framework 4.6 y en adelante es el de toda la vida. Es estable, maduro y contiene todas las funcionalidades.
- El Framework 5 se ha renombrado recientemente a ASP.NET Core 1.0. Es prometedor pero no contiene todas las funcionalidades y se espera que siga así, por lo menos un año más.
Así, si quiero asegurar el tiro con el blog es preferible el Framework 4.6.
Dentro del Framework 4.6 puedes escoger dos tipos de plantillas/framework diferentes: MVC y Web Forms. Mi preferido es MVC, pero también puedes trabajar con Web Forms.
El resultado que se obtiene después de dar a "Ok" es un proyecto funcional y listo para ser publicado. :)
El explorador de la solución muestra todos los archivos y carpetas del proyecto.
Si presionas F5, el proyecto se compila, Visual Studio arranca un IIS Express que ejecuta la aplicación a la vez que arranca un navegador que muestra la página inicial del proyecto:
Así es como tras largas semanas de duro trabajo conseguí la primera versión del blog. ;)
Publicar
Sólo queda sacarlo a la luz para ver su comportamiento y esperar que el hosting sea capaz de aguantar las hordas de usuarios ansiosos por ver esta primera versión.
En los proyectos que trabajo uso dos métodos de publicación diferentes:
- WebDeploy: cuando publico el proyecto en Azure (Azure App Services)
- FTP (file transfer protocol): cuando publico en un servidor: máquina virtual o servidor en la nube.
Hace años utilizaba planes de hosting compartido. En ese caso también tenía que publicar con FTP puesto que los proveedores no permitían WebDeploy.
Como he comentado anteriormente, este blog esta hospedado en Azure, así que voy a mostrar el método de publicación en Azure.
Requisitos prévios de WebDeploy en Azure
Pra publicar en Azure App Services necesitas dos cosas:
- Abrir una cuenta gratuita en Azure (si no tienes ninguna): al abrir la cuenta debes facilitar una tarjeta de crédito, y para verificarla te cobrarán 0,8433 € que te devolverán en 3-5 días. A día de hoy la Trial dura 30 días y te dan 170 € para utilizar en los servicios que quieras.
- Instalar Azure SDK para Visual Studio 2015
Publicando
Ahora que ya lo tienes todo preparado puedes ir al "Solution Explorer", seleccionar el proyecto (no la solución), click con el botón derecho y seleccionar "Publish":
Te aparecerá una pantalla con diferentes opciones. Selecciona Azure App Service:
Introduce las credenciales de la cuenta Azure:
Y crea el servicio:
Subscription: selecciona la subscripción que tengas. Lo habitual es que sólo tengas una opción en este "combo".
Resource group: tienes que seleccionar el "Centro de datos" físico donde se alojará tu aplicación. Escoge el más cercano a la ubicación de las personas que van a utilizar la App.
App service plan: esto viene a representar las capacidades de la máquina virtual que alojará la aplicación. Actualmente existen Free, Shared, Basic, Standard y Premium. Para empezar un Free nos iría muy bien.
Clic sobre "Create" y en unos segundos tendremos puestro plan de hosting preparado. La siguiente pantalla que aparece es la de las credenciales de WebDeploy, pero el Sdk de Azure, es capaz de conectarse al plan creado, recuperar la información necesaria y rellenarla por ti.
A partir de aquí podrías publicar ("Publish") directamente, o continuar con "siguiente, siguiente" hasta llegar al último paso y publicar.
Veamos qué pasa si vamos paso a paso:
Al seleccionar Realease, siempre que publiquemos compilará el proyecto en modo Release y publicará los resultados. No importará que en ese momento estés en modo Debug. Así, cuando publiques no tendrás que preocuparte de cambiar el modo de compilación.
El check "Precompile during publishing" convierte las clases que tengas en la carpeta App_Code en dll's. Si no, las subiría tal cual y las compilaría en tiempo de ejecución. Si no tienes la carpeta, no va a tener ningún efecto.
"Exclude files from App_Folder" significa que no se publique ningún archivo de esta carpeta. En esta carpeta suelo poner archivos que se creen en tiempo de ejecución, como por ejemplo Logs. Por ahora, tampoco es el caso así que no tiene ningún efecto seleccionar esta opción.
Por último, llegamos a la pantalla de Pre-visualización de los cambios. Si quieres ver los archivos que se enviarán al servidor puedes hacer click en "Start Preview". Las primeras veces tarda un poco porque tiene que subir todos los archivos, por eso, normalmente no lo hago.
Durante la publicación, las ventanas de Output y Azure App Service Activity te mostrarán las acciones que se están realizando y un informe del resultado final, que seguro es: Publish Succeeded!
Si todo va bien, Visual Studio abre un navegador con la Url de la aplicación publicada:
Y así fue como publiqué la primera versión de este blog.
Un par de horas más tarde tuve que aceptar la cruda realidad: nadie había visitado mi nuevo y flamante blog :(.
Y tú, ¿cuánto esperas antes de publicar un proyecto? ¿Qué método de publicación usas? ¿En qué hosting lo publicas?