Artículos de Tecnología

Cómo crear una calculadora de IMC con ASP.NET Core Blazor

Rodolfo Ghiggi
Rodolfo Ghiggi
capa

Blazor es un framework, una herramienta desarrollada por Microsoft que permite crear aplicaciones web modernas con una interfaz rica utilizando el lenguaje C# tanto en el back-end como en el front-end.

Imaginemos que una empresa desea desarrollar una aplicación de página única (SPA) y el equipo de desarrollo tiene sólidos conocimientos en el lenguaje C#. En esta situación, Blazor puede ser una gran alternativa, ya que nos permite desarrollar una aplicación completa escribiendo solo código en C#.

Creación de la primera aplicación Blazor

Demostraremos cómo crear una aplicación simple utilizando la versión BlazorServer.

Descarga e instalación

Para desarrollar aplicaciones Blazor, debes tener instalado el SDK de .NET. Está disponible para Windows, Linux y macOS. Haz clic en el enlace correspondiente a tu sistema operativo para realizar la instalación.

Después de la instalación, escribe el comando dotnet en tu terminal. Si la instalación se realizó correctamente, deberías ver un resultado similar a este:

img-01 - Terminal después de la instalación de .NET.

Creación de la aplicación

Para crear una aplicación Blazor, escribe el siguiente comando en tu terminal:

dotnet new blazorserver -o AluraBlazorApp --no-https

Esto creará un proyecto Blazor en un nuevo directorio llamado "AluraBlazorApp", dentro del directorio actual. Luego, navega al directorio creado con el siguiente comando:

cd AluraBlazorApp

A continuación, proporcionamos una breve explicación de algunos de los archivos principales del proyecto Blazor:

Img-02 - El administrador de carpetas del proyecto "AluraBlazorApp" en el Visual Studio Code. Posee las carpetas: bin, Data, obj, Pages, Properties, Shared y wwwroot. También posee archivos referentes a la configuración del proyecto, fuera de las carpetas.

El archivo launchSettings.json, dentro de la carpeta "Properties", define diferentes perfiles para las variables de entorno de desarrollo local. Durante la creación del proyecto, se ha asignado automáticamente un número de puerto entre 5000 y 5300 y se ha guardado en este archivo para su uso en nuestro proyecto.

Ejecución de la aplicación

Para ejecutar la aplicación Blazor, escribe el siguiente comando en tu terminal:

dotnet watch

El comando dotnet watch construye (es decir, compila) y ejecuta la aplicación. De esta manera, cuando realices algún cambio en el proyecto, se aplicará automáticamente a la aplicación en ejecución. Si deseas detener la ejecución, simplemente presiona "Ctrl+C" en la terminal.

Después de unos momentos, deberíamos ver una página similar a la imagen de abajo en nuestro navegador predeterminado.

Img-03 - Página de inicio de la aplicación AluraBlazorApp. Hay un menú en el lado izquierdo con las opciones: Inicio, Counter y Fetch data. Además la parte central de la página tiene el famoso texto 'Hello, world!'

El contenido que se muestra está definido en el archivo "Index.razor" en la carpeta "Pages".

@page "/"

<PageTitle>Index</PageTitle>

<h1>Hello, world!</h1>

Welcome to your new app.

<SurveyPrompt Title="How is Blazor working for you?" />

Creación de un componente

¡Ahora viene la parte más divertida! Vamos a crear un nuevo componente que será una calculadora de IMC (índice de masa corporal). El IMC se determina dividiendo el peso del individuo por el cuadrado de su altura (o altura), siendo el peso en kilogramos y la altura en metros.

Img-04 - Fórmula para calcular el IMC: peso dividido por el cuadrado de la estatura.

Para crear un nuevo componente, simplemente crea un archivo .razor en la carpeta "Pages". Luego, crearemos el archivo "Imc.razor".

En la primera línea del archivo, definiremos la ruta para el componente.

@page "/imc"

Luego, agregaremos un título y dos campos de entrada utilizando HTML, uno para la altura y otro para el peso.

<h1>Calculador de IMC</h1>

<label for="altura">Altura (en metros)</label>
<input id="altura" type="number" />

<label for="peso">Peso (en kilogramos)</label>
<input id="peso" type="number" />

También crearemos un botón para calcular el IMC y una etiqueta que mostrará el resultado del cálculo.

<button>Calcular IMC</button>
<label>El IMC es <span>99</span></label>

En este punto, si accedemos a la ruta /imc en nuestro navegador, deberíamos ver una página similar a la siguiente:

Img-05 - Página en el navegador con "Calculador de IMC" escrito en el inicio. Hay un campo para escribir la altura en metros, uno para escribir el peso en kilogramos y un botón "Calcular". También se lee "El IMC es 99".

Implementación de la lógica

Para escribir código en C# en archivos .razor, debemos declarar el bloque @code.

@code {
    // Nuestro código C# estará aquí
}

Primero, declararemos dos variables de tipo double para almacenar la altura y el peso.

@code {
    private double Altura { get; set; }
    private double Peso { get; set; }
}

Para vincular las variables a los campos de entrada, utilizaremos la directiva @bind.

<label for="altura">Altura (en metros)</label>
<input @bind="Altura" id="altura" type="number"/>

<label for="peso">Peso (en kilogramos)</label>
<input @bind="Peso" id="peso" type="number" />

