SEKTöR HABERLERI

Build 2025: Iron Software Müşterileri İçin AI ve .NET Görünümü

Buradaki Iron Software mühendislik ekibinden Aspire 13.2 sürümü hakkında bazı notlar paylaşmak. .NET kütüphaneleri teslim ediyoruz (IronPDF, IronOCR, IronXL, IronWord, IronBarcode ve diğerleri), ve birçok müşteri görüşmesi dağıtılmış uygulama orkestrasyonuna dokunmaktadır. Bu yüzden Aspire sürümlerine dikkat ediyoruz. 13.2, CLI'nin aslında çoğu günlük iş için kontrol panelinin yerini alabileceği ilk sürümdür ve yükseltme sırasında size sorun çıkaracak birkaç kırıcı değişiklik vardır.

Bu bir sürüm notları geri dönüşü değildir. resmi yenilikler sayfası kapsamlı listeyi içerir. Bu, çalışan bir kod tabanında gerçekten faydalı olan şeylerdir, artı dikkat etmeniz gereken püf noktalarıdır.

Özet

  • CLI artık gerçekten betiklenebilir: ayrı mod, aspire ps, aspire stop, izole mod, JSON çıktısı
  • Orkestrasyon katmanı için .csproj'yi bırakmak istiyorsanız, TypeScript AppHost önizlemede
  • Yapılandırma dosyaları aspire.config.json olarak birleştirilmiştir (eski dosyalar otomatik olarak geçiş yapar)
  • Foundry, Azure AI Foundry'nin yerine geçti. Bu, yapınızı bozacaktır
  • WithSecretBuildArg, WithBuildSecret olarak yeniden adlandırıldı
  • Hizmet keşfi ortam değişkenleri şimdi uç nokta adı yerine şemayı kullanır (sessiz kırılma riski)
  • Klient entegrasyonlarında varsayılan Azure kimlik bilgisi davranışı değişti

CLI nihayet bir CLI

Bu başlıktır. 13.2'den önce, aspire run terminalinizi engellerdi ve kontrol paneli, çalışan bir apphost'u yönetmenin gerçekçi tek yüzeyiydi. Tek geliştirici için iyi, CI, entegrasyon testleri veya herhangi bir ajan yönetimli iş akışı için garipti.

13.2 bunu düzeltiyor:

# Run in the background
aspire run --detach

# Or the new shortcut
aspire start

# See what's running
aspire ps

# Stop it
aspire stop
aspire stop --all
# Run in the background
aspire run --detach

# Or the new shortcut
aspire start

# See what's running
aspire ps

# Stop it
aspire stop
aspire stop --all
SHELL

--format json ile birleştirildiğinde (durum mesajları stderr'ye giderken stdout'a gider, herhangi bir yere yönlendiriyorsanız önemlidir), bunun etrafında gerçek otomasyonu oluşturabilirsiniz. aspire ps --resources --format json, düzenleyici entegrasyonları ve betikler için sağlam bir yapı taşıdır.

İzole mod sessiz kahramandır

--isolated, beklediğimiz şeydir. Rastgeleleştirilmiş portlar ve izole kullanıcı sırları ile bir uygulama barındırıcısı çalıştırır, port çatışmalarını ve yapılandırma çakışmalarını önler:

aspire run --isolated
aspire start --isolated
aspire run --isolated
aspire start --isolated
SHELL

Aynı uygulama barındırıcısının iki incelemesini aynı anda çalıştırmayı denediyseniz — örneğin ana karşı bir özellik dalı, paralel entegrasyon testleri veya ajan odaklı iş akışları — acıyı hissetmişsinizdir. Rastgele portlar artı ayrılmış sırlar demek ki sonunda sadece N kopyayı döndürebilirsiniz ve umursamazsınız.

Sadece git çalışma ağaçları için, yükseltmeye değer. PDF oluşturmak için Chrome işleme, OCR için Tesseract, alışılagelmiş ağırlıkta bağımlılıklara sahip gerçek hizmetleri getiren entegrasyon test takımları için, güvenilmez ile güvenilir arasındaki farktır.

aspire doctor ve aspire describe

