Resumen del año 2021

Al finalizar este año 2021 este blog llevará en activo nada mas y nada menos que cuatro años, siempre activo y con actualizaciones mas o menos constantes. Cada uno de estos cuatro años he querido hacer un post retrospectivo, pero oye, por unas cosas o por otras nunca lo hacia. Y luego ya, entrado el año siguiente tampoco tenia mucho sentido hacerlo. Pero de este año no pasa, así que haya van unos cuantos datos sobre este 2021, no solo del blog sino también de todo el contenido que he ido generando a lo largo del año. Empezamos por el blog, pero vamos a ver también los números de Youtube y Twitch.

Sigue leyendo Resumen del año 2021

Renovar el certificado Microsoft

Renovar certificados Microsoft

Hace ya algún tiempo os contaba por aquí que había obtenido la certificación de Azure Solutions Architect Expert, y os explicaba mi experiencia a la par que os daba algunos consejos para preparar la certificación.

Antes, cuando te certificabas, al cabo de un año caducaba la certificación y si querías renovar el certificado de Microsoft tenias que presentarte de nuevo al examen. No se si mucha gente lo haría, pero yo jamás he renovado un certificado, me parecía un sistema terrible, la verdad. Con lo complicado que es obtener el certificado (al menos si lo haces bien) no voy a pasar por eso cada ocho meses (caduca al año, pero tendrás que prepararlo un poco antes).

Pero esto ha cambiado, y ahora hay un nuevo modo de renovar el certificado de Microsoft. Os explico cual ha sido mi experiencia.

Sigue leyendo Renovar el certificado Microsoft

Como compartir una contraseña de forma segura

No se si alguna vez te has visto en la necesidad de compartir una contraseña con alguien, o que la compartan contigo, pero a mi me ha pasado muchas veces. Es algo bastante habitual si trabajas en IT. «Pásame las credenciales para acceder al FTP», «te he dado de alta: toma, aquí tienes tu contraseña», «este es al API KEY para acceder a la API», etc. son algunas de las frases que podemos escuchar en nuestro día a día. O simplemente queremos mandar un texto del cual queremos controlar cuanto tiempo va a poder verse o por quien.

Compartir contraseñas por correo y por chat es inherentemente inseguro. Normalmente dentro del mismo correo suele haber contexto sobre este, e incluso cuando se envía en un mail por separado, este puede ser re-enviado y se pierde el control. Ni que decir que lo mismo sucede si compartimos por Teams, Telegram, Whatsapp, o cualquier otro chat.
Además, tanto en el correo como en los chats, estos secretos van a quedar expuestos para siempre.

Hoy os vengo a hablar de mi libro: Share Secrets, una herramienta web para poder compartir una contraseña de forma segura y controlada. Ojo, no es un gestor de contraseñas, es para compartir un secreto de forma puntual y que este solo sea visible durante un periodo muy controlado.

A continuación, os explico como.

Sigue leyendo Como compartir una contraseña de forma segura

Pasar el contexto de formulario y XRM de Dynamics 365 a un WebResource

Dynamics 365 CE permite muchas formas distintas para poder extender su funcionalidad y adaptarla a tus necesidades. Una de ellas es poder añadir un recurso web y mostrarlo en un formulario. Esto nos va a permitir crear nuestro propio HTML que se mostrará dentro de Dynamics.

En estos casos nos puede pasar que necesitemos mostrar en nuestro recurso web algún dato que se recupere del propio Dynamics.

Cuando estamos en el lado de cliente, Dynamics nos ofrece el objeto XRM y el FormContext para poder realizar acciones sobre los objetos del propio Dynamics y por lo tanto si tenemos que acceder a cualquier dato del formulario, podemos hacer algo tan sencillo como lo siguiente:

function displayName(executionContext)
{
    var formContext = executionContext.getFormContext(); // get formContext

    // use formContext instead of Xrm.Page  
    var firstName = formContext.getAttribute("firstname").getValue(); 
    var lastName = formContext.getAttribute("lastname").getValue();
    console.log(firstName + " " + lastName);
}

¿Pero que pasa cuando estamos en el contexto de nuestro recurso web? Pues que no tendremos dicho contexto y que por lo tanto, en este caso, no podemos acceder a estos datos. Pero es muy sencillo solucionar esto, vamos a ver como podemos pasar este contexto a nuestro recurso web para poder accederlo.

