Publicar Aplicación Web desarrollada con .NET Core EF CodeFirst, en un Hosting gratuito(Soome) 2021
Tags: dotnet, csharp, hosting, publish
Published: 2021-03-25 17:35:57

En esta ocasión vamos a aprender como publicar en un hosting, una Aplicación Web desarrollada en .NET. Comúnmente siempre se sugiere realizarlo en Azure, pero no siempre contamos con una cuenta activa o de estudiante.

Es por eso que vamos a publicar nuestra aplicación en Soome, un hosting que entre sus múltiples servicios nos proporciona un alojamiento gratuito para aplicaciones .NET.

A continuación te voy a mostrar el paso a paso que debes realizar, es importante seguirlos todos para que tengas un resultado satisfactorio.

Lo que necesitas tener listo es:
- Tu aplicación web hecha en .NET
     - Visual Studio (en mi caso VS2019)
     - Microsoft SQL Server Management Studio
- Un correo electrónico válido

En este caso yo tengo mi aplicación hecha con .NET Core, Entity Framework con enfoque a CodeFirst es decir que la base de datos la genera a partir de código, eso lo vamos a comprobar al final.

Vamos a dividirla en 5 partes
1. Crear el hosting para nuestra página web.
2. Crear la Base de datos que tendrá nuestra aplicación.
3. Conectar la aplicación con la base de datos.
4. Publicar nuestra aplicación.
5. Subirla la Aplicación publicada al hosting.

Y sin más que decir vamos a empezar.

**#1. Crear el hosting para nuestra página web.**
a) Ingresar a [Soome](https://www.somee.com/)
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o9evx23xi9jf5jd1e74n.PNG)
b) Aquí podemos observar la parte remarcada, esta es la opción que vamos a utilizar **Free .Net Hosting** y damos clic en **Learn More** o leer más.
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6t0nnn6cspxcyl9wqq41.PNG)
c) La pantalla que vamos a ver es la siguiente, aquí nos da algunas especificaciones acerca del plan gratuito. Damos Clic en **Order now**
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vsmj7jepvt9wib9pdhqu.PNG)
Nota: Aquí es en donde entra el correo electrónico, inmediatamente nos muestra la ventana de ingreso o registro, aquí debemos llenar todos los datos y creamos nuestra cuenta, posteriormente te envía un correo con un código para que puedas seguir el proceso, por eso es importante que tengas esa cuenta activa.
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5hbygv3r1xpjz1zwvwah.PNG)
d) Tenemos nuestra orden y damos clic el **Checkout**
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ubb6thboo5jbbbr4joom.PNG)
Nos envía al panel de control de nuestro nuevo hosting y ya tenemos nuestro hosting listo para configurar.

e) En el panel observamos la pantalla de crear el alojamiento de nuestro Sitio Web, ingresamos todos los datos necesarios acorde a tu aplicación. En mi caso se llamará **OnSale**, esto determinará el subdominio con el que vamos a acceder,  elegimos la versión de .Net Core o depende tu caso, el título del sitio y opcional una descripción, y creamos el Sitio Web.
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uq1q4ih1f77jk6bmtlra.PNG)
y y se ha creado nuestro sitio
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a0wjgw3wa1tno10oohjf.PNG)
podemos observar en la parte inferior izquierda ya las opciones para administrarlo
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v54jd9xr7hlnifbci5y2.PNG)
**#2. Crear la Base de datos que tendrá nuestra aplicación.**
a) En la parte inferior izquierda del panel encontramos el apartado de **MS SQL** y un submenú de **Databases**.
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cwx6ijqwbw0r2sqi9vdw.PNG)
Clic y aparecerá la siguiente pantalla.
b) En este apartado debemos clickear en **Create** para agregar la BD
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/uwjd7b8o2znsx0bgq101.PNG)
c) Llenamos la información requerida y le damos clic en **Create Empty Database**
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/59frehic04xd1n4l02dq.PNG)
Se ha creado satisfactoriamente y podemos observarlo en el menú
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2tc0sedqjtz6rpd284sn.PNG)
d) Ingresamos a la Administración de la Base de datos, dando clic en la misma.

