in

Presentamos Bob’s Used Books: una nueva aplicación de ejemplo de .NET para el mundo real | Servicios web de Amazon

Hoy, estoy feliz de anunciar que un nuevo aplicación de muestra de código abierto, una tienda de comercio electrónico ficticia de libros usados ​​que llamamos Bob’s Used Books, está disponible para los desarrolladores de .NET que trabajan con AWS. Los equipos de defensa y desarrollo de .NET en AWS hablan con los clientes regularmente y, durante esas conversaciones, a menudo reciben solicitudes de muestras más detalladas. Los clientes nos dicen que, si bien los pequeños fragmentos de código sirven para ilustrar la mecánica de una API, sus equipos de desarrollo también necesitan y desean utilizar muestras más completas y del mundo real para comprender mejor cómo construir aplicaciones modernas para la nube. El lanzamiento de la aplicación de muestra de hoy es en respuesta a esas solicitudes.

Bob’s Used Books es una aplicación de comercio electrónico de muestra creada con Núcleo de ASP.NET versión 6 y representa una modernización inicial de una típica aplicación personalizada local. Representando una primera etapa de modernización, la aplicación utiliza .NET multiplataforma moderno, lo que le permite ejecutarse en sistemas Windows y Linux en la nube. Es típico de lo que muchos desarrolladores de .NET están experimentando ahora, portando sus propias aplicaciones de .NET Framework a .NET utilizando herramientas disponibles gratuitamente de AWS, como Toolkit for .NET Refactoring y Porting Assistant para .NET.

Página de inicio de la aplicación de ejemplo de Libros usados ​​de Bob

Características de la aplicación de muestra
Los clientes de nuestra librería ficticia pueden navegar y buscar en la tienda libros usados ​​y ver detalles sobre libros seleccionados, como precio, condición, género y más:

Página de resultados de búsqueda de la aplicación de ejemplo Libros usados ​​de Bob, que muestra 8 libros y sus precios.

Página de detalles del libro de solicitud de muestra de Bob's Used Books

Al igual que una tienda de comercio electrónico real, los clientes pueden agregar libros a un carrito de compras, pendientes de pago posterior o a una lista de deseos personal. Cuando llega el momento de comprar, el cliente puede iniciar el proceso de pago, lo que lo alentará a iniciar sesión si es un cliente existente o registrarse durante el proceso.

Página de pago de la aplicación de muestra de Libros usados ​​de Bob

En esta aplicación de muestra, el personal de la librería usa la misma aplicación web para administrar el inventario y los pedidos de los clientes. La autenticación basada en funciones se utiliza para determinar si se trata de un miembro del personal que inicia sesión, en cuyo caso puede ver un portal administrativo o un cliente habitual de la tienda. Para el personal, después de acceder al portal de administración, comienzan con una vista de tablero que resume los pedidos pendientes, en proceso o completados y el estado del inventario de la tienda:

Página del panel del personal de la aplicación de ejemplo de Bob's Used Books

El personal puede editar el inventario para agregar nuevos libros, completar con imágenes de portada o ajustar los niveles de existencias. Desde el mismo tablero, el personal también puede ver y procesar los pedidos pendientes.

Página de procesamiento de pedidos del personal de la aplicación de ejemplo de Libros usados ​​de Bob

No se muestra aquí, pero algo que creo que es genial, es un flujo de trabajo simulado donde los clientes pueden revender sus libros a través de la tienda. Esto implica que el cliente envíe una solicitud, el administrador de la tienda evalúe y decida si comprarle al cliente, el cliente «enviará» el libro a la tienda si es aceptado y, finalmente, el administrador agregará el libro al inventario y reembolsará al cliente. Recuerde, todo esto es ficticio, sin embargo, ¡no se llevan a cabo transacciones financieras reales!

Arquitectura de la aplicación
La muestra de la librería no comenzó como una aplicación basada en .NET Framework que necesitaba trasladarse a .NET, pero utiliza un diseño de aplicación MVC (controlador de vista de modelo) monolítico, típico de la era de desarrollo de .NET Framework (y aún en uso hoy en día). También utiliza una sola base de datos de Microsoft SQL Server para contener inventario, carrito de compras, datos de usuario y más.

Ejemplo de arquitectura de esquema de aplicación de Bob's Used Books

Cuando se implementa por completo en AWS, la aplicación utiliza varios servicios. Estos proporcionan recursos para alojar la aplicación, proporcionan configuración a la aplicación en ejecución y también brindan una funcionalidad útil para el código en ejecución, como la verificación de imágenes:

  • Amazon Cognito: se utiliza para la autenticación de clientes y personal de librerías. La aplicación utiliza cognitoInterfaz de usuario alojada para proporcionar funcionalidad de inicio de sesión y registro.
  • Amazon Relational Database Service (RDS): administra una sola instancia de Microsoft SQL Server Express que contiene inventario, clientes y otros datos típicos para una aplicación de comercio electrónico.
  • Servicio de almacenamiento simple de Amazon (Amazon S3): se utiliza un cubo S3 para almacenar imágenes de portada para libros.
  • Almacén de parámetros de AWS Systems Manager: contiene datos de configuración en tiempo de ejecución, incluido el nombre del depósito de S3 para las imágenes de portada y cognito detalles del grupo de usuarios.
  • AWS Secrets Manager: contiene los detalles de usuario y contraseña para la base de datos subyacente de SQL Server en RDS.
  • Amazon CloudFront: proporciona un dominio para acceder a las imágenes de portada en el depósito S3, lo que significa que no es necesario que el depósito esté disponible públicamente.
  • Amazon Rekognition: se utiliza para verificar que las imágenes de portada cargadas para un libro no tengan contenido objetable.

