<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>netcore on Lo Crestià</title><link>https://www.eiximenis.dev/categories/netcore/</link><description>Recent content in netcore on Lo Crestià</description><generator>Hugo -- gohugo.io</generator><language>es</language><copyright>{}</copyright><lastBuildDate>Wed, 04 Nov 2020 00:00:00 +0000</lastBuildDate><atom:link href="https://www.eiximenis.dev/categories/netcore/index.xml" rel="self" type="application/rss+xml"/><item><title>Procesar SIGTSTP en netcore (Linux)</title><link>https://www.eiximenis.dev/posts/2020-11-04-procesar-sigtstp-en-netcore/</link><pubDate>Wed, 04 Nov 2020 00:00:00 +0000</pubDate><atom:modified>Wed, 04 Nov 2020 00:00:00 +0000</atom:modified><guid>https://www.eiximenis.dev/posts/2020-11-04-procesar-sigtstp-en-netcore/</guid><description>Una de las cosas que he visto más veces en gente que está dando sus primeros pasos en Linux es usar Vi, equivocarse y darle a Ctrl+Z para hacer undo&amp;hellip; con el &amp;ldquo;catastrófico&amp;rdquo; resultado de que Vi desaparecen y se vuelve al terminal. Además, para más horror eso sucede sin ninguna confirmación y da igual si había cambios por guardar. No solo eso, si no que si luego se inicia otra vez Vi para continuar editando el mismo fichero, se recibe un mensjae de error de que el fichero está siendo editado en otro editor y varias opciones a elegir sobre qué hacer, en las que uno tiene la sospecha que haga lo que haga va a perder algún dato.</description><dc:creator>eiximenis</dc:creator><category>linux</category><category>terminal</category><category>netcore</category></item><item><title>Project tye</title><link>https://www.eiximenis.dev/posts/2020-10-05-project-tye/</link><pubDate>Mon, 05 Oct 2020 00:00:00 +0000</pubDate><atom:modified>Mon, 05 Oct 2020 00:00:00 +0000</atom:modified><guid>https://www.eiximenis.dev/posts/2020-10-05-project-tye/</guid><description>Project Tye (simplemente Tye de ahora en adelante) es un proyecto experimental del equipo de NetCore pensado para ayudarnos en el desarrollo de apliaciones de (micro)servicios basadas en NetCore. Aunque podríamos llegar a usar Tye sin netcore, no es para lo que está concebida: NO es una herramienta de propósito general. Es una herramienta pensada para desarrolladores en netcore.
Funcionalidades de Tye Es complicado definir qué es exactamente Tye, ya que anda a medio camino entre un orquestador básico, un ejecutor de aplicaciones, un control plane básico y un gestor de despliegues.</description><dc:creator>eiximenis</dc:creator><category>microservices</category><category>kubernetes</category><category>k8s</category><category>netcore</category></item><item><title>C#9 Records: Mis impresiones</title><link>https://www.eiximenis.dev/posts/2020-07-01-csharp9-records/</link><pubDate>Wed, 01 Jul 2020 18:00:00 +0000</pubDate><atom:modified>Wed, 01 Jul 2020 18:00:00 +0000</atom:modified><guid>https://www.eiximenis.dev/posts/2020-07-01-csharp9-records/</guid><description>Estos días, preparando la charla del Talks4Kids he estado jugando un poco con el futuro C#9 y su característica más destacada: los records. He aquí mis impresiones, pero antes un aviso:
Este post se basa en una preview. En la versión final las cosas pueden cambiar (o no). Para jugar con C#9 puedes usar la última versión que haya del .NET5 SDK, junto con la última versión que haya de Visual Studio Preview.</description><dc:creator>eiximenis</dc:creator><category>netcore</category></item><item><title>Span&lt;T> y P/Invoke</title><link>https://www.eiximenis.dev/posts/2020-06-29-span_y_pinvoke/</link><pubDate>Mon, 29 Jun 2020 12:00:00 +0000</pubDate><atom:modified>Mon, 29 Jun 2020 12:00:00 +0000</atom:modified><guid>https://www.eiximenis.dev/posts/2020-06-29-span_y_pinvoke/</guid><description>Uno de los movimientos más nuevos en .NET Core consiste en lo que podemos llamar &amp;ldquo;zero-allocation code&amp;rdquo; o código sin reservas. Eso consiste en tener código que evite al máximo (hasta llegar al ideal de eliminar) las reservas de objetos en el heap. Para ello es necesario que tanto el lenguaje como el entorno de ejecución lo permitan. Pero&amp;hellip; ¿por qué es beneficioso evitar las reservas en el heap?
Predictibilidad La razón principal es la predictibilidad de tu código, en este caso predictibilidad en el tiempo de ejecución, claro.</description><dc:creator>eiximenis</dc:creator><category>netcore</category></item><item><title>NetCore 3 - NativeLibrary: ¡p/invoke a tope!</title><link>https://www.eiximenis.dev/posts/2020-01-31-netcore3-nativelibrary/</link><pubDate>Fri, 31 Jan 2020 18:20:00 +0000</pubDate><atom:modified>Fri, 31 Jan 2020 18:20:00 +0000</atom:modified><guid>https://www.eiximenis.dev/posts/2020-01-31-netcore3-nativelibrary/</guid><description>¿Conoces P/Invoke? Se trata de la posibilidad de realizar llamadas nativas al sistema operativo desde código .NET. Para habilitarlo debemos definir en C# una función externa (usando la palabra clave extern) y luego usar [DllImport] para indicarle al CLR en qué librería del SO se encuentra esta función implementada. Por supuesto eso genera código que no es cross platform, ya que estás llamando explícitamente a una librería en concreto del SO.</description><dc:creator>eiximenis</dc:creator><category>netcore</category></item><item><title>Admission webhooks de Kubernetes con netcore</title><link>https://www.eiximenis.dev/posts/2020-01-29-admission-webhooks-de-k8s-en-netcore/</link><pubDate>Wed, 29 Jan 2020 18:20:00 +0000</pubDate><atom:modified>Wed, 29 Jan 2020 18:20:00 +0000</atom:modified><guid>https://www.eiximenis.dev/posts/2020-01-29-admission-webhooks-de-k8s-en-netcore/</guid><description>Si has usado Kubernetes un poco, seguro que conoces el concepto de sidecar container: Un contenedor que se ejecuta en el mismo pod que el contenedor principal y que ofrece servicios adicionales. Es muy habitual en implementaciones de Service Mesh tales como Istio. También dapr se basa en un sidecar así como Devspaces sin ir más lejos, por poner solo tres ejemplos.
Todo eso viene a cuento, porque cuando usas uno de esos sistemas, tus deployments son modificados automáticamente por el sistema para añadir el sidecar container.</description><dc:creator>eiximenis</dc:creator><category>netcore</category><category>k8s</category></item><item><title>WPF y netcore3 con custom host</title><link>https://www.eiximenis.dev/posts/2020-01-20-wpf-netcore3-customhost/</link><pubDate>Mon, 20 Jan 2020 18:20:00 +0000</pubDate><atom:modified>Mon, 20 Jan 2020 18:20:00 +0000</atom:modified><guid>https://www.eiximenis.dev/posts/2020-01-20-wpf-netcore3-customhost/</guid><description>¡Buf! Hacía un porrón que no escribía sobre WPF, pero bueno, creo que vale la pena hablar un poco de las ventajas de usar WPF junto con .NET Core 3. Sí, se habla mucho de los aumentos de rendimiento pero a mi me interesa enfocarlo más en como usar, fácilmente, las ventajas intrínsecas de .NET Core al usar un proyecto de WPF. En concreto hay tres puntos que creo que son interesantes: DI, Configuración y Logging.</description><dc:creator>eiximenis</dc:creator><category>netcore</category><category>wpf</category></item><item><title>Expediente X en rendimiento</title><link>https://www.eiximenis.dev/posts/2020-01-15-expediente-x-en-rendimiento/</link><pubDate>Wed, 15 Jan 2020 18:20:00 +0000</pubDate><atom:modified>Wed, 15 Jan 2020 18:20:00 +0000</atom:modified><guid>https://www.eiximenis.dev/posts/2020-01-15-expediente-x-en-rendimiento/</guid><description>El expediente es el siguiente: contrariamente a todo sentido común copiar una estructura de 21 campos double tardaba menos, pero mucho menos, que copiar una clase.
El expediente X Tengo una clase y una estructura equivalentes: simplemente 21 propiedades de tipo double con get y set. Nada más. La clase se llama Point21D y la estructura Point21DStruct.
Luego, tengo dos classes (World21D y World21DStruct) con el mismo código salvo, que la primera usa Point21D y la segunda Point21DStruct:</description><dc:creator>eiximenis</dc:creator><category>netcore</category></item><item><title>Terminales y millones de colores: una historia complicada</title><link>https://www.eiximenis.dev/posts/2019-04-05-terminales-y-millones-de-colores-una-historia-complicada/</link><pubDate>Fri, 05 Apr 2019 17:28:27 +0000</pubDate><atom:modified>Fri, 05 Apr 2019 17:28:27 +0000</atom:modified><guid>https://www.eiximenis.dev/posts/2019-04-05-terminales-y-millones-de-colores-una-historia-complicada/</guid><description>&lt;p>Los que más o menos me seguís por &lt;a href="https://twitter.com/eiximenis">Twitter&lt;/a>, quizá os habréis enterado de que estoy escribiendo una &lt;a href="https://github.com/eiximenis/tvision2">librería &lt;em>cross-platform&lt;/em> (netstandard2) para desarrollar aplicaciones de consola&lt;/a>. Evidentemente &lt;a href="https://github.com/migueldeicaza/gui.cs">no es la única&lt;/a>, es simplemente otra más y puedo asegurar que me lo paso genial desarrollándola.&lt;/p>
&lt;p>Uno de los objetivos principales cuando empecé &lt;strong>era permitir usar true color&lt;/strong> (es decir 16 millones de colores) en aquellos terminales que lo soportan y la verdad es que la historia del soporte de colores en terminales da para un post&amp;hellip; y aquí estamos 😉&lt;/p></description><dc:creator>eiximenis</dc:creator><category>.net</category><category>consola</category><category>netcore</category></item><item><title>Crear imágenes Docker de proyectos netcore en varias versiones del framework</title><link>https://www.eiximenis.dev/posts/2018-11-29-crear-imagenes-docker-de-proyectos-netcore-en-varias-versiones-del-framework/</link><pubDate>Thu, 29 Nov 2018 14:33:33 +0000</pubDate><atom:modified>Thu, 29 Nov 2018 14:33:33 +0000</atom:modified><guid>https://www.eiximenis.dev/posts/2018-11-29-crear-imagenes-docker-de-proyectos-netcore-en-varias-versiones-del-framework/</guid><description>&lt;p>Imagina que estás probando alguna versión &lt;em>release&lt;/em> de netcore (pongamos la 2.2-preview3) y quieres generar imágenes Docker de tu proyecto para esa imagen. Pero a la vez quieres también crear las imágenes usando la última versión estable (pongamos la 2.1).&lt;/p>
&lt;p>&lt;strong>Asumiendo que el código fuente es compatible&lt;/strong>, ¿como puedes gestionar eso sin morir en el intento?&lt;/p></description><dc:creator>eiximenis</dc:creator><category>docker</category><category>netcore</category></item><item><title>El metapaquete Microsoft.AspNetCore.All</title><link>https://www.eiximenis.dev/posts/2017-12-26-el-metapaquete-microsoft-aspnetcore-all/</link><pubDate>Tue, 26 Dec 2017 19:47:54 +0000</pubDate><atom:modified>Tue, 26 Dec 2017 19:47:54 +0000</atom:modified><guid>https://www.eiximenis.dev/posts/2017-12-26-el-metapaquete-microsoft-aspnetcore-all/</guid><description>&lt;p>Todos estamos acostumbrados a usar los &lt;strong>paquetes de NuGet en nuestros desarrollos&lt;/strong>. Pero a raíz de Net Core 2.0, apareció el concepto de &lt;em>metapaquete&lt;/em>. Qué es exactamente un &lt;em>metapaquete&lt;/em> y por qué existen?&lt;/p>
&lt;p>La respuesta rápida es que un &lt;em>metapaquete&lt;/em> de NuGet es simplemente un paquete que &lt;strong>no incluye ningún ensamblado, solo referencia a otros paquetes&lt;/strong>. Es, en definitiva, un mecanismo para “agrupar” paquetes de NuGet bajo un mismo número de version.&lt;/p></description><dc:creator>eiximenis</dc:creator><category>asp.net 5</category><category>asp.net core</category><category>netcore</category><category>Sin categoría</category></item><item><title>ASP.NET Core – IStartupFilter</title><link>https://www.eiximenis.dev/posts/2017-05-09-asp-net-core-istartupfilter/</link><pubDate>Tue, 09 May 2017 14:55:27 +0000</pubDate><atom:modified>Tue, 09 May 2017 14:55:27 +0000</atom:modified><guid>https://www.eiximenis.dev/posts/2017-05-09-asp-net-core-istartupfilter/</guid><description>&lt;p>Buenas! Vamos a explorar en este post la interfaz &lt;strong>IStartupFilter&lt;/strong>, por lo general un desconocido de ASP.NET Core, pero bueno… que está por ahí y no está de más conocerlo un poco. ¡Vamos allá!&lt;/p></description><dc:creator>eiximenis</dc:creator><category>asp.net 5</category><category>asp.net vNext</category><category>netcore</category></item><item><title>Algunas pinceladas sobre como arquitecturar tu WEB/API</title><link>https://www.eiximenis.dev/posts/2017-04-07-algunas-pinceladas-sobre-como-arquitecturar-tu-webapi/</link><pubDate>Fri, 07 Apr 2017 17:36:32 +0000</pubDate><atom:modified>Fri, 07 Apr 2017 17:36:32 +0000</atom:modified><guid>https://www.eiximenis.dev/posts/2017-04-07-algunas-pinceladas-sobre-como-arquitecturar-tu-webapi/</guid><description>&lt;p>El otro día &lt;a href="https://twitter.com/antiocol">Antíoco Llanos&lt;/a> lanzaba el &lt;a href="https://twitter.com/antiocol/status/849868562076491776">siguiente tweet&lt;/a>:&lt;/p>
&lt;p>(&lt;em>Siempre las mismas dudas. Que dependa mi capa de negocio de EF para usar sus IDbSet o no&amp;hellip; ¿abstraer la abstracción?&lt;/em>)&lt;/p>
&lt;p>Contesté yo con algunas sugerencias y eso derivó en otra conversación paralela, así que me parece una buena idea poner &lt;strong>algunas pinceladas&lt;/strong> sobre como podemos abordar ese aspecto. Por supuesto y como digo siempe: &lt;strong>no hay balas de plata&lt;/strong> y &lt;strong>no existe la arquitectura para todo&lt;/strong>. Cada proyecto debe analizarse para valorar la arquitectura a abordar, o arquitecturas porque se pueden usar distintas en un mismo proyecto. Así, este post no tiene más pretensión que contarte algunas ideas, pero las conclusiones que saques de ellas son cosa tuya 😉&lt;/p></description><dc:creator>eiximenis</dc:creator><category>asp.net vNext</category><category>netcore</category><category>patrones</category></item><item><title>ASP.NET–Comprueba la disponibilidad de tus servicios</title><link>https://www.eiximenis.dev/posts/2017-03-23-asp-net-comprueba-la-disponibilidad-de-tus-servicios/</link><pubDate>Thu, 23 Mar 2017 15:51:42 +0000</pubDate><atom:modified>Thu, 23 Mar 2017 15:51:42 +0000</atom:modified><guid>https://www.eiximenis.dev/posts/2017-03-23-asp-net-comprueba-la-disponibilidad-de-tus-servicios/</guid><description>&lt;p>Si desarrollas una aplicación en ASP.NET y/o ASP.NET Core, te puede interesar una nueva librería que ha sacado el equipo de .NET: &lt;a href="https://github.com/aspnet/HealthChecks">HealthChecks&lt;/a>. Esa librería (muy sencilla) contiene lo que necesitas para poder validar que un determinado recurso externo (SQL Server, API remota, etc) está funcionando y también para que decidas lo que significa que un recurso “está funcionando”.&lt;/p></description><dc:creator>eiximenis</dc:creator><category>netcore</category></item></channel></rss>