<?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>JavaScript | The .NET Blog</title><link>https://thedotnetblog.com/tr/tags/javascript/</link><description>Articles, tutorials and insights from the .NET community.</description><generator>Hugo</generator><language>tr</language><managingEditor>@thedotnetblog (The .NET Blog)</managingEditor><webMaster>@thedotnetblog</webMaster><lastBuildDate>Fri, 24 Apr 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://thedotnetblog.com/tr/tags/javascript/index.xml" rel="self" type="application/rss+xml"/><item><title>Aspire 13.2 Bun'u, Daha İyi Konteynerleri ve Daha Az Hata Ayıklama Sürtünmesini Getiriyor</title><link>https://thedotnetblog.com/tr/news/emiliano-montesdeoca/aspire-132-bun-container-enhancements/</link><pubDate>Fri, 24 Apr 2026 00:00:00 +0000</pubDate><author>Emiliano Montesdeoca</author><guid>https://thedotnetblog.com/tr/news/emiliano-montesdeoca/aspire-132-bun-container-enhancements/</guid><description>Aspire 13.2, Vite uygulamaları için Bun'a birinci sınıf destek ekliyor, Yarn güvenilirliğini düzeltiyor ve yerel geliştirme davranışını daha dürüst kılan konteyner iyileştirmeleri sunuyor. Gerçekte ne değişti ve neden önemli, işte burada.</description><content:encoded>&lt;p&gt;&lt;em&gt;Bu gönderi otomatik olarak çevrilmiştir. Orijinal sürüm için &lt;a href="https://thedotnetblog.com/tr/news/emiliano-montesdeoca/aspire-132-bun-container-enhancements/"&gt;buraya tıklayın&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Aspire&amp;rsquo;da JavaScript ön yüzlerle .NET arka uçlar geliştiriyorsanız, 13.2 gününüzü sessizce iyileştiren türden bir güncelleme. Gösterişli yeni paradigmalar yok. Sadece biraz can sıkan şeylere sağlam iyileştirmeler.&lt;/p&gt;
&lt;p&gt;Gerçekte neler geldiğine bakalım.&lt;/p&gt;
&lt;h2 id="bun-artık-birinci-sınıf"&gt;Bun Artık Birinci Sınıf&lt;/h2&gt;
&lt;p&gt;Manşet özellik: Aspire&amp;rsquo;da Vite uygulamaları için Bun desteği. Tek bir akıcı çağrı, iş tamam.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-typescript" data-lang="typescript"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;// TypeScript AppHost
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;builder&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;createBuilder&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&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;builder&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;addViteApp&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;frontend&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;./frontend&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="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;withBun&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&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;build&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nx"&gt;run&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;Ekibiniz zaten Bun kullanıyorsa — ve muhtemelen kullanıyordur, çünkü kurulum süreleri çok daha hızlı ve başlatma da daha seri — Aspire artık sizi akıntıya karşı yüzmeye zorlamıyor. Daha önce Aspire npm varsayıyordu ve bunun etrafından dolaşmanız gerekiyordu. Şimdi &lt;code&gt;.withBun()&lt;/code&gt;, &lt;code&gt;.withYarn()&lt;/code&gt; ve varsayılan npm davranışının yanında birinci sınıf bir seçenek.&lt;/p&gt;
&lt;p&gt;Bu neden önemli? Çünkü JavaScript araç zincirinin hızı inner dev loop&amp;rsquo;unuzu doğrudan etkiler. Her yeni ortam kurduğunuzda frontend&amp;rsquo;inizin bağımlılıkları yüklemek için 30 saniye harcaması birikir gider. Bun bunu ciddi ölçüde azaltır.&lt;/p&gt;
&lt;p&gt;C#&amp;rsquo;ta yazmayı tercih ediyorsanız, C# AppHost karşılıkları &lt;a href="https://aspire.dev/integrations/frameworks/javascript/#use-bun"&gt;aspire.dev&lt;/a&gt; üzerinde belgelenmiş durumda — aynı desenler geçerli.&lt;/p&gt;
&lt;h2 id="yarn-daha-güvenilir-hale-geldi"&gt;Yarn Daha Güvenilir Hale Geldi&lt;/h2&gt;
&lt;p&gt;Bun manşetleri alıyor, ama Yarn kullanıcıları belki daha da önemli bir şey kazanıyor: daha az gizemli hata. Aspire 13.2, &lt;code&gt;addViteApp()&lt;/code&gt; ile birlikte &lt;code&gt;withYarn()&lt;/code&gt; güvenilirliğini iyileştiriyor.&lt;/p&gt;
&lt;p&gt;Bu tür düzeltmeler, Yarn tabanlı bir frontend kaynağının neden başlamadığını anlamaya 20 dakika harcamadıkça heyecan verici görünmez. Konuyu düzelmiş sayın.&lt;/p&gt;
&lt;h2 id="gerçekten-anlaşılabilen-konteyner-yayınlama"&gt;Gerçekten Anlaşılabilen Konteyner Yayınlama&lt;/h2&gt;
&lt;p&gt;Bilmeniz gereken iki konteyner iyileştirmesi var:&lt;/p&gt;
&lt;h3 id="açık-pull-policy"&gt;Açık Pull Policy&lt;/h3&gt;
&lt;p&gt;Docker Compose yayınlama artık &lt;code&gt;PullPolicy&lt;/code&gt; destekliyor; buna &lt;code&gt;Never&lt;/code&gt; seçeneği de dahil:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-typescript" data-lang="typescript"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;createBuilder&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;ImagePullPolicy&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="kr"&gt;from&lt;/span&gt; &lt;span class="s1"&gt;&amp;#39;./.modules/aspire.js&amp;#39;&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&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;builder&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;createBuilder&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="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;addDockerComposeEnvironment&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;compose&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&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;worker&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;addContainer&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;worker&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s2"&gt;&amp;#34;myorg/worker:latest&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="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;withImagePullPolicy&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;ImagePullPolicy&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Never&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&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;build&lt;/span&gt;&lt;span class="p"&gt;().&lt;/span&gt;&lt;span class="nx"&gt;run&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;Bu, kabaca &amp;ldquo;zaten build ettiğim image&amp;rsquo;ı kullan ve registry&amp;rsquo;yi işin dışında tut&amp;rdquo; diyen iş akışı. Localde manuel olarak build edip yayınladığınız image&amp;rsquo;lar üzerinde iterasyon yaparken ya da CI bir image ürettiğinde Compose&amp;rsquo;un tam olarak o image&amp;rsquo;ı kullanmasını isterken çok kullanışlıdır; uzaktaki bir pull&amp;rsquo;un araya girmesi gerekmez.&lt;/p&gt;
&lt;h3 id="postgresql-18-volumeları-yeniden-çalışıyor"&gt;PostgreSQL 18+ Volume&amp;rsquo;ları Yeniden Çalışıyor&lt;/h3&gt;
&lt;p&gt;PostgreSQL 18, veri dizininin iç düzenini değiştirdi. Bu, Aspire&amp;rsquo;da volume eşlemesini sessizce bozdu — veri volume&amp;rsquo;ünüz kuruluyordu ama kalıcılık düzgün çalışmıyordu. 13.2 bunu düzeltiyor.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-typescript" data-lang="typescript"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kr"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;postgres&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;builder&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;addPostgres&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;postgres&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="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;withDataVolume&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="nx"&gt;isReadOnly&lt;/span&gt;: &lt;span class="kt"&gt;false&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;PostgreSQL 18 veya daha yenisini bir veri volume&amp;rsquo;üyle çalıştırıyorsanız, Aspire 13.2&amp;rsquo;ye güncelleyin ve bir daha düşünmeyin.&lt;/p&gt;
&lt;h2 id="hata-ayıklamada-daha-iyi-bir-günlük-deneyim"&gt;Hata Ayıklamada Daha İyi Bir Günlük Deneyim&lt;/h2&gt;
&lt;p&gt;AppHost oturumunda adım adım ilerlerken işleri daha az sinir bozucu yapan birkaç şey:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Temel türlerde &lt;code&gt;DebuggerDisplayAttribute&lt;/code&gt;&lt;/strong&gt; — &lt;code&gt;DistributedApplication&lt;/code&gt;, kaynaklar ve endpoint ifadeleri artık nesne ağaçlarında gezinmek yerine debugger&amp;rsquo;da faydalı değerler gösteriyor&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Daha iyi &lt;code&gt;WaitFor&lt;/code&gt; hata mesajları&lt;/strong&gt; — kaynaklar başlatılamadığında hata bağlamı artık gerçekten yardımcı&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;BeforeResourceStartedEvent&lt;/code&gt; doğru zamanda tetikleniyor&lt;/strong&gt; — yalnızca bir kaynak gerçekten başlarken, alakasız durum geçişlerinde değil&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;code&gt;launchSettings.json&lt;/code&gt; daha dayanıklı&lt;/strong&gt; — bozuk bir ayarın geliştirme başlangıcını bozma ihtimali daha düşük&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Bu iyileştirmelerin hiçbiri tek başına devrimsel değil, ama birlikte debug deneyimindeki sürtünmeyi azaltıyorlar. Aspire resource nesnesinin içinde üç kat aşağı inip hangi endpoint&amp;rsquo;i kullandığını anlamaya çalıştıysanız, yalnızca debugger display iyileştirmesi bile güncellemeye değer.&lt;/p&gt;
&lt;h2 id="kapanış"&gt;Kapanış&lt;/h2&gt;
&lt;p&gt;Aspire 13.2 kalite odaklı bir sürüm. Bun desteği manşet olabilir, ama günlük işi akıcı hale getiren şeyler konteyner ve hata ayıklama iyileştirmeleri. Özellikle PostgreSQL 18&amp;rsquo;i veri volume&amp;rsquo;leriyle kullanıyorsanız, güncellemek değer.&lt;/p&gt;
&lt;p&gt;Tüm ayrıntılar &lt;a href="https://devblogs.microsoft.com/aspire/aspire-bun-support-and-container-enhancements/"&gt;David Pine&amp;rsquo;ın orijinal yazısında&lt;/a&gt; ve &lt;a href="https://aspire.dev/whats-new/aspire-13-2/"&gt;Aspire 13.2 yenilikler dokümanında&lt;/a&gt; yer alıyor.&lt;/p&gt;</content:encoded></item></channel></rss>