Rellenar dinámicamente un modal de Bootstrap con .NET Core y JQuery

A menudo queremos mostrar información, por ejemplo de un producto o un grupo de filtros de nuestra aplicación en un modal de bootstrap. No es una buena praxis llenar un modal para cada posible elemento. Mediante una llamada a un método del controlador usando la función de jquery.ajax podemos hacer una petición a un método de un controlador que nos devolverá una vista parcial a la que enviamos un modelo para que se rellene. Vamos a verlo con un ejemplo paso a paso. Primero echemos un vistazo a nuestro enlace que pone en…continue reading →

Almacenar ficheros en Azure File Share

¿Qué es Azure File Share? Azure File Share es un servicio de azure que ofrece recursos compartidos de archivos administrados en la nube. Os voy a explicar como crear el recurso en el portal de azure y luego como implementarlo en nuestro proyecto. Portal de Azure Lo primero que deberemos hacer es crear una cuenta de almacenamiento de azure. https://www.flickr.com/photos/192274185@N08/51129138916/in/dateposted-public/ Debemos elegir un grupo de recursos y darle un nombre a la cuenta, las demás opciones las podemos dejar como están por defecto. A continuación, procedemos a validar y crear. https://www.flickr.com/photos/192274185@N08/51129138906/in/dateposted-public/ Después, entramos…continue reading →

Envio de emails de forma automatizada con SendGrid en Azure

Que es SendGrid: SendGrid es un servicio de correo electrónico basado en la nube que ofrece un sistema confiable de entrega de correo electrónico transaccional, escalabilidad y análisis en tiempo real junto, con API flexibles que facilitan la integración personalizada. A continuación se indican casos de uso comunes de SendGrid: •             Envío automático de recepciones o compra de confirmaciones a clientes. •             Administración de las listas de distribución para el envío mensual de folletos y promociones a clientes. •             Recopilación de métricas en tiempo real para, por ejemplo, direcciones de correo electrónico bloqueadas…continue reading →

CACHÉ REDIS

Caché Redis es un tipo de almacenamiento, como session, pero en Azure, es decir, este tipo de caché permanece disponible entre las diferentes aplicaciones que lo implementen y si, por ejemplo, tuviésemos un carrito de la compra en el navegador de un ordenador, podríamos seguir teniendo ese carrito disponible si abrimos la aplicación en el movil. Para crear un almacenamiento Redis debemos seguir los siguientes pasos:1. Abrimos el portal de Azure.2. Crear nuevo recurso.3. Buscamos Bases de datos y seleccionamos Redis Cache. 4. Seleccionamos tipo de suscripción, grupo de recursos, el nombre de…continue reading →

Cómo hacer un carrito en ASP.NET Core

A la hora de hacer una página web de una tienda online, uno de los elementos más importantes es el carrito de la compra. A continuación, os voy a explicar de una manera sencilla, como implementarlo en nuestro proyecto ASP.NET Core. Requisitos Deberemos instalar el NuGet de Session. En Session solo podemos guardar string e integer. Al ser un carrito, querremos almacenar un array de elementos, y para ello deberemos extender la clase Session. Para poder serializar un array usaremos el NuGet Newtonsoft.json. https://www.flickr.com/photos/192274185@N08/50962074542/in/dateposted-public/ https://www.flickr.com/photos/192274185@N08/50961264983/in/dateposted-public/ Configuración Primero debemos configurar Session para que funcione…continue reading →

Descarga de ficheros en Net Core

Vamos a ver como descargar ficheros mediante los Action Result de los controladores en Net Core. Vamos a trabajar solo con un controlador, HomeController y la vista Index. En vez de devolver un IActionResult vamos a devolver un FileResult, es lo mismo pero devuelve un fichero en lugar de una vista. Creamos una función que devuelva un FileResult, guardamos el mensaje en una variable y después la convertimos a un array de bytes. Devolvemos el array de bytes, el tipo mime del fichero y su nombre con su extensión. public class HomeController :…continue reading →