aspire doctor, ortamınız üzerinden çalışır: geliştirme sertifikası durumu, konteyner çalışma zamanı sürümü, .NET SDK, WSL2 yapılandırması, ajan yapılandırması. Her çerçevenin sahip olması gereken türden bir şeydir ve çoğu ile ilgilenmez. Çıktı eyleme geçirilebilir. Bir şey yanlış olduğunda, ne yapmanız gerektiğini söyler.

aspire describe --follow, kaynak durumunun akış görünümünü terminalden verir. Aynı veriler gösterge panosunun gösterdiği, ancak borulanabilir. Bir tmux paneline düşürün ve gösterge panosunun değerinin çoğunu 80 sütunda alırsınız.

Kaynak komutları daha düzenli hale geldi

Eski resource-start / resource-stop / resource-restart komutları, daha temiz alt komut formunu destekleyecek şekilde kaldırıldı.

aspire resource api restart
aspire resource api rebuild
aspire resource api restart
aspire resource api rebuild
SHELL

rebuild yenidir. Tüm uygulama barındırıcısı oturumunu kapatmadan tek bir .NET proje kaynağını durdurur, oluşturur ve yeniden başlatır. 12 kaynaklık bir grafikte tek bir hizmeti değiştirdiyseniz ve her şeyi yeniden başlatmak zorunda kalmanın verdiği sıkıntıyı yakından tanıyorsanız, bu çözüm. Bunu kendimiz de hissettik: bir PDF oluşturma şablonunu yineledikçe veya OCR ön işlemesini ayarladığınızda, tüm grafiği yeniden yüklemek için her şeyi yeniden başlatmak hızlıca eskiye gider.

Sırlar ve sertifikalar CLI'dan çıkmadan

İki yeni özel komut grubu:

aspire certs clean
aspire certs trust

aspire secret set ApiKey super-secret-value
aspire secret list --format json
aspire certs clean
aspire certs trust

aspire secret set ApiKey super-secret-value
aspire secret list --format json
SHELL

aspire secret daha büyük bir kazançtır. Uygulama modelinde AddParameter(..., secret: true)'yi destekleyen kullanıcı sırları deposu ile eşleşir, ancak onları yönetmek için .NET CLI'nın kurulmuş olması gerekmez. .NET SDK'ya sahip olmayan her geliştiricinin olmadığı çok dilli bir uygulama barındırıcısında bu önemlidir.

aspire CI bekleme

aspire wait api --status healthy --timeout 120
aspire wait api --status healthy --timeout 120
SHELL

Kaynak durumunu bekleyin. aspire start ile birleştirildiğinde ve --format json, CI betiklerini sonunda gerçekten hazır olacağına kadar bekletebilirsiniz sleep 30 && hope yerine.

Yapılandırma: hepsini yöneten bir dosya

Aspire yapılandırma dosyalarını birleştiriyor. Eski .aspire/settings.json ve apphost.run.json ayrılığı ortadan kaldırıldı, proje kökünde tek bir aspire.config.json ile değiştirildi.

{
  "appHost": {
    "path": "apphost.ts",
    "language": "typescript/nodejs"
  },
  "sdk": { "version": "13.2.0" },
  "channel": "stable",
  "profiles": {
    "default": {
      "applicationUrl": "https://localhost:17000;http://localhost:15000"
    }
  }
}

Göç otomatik. Mevcut bir projede herhangi bir aspire komutunu ilk çalıştırdığınızda, eski dosyalar yeni biçime proje köküne yeniden temellendirilerek birleşir. Eski dosyalar korunur, böylece eski CLI sürümlerini yan yana kullanabilirsiniz. Global ayarlar (globalsettings.json) da taşınır.

.aspire/settings.json veya apphost.run.json ile doğrudan iletişim kuruyorsanız, taşınmayı planlayın.

TypeScript AppHost (önizleme)

Bu, ilk gün kullanmayacak olsanız bile ilginç. Artık uygulama barındırıcınızı TypeScript ile yazabilirsiniz:

import { createBuilder } from './.modules/aspire.js';

const builder = await createBuilder();

const cache = await builder.addRedis("cache");

const api = await builder.addProject("api", "../api")
    .withReference(cache)
    .waitFor(cache);

await builder.build().run();

Arkada, TS uygulama barındırıcısı, Aspire'ın .NET orkestrasyon barındırıcısı ile JSON-RPC üzerinden yerel bir iletimde konuşan bir misafir süreci olarak çalışır. Aynı kaynak modeli, aynı gösterge paneli, aynı entegrasyonlar, sadece TypeScript ile ifade edilir.

