Entradas

Adiós a Mono en .NET MAUI: qué cambia con CoreCLR en .NET 11

Imagen
Durante años, desarrollar aplicaciones móviles con C# ha significado convivir con dos mundos dentro de .NET. El backend, las aplicaciones de escritorio y los servicios en la nube utilizaban CoreCLR, mientras que Android, iOS y Mac Catalyst seguían ejecutándose sobre Mono. En .NET 11 esa separación empieza a desaparecer: CoreCLR pasa a ser el runtime predeterminado de .NET MAUI también en las plataformas móviles. El cambio es importante, pero conviene interpretarlo bien. No significa que tengamos que reescribir la interfaz ni abandonar XAML, los handlers o nuestras bibliotecas habituales. Lo que cambia está más abajo: es el motor que ejecuta el código administrado, gestiona la memoria, compila métodos y proporciona herramientas de diagnóstico. Mono fue la pieza que hizo posible .NET en móviles Hablar de esta transición como si Mono hubiera sido un error sería injusto. Mono llevó C# a entornos donde originalmente .NET no podía ejecutarse. De MonoTouch y MonoDroid nacieron Xamarin...

¿Con la IA llega el fin de los PROGRAMADORES?

Imagen
El otro día vi un video de Nate Gentile sobre si la inteligencia artificial va a acabar con los programadores, y me dejó pensando bastante. No tanto porque crea que mañana vaya a desaparecer la profesión, sino porque sí veo claro que la forma de programar está cambiando muy rápido. Hay una pregunta que vuelve una y otra vez cada vez que aparece una nueva herramienta de inteligencia artificial para programar: ¿van a desaparecer los programadores? La respuesta corta es incómoda: algunos sí. O, mejor dicho, desaparecerá una parte concreta del oficio. La parte más mecánica, repetitiva y automática. La parte de convertir instrucciones relativamente claras en código relativamente estándar. Esa zona del trabajo ya está siendo invadida por agentes capaces de leer archivos, modificar proyectos, ejecutar comandos, corregir errores y repetir el ciclo hasta que algo funciona. Pero esa no es toda la historia. Programar nunca fue solo escribir código Durante años hemos confundido programa...

Evitar un crash en iOS al hacer scroll automático en un chat .NET MAUI

Imagen
Esta semana el caso mas interesante no fue un error grande, sino uno de esos fallos de interfaz que solo aparecen cuando la aplicación empieza a correr en un dispositivo real, con listas virtualizadas, filas de altura variable y eventos que llegan en momentos poco cómodos. El sintoma era serio: en iOS, la app podia cerrarse al recibir o cargar mensajes en un chat. La operación que parecía inocente era el scroll automático al final de la conversación, el dato ya estaba en la coleccion, pero la vista nativa todavía no siempre tenia preparada la fila correspondiente. El contexto En una pantalla de chat, hacer scroll al ultimo mensaje parece una accion sencilla, cuando llega un mensaje nuevo, se actualiza la coleccion y se pide al listado que se posicione al final: var item = messages[messages.Count - 1]; listView.ScrollTo(item, position: ScrollToPosition.End, animated: false); El problema es que en una lista real no hay una equivalencia instantanea entre "el elemento ya e...

Lo que nadie te cuenta sobre trabajar con IA todo el día

Imagen
Cuando empecé a utilizar inteligencia artificial para programar, pensaba que simplemente me ayudaría a escribir código más rápido, y sí, eso ocurre, pero después de usarla a diario en proyectos reales, con clientes reales, bases de datos reales, errores reales, me he dado cuenta de que el cambio más importante no está en la velocidad, el cambio más importante está en la forma de trabajar. La IA no programa por ti: cambia tu rol Durante muchos años, mi trabajo como desarrollador consistía principalmente en escribir código. Analizar una funcionalidad, diseñar la solución, abrir Visual Studio y empezar a construir. Ahora eso ha cambiado bastante, cada vez escribo menos código desde cero, pero tomo más decisiones. Decisiones sobre arquitectura, modelo de datos, rendimiento, experiencia de usuario, mantenibilidad y seguridad. La IA puede generar una clase, una consulta SQL, una vista, una migración o una propuesta de refactorización. Pero alguien tiene que saber si eso tiene sentido de...

Visual Studio 2026 y Codex: una integración natural para programar con inteligencia artificial

Imagen
La inteligencia artificial aplicada al desarrollo ya no va solo de autocompletar una línea de código. Cada vez se parece más a trabajar con una capa adicional dentro del equipo: una capa capaz de leer contexto, proponer cambios, ejecutar tareas repetitivas y ayudarnos a mantener el foco en las decisiones que siguen siendo humanas. En ese escenario, Visual Studio 2026 y Codex encajan de forma muy natural. No porque exista necesariamente una integración oficial directa entre ambos productos, sino porque representan dos movimientos que van en la misma dirección: el IDE deja de ser únicamente una superficie donde escribimos código y pasa a convertirse en un entorno donde coordinamos trabajo. El IDE como centro de operaciones Microsoft presentó Visual Studio 2026 Insiders como una de las evoluciones más ambiciosas del IDE, con inteligencia artificial integrada en el flujo de desarrollo, mejoras de rendimiento y una interfaz más moderna. Lo interesante no es solo que haya más IA...

Azure Insights Viewer: seguimiento local de errores y filtros persistentes

Imagen
He incorporado varias mejoras a Azure Insights Viewer , una herramienta sencilla para consultar y revisar errores de Azure Application Insights desde el navegador. Puedes acceder a la herramienta desde aquí: https://jcantos.github.io/azure-insights-viewer/ La primera mejora permite marcar excepciones como solucionadas . A partir de ahora, cuando un error se marca como resuelto, sus futuras apariciones quedan ocultas del listado principal. La agrupación se realiza usando el problemId de Application Insights, de forma que no se marca una ocurrencia aislada, sino el problema completo. También se han añadido observaciones locales para cada error agrupado. Desde el detalle de una excepción se puede escribir una nota libre, útil para dejar contexto como causa detectada, despliegue pendiente o cualquier comentario de seguimiento. Todo este estado se guarda, por ahora, en el navegador mediante localStorage , sin necesidad de backend ni base de datos. Esto ...

Mi propio pipeline local para publicar .NET MAUI iOS en TestFlight

Imagen
En este post explico cómo monté un pequeño pipeline local para publicar una app .NET MAUI iOS en TestFlight sin depender de un servicio externo de CI. La idea final fue: Visual Studio en Windows -> ejecuta una External Tool -> conecta por SSH al Mac mini -> el Mac compila la app iOS -> genera la IPA -> sube la IPA a TestFlight 1. Separar el repositorio de los secretos El primer aprendizaje importante fue no mezclar el repositorio Git con los secretos ni con scripts locales que necesitan permisos de ejecución. Por ejemplo, podemos tener el repositorio en: /Users/usuario/Builds/MiApp.Mobile Y el pipeline local en una carpeta independiente: /Users/usuario/LocalMagic Creamos la estructura: mkdir -p /Users/usuario/LocalMagic/secrets mkdir -p /Users/usuario/LocalMagic/logs 2. Preparar los archivos necesarios En la carpeta de secretos coloqué los siguientes archivos: ios_distribution.p12 AuthKey_XXXXXXXXXX.p8 AppStore_Profile.mobileprovis...