La aplicación es un punto de partida para mostrar más oportunidades de modernización en el futuro, como la adopción de bases de datos especialmente diseñadas en lugar de usar una sola base de datos relacional, la descomposición del monolito para usar microservicios (para este último, AWS proporciona Microservice Extractor para .NET) , y más. Los equipos de desarrollo, defensa y arquitectura de soluciones de .NET aquí en AWS están muy entusiasmados con las oportunidades de nuevo contenido, utilizando esta muestra, para ilustrar esas oportunidades de modernización en los próximos meses. Y, dado que la muestra es de código abierto, también estamos interesados ​​en ver a dónde se dirige la comunidad de desarrollo de .NET con respecto a la modernización.

Ejecutando la aplicación
Mi colega Brad Webber, arquitecto de soluciones en AWS, ha escrito la primera de una serie de publicaciones de blog técnicas que publicaremos sobre la muestra. Los encontrará en el nuevo canal de blog de .NET en AWS. En su primera publicación, aprenderá más sobre cómo ejecutar o depurar la aplicación en su propia máquina, así como también cómo implementarla completamente en la nube de AWS.

La aplicación utiliza Servidor SQL Express localdb instancia para sus necesidades de base de datos cuando se ejecuta fuera de la nube, lo que significa que actualmente necesita usar una máquina con Windows para ejecutar o depurar. Los perfiles de lanzamiento, a los que se puede acceder desde Visual Studio, Visual Studio Code o JetBrains Rider (todos en Windows), se utilizan para seleccionar cómo se ejecuta la aplicación (por ejemplo, sin o con algunos recursos en la nube):

  • Local – Cuando selecciona este perfil de lanzamiento, la aplicación se ejecuta completamente en su máquina, no utiliza recursos de la nube y no necesita una cuenta de AWS. Esto le permite investigar y experimentar con el código sin incurrir en cargos por los recursos de la nube.
  • Integrado – Cuando usa este perfil, la aplicación aún se ejecuta localmente en su máquina Windows y continúa usando la instancia de la base de datos localdb, pero ahora también usa algunos recursos de AWS, como un depósito S3, Rekognition, cognito, y otros. Este perfil le permite aprender cómo puede usar los servicios de AWS dentro del código de su aplicación, usando el SDK de AWS para .NET y varias bibliotecas de extensión que distribuimos en NuGet (para obtener una lista completa de todas las bibliotecas disponibles que puede usar al desarrollar sus aplicaciones, ver el .NET en el repositorio de AWS en GitHub). Para permitirle configurar los recursos en la nube que necesita la aplicación al usar este perfil, se proporciona un proyecto del Kit de desarrollo de la nube de AWS (AWS CDK) en el repositorio de muestra, lo que facilita la configuración y eliminación de esos recursos a pedido.

Implementación de la muestra en AWS
También puede implementar toda la aplicación en la nube de AWS, en este caso, en máquinas virtuales en Amazon Elastic Compute Cloud (Amazon EC2) con una instancia de base de datos de SQL Server Express en Amazon Relational Database Service (RDS). La implementación utiliza recursos compatibles con la capa gratuita de AWS, pero tenga en cuenta, sin embargo, que aún puede incurrir en cargos si supera los límites de la capa gratuita. A diferencia de ejecutar la aplicación en su propia máquina, que requiere Windows debido a la dependencia de localdb, puede implementar la aplicación en AWS desde cualquier máquina, incluidas las que ejecutan macOS y Linux. Una vez más, se incluye un proyecto CDK en el repositorio para que pueda comenzar, y la publicación del blog de Brad brinda más detalles sobre estos pasos, por lo que no los repetiré aquí.

El uso de máquinas virtuales en la nube suele ser un primer paso para modernizar las aplicaciones locales debido a la similitud con la configuración de un servidor local, de ahí la razón para admitir las implementaciones de Amazon EC2 listas para usar. En el futuro, agregaremos contenido que muestre cómo implementar la aplicación en servicios de contenedores en AWS, como AWS App Runner, Amazon Elastic Container Service (Amazon ECS) y Amazon Elastic Kubernetes Service (EKS).

Próximos pasos
El La aplicación de ejemplo Bob’s Used Books ya está disponible en GitHub. Le animamos, si es un desarrollador de .NET que trabaja en AWS y busca una muestra más profunda y más real, a clonar el repositorio y probar la aplicación. También tenemos curiosidad acerca de qué viajes de modernización decidiría tomar con la aplicación, lo que nos ayudará a crear contenido futuro para la muestra. Háganos saber en el sección de problemas del repositorio. Y si quieres contribuir a la muestra, ¡aceptamos contribuciones!

Fuente

Apple lanza Safari Technology Preview 169 con correcciones de errores y mejoras de rendimiento

Vulnerabilidad AMD fTPM descubierta

Vulnerabilidad AMD fTPM descubierta