Archivo

Archivo para la categoría ‘asp.net’

Entorno Multiplataforma .Net MAUI

martes, 2 de julio de 2024 Sin comentarios

El entorno de desarrollo multiplataforma .NET MAUI representa un avance significativo en la creación de aplicaciones móviles, proporcionando una solución unificada para desarrollar en Android, iOS, macOS y Windows con una sola base de código. Esto no solo optimiza el tiempo de desarrollo y mantenimiento, sino que también facilita la implementación de una interfaz de usuario consistente y nativa en cada plataforma. Integrado con el robusto ecosistema de herramientas de Microsoft, como Visual Studio, .NET MAUI ofrece potentes capacidades de depuración y diseño. Sin embargo, la adopción de .NET MAUI requiere familiaridad con el stack tecnológico de Microsoft y puede no siempre igualar el rendimiento de las aplicaciones nativas en casos de uso específicos. A pesar de estas consideraciones, .NET MAUI es una opción atractiva para desarrolladores que buscan eficiencia y flexibilidad en el desarrollo multiplataforma.

En esta entrada vamos a dar cinco razones para usar .NET MAUI (Multi-platform App UI) en el desarrollo de aplicaciones móviles:

  1. Desarrollo Multiplataforma Unificado: .NET MAUI permite a los desarrolladores crear aplicaciones para Android, iOS, macOS y Windows desde una única base de código. Esto significa que puedes escribir tu lógica de aplicación y la interfaz de usuario una sola vez y desplegarla en múltiples plataformas, lo cual ahorra tiempo y esfuerzo en el desarrollo y mantenimiento.
  2. Interfaz de Usuario Consistente: .NET MAUI proporciona un conjunto de controles de interfaz de usuario que son nativos para cada plataforma, lo que garantiza una apariencia y comportamiento consistente y de alta calidad. Al mismo tiempo, permite personalizar la apariencia para ajustarse a las directrices específicas de cada plataforma si es necesario.
  3. Ecosistema y Herramientas de .NET: Al ser parte del ecosistema .NET, MAUI se beneficia de las robustas herramientas de desarrollo de Microsoft, como Visual Studio, que ofrece potentes funcionalidades de depuración, diseño de interfaces, y administración de proyectos. Además, puedes aprovechar bibliotecas y paquetes NuGet disponibles en .NET, lo que facilita la integración de funcionalidades adicionales.
  4. Código Compartido y Reutilización: .NET MAUI permite la reutilización de una gran cantidad de código entre plataformas. Esto no solo incluye la lógica de negocio, sino también componentes de la interfaz de usuario a través de XAML y C#. Esta capacidad de compartir código reduce la duplicación de esfuerzos y hace que la gestión del código sea más sencilla y eficiente.
  5. Rendimiento y Acceso a Funcionalidades Nativas: .NET MAUI se basa en Xamarin.Forms, pero ofrece mejoras en rendimiento y acceso directo a funcionalidades nativas. Puedes escribir código específico de la plataforma cuando sea necesario utilizando C# y aprovechar APIs nativas, lo cual permite crear aplicaciones con un rendimiento cercano al nativo.

Estas razones hacen de .NET MAUI una opción atractiva para desarrolladores que buscan crear aplicaciones móviles robustas, eficientes y con una amplia cobertura de plataformas utilizando una única tecnología y base de código. mapa

{lang: 'es'}
Categories: asp.net Tags: , , ,

Publicar Web Api .net core en AWS

jueves, 6 de junio de 2024 Sin comentarios
AWS Toolkit

Como sabemos AWS ofrece una amplia gama de servicios para diversas necesidades proporciona soluciones escalables para negocios de todos los tamaños y sus centros de datos globales aseguran alta disponibilidad y baja latencia. Además tiene acceso gratuito a muchos servicios.
Por estas razones escribimos esta entrada con los pasos para publicar directamente usando el AWSToolKit desde Visual Studio.








  1. Instale AWS Toolkit para Visual Studio si aún no lo ha hecho.
  2. Cree un nuevo proyecto de API web de .NET Core en Visual Studio.
  3. Haga clic derecho en el proyecto en el Explorador de soluciones.
  4. Seleccione «Publicar en AWS» en el menú contextual.
  5. Inicie sesión en su cuenta de AWS cuando se le solicite.
  6. Elija «Elastic Beanstalk» como destino de publicación.
  7. Cree una nueva aplicación o seleccione una existente.
  8. Elija una plataforma, por ejemplo, «Amazon Linux 2 v5.3.0 de 64 bits con .NET Core«.
  9. Configure los ajustes del entorno, como el tipo de instancia.
  10. Proporcione un nombre de entorno y un dominio únicos.
  11. Haga clic en «Siguiente» y revise la configuración.
  12. Haga clic en «Implementar» para publicar su aplicación.
  13. Espere a que se complete la implementación; puede tomar varios minutos.
  14. Una vez implementada, puede acceder a su API web a través de la URL proporcionada.
  15. Supervise y administre su aplicación desde la Consola de administración de AWS.
{lang: 'es'}
Categories: asp.net Tags: , , ,