İlginç kısım kod üretimidir. aspire add çalıştırıldığında, CLI entegrasyonun .NET montajını inceler ve .modules/ içine bir TypeScript SDK'sı oluşturur. aspire restore onları yeniden oluşturur, yükseltdikten veya dallar arasında geçiş yaptıktan sonra kullanışlıdır (ayrıca aspire run üzerinde otomatik olarak da çalışır). 13.2 jeneratörü ayrıca Go, Java ve Rust test hedeflerini ekledi, bu da bunun nereye gittiğini ima eder.

.NET-öncelikli ekipler için bu "bunu izleyin" daha çok "bunu yayım yapın" demek, ancak kod üretim deseni, gelecekteki çok dilli uygulama barındırıcı dillerinin tümünün aynı modelli izlemesi anlamına gelir. Ev sahibi köprünün nasıl çalıştığı hakkında bilgi için çok dilli mimari belgelerine bakın.

Gösterge Paneli: telemetri dışa aktarma/içe aktarma yeni oyuncak

Gösterge paneli gerçek bir dışa aktarma/içe aktarma iş akışı kazandı. Ayarlar → Yönet bölümünden kaynakları ve telemetri türlerini seçin ve bunları bir zip içinde JSON olarak dışa aktarın. Daha sonra kontrol paneline geri getirin veya başkasına (veya bir LLM'ye) analiz için teslim edin.

aspire export CLI komutu aynı paketi üretir:

aspire export --output .\artifacts\aspire-export.zip
aspire export <resource>
aspire export --output .\artifacts\aspire-export.zip
aspire export <resource>
SHELL

Gerçekten hata raporları için faydalıdır. "İşte bazı ekran görüntüleri ve bir günlük dosyası" yerine, gerçek telemetri durumunun bir anlık görüntüsünü ekleyebilirsiniz.

Diğer kontrol paneli notları:

  • Artık kaynak parametrelerini gösterge panosu UI'sinden doğrudan ayarlayabilirsiniz, kullanıcı sırlarına kalıcı hale getirme seçeneği ile
  • Çevre değişkenleri kaynak detayları görünümü tarafından .env dosyaları olarak dışa aktarılabilir
  • Kaynak grafiği yerleşimi uyarlanabilir güç yönlendirmeli konumlandırma kullanır. Karmaşık grafikler fark edilir şekilde daha az karışık
  • /api/telemetry üzerindeki Telemetri HTTP API'si OTLP JSON döndürür; NDJSON akışı için ?follow=true destekler. Uç noktalar, kaynakları, kapsama alanlarını, günlükleri ve izleri (tam iz araması için /traces/{traceId} dahil) kapsar

Bağımsız gösterge paneli artık varsayılan olarak telemetri API'sını kapalı olarak ayarlar. Kontrol panelini kendi başınıza barındırıyorsanız ve API'ye bağımlıysanız, DASHBOARD__API__ENABLED=true ve oturum açma yapılandırmasını (DASHBOARD__API__AUTHMODE ve DASHBOARD__API__PRIMARYAPIKEY) ihtiyacınız var. AppHost ile entegre senaryolar hala çalışır çünkü Aspire.Hosting API'yi otomatik olarak araçlara bağlar.

Uygulama modeli önemli parçalar

WithMcpServer

Bir kaynağın bir MCP uç noktasına ev sahipliği yaptığını uygulama modelinde beyan edebilirsiniz:

var api = builder.AddProject<Projects.MyApi>("api")
    .WithMcpServer("/mcp");
var api = builder.AddProject<Projects.MyApi>("api")
    .WithMcpServer("/mcp");
Dim api = builder.AddProject(Of Projects.MyApi)("api") _
    .WithMcpServer("/mcp")
$vbLabelText   $csharpLabel

Aspire araçları ardından bu uç noktasını keşfedebilir ve yönlendirebilir. Eğer kodlama ajanlarına araçlar sunan bir şey gönderiyorsanız, bunu bağlamanın en temiz yolu budur. Özelleştirilmiş bir yol veya uç nokta adı, seçeneklerle desteklenir.

Bağlamsal uç nokta çözümleme

İhtiyacınız olana kadar fark etmediğiniz türden bir şey. Artık belirli bir arayanın veya ağın perspektifinden uç noktalar çözülebilir:

var endpoint = redis.GetEndpoint("tcp");

var url = await endpoint.GetValueAsync(new ValueProviderContext {
    Caller = containerApp.Resource,
});
var endpoint = redis.GetEndpoint("tcp");

var url = await endpoint.GetValueAsync(new ValueProviderContext {
    Caller = containerApp.Resource,
});
Dim endpoint = redis.GetEndpoint("tcp")

Dim url = Await endpoint.GetValueAsync(New ValueProviderContext With {
    .Caller = containerApp.Resource
})
$vbLabelText   $csharpLabel

Aynı Redis uç noktası, bir ana işlemden localhost:6379, ana ağdaki bir konteynerden host.docker.internal:6379 veya Aspire konteyner ağındaki bir konteynerden cache:6379 ile çözülecektir, duruma bağlı olarak. KnownNetworkIdentifiers sınıfı, arayana göre değil, bir ağı seçmek istiyorsanız, size LocalhostNetwork, DefaultAspireContainerNetwork ve PublicInternet sağlar.

Sürüm notları, bu API'lerin 13.1'de var olduğunu açıkça belirtir, ancak doğru davranmadıklarını. Bu yüzden 13.1'de onlar için bir şey yazdıysanız, yeniden test edin. Daha fazla ayrıntı için kaynak hiyerarşileri belgelerine bakın.

Konteyner yapı sırları

WithSecretBuildArg, WithBuildSecret olarak yeniden adlandırıldı. Yeni isim daha açıktır. Bunlar Docker/Podman üzerinden uygun yapı sırları olarak akar, yapı argümanı olarak değil (ki bu görüntü geçmişine sızar).

builder.AddContainer("worker", "contoso/worker")
    .WithDockerfile("../worker")
    .WithBuildSecret("ACCESS_TOKEN", accessToken);
builder.AddContainer("worker", "contoso/worker")
    .WithDockerfile("../worker")
    .WithBuildSecret("ACCESS_TOKEN", accessToken);
$vbLabelText   $csharpLabel

Derleme sırları artık dosyalar da olabilir (örneğin, konteyner derlemelerinde özel kayıt defteri kimlik doğrulaması için .npmrc), bu da gerçek dünya kullanımlarının çoğunu kapsar.

Entegrasyonlar: önemli olanlar

Tam liste uzundur. Bunlar üzerinde duracağım başlıca olanlar:

  • Docker Compose yayınlama artık kararlı (önizleme sürümündeydi). AddDockerComposeEnvironment, yayın zamanında uygulama modelinizden docker-compose.yaml oluşturur. "Azure'a dağıt" cevabı olmadığında faydalı bir kaçış kapısı. Eğer yerleşik bağımlılıkları içeren konteynerleri yayımlıyorsanız not almaya değer, çünkü IronPDF, IronOCR ve IronXL hepsi Linux konteynerleri ve Docker'ı temiz bir şekilde destekler, bu yüzden üretilen compose dosyası genellikle manuel cerrahiye ihtiyaç duymadan çalışır.
  • Azure Sanal Ağ entegrasyonu (Aspire.Hosting.Azure.Network), AppHost'ta VNets, alt ağlar, NSG'ler, NAT ağ geçitleri ve özel uç noktalar tanımlamanıza olanak tanır. AddPrivateEndpoint otomatik olarak özel DNS bölgeleri, sanal ağ bağlantıları oluşturur ve hedef üzerindeki genel erişimi devre dışı bırakır. Bu, daha önce ayrı bir Bicep dosyasının korunması anlamına geliyordu.
  • Azure Data Lake Storage hem barındırma hem de istemci desteğine sahip oldu: AddDataLake, AddDataLakeFileSystem, artı istemci tarafında AddAzureDataLakeServiceClient / AddAzureDataLakeFileSystemClient. DI kaydı, tekrarlar, sağlık kontrolleri, telemetri, Aspire yığını.
  • MongoDB EF Core, yeni bir istemci entegrasyonuna sahip (Aspire.MongoDB.EntityFrameworkCore). Tipik durum için AddMongoDbContext<TContext>, veya DbContext'i kendiniz kaydediyorsanız EnrichMongoDbContext<TContext>().
  • Azure AI Çıkarım artık yalnızca sohbet değil, gömülü tanıtımlar destekler. AddAzureEmbeddingsClient("embeddings").AddEmbeddingGenerator() kaydedin ve IEmbeddingGenerator<string, Embedding<float>> enjekte edin. Anahtar varyantı da mevcut.
  • Azure Container Registry, bir ACR temizleme görevini bir cron zamanlaması üzerinde sağlayan WithPurgeTask("0 1 * * *", ago: TimeSpan.FromDays(7), keep: 5) aldı.
  • JavaScript kaynakları için WithBun() aracılığıyla Bun desteği. Yarn güvenilirliği AddViteApp ile, WithYarn() aracılığıyla da düzeltildi.
  • Microsoft Foundry, Azure AI Foundry'nin yerini aldı. Aspire.Hosting.Foundry, Aspire.Hosting.Azure.AIFoundry yerine geçer. Kırıcı değişiklik; ayrıntılar aşağıda.

Birleştirmek: Aspire 13.2'de bir belge hizmeti

Kütüphanelerimizle dağıtılmış senaryoları test etmek için dahili olarak çalıştırdığımız desen burada. Gösterilmeye değer çünkü çoğu yeni 13.2 özelliği bu tür bir çoklu hizmet kurulumunda ödül verir, oyuncak demolarında değil.

var builder = DistributedApplication.CreateBuilder(args);

var cache = builder.AddRedis("cache");

// A worker service that uses IronPDF for HTML to PDF rendering
var renderer = builder.AddProject<Projects.PdfRenderer>("renderer")
    .WithReference(cache)
    .WaitFor(cache)
    .WithMcpServer("/mcp");

// An OCR worker that uses IronOCR for image and PDF text extraction
var ocr = builder.AddProject<Projects.OcrWorker>("ocr-worker")
    .WithReference(cache);

// API gateway that fans out to both
builder.AddProject<Projects.Api>("api")
    .WithReference(renderer)
    .WithReference(ocr)
    .WaitFor(renderer)
    .WaitFor(ocr);

builder.Build().Run();
var builder = DistributedApplication.CreateBuilder(args);

var cache = builder.AddRedis("cache");

// A worker service that uses IronPDF for HTML to PDF rendering
var renderer = builder.AddProject<Projects.PdfRenderer>("renderer")
    .WithReference(cache)
    .WaitFor(cache)
    .WithMcpServer("/mcp");

// An OCR worker that uses IronOCR for image and PDF text extraction
var ocr = builder.AddProject<Projects.OcrWorker>("ocr-worker")
    .WithReference(cache);

// API gateway that fans out to both
builder.AddProject<Projects.Api>("api")
    .WithReference(renderer)
    .WithReference(ocr)
    .WaitFor(renderer)
    .WaitFor(ocr);

builder.Build().Run();
Imports DistributedApplication

Dim builder = DistributedApplication.CreateBuilder(args)

Dim cache = builder.AddRedis("cache")

' A worker service that uses IronPDF for HTML to PDF rendering
Dim renderer = builder.AddProject(Of Projects.PdfRenderer)("renderer") _
    .WithReference(cache) _
    .WaitFor(cache) _
    .WithMcpServer("/mcp")

' An OCR worker that uses IronOCR for image and PDF text extraction
Dim ocr = builder.AddProject(Of Projects.OcrWorker)("ocr-worker") _
    .WithReference(cache)

' API gateway that fans out to both
builder.AddProject(Of Projects.Api)("api") _
    .WithReference(renderer) _
    .WithReference(ocr) _
    .WaitFor(renderer) _
    .WaitFor(ocr)

builder.Build().Run()
$vbLabelText   $csharpLabel

13.2'den özel olarak elde ettikleriniz:

  • aspire start --isolated, bu grafiğin iki kopyasını yan yana bağlantı çakışmaları olmadan çalıştırmanıza olanak tanır. Dalların karşılaştırılması veya paralel entegrasyon testlerinin oluşturucuya karşı çalıştırılması sırasında faydalıdır
  • aspire resource renderer rebuild, bir Razor şablonunu değiştirdiğinizde yalnızca PDF render'ını yeniden yükler, bu da tüm grafiği yeniden başlatmak yerine
  • aspire wait renderer --status healthy --timeout 120, PDF oluşturma testlerini çalıştırmadan önce Chrome render işleminin başlatılmasından önce CI'nizin engellenmesine olanak tanır
  • Telemetri HTTP API'si ve aspire export, her bir render çağrısı için OTLP formatında alanlar sunar, bu da üretim trafiğinde yavaş bir CSS kuralını yakalamanın yoludur
  • WithMcpServer, MCP aracı akışlı iş akışı için render'ı kodlama ajanı olarak açığa çıkarmanıza olanak tanır, belgeleri programatik olarak üretiyorsanız yararlıdır

Yukarıdaki render gibi bir hizmet oluşturmak istiyorsanız, IronPDF'nin HTML to PDF eğitimi C# tarafını anlatır. OCR işçisi için, IronOCR başlangıç kılavuzu temelleri kapsar.

Gerçekten sizi etkileyecek olan köklü değişiklikler

Karşılaşma olasılığınıza göre kabaca sırayla:

Hizmet keşfi ortam değişkeni adlandırma

# Before (13.0/13.1)
services__myservice__myendpoint__0 = https://localhost:5001

# After (13.2)
services__myservice__https__0 = https://localhost:5001
# Before (13.0/13.1)
services__myservice__myendpoint__0 = https://localhost:5001

# After (13.2)
services__myservice__https__0 = https://localhost:5001
SHELL

Uç nokta şeması yerine uç nokta adı kullanılır. Bu çevresel değişken isimleriyle eşleşen herhangi bir kod veya yapılandırmanız varsa, güncelleyin. Bu, en olası sessiz kırılmadır: hiçbir şey fırlatılmaz, değişkenlerin yalnızca farklı anahtarları vardır.

BeforeResourceStartedEvent

Önceden daha geniş kapsamda yayınlandı; artık yalnızca bir kaynağı gerçekten başlatırken tetiklenir, her durum değişikliğinde değil. Handler'ınız önceki davranışa güveniyorsa, sessizce çalışmayı durduracaktır.

AIFoundry'den Foundry'ye

Paket ve API yeniden adlandırma. Paket referansını ve çağrıları güncelleyin:

<PackageReference Include="Aspire.Hosting.Foundry" Version="13.2.0" />
<PackageReference Include="Aspire.Hosting.Foundry" Version="13.2.0" />
XML
// Before
var ai = builder.AddAzureAIFoundry("ai");

// After
var foundry = builder.AddFoundry("ai");
var project = foundry.AddProject("agents");
var chat = project.AddModelDeployment("chat", FoundryModel.OpenAI.Gpt5Mini);
// Before
var ai = builder.AddAzureAIFoundry("ai");

// After
var foundry = builder.AddFoundry("ai");
var project = foundry.AddProject("agents");
var chat = project.AddModelDeployment("chat", FoundryModel.OpenAI.Gpt5Mini);
' Before
Dim ai = builder.AddAzureAIFoundry("ai")

' After
Dim foundry = builder.AddFoundry("ai")
Dim project = foundry.AddProject("agents")
Dim chat = project.AddModelDeployment("chat", FoundryModel.OpenAI.Gpt5Mini)
$vbLabelText   $csharpLabel

RunAsFoundryLocal, yerel model geliştirme için hala çalışır, ancak Foundry Projeleri, üst kaynak Foundry Local olarak yapılandırıldığında desteklenmez.

Varsayılan Azure kimliği

Aspire Azure istemci entegrasyonları artık parametresiz DefaultAzureCredential yapıcıyı kullanmaz. ManagedIdentityCredential dışındaki kimlik bilgilerine güveniyorsanız, bir Azure hizmetinde çalışan, davranış değişir. Prod'u güncellemeden önce Varsayılan Azure kimlik bilgisi belgesini okuyun.

Kaynak komut yeniden adlandırma

resource-start / resource-stop / resource-restart are now aspire resource <name> start|stop|yeniden başlat. Herhangi bir betiği güncelleyin. --apphost seçeneği artık eski --project'e tercih edilir (hala kabul edilir).

Bağlantı özelliği eki

Bir bağlantı özelliği eki eklendi. Bağlantı özelliklerine doğrudan erişim sağlıyorsanız (WithReference yerine), kodunuzun onları hala çözüp çözmediğini kontrol edin.

WithSecretBuildArg'dan WithBuildSecret'e

Yukarıda belirtilmiştir. Doğrudan yeniden adlandırma.

IAzureContainerRegistry kullanılmaz

Bunun yerine, hesaplama ortamlarında ContainerRegistry özelliğini kullanın.

Gösterge tablosu telemetri API'si artık isteğe bağlı (bağımsız)

Daha önce bahsedilmiş olsa da tekrar belirtmeye değer: Bağımsız pano dağıtımları artık API'yi açıkça etkinleştirmelidir.

Yükseltme yapmalı mısınız?

Çok servisli uygulamaları yerel olarak çalıştıran bir .NET dükkanı için, evet, yukarıdaki bozucu değişiklikleri envanterine almışsanız. Sadece CLI iyileştirmeleri bile buna değer kılıyor. Özellikle ayrılmış mod ve izole mod, gerçek iş akışı problemlerini düzeltir.

Foundry kullanıcıları için: Bu sürümden yeni bir şey istiyorsanız, yeniden adlandırma zorunlu bir geçiştir, bu nedenle buna göre plan yapın.

TypeScript meraklıları için: 13.2, TS apphost'un değerlendirilebilecek kadar gerçek olduğu ilk sürümdür. Hâlâ önizleme, ama bir cuma öğleden sonrası için değer.

Zaten 13.x sürümündeyseniz, yükseltme işlemi sadece tek satırlık bir işlemdir:

aspire update --self
aspire update
aspire update --self
aspire update
SHELL

12.x ya da daha önceki bir sürümü kullanıyorsanız, önce yükseltme kılavuzu'na göz atın. 13.0'da atlayamayacağınız bir adım var.

Yama notu: 13.2.1

13.2.1, orijinal sürümden beri güvenilirlik düzeltmeleriyle beraber yayımlandı. TS apphost önizlemesinde iseniz, dikkate değer küçük bir TypeScript SDK yeniden adlandırması var:

ÖncekiYeni
runAsExistingFromParameters(name, resourceGroup)runAsExisting(name, { resourceGroup })
publishAsExistingFromParameters(name, resourceGroup)publishAsExisting(name, { resourceGroup })
withConnectionPropertyValue(name, value)withConnectionProperty(name, value)
withParameterBuildArg(name, parameter)withBuildArg(name, parameter)

withConnectionPropertyValue, oluşturulan SDK'larda uyumluluk takma adı olarak korunur, bu yüzden çalıştırma kesintisi değildir.

Belge iş yükleri ile dağıtılmış .NET uygulamaları mı geliştiriyorsunuz?

Hizmetleriniz PDF oluşturma, OCR, Excel işleme, barkodlar veya kapsadığımız diğer formatları yapıyorsa, kütüphanelerimiz Aspire'ın düzenlediği çoklu hizmet ve konteyner dostu kuruluma tam olarak uyacak şekilde tasarlanmıştır. Her şey .NET 10, 9, 8, 7, 6, Framework ve Core'u destekler ve Linux konteynerlerinde, Azure, AWS ve yerinde çalışır.

Başlamak için birkaç yer:

  • IronPDF ile HTML'den PDF'ye dönüştürme, PDF düzenleme, imzalama ve formlar için. Eğitim merkezi çalışan bir render hizmetine erişmenin en hızlı yoludur
  • IronOCR ile 125'ten fazla dilde görüntü ve PDF metin çıkarımı
  • IronXL ile Office Interop kullanmadan Excel okuma/yazma
  • IronWord ile DOCX oluşturma ve düzenleme
  • IronBarcode ve IronQR ile barkod ve QR oluşturma ve tarama
  • Iron Suite yukarıdakilerden birden fazlasına ihtiyacınız varsa

Bir 30 günlük deneme anahtarı alabilir ve bir Aspire apphost içinde çalışan bir PDF veya OCR servisine bir saatten kısa sürede sahip olabilirsiniz. Beklenmedik bir durumla karşılaşırsanız, destek ekibimiz bir bilet önceliklendirme kuyruğu değil, gerçek mühendislerden oluşmaktadır.

İşte bu kadar. Bir sonraki sürümde görüşmek üzere.