Resumen del 2022 y retos para el 2023

Un año mas que se nos va de las manos. Se termina 2022 y empieza el 23, y como cada año, voy a hacer algo de resumen de lo que ha sido mi año, centrado en los canales en los que intento, en mayor o menor medida, compartir algo con la comunidad.

En la segunda mitad del año se puede ver un parón en mis aportaciones al canal de YouTube y un parón total en Twitch. Esto ha sido debido a un cambio de trabajo, donde he tenido que salir totalmente de mi zona de confort y aprender cosas nuevas necesarias en mi nueva aventura. Todo el tiempo que he necesitado para auto-formarme junto a mi vida familiar a algún que otro achaque de salud, han hecho que esta segunda mitad del 2022 abandonase un poco el tema de compartir contenido, ya sea por falta de tiempo o de ganas. Este 2023 empieza fuerte, con nuevo cambio de trabajo (por diversos motivos, el anterior no ha terminado de cuajar, pero he podido aprender cosas nuevas) y con ganas de retomar todos mis canales: el blog, YouTube y Twitch.

Como he comentado, la cosa ha estado algo frenada, pero no parada, y aquí van unos cuantos números.

Sigue leyendo Resumen del 2022 y retos para el 2023

Como consumir una API de Business Central

Es mas que probable que si estas trabajando en expansiones de Business Central o en integraciones donde BC esté involucrado, en algún momento tengas que compartir o insertar datos desde un punto externo. Para ello, tenemos el objeto Page del tipo API, que nos permite exponer una API para consumir o insertar datos. Vamos a ver como consumir esta API.

Sigue leyendo Como consumir una API de Business Central

Todas las noticias sobre Azure de un vistazo

Creo que alguna vez os he comentado sobre mi proyecto Azure Noticias, que pretendía ser una web donde recopilar noticias, artículos y formaciones sobre Azure. Lo podéis encontrar (al menos de momento) aquí.

Una de las piezas de este proyecto, es un pequeño «crawler» o «araña» que recopila noticias y artículos sobre Azure para ponerlos todos bien juntitos y que sea sencillo de seguir todo lo que se va publicando. Dentro de poco, la web dejará de estar activa, pero el «crawler» sigue activo en el canal de Discord de Azure Noticias.

Si quieres estar al tanto de todas las noticias y artículos sobre Azure, no lo pienses y pásate por el canal de Discord, donde además, hablamos sobre muchos más temas.

¡Nos leemos!

Librerías HTTP en .Net

He de decir que nunca me había planteado usar librerías HTTP para hacer una llamada REST desde mí código en C#. Simplemente uso HttpClient y luego serializo el resultado con Newtonsoft, nada del otro mundo. La autenticación, parámetros o cuerpo de la petición, la monto a mano y listos. Hasta el día de hoy (en el momento de escribir esta entrada para el blog) no conocía librerías para hacer esto, ni interés que tenia. Pero entonces, me ha llamado un compañero de trabajo para ver si podía darle mi opinión sobre un tema y mientras mirábamos el código, he visto una clase llamada RestClient. -Eso no es estándar de .Net- he pensado, así que me he puesto a indagar. Y lo que he visto me ha parecido interesante y por eso he indagado un poco y me he puesto ha hacer unas pruebas básicas, para ver si compensa o no usar librerías para realizar llamadas HTTP.

Sigue leyendo Librerías HTTP en .Net

Pasar argumentos en la aplicación de consola con Net 6 y Visual Studio 2022

Si ya has instalado Visual Studio 2022 en tu PC y te has dispuesto a crear una aplicación de consola con .Net 6 tal vez te haya sorprendido el aspecto de la nueva plantilla, que siguiendo con la línea de las «minimal API«, han hecho desaparecer toda la sintaxis a la que estábamos acostumbrados, ahora se va al grano 😉

nuevo aspecto de los programas de consola en Net 6 y Visual Studio 2022

Pero claro, con esto ha desparecido el clásico static void main(string[] args). Entonces, ¿Cómo hacemos si queremos pasar argumentos? Sigue leyendo, que te vas a sorprender.

Sigue leyendo Pasar argumentos en la aplicación de consola con Net 6 y Visual Studio 2022

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!