Archivo de la etiqueta: dotNet

Inyección de Dependencias en .Net Framework

Inyeccion de dependencias

Un mes ya… y hoy vengo a hablaros de la “Inyección de Dependencias” (DI). La inyección de dependencias consiste de manera resumida en evitar el acoplamiento entre clases utilizando interfaces. Gracias esto, conseguimos que cada clase tenga una función única, facilitando así el mantenimiento y el soporte de nuestro código. Esto que puede parecer un poco lioso a simple vista, y puede parecer mucho trabajo, se puede conseguir fácilmente cambiando levemente nuestro patrón de diseño. Vamos a imaginar que tenemos una clase que lee unos datos desde una base de datos con Entity Framework (“Database First” o “Code First“), y los envía por email: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Microsoft.EntityFrameworkCore; using PostInyeccion.Models; namespace PostInyeccion { class Program { static void Main(string[] args) { GeneradorInformes generador = new GeneradorInformes(); generador.GenerarInforme(); } } internal class GeneradorInformes { internal void GenerarInforme() { //Obtenemos los datos desde el contexto using (PostDbContext contexto = new PostDbContext()) { var profesores = contexto.Profesores.Include(x => x.Cursos) .ThenInclude(x => x.Alumnos).ToList(); //Trabajo de maquetacion //……. //Enviamos el correo var emailSender = new EmailSender(); var envioOK = emailSender.Enviar(profesores); if(!envioOK) { //Registramos el fallo en un log } } } } public class EmailSender { public… Leer más »

Generación de ficheros “Excel” (xlsx) con ClosedXML

closedxml

Después de llevar tiempo pensando en empezar a crear un blog, la semana pasada un compañero me pidió ayuda en un proyecto en el que necesitaban generar un excel en un servidor, el cual se enviaría al cliente, pero el servidor podía o no tener excel… -Para para!! ¿y tu quien eres?-Tienes razón, no me he presentado… Antes de nada, me voy a presentar, yo soy Jorge, un apasionado de las tecnologías de Microsoft, en especial .Net y Net Core. Trabajo como ingeniero de software en una empresa especializada en soluciones industriales, y es este bagaje el que me lleva querer compartir esas cosillas que he ido aprendiendo. Bueno, volviendo a la materia… Un compañero me pidió ayuda para generar un fichero “excel” sin necesidad de tener MS Excel, esto es algo que parece poco coherente, pero son muchas las situaciones en las que se necesita generar un documento de acceso público para programas que no necesariamente tenemos en nuestro servidor, ya sea por incompatibilidad o por ser propietarios. En este caso concreto, existe un SDK para poder hacer este trabajo, OpenXML. El principal problema de este SDK, es su pronunciada curva de aprendizaje, que hace que no sea rentable… Leer más »