Yield Return: que es y como usarlo

Hoy os quiero traer una pequeña píldora con el uso de yield return en C#. Usándolo, estamos indicando que el método es un iterador. Pero, ¿esto que quiere decir?

Veámoslo con un ejemplo, leed el siguiente código. Sin conocer el uso de yield return, a priori el método DameInts() sería imposible, ya que entraríamos en un bucle infinito. Tomate un segundo y ejecútalo, a ver que pasa.

using System;
using System.Collections.Generic;

namespace ConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {

            Console.WriteLine("Hello World!");
            var resultado = DameInts();
            foreach (var a in resultado)
                Console.WriteLine(a);
        }

        public static IEnumerable<int> DameInts()
        {
            int i = 0;
            while (true)
            {
                yield return ++i;
                System.Threading.Thread.Sleep(1000);
            }
        }

    }
}
Sigue leyendo Yield Return: que es y como usarlo

Algunos libros que me han ayudado a mejorar

Los libros tienen algo especial, por mucho artículo que leamos en Internet, siempre nos gusta tener uno entre las manos para mejorar nuestras habilidades. Hace poco os hablaba de algunos cursos que usé para preparar la certificación de Azure Solutions Architect Expert y de como estoy preparando la certificación certificación Azure DevOps Engineer Expert. Esta vez es tuno de hablar de algunos libros de los que he aprendido algo a lo largo de los años.

Sigue leyendo Algunos libros que me han ayudado a mejorar

Preparar certificación Azure DevOps Engineer Expert

Mapa necesario para obtener la certificación Azure DevOps Engineer Expert

Hace algunos meses obtuve el certificado de Azure Solutions Architect Expert. Mi siguiente objetivo a nivel de certificaciones es el DevOps Engineer Expert, que consta de dos exámenes, el AZ-400 que es el de Microsoft DevOps Solutions y luego hay que tener un examen previo, que puede ser el de Azure Administrator Associate o el de Azure Developer Associate. En mi caso, como tengo mucha experiencia en el tema de desarrollo y algo menos en el de administración, voy a aprovechar para hacer el de administrador, el AZ-104.

En este primer artículo os voy a comentar como voy a preparar la certificación y mas adelante, cuando realice los exámenes, os comentaré que tal.

Sigue leyendo Preparar certificación Azure DevOps Engineer Expert

Patrones cloud: patrón Retry

Que es un patrón en desarrollo de software

Antes de ver el patrón retry, vamos a empezar por el principio, vamos a ver que es un patrón. En el desarrollo de software, es de los más normal encontrarnos con problemas y/o retos que son recurrentes y que siempre están ahí. Retos que son agnósticos al lenguaje de programación que utilices, incluso si estas haciendo algo con alguna herramienta low code, te encontraras con estas casuísticas. ¿Cómo accedemos a la base de datos? ¿Cómo tratamos los errores? ¿Cómo muevo millones de registros en el menor tiempo posible?, etc. ¿no te ha pasado nunca que tienes un error, un problema, algo que no sabes como hacer, lo buscas en StackOverflow, y hay cientos de respuestas? Seguro que creías que eso solo te había pasado a ti, pero no, en software, todos nos encontramos con las mismas problemáticas.

Un patrón es un diseño que nos permite “atacar” a una casuística concreta, no es mas que una forma concreta de resolver un problema. Puedes profundizar mucho más en la definición desde la página de Wikipedia.

Los patrones cloud, por lo tanto, serán soluciones a problemas concretos que se dan en los entornos y desarrollos pensados para la nube. Recuerda, son soluciones agnosticas a la tecnologia que uses. Yo para mis ejemplos voy a usar Azure y C#, pero podrías aplicar el patrón a AWS y Java, por ejemplo, o picar el código en Python, es indiferente.

Sigue leyendo Patrones cloud: patrón Retry

Portal Azure: Las claves para dominarlo

Empezar en Azure puede ser abrumador y el punto de entrada a este nuevo y maravilloso mundo es el portal de Azure. En este artículo veremos como funciona y como entenderlo.

Página principal

Una vez te has dado de alta en Azure y te dispones a empezar, lo primero que te encuentras al acceder al portal de Azure es su pantalla principal. No te asustes, vamos a ver que es todo lo que nos muestra y como navegar y usar el portal.

Imagen de la página principal de portal azure
Página principal del Portal de Azure

En la parte central de la pantalla (3 y 4) se puede ver un resumen de los últimos servicios que se han visitado (4), si es la primera vez que entras, estará vacío y unos cuantos accesos directos para crear algunos de los servicios más comunes (3).

En la barra de la cabecera se encuentra un buscador, maravilloso por cierto. Cuando introduces un termino de búsqueda, aparecen resultados sobre los distintos servicios que ofrece Azure, sobre los recursos creados por ti o sobre la documentación. Todo en un único punto centralizado.

A continuación puedes ver los iconos para acceder al Shell propio que incluye el portal Azure, al filtro de suscripciones (que veremos mas adelante), el centro de notificaciones y las opciones (5). Finalmente te encontrarás con la gestión del usuario conectado, similar al de cualquier portal web (6). Este punto esta muy conseguido, ya que puedes gestionar varias cuentas distintas y es muy sencillo cambiar de una a otra.

Desde la sección de configuración puedes cambiar el idioma o el tema del portal, entre otras cosas.

Sigue leyendo Portal Azure: Las claves para dominarlo

Como hacer Git Flow con Azure Repos

Hace ya unos cuantos años, en 2010, Vincent Driessen escribió una entrada que titulo “Un modelo exitoso de ramas para Git“. Han pasado 10 años y el modelo que definió sigue siendo extensamente usado. A ese modelo lo llamó Git Flow y aunque el mismo recomienda otros modelos mas sencillos en algunos escenarios (que abordaré en futuras entradas y videos), a día de hoy es un sistema muy utilizado.

En el siguiente video muestro que es y como usar Git Flow, usando Azure Repos y Visual Studio.

El sistema se basa en la gestión de un sistema de ramas donde existen dos ramas principales: master y develop. A partir de ahí podemos trabajar con ramas de feature, de hotfix y de releases.

Modelo de ramas propuesto por Git Flow
Modelo de ramas propuesto por Git Flow

Aventuras de un arquitecto: Por que decidí crear una capa de API Rest delante de un D365 Field Service

Hola, el otro día estaba leyendo el libro de Satya Nadella (Pulsa refrescar, lo recomiendo mucho, esta regalado en Amazon) en el que habla de cómo ha liderado el cambio tanto tecnológico como cultural en Microsoft. Una de las cosas que dice es que a él lo que le funciona es la empatía, el ponerse en el lugar de los otros. Así que he reflexionado un poco sobre el tema y he pensado que tal vez, desde la parte tecnológica, a veces no se explica lo suficiente el porqué de ciertas decisiones que tomamos y, por lo tanto, no se están entendiendo desde áreas no técnicas. A veces es por nuestro ego (hablo por mí, por supuesto), el orgullo, la falta de empatía o el hecho de que tal vez no se nos escucha como se debería desde las áreas no tecnológicas. Tal vez la suma de todo.

He pensado que tal vez, explicando algunos casos de decisiones que he tomado con más detalle, sin hablar en idioma puramente técnico. Por lo tanto, voy a iniciar una serie de entradas en el blog en las que hablare de algunas decisiones que he tomado y el por que de estas. Tal vez tenga suerte y consiga un debate interesante.

Sigue leyendo Aventuras de un arquitecto: Por que decidí crear una capa de API Rest delante de un D365 Field Service

Teletrabajo: algunos consejos de lo que aprendí después de un año

Fuente de la imagen: https://confilegal.com/

He leído muchas veces eso de que el COVID ha hecho mas por el teletrabajo en unos meses, que todo lo conseguido hasta ahora. Seguro que existen excepciones, pero a todo el que opine así, os voy a contar un secreto: esto que estamos haciendo ahora no es teletrabajo real. Es teletrabajo forzado, muchas veces con niños en casa y simplemente moviendo nuestro espacio físico a nuestra casa. Pero seguimos manteniendo mil reuniones (que reducen nuestra productividad) vía Teams, Zoom, o el software que use la empresa, seguimos manteniendo los mismos horarios fijos de la oficina y seguimos trabajando igual. Básicamente, hacemos lo que podemos con lo que tenemos.

Durante una época de mi vida, trabajé en una start-up donde se hacia teletrabajo real (no teníamos ni oficinas), por lo que estuve cerca de dos años teletrabajando sin pandemia que obligase a ello. Estas son algunas de las cosas que aprendí de aquella experiencia y que espero que os pueda servir de algo. Os avanzo, que al principio no me fue nada fácil adaptarme.

Sigue leyendo Teletrabajo: algunos consejos de lo que aprendí después de un año

7 cosas a tener en cuenta al hacer integraciones con volúmenes altos de datos en Dynamics 365 CE (aka CRM)

En la mayoría de los proyectos en los que he participado y que Dynamics 365 CE (aka CRM) estaba involucrado, en mayor o menor medida, hemos tenido que integrarnos con otros sistemas para cruzar datos entre ambos. Estas son algunas cosas que he ido aprendiendo y que me han ido enseñando (gente que sabe mucho mas de D365CE que yo) a lo largo de estos proyectos. Si estas leyendo esto y tienes algún tip mas, no dudes en ponerlo en los comentarios, !siempre será bienvenido!

Sigue leyendo 7 cosas a tener en cuenta al hacer integraciones con volúmenes altos de datos en Dynamics 365 CE (aka CRM)