Ahora que tenemos las variables para la altura y el peso, crearemos otra variable para almacenar el IMC calculado, así como el método que realizará el cálculo.

private double ImcCalculado { get; set; }

private void CalcularImc()
    {
        ImcCalculado = Peso / Math.Pow(Altura, 2);
    }

Después de completar los pasos anteriores, debemos llamar al método CalcularImc() cuando se haga clic en el botón.

Para hacerlo, utilizaremos la directiva @onclick="CalcularImc".

<button @onclick="CalcularImc">Calcular IMC</button>

También debemos cambiar el contenido de la etiqueta de resultado para mostrar el valor de la variable ImcCalculado, en lugar del valor fijo 99.

Utilizaremos la directiva @ImcCalculado.

<label>El IMC es <span>@ImcCalculado</span></label>

Si todo sale bien, nuestra aplicación calculará el IMC correctamente.

Gif-01 - Gif de la calculadora de IMC funcionando. Aparece la digitación de "1.71" en el campo de altura en metros y de "75.6" en el campo del peso en kilos en la página de la aplicación. A continuación, haga clic en el botón 'Calcular IMC' y aparece el resultado de IMC de "25.854"

Aquí tenemos el código completo de nuestro componente:

@page "/imc"

<h1>Calculador de IMC</h1>

<label for="altura">Altura (en metros)</label>
<input @bind="Altura" id="altura" type="number" />

<label for="peso">Peso (en kilogramos)</label>
<input @bind="Peso" id="peso" type="number" />

<button @onclick="CalcularImc">Calcular IMC</button>
<label>El IMC es <span>@ImcCalculado</span></label>

@code {
    private double Altura { get; set; }
    private double Peso { get; set; }
    private double ImcCalculado { get; set; }

    private void CalcularImc()
    {
        ImcCalculado = Peso / Math.Pow(Altura, 2);
    }
}

Reutilización del componente

Nuestro componente IMC se puede reutilizar en otros componentes. Para agregarlo a la página de inicio, por ejemplo, podemos escribir este código en el archivo "Index.razor".

<Imc />

Incluso podemos agregar varias veces el mismo componente, y cada uno funcionará de forma autónoma.

<Imc />
<Imc />
<Imc />
Gif-02 - Gif que presenta 3 calculadoras de IMC en la página de la aplicación. En la primera, aparece la tipificación de "1.71" en el campo de altura en metros y de "88" en el campo del peso en kilos en la página de la aplicación. A continuación, se hace clic en el botón y aparece el resultado del IMC de "30.094". En el segundo, la altura es "1.65" y el peso "70", para el resultado del IMC "25.711". En la tercera, la altura es de "1.80" para el peso de "88", así que tenemos el IMC de "27.160".

Este es el código completo del componente "Index.razor".

@page "/"

<PageTitle>Index</PageTitle>

<h1>Hello, world!</h1>

Welcome to your new app.

<SurveyPrompt Title="How is Blazor working for you?" />

<Imc />
<Imc />
<Imc />

Conclusión

En los últimos años, Microsoft ha invertido mucho en el desarrollo de Blazor, un marco de trabajo que ya está siendo utilizado en diversos proyectos en producción.

Este artículo ha proporcionado una breve introducción al framework Blazor, mostrando un ejemplo de una aplicación web para el cálculo del IMC utilizando solo el lenguaje C#.

Si deseas profundizar más en el tema:

Artículo hecho por Rodolfo Ghiggi

Este artículo fue traducido para Alura Latam por Brenda Souza

Artículos de Tecnología

En Alura encontrarás variados cursos sobre . ¡Comienza ahora!

Precios en:
USD
  • USD
  • BOB
  • CLP
  • COP
  • USD
  • PEN
  • MXN
  • UYU

Semestral

  • 273 cursos

    Cursos de Programación, Front End, Data Science, Innovación y Gestión.

  • Videos y actividades 100% en Español
  • Certificado de participación
  • Estudia las 24 horas, los 7 días de la semana
  • Foro y comunidad exclusiva para resolver tus dudas
  • Luri, la inteligencia artificial de Alura

    Luri es nuestra inteligencia artificial que resuelve dudas, da ejemplos prácticos y ayuda a profundizar aún más durante las clases. Puedes conversar con Luri hasta 100 mensajes por semana

  • Acceso a todo el contenido de la plataforma por 6 meses
US$ 65.90
un solo pago de US$ 65.90
¡QUIERO EMPEZAR A ESTUDIAR!

Paga en moneda local en los siguientes países

Anual

  • 273 cursos

    Cursos de Programación, Front End, Data Science, Innovación y Gestión.

  • Videos y actividades 100% en Español
  • Certificado de participación
  • Estudia las 24 horas, los 7 días de la semana
  • Foro y comunidad exclusiva para resolver tus dudas
  • Luri, la inteligencia artificial de Alura

    Luri es nuestra inteligencia artificial que resuelve dudas, da ejemplos prácticos y ayuda a profundizar aún más durante las clases. Puedes conversar con Luri hasta 100 mensajes por semana

  • Acceso a todo el contenido de la plataforma por 12 meses
US$ 99.90
un solo pago de US$ 99.90
¡QUIERO EMPEZAR A ESTUDIAR!

Paga en moneda local en los siguientes países

Acceso a todos
los cursos

Estudia las 24 horas,
dónde y cuándo quieras

Nuevos cursos
cada semana