Archivo de la etiqueta: csharp

ClosedXML, una manera fácil de dar formato a nuestros .xlsx

closedxml

Hace ya unos meses que empezamos en este blog, con una entrada sobre ClosedXML, pero si que es cierto, que se puedo quedar un poco corta, aunque daba las ideas más básicas. Hoy, vamos a ampliar esa pequeña píldora sobre ClosedXML aprendiendo a dar formato a nuestras hojas. Nuestro objetivo Vamos a intentar hacer una tabla de colores como la que tenemos a continuación: Creación del proyecto Por cambiar un poco desde de la primera parte, vamos a crear un proyecto en .NetCore (ahora que también sabemos instalar el framework en linux o como depurar sobre SSH), para ello, creamos un proyecto de consola: O desde el CLI de NetCore: dotnet new console Lo siguiente que tenemos que hacer es añadir el paquete ClosedXML a través de nuget. Esto se puede hacer a través de la “Consola de Administrador de Paquetes” con el comando: PM->Install-Package ClosedXML O también desde el CLI de NetCore: dotnet add package ClosedXML Como siempre, utilizando el administrador que integra VS: Generando y formateando el fichero con ClosedXML Teniendo claro el objetivo, vamos a ponernos con en faena y analizar el código que hemos utilizado: using ClosedXML.Excel; using System.Collections.Generic; namespace PostClosedXML2 { class Program { static IEnumerable… Leer más »

Como instalar .NetCore en Linux

      No hay comentarios en Como instalar .NetCore en Linux
Depuración remota sobre SSH

Después de tantas entradas hablando sobre .NetCore y lo que me gusta utilizar una herramienta multiplataforma, hoy vamos a ver como instalar el SDK de .NetCore en Linux. Esto puede parecer algo complicado, pero en realidad es muy muy fácil. En este caso, vamos a utilizar para el ejemplo una distribución Debian 9.5. Instalando .NetCore en Linux En primer lugar, es necesario instalar el paquete “apt-transport-https”, el cual nos permite conectar con los repositorios de Microsoft: sudo apt-get install apt-transport-https Después, vamos a registrar las claves de Microsoft dentro de el registro de claves seguras, de cara a que no nos de advertencias al utilizar HTTPS los repositorios, para ello, escribimos las siguientes instrucciones en la terminal (En caso de no utilizar Debian sino otra distro, puedes consultar las instrucciones aquí): sudo wget -qO- https://packages.microsoft.com/keys/microsoft.asc | gpg –dearmor > microsoft.asc.gpg sudo mv microsoft.asc.gpg /etc/apt/trusted.gpg.d/ sudo wget -q https://packages.microsoft.com/config/debian/9/prod.list sudo mv prod.list /etc/apt/sources.list.d/microsoft-prod.list sudo chown root:root /etc/apt/trusted.gpg.d/microsoft.asc.gpg sudo chown root:root /etc/apt/sources.list.d/microsoft-prod.list Una vez hecho esto, ya hemos añadido los repositorios a nuestra maquina, con lo cual, solo nos queda actualizar la lista e instalar el SDK: sudo apt-get update sudo apt-get install dotnet-sdk-2.1 Con estos sencillos pasos, ya tenemos el SDK instalado… Leer más »

Rompiendo los limites: Mocking en las Pruebas Unitarias .Net

Mocking

Hoy por fin os traigo la unión entre las Pruebas Unitarias y la Inyección de Dependencias, el “Mocking“. ¿Que es el “Mocking” te preguntarás?, pues es la técnica utilizada para simular objetos en memoria con la finalidad de poder ejecutar pruebas unitarias. Esto, es especialmente útil cuando utilizamos recursos externos como bases de datos o servicios de mensajería, o cualquier cosa en general que no queramos o no podemos ejecutar durante las pruebas unitarias. Sin mas preámbulos, ¡vamos con ello! En primer lugar, he reutilizado el proyecto Entity Framework Core “Code First” para partir de tener el contexto de datos creado. Ademas, he añadido una clase “GeneradorInformes” (la cual cumple el patrón de Inyección de Dependencias en el constructor) y una clase “EmailSender” que implementa la interfaz “IEmailSender”: Proyecto //IEmailSender.cs namespace PostMocking.Model { public interface IEmailSender { bool Enviar(string Destinatario, string Mensaje); } } //EmailSender.cs namespace PostMocking.Model { public class EmailSender : IEmailSender { public bool Enviar(string Destinatario, string Mensaje) { //{…} return true; } } } //GeneradorInformes.cs using Microsoft.EntityFrameworkCore; using PostMocking.Data; using System.Linq; using System.Text; namespace PostMocking.Model { public class GeneradorInformes { //Propiedad con la dependencia private IEmailSender emailSender { get; set; } private PostMockingDbContext context { get; set; } public… Leer más »