Aquí nos muestra la información necesaria para poder acceder a la Base desde el SQL Server MS.
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/gp3p20iypldjqylacuzo.PNG)
e) Para comprobar si se ha creado correctamente, ingresamos a nuestro **SQL Server** e ingresamos los datos proporcionados en la pantalla anterior
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5x2hzzkomo08tpt0g2wb.PNG)
Si ingresaste las credenciales correctamente ya deberá conectarse a la Base de Datos remota y se mostrará algo así:
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/v22i3ucovtgtj31ieaml.PNG)
Aquí vemos que compartimos el alojamiento con muchas otras bases de datos creadas, navegamos hasta encontrar la nuestra y verificamos.
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/t2ksf6pl76lw1y5a7ynh.PNG)
**#3. Conectar la aplicación con la base de datos**
a) Volvemos a nuestro panel de control en Soome, y observamos que nos proporciona una cadena de conexión.
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6m0vuuhnrzvrs3xirqka.PNG)
b) Nos dirigimos a nuestra Aplicación en Visual Studio en mi caso 2019. En .Net Core la cadena de conexión la encontramos en el archivo "**appsettings.json**" accedemos a el y cambiamos el string de la cadena de conexión.
Yo comente la conexión local como puedes observar.
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cakntrm5azhb8kkeqt87.PNG)
c) correr las migraciones, si tienes un DBSeet este paso ya no lo debes hacer
Si estas manejando tu proyecto con la CLI usa el comando que inicia con dotnet.
Si estas utilizando VS ejecuta los comandos desde la Consola del administrador de paquetes, en este orden:
->  add-migrations
-> update-database

![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dhzv28n33lsrolcuxolj.PNG)
y listo 
**#4. Publicar nuestra aplicación**
a) En nuestra aplicación en Visual Studio, damos clic derecho a la solución o al proyecto que vamos a publicar. Entre todas las opciones elegir **Publicar**
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qqx4bj1wrqyrouy3sv1i.png)
b) En la pantalla que tenemos a continuación nos da las siguientes opciones y elegimos **"Carpeta"**
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ji84hn9t6j9atf7f130f.PNG)
c) Elegimos la ubicación en la que se van a publicar los archivos, la podemos dejar por defecto o en su lugar, creamos una carpeta vacía en la ubicación de nuestra preferencia y le damos clic en **Finalizar**
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/35ffap6h3to9vm132pgp.PNG)
d) Ya esta lista la configuración ahora solo nos queda dar clic en **#Publicar**
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nz4zdk6gypewd8576ffs.PNG)
e) Se ha publicado nuestra aplicación y podemos dirigirnos a comprobar en la ubicación.
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pgkekqrbvp0mny258xtd.PNG)
f) Podemos observar que se han creado muchos archivos mismos que nos servirán para subirlos al hosting, para esto vamos a seleccionar todos los archivos dentro de la carpeta, y lo convertimos en ZIP.
NOTA: Es importante que sea ZIP y que se lo haga de esta forma(seleccionando directamente los archivos DENTRO de la carpeta)
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ddxt2mz3d9ss0mfoxxp9.PNG)
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dmsjn53g0kqqo6a472xn.PNG)
**#5. Subir la Aplicación publicada al hosting.**
a) En el panel de administración de Soome. En la parte izquierda inferior del Menú nos dirigimos y damos clic en **File Manager** o administración de archivos, y damos clic en **Upload**.
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qg1jbfw0wvdaod0x877c.PNG)
b) Clic en Elegir archivo, subimos el archivo ZIP
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/4ooppt4qeuokcm15cvjh.PNG)
c) Clic en **Upload and Unzip archives** o Subir y descomprimir archivos.
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vt948emqy5gyabq71xun.PNG)
d) Se subirán todos los archivos y se verá algo así.
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/935d2ucuhs13tdk6dbqs.PNG)
e) Podemos ingresar a nuestra URL y comprobamos que nuestra aplicación ya esta publicada.
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zx8tgctiucuwx0r87epa.PNG)
f) Yo trabaje con CodeFirts en mi aplicación, es decir que al ingresar a mi aplicación publica se genera la base de datos automáticamente.
Ingresamos a nuestro SQL Server para verificar 
![Alt Text](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yym416g54ztk9kuzli4p.PNG
)

Y listo tenemos ya nuestra Base de Datos remota y nuestro sitio publicado y podemos usarla en cualquier lugar.

Si tienen alguna duda o sugerencia para próximos post no duden en escribirme.

Nos vemos en [Twitter](https://twitter.com/veronicaguamann) e [Instagram](https://www.instagram.com/veronicaguamann/) ;)