Message Broker: RabbitMQ

viernes, 3 de mayo de 2024 Sin comentarios
rabbitmq
rabbitMQ

En la entrada «Arquitectura microservicios y .Net core» describimos qué y por qué el interés de este tipo de arquitectura.
Una de las ventajas que se mencionaron es el desacoplamiento de estos microservicios, pero entonces ¿cómo se comunican estos microservicios desacoplados? Aquí entra los messages brokers.

Los message brokers, como RabbitMQ, son esenciales en arquitecturas de microservicios para facilitar la comunicación entre los diferentes componentes de la aplicación.
Actúan como intermediarios eficientes, permitiendo que los microservicios se comuniquen de manera asíncrona y desacoplada. Su capacidad para encolar y distribuir mensajes garantiza una alta disponibilidad y escalabilidad, lo que es crucial en entornos de microservicios dinámicos.
RabbitMQ proporciona una variedad de patrones de mensajería, como pub/sub, colas de trabajo y enrutamiento de mensajes, adaptándose a diversas necesidades de comunicación.
Al desacoplar la emisión y recepción de mensajes, los microservicios pueden evolucionar de manera independiente, sin afectar a otros componentes del sistema.
La durabilidad y la persistencia de los mensajes en RabbitMQ aseguran que los datos críticos no se pierdan en caso de fallo o interrupción.

Además, RabbitMQ ofrece características de encriptación y autenticación, garantizando la seguridad de la comunicación entre los microservicios.
Facilita la implementación de patrones de tolerancia a fallos, como la reintentación de mensajes y la gestión de errores, mejorando la robustez del sistema.
Permite la implementación de sistemas distribuidos altamente disponibles, donde los microservicios pueden escalar horizontalmente para manejar cargas variables.
Su arquitectura modular y extensible permite integrarlo fácilmente con otros servicios y herramientas utilizadas en el ecosistema de microservicios.
RabbitMQ ofrece monitoreo y herramientas de administración que permiten supervisar el rendimiento y la salud de la infraestructura de mensajería.
Facilita la implementación de patrones de entrega garantizada y consistencia eventual, lo que es fundamental en aplicaciones distribuidas.
Al promover la comunicación basada en eventos, RabbitMQ facilita la implementación de arquitecturas orientadas a eventos, que son adecuadas para sistemas altamente escalables y resilientes.
Su amplia adopción y comunidad activa proporcionan soporte continuo y recursos de aprendizaje para los equipos de desarrollo.
En resumen, el uso de RabbitMQ como message broker en arquitecturas de microservicios ofrece una serie de beneficios que incluyen escalabilidad, robustez, flexibilidad y seguridad, lo que lo convierte en una herramienta invaluable para el desarrollo de software moderno.

Tres desafíos o inconvenientes al utilizar un message broker como RabbitMQ en software de microservicios:

  1. Complejidad en la gestión y configuración: Configurar y administrar un message broker como RabbitMQ puede ser complejo, especialmente en entornos de microservicios donde hay múltiples instancias ejecutándose y comunicándose entre sí. La configuración de las colas, los intercambios, los enrutamientos y otros aspectos puede requerir un conocimiento profundo de la herramienta y de las mejores prácticas de arquitectura.
  2. Rendimiento y latencia: Aunque los message brokers son una solución eficaz para la comunicación entre microservicios, pueden introducir latencia adicional en las comunicaciones debido al procesamiento y enrutamiento de los mensajes. En entornos donde la latencia es crítica, como aplicaciones de alta velocidad o tiempo real esta sobrecarga puede ser un desafío y requerir optimizaciones adicionales.
  3. Complejidad en el manejo de errores y garantía de entrega: Aunque los message brokers ofrecen mecanismos para garantizar la entrega de mensajes, como confirmaciones y reintentos, gestionar adecuadamente los errores y las situaciones de error puede ser complicado. Los mensajes pueden perderse, duplicarse o entregarse en el orden incorrecto, lo que requiere estrategias de manejo de errores robustas y pruebas exhaustivas para garantizar la integridad de los datos y la fiabilidad del sistema.
{lang: 'es'}

Autenticación / Autorización en API Restful con JWT

domingo, 10 de marzo de 2024 Sin comentarios

.net core jwt
.net jwt autenticación

La autenticación es un aspecto crucial de la seguridad de las aplicaciones web. Garantiza que los
usuarios sean quienes dicen ser antes de otorgarles acceso a recursos o funcionalidades específicas.
Un método popular de autenticación en el desarrollo web moderno son los JSON Web Tokens (JWT). En esta
entrada, exploraremos cómo implementar la autenticación de token JWT en la web api de localización de
establecimientos de farmacia.

En .net core  esta funcionalidad la conseguimos con el Nuget System.IdentityModel.Tokens.Jwt

Entonces al controlador o método que queramos añadir que sean solicitudes autenticadas añadimos la cabecera [Autorize] y creamos otro control en le que escribimos la lógica de autenticación:

[HttpPost]
public IActionResult Post([FromBody] LoginRequest loginRequest)
{
    //If login email and password are correct then proceed to generate token
    var email = loginRequest.Email;
    var password = loginRequest.Password;
    if (email == "email" && password == "password")
    {
        var securityKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_config["Jwt:Key"]));
        var credentials = new SigningCredentials(securityKey, SecurityAlgorithms.HmacSha256);

        var Sectoken = new JwtSecurityToken(_config["Jwt:Issuer"],
          _config["Jwt:Issuer"],
          null,
          expires: DateTime.Now.AddMinutes(120),
          signingCredentials: credentials);

        var token = new JwtSecurityTokenHandler().WriteToken(Sectoken);

        return Ok(token);
    }
    return Unauthorized();
}

Así con JWT es un medio compacto y seguro para URL para representar identificaciones que se transferirán entre dos partes.
Estos identificadores se pueden firmar digitalmente, lo que los convierte en una forma segura de autenticar y transmitir información entre el cliente y el servidor. Los tokens JWT se utilizan a menudo para:
Autenticación sin estado, autenticación entre orígenes distintos, escalabilidad.

En resumen, podemos decir que, la identificación en APIs RESTful es esencial para garantizar la seguridad. JSON Web Tokens (JWT) se ha convertido en una elección popular para este propósito. Al implementar JWT, la información de identificación del usuario se codifica en un token firmado digitalmente, que luego se envía con cada solicitud. Esto permite a los servidores verificar la autenticidad y autorización de cada solicitud de manera eficiente. Los JWT contienen información como el ID del usuario y roles, facilitando la validación en el servidor sin necesidad de consultar la base de datos en cada solicitud. Además, la expiración del token proporciona una capa adicional de seguridad. En resumen, JWT simplifica la gestión de identidades en APIs RESTful, mejorando la eficiencia y seguridad del sistema.

{lang: 'es'}

Arquitectura microservicios y .Net core

martes, 3 de enero de 2023 Sin comentarios
arquitectura microservicios
Arquitectura Microservicios

La arquitectura de microservicios es un enfoque para desarrollar aplicaciones software en el que se divide una aplicación en pequeños servicios autónomos que se comunican entre sí a través de una interfaz estándar, como HTTP.

Cada microservicio se encarga de una tarea específica y puede ser desarrollado, implementado y escalado de manera independiente. Esto permite un mayor grado de flexibilidad y facilita el mantenimiento y la actualización de la aplicación.

Una de las ventajas de la arquitectura de microservicios es que permite a los equipos de desarrollo trabajar de manera más ágil y eficiente, ya que cada microservicio puede ser desarrollado y probado de manera aislada antes de ser integrado en la aplicación completa.

Otra ventaja es que, al estar cada microservicio diseñado para realizar una tarea específica, es más fácil identificar y solucionar problemas en caso de que surjan. Además, si un microservicio falla, solo afectará a una parte de la aplicación, en lugar de a la aplicación completa.

Si nos referimos al entorno .Net Core podemos aprovechar los tipos de proyecto minimal web api y web api como base para microservicios. Usar patrones como idempotent y cqrs. También crear microservicios resilientes con la librería Polly.

Sin embargo, también hay desafíos en la implementación de una arquitectura de microservicios. Por ejemplo, puede ser más complicado hacer seguimiento y monitorear el rendimiento de una aplicación compuesta por muchos microservicios diferentes. Además, puede ser más difícil garantizar la consistencia de la aplicación cuando está dividida en muchos componentes independientes.

En general, la arquitectura de microservicios es una opción interesante para aplicaciones de gran escala y complejidad, especialmente cuando se requiere un alto grado de flexibilidad y escalabilidad. Sin embargo, es importante evaluar cuidadosamente si esta arquitectura es adecuada para el proyecto en cuestión y estar consciente de los desafíos y requisitos adicionales que conlleva su implementación.

{lang: 'es'}