<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>.NET 11 | The .NET Blog</title><link>https://thedotnetblog.com/ca/tags/.net-11/</link><description>Articles, tutorials and insights from the .NET community.</description><generator>Hugo</generator><language>ca</language><managingEditor>@thedotnetblog (The .NET Blog)</managingEditor><webMaster>@thedotnetblog</webMaster><lastBuildDate>Tue, 26 May 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://thedotnetblog.com/ca/tags/.net-11/index.xml" rel="self" type="application/rss+xml"/><item><title>.NET 11 finalment arregla l'API de Processos</title><link>https://thedotnetblog.com/ca/news/emiliano-montesdeoca/dotnet-11-process-api-improvements-runandcapturetext/</link><pubDate>Tue, 26 May 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/ca/news/emiliano-montesdeoca/dotnet-11-process-api-improvements-runandcapturetext/</guid><description>System.Diagnostics.Process rep la seva actualització més gran en anys. RunAndCaptureTextAsync, KillOnParentExit, APIs SafeProcessHandle i control total sobre la redirecció dels identificadors estàndard — sense més codi repetitiu per als bloqueigs morts.</description><content:encoded>&lt;p&gt;Tot desenvolupador .NET que alguna vegada ha hagut de llançar un procés i capturar la seva sortida ha escrit alguna variació del mateix codi repetitiu perillós: lectura async de stdout, lectura async de stderr, &lt;code&gt;WaitForExitAsync&lt;/code&gt;, sense oblidar buidar tots dos streams o causaràs un bloqueig mort. És una trampa ben coneguda que existeix des de fa anys.&lt;/p&gt;
&lt;p&gt;.NET 11 finalment ho arregla correctament.&lt;/p&gt;
&lt;h2 id="runandcapturetextasync"&gt;RunAndCaptureTextAsync&lt;/h2&gt;
&lt;p&gt;L&amp;rsquo;addició principal: un únic mètode estàtic que inicia un procés, captura stdout i stderr, i espera la sortida sense bloqueig mort.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-csharp" data-lang="csharp"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kt"&gt;var&lt;/span&gt; &lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="n"&gt;Process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;RunAndCaptureTextAsync&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;dotnet&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;&amp;#34;--version&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="n"&gt;Console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;WriteLine&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;result&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;StandardOutput&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Una sola crida. Sense buidatge manual de streams. Sense un &lt;code&gt;WaitForExit&lt;/code&gt; col·locat acuradament. Si simplement necessiteu executar alguna cosa i obtenir la seva sortida, aquesta és l&amp;rsquo;API que voleu.&lt;/p&gt;
&lt;p&gt;Hi ha també &lt;code&gt;Process.RunAsync&lt;/code&gt; per al cas en què voleu esperar la sortida sense capturar el resultat.&lt;/p&gt;
&lt;h2 id="killonparentexit"&gt;KillOnParentExit&lt;/h2&gt;
&lt;p&gt;Un problema comú amb els processos llançats: si el pare falla o és acabat, els processos fill continuen executant-se com a orfes. &lt;code&gt;KillOnParentExit&lt;/code&gt; us permet declarar en el moment d&amp;rsquo;iniciar el procés que el procés fill ha d&amp;rsquo;acabar quan el procés pare surti.&lt;/p&gt;
&lt;p&gt;Aquesta és una funcionalitat que existia de maneres específiques per plataforma (job objects a Windows, prctl a Linux) però requeria p/invoke o biblioteques de tercers per ser usada des de .NET. Ara és una propietat de primera classe a &lt;code&gt;ProcessStartInfo&lt;/code&gt;.&lt;/p&gt;
&lt;h2 id="apis-basades-en-safeprocesshandle"&gt;APIs Basades en SafeProcessHandle&lt;/h2&gt;
&lt;p&gt;La nova superfície d&amp;rsquo;API lleugera es construeix al voltant de &lt;code&gt;SafeProcessHandle&lt;/code&gt; en lloc de la classe &lt;code&gt;Process&lt;/code&gt; completa. La classe &lt;code&gt;Process&lt;/code&gt; completa porta molt d&amp;rsquo;estat i és difícil de retallar — el camí &lt;code&gt;SafeProcessHandle&lt;/code&gt; és més amigable amb el trimmer per a aplicacions que necessiten minimitzar la mida de sortida (WASM, AOT natiu).&lt;/p&gt;
&lt;h2 id="control-total-sobre-lherència-didentificadors"&gt;Control Total Sobre l&amp;rsquo;Herència d&amp;rsquo;Identificadors&lt;/h2&gt;
&lt;p&gt;L&amp;rsquo;actualització també afegeix control detallat sobre quins identificadors hereda un procés fill i com es redireccionen els identificadors estàndard. Anteriorment podíeu redirigir stdin/stdout/stderr però no podíeu especificar exactament quins identificadors heretar a nivell de SO. Les noves APIs exposen aquest control.&lt;/p&gt;
&lt;h2 id="per-què-és-important"&gt;Per Què És Important&lt;/h2&gt;
&lt;p&gt;La classe &lt;code&gt;Process&lt;/code&gt; s&amp;rsquo;usa en eines, sistemes de compilació, executors de proves i qualsevol aplicació que invoca altres executables. L&amp;rsquo;antiga superfície d&amp;rsquo;API datava de .NET Framework i estava mostrant la seva edat. No és un canvi que trenca la compatibilitat — les APIs antigues segueixen funcionant — però el nou codi hauria de preferir la nova superfície.&lt;/p&gt;
&lt;p&gt;Per a aplicacions retallades o escenaris de compilació AOT, el camí &lt;code&gt;SafeProcessHandle&lt;/code&gt; és especialment benvingut. L&amp;rsquo;antiga classe &lt;code&gt;Process&lt;/code&gt; portava molt codi pesat en reflexió que complicava el retallat.&lt;/p&gt;
&lt;p&gt;Publicació original: &lt;a href="https://devblogs.microsoft.com/dotnet/process-api-improvements-in-dotnet-11/"&gt;Process API Improvements in .NET 11&lt;/a&gt;&lt;/p&gt;</content:encoded></item><item><title>.NET 11 Preview 4: Plantilla de Servidor MCP, Biblioteques Runtime-Async, API de Processos</title><link>https://thedotnetblog.com/ca/news/emiliano-montesdeoca/dotnet-11-preview-4-mcp-template-runtime-async-process-api/</link><pubDate>Mon, 25 May 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/ca/news/emiliano-montesdeoca/dotnet-11-preview-4-mcp-template-runtime-async-process-api/</guid><description>.NET 11 Preview 4 ja és disponible. Aquí els punts destacats: la plantilla de servidor MCP al SDK, biblioteques de runtime compilades amb runtime-async, dotnet watch per a mòbil i una gran ampliació de l'API de Processos.</description><content:encoded>&lt;p&gt;.NET 11 Preview 4 ja és disponible. Cada versió de vista prèvia principal de .NET afegeix una llarga llista d&amp;rsquo;elements a través del runtime, SDK, biblioteques, ASP.NET Core, MAUI, C# i Entity Framework. En lloc de repetir la llista completa, aquí hi ha les coses que em van cridar l&amp;rsquo;atenció.&lt;/p&gt;
&lt;h2 id="la-plantilla-de-servidor-mcp-arriba-al-sdk-de-net"&gt;La Plantilla de Servidor MCP Arriba al SDK de .NET&lt;/h2&gt;
&lt;p&gt;L&amp;rsquo;element més interessant: una plantilla de projecte de servidor MCP ara ve inclosa al SDK. Això significa que &lt;code&gt;dotnet new mcp-server&lt;/code&gt; (o com s&amp;rsquo;anomeni finalment la comanda) funciona directament sense configuració addicional. Per a qualsevol persona que construeixi eines MCP a .NET, això redueix significativament la fricció inicial. La integració de MCP a la cadena d&amp;rsquo;eines de la plataforma indica la direcció que pren l&amp;rsquo;ecosistema.&lt;/p&gt;
&lt;h2 id="biblioteques-de-runtime-compilades-amb-runtime-async"&gt;Biblioteques de Runtime Compilades amb Runtime-Async&lt;/h2&gt;
&lt;p&gt;El runtime mateix ara compila les seves biblioteques estàndard fent servir la característica runtime-async. Es tracta d&amp;rsquo;un canvi intern que afecta el rendiment — les màquines d&amp;rsquo;estat async al runtime es tornen més eficients. La importància aquí no rau en canvis d&amp;rsquo;API visibles per a l&amp;rsquo;usuari; és que runtime-async és prou madur per ser usat per al propi BCL, la qual cosa és un senyal significatiu sobre la preparació de la característica.&lt;/p&gt;
&lt;h2 id="optimitzacions-jit-i-intrínsecs-de-maquinari"&gt;Optimitzacions JIT i Intrínsecs de Maquinari&lt;/h2&gt;
&lt;p&gt;Preview 4 continua el treball de JIT. Les millores d&amp;rsquo;intrínsecs de maquinari i generació de codi arriben aquí — els detalls es troben a les notes de llançament del runtime. Aquest tipus de canvis normalment milloren el rendiment en bucles de computació densa sense cap canvi de codi per la vostra part.&lt;/p&gt;
&lt;h2 id="ampliació-de-lapi-de-processos"&gt;Ampliació de l&amp;rsquo;API de Processos&lt;/h2&gt;
&lt;p&gt;Una gran actualització per a &lt;code&gt;System.Diagnostics.Process&lt;/code&gt; arriba a Preview 4:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Process.RunAndCaptureTextAsync&lt;/code&gt; — inicia un procés, captura stdout/stderr, espera la sortida, tot en una sola trucada sense risc de bloqueig mort&lt;/li&gt;
&lt;li&gt;&lt;code&gt;KillOnParentExit&lt;/code&gt; — acoblament lleuger del cicle de vida entre processos pare i fill&lt;/li&gt;
&lt;li&gt;APIs basades en &lt;code&gt;SafeProcessHandle&lt;/code&gt; més amigables amb el trimmer&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si alguna vegada heu escrit codi repetitiu per capturar la sortida d&amp;rsquo;un procés sense provocar bloquejos morts (lectura async de stdout &lt;em&gt;i&lt;/em&gt; stderr simultàniament), &lt;code&gt;RunAndCaptureTextAsync&lt;/code&gt; és l&amp;rsquo;API que us faltava.&lt;/p&gt;
&lt;h2 id="dotnet-watch-per-a-android-i-ios"&gt;dotnet watch per a Android i iOS&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;dotnet watch&lt;/code&gt; ara admet la selecció de dispositius per a projectes .NET MAUI Android i iOS. Iteració més ràpida en mòbil sense gestionar manualment les connexions de dispositius al bucle de compilació.&lt;/p&gt;
&lt;h2 id="apis-de-compressió-basades-en-span"&gt;APIs de Compressió Basades en Span&lt;/h2&gt;
&lt;p&gt;Noves APIs d&amp;rsquo;encoder/decoder Deflate, ZLib i GZip basades en span arriben a les biblioteques. Menys assignacions en treballar amb dades comprimides — rellevant si feu processament de dades d&amp;rsquo;alt rendiment.&lt;/p&gt;
&lt;h2 id="proveu-ho"&gt;Proveu-ho&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://dotnet.microsoft.com/download/dotnet/11.0"&gt;Baixeu .NET 11 Preview 4&lt;/a&gt; — és una vista prèvia, no llesta per a producció, però val la pena executar-la contra els vostres projectes per detectar problemes aviat abans del cicle RC.&lt;/p&gt;
&lt;p&gt;Publicació original: &lt;a href="https://devblogs.microsoft.com/dotnet/dotnet-11-preview-4/"&gt;.NET 11 Preview 4 is now available!&lt;/a&gt;&lt;/p&gt;</content:encoded></item></channel></rss>