Sigue leyendo Pasar el contexto de formulario y XRM de Dynamics 365 a un WebResource

Pasar un número variable de parámetros en C#

Estamos en verano, y esto se nota en el blog. El ritmo de actualización ha bajado mucho, es cierto, pero también es cierto que genero mas contenido además del publicado en el blog, cosa que hace un año no era así. Aprovecho pues para recordarte que puedes seguir mi contenido en Twitch y en Youtube.

Dicho esto, vamos con una pequeña píldora. El otro día aprendí una nueva característica, posiblemente muy básica, de primero se podría decir, pero que yo por el motivo que fuese, desconocía. Y es la posibilidad de pasar un numero variable de parámetros a una función en C#.

Es posible que tengamos la necesidad de pasar un número variable de parámetros a una función, para ello podríamos pasar un listado o un array, pero también tenemos la palabra reservada params.

Para mostrar esta funcionalidad, un pequeño ejemplo. En este trozo de código tenemos una función recibe un número indeterminado de palabras, que simplemente junta para mostrar una frase:

static void Main(string[] args)
{
     MuestraFrase("Hola", "esto", "es", "una", "prueba"); 
}

public static void MuestraFrase(params string[] palabras)
{
     Console.WriteLine(string.Join(" ", palabras));
     Console.ReadLine();
}

El resultado de ejecutar el código anterior será:

Resultado de ejecutar el código de pasar un número variable de argumentos

Para poder usar esta funcionalidad solo hay que tener en cuenta un par de cosas:

  1. Se pueden pasar parámetros adicionales a la función, pero el declarado como params ha de ser el último dentro del método.
  2. El parámetro declarado como params ha de ser un array unidimensional

Hasta aquí esta pequeña píldora de verano, espero que te sea de utilidad.

¡Nos leemos!

Nombres de los recursos en Azure

ejemplo de convención de nombres de los recursos en Azure

En naming en desarrollo es importantísimo. Cuando empecé en esto, recuerdo «discusiones» en el equipo que podían durar 10-15 minutos para elegir el nombre de un método o una variable. «Mi no entender» pensaba, si solo es un nombre. ¡Que equivocado estaba! Yo venia de estudiar y de usar variables llamadas «aux, aux2, sum», etc.

Para tener una consistencia dentro de un mismo proyecto basado en Azure, es necesario establecer una convención de nombres para los recursos de Azure en la que apoyarnos a la hora de crearlos. Ya sabes como moverte por el portal de Azure para crear estos recursos, ahora debes ponerles un buen nombre.

Pueden existir muchas estrategias a la hora de elegir la convención adecuada, y todo dependerá del proyecto en el que trabajes y del equipo con el que colabores, pero aquí expongo mi propuesta.

Para poner un nombre a los recursos de Azure, podemos basarnos en los siguientes parámetros:

Sigue leyendo Nombres de los recursos en Azure

Empezar en Azure, algunos consejos

Si eres nuevo en esto del cloud y quieres empezar en Azure es mas que probable que estés un poco sobrepasado/a. Cientos de servicios, infraestructura, serverless, configuraciones… Voy a intentar darte algunos consejos para intentar que al menos la cosa sea un poco más leve.

Detecta cual es tu área

Esto no te va a costar mucho. En los entornos clasicos no cloud, ¿eres programador? o por el contrario ¿te encargas de la parte de sistemas? Si aún no has empezado en el mercado laboral, que es lo que te gustaría hacer. ¿Crear código o encargarte de la infraestructura?

En la nube, todo esto se diluye un poco mas, ya que al ser todo como servicio, es más sencillo entrar en uno u otro, pero básicamente y por buscar un punto de entrada, te diré que:

  • Si estas mas enfocado al desarrollo te van a interesar mas los servicios PaaS
  • Si estas enfocado al mundo sistemas, probablemente los servicios SaaS sean lo tuyo.

Como he dicho, no siempre es así y conviene conocer un poco de los dos mundos, pero estamos hablando de como ir empezando, hay que filtrar un poco.

Sigue leyendo Empezar en Azure, algunos consejos

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