Altbilgi içeriğine atla
Iron Academy Logo
C# Araçları & Verimlilik

Aspire 9.5'e Giriş - Bu Temel Araçla Hızla Başlayın

[[academy-video-youtube({"vid": "x2KAfsFydIo", "start_time": "0", "title": "Aspire 9.5'e Giriş - Bu Temel Araçla Hızlıca Başlayın", "creator": "Tim Corey", "length": "43m 49s"})]]

Web uygulamalarıyla çalışan her modern .NET geliştiricisi Aspire 9.5 kullanmayı bilmelidir. Tim Corey'nin "Aspire 9.5'e Giriş – Bu Temel Araçla Hızlı Başlayın" başlıklı detaylı videosunda, bu yeni .NET Aspire sistemini tanıtıyor, ne olduğunu, neden değerli olduğunu ve nasıl hızlı bir şekilde başlayacağını açıklıyor.

Video boyunca Tim, Visual Studio ve en son proje şablonlarını kullanarak adım adım bir örnek çözüm oluşturmaktadır. Bu makale, proje dosyaları, kurulum süreci ve üretime hazır dağıtılmış uygulamalar geliştirmeye Aspire'ın getirdiği geliştirici deneyimi hakkında eksiksiz bir kılavuz sunarak onun rehberini yakından takip etmektedir.

Başlarken ve Aspire 9.5'i Yükleme

Tim, Aspire'ın amacını açıklayarak başlar. API'ler veya web uygulamaları geliştiren her .NET geliştiricisi, bu önemli Microsoft aracını anlamalıdır. Aspire'ın neler yapabileceği konusunda bir karışıklık vardı, bu yüzden Tim, amacını, kurulumu ve kullanımını baştan sona kadar göstermek için yola çıkıyor.

Visual Studio'yu açar ve Aspire başlangıç uygulama şablonunu kullanarak yeni bir proje başlatır. Aspire yüklü değilse, Aspire için Microsoft'un web sitesinden kurulum ve araçlar için yönlendirir, bu işlemin .NET CLI, Visual Studio veya VS Code üzerinden yapılabileceğini belirtir. Kolaylık sağlamak adına, Tim CLI komutunu kullanmanızı önerir:

dotnet new install aspire.templates

Bu, Aspire 9.5 dahil en son proje şablonlarını yükler. Kurulumdan sonra, şablonların görünmesi için Visual Studio'nun yeniden başlatılması gerekebilir.

Tim, Aspire Demo Uygulamasını seçer, .NET 9'u seçer, HTTPS'i etkinleştirir ve önbellekleme için Redis entegrasyonunu kullanır. Bu, Aspire'ın bir uygulamayı yerel olarak tamamen yönettiği gerçek bir senaryoyu göstermektedir. Birim testini atlar ve çözüm dosyalarını oluşturmaya devam eder.

Proje Yapısını ve Uygulama Modelini Keşfetmek

Proje oluşturulduktan sonra Tim, Aspire'ın uygulama modeli tarafından oluşturulan proje dosyalarını analiz eder. Çözüm, hem tipik .NET projelerini hem de Aspire'ye özgü projeleri yansıtan dört ana projeyi içerir:

  1. Web projesi – Blazor tabanlı bir web uygulaması.

  2. API servisi – veri veya iş mantığı için bir backend servisi.

  3. AppHost – Tüm uygulamayı başlatan tek dosya AppHost.

  4. ServiceDefaults - sağlık kontrolleri, servis keşfi ve telemetri kurulumu içeren bir kütüphane.

İlk iki tanesi, normal bir dağıtık sistemi (frontend ve backend) temsil ederken, diğer iki tanesi Aspire'ın ortam değişkenlerini, bağımlılıklarını ve kaynak yaşam döngüsü olay API'lerini yönetmek için birleştirilmiş araç zincirini temsil eder.

Tim, bu yeni uygulama modelinin çoklu proje orkestrasyonu için birinci sınıf destek sağladığını ve geliştiricilere tüm uygulamalarını tek bir komutla çalıştırma olanağı tanıdığını vurguluyor. AppHost, başlangıç sırasını ve bağımlılıkları kontrol ederken, ServiceDefaults yapılandırma varsayılanlarını, sağlık kontrollerini ve telemetri entegrasyonunu otomatik olarak enjekte eder.

Aspire, Yerel Geliştirmeyi Neden Basitleştirir

Tim, Aspire olmadan yerel olarak dağıtık bir sistemi yönetmenin zorluklarını açıklar. Geleneksel olarak, geliştiriciler her bir hizmet için konteyner çalıştırma yapılandırmaları, port yönlendirme ve bağlantı dizelerini manuel olarak ayarlamak zorundadır. Her geliştirici, ortam değişkenlerini, kullanıcı sırlarını ve redis veya API bağlantılarını bireysel olarak çoğaltmalıdır.

Aspire ile Aspire CLI bunu otomatik olarak halleder. Redis kapsayıcıları gibi bağımlılıkları bir geliştirme kapsayıcısı veya Docker örneği aracılığıyla çalıştırır, uç nokta keşfini yönetir ve hizmet keşfi kullanarak hizmetler arasında özel erişim sağlar.

Aspire, web ön yüzünün sabit kodlanmış bağlantı noktası numaralarını bilmesine gerek kalmaması için bir ters proxy ve uç nokta çözümleme sistemi kullanır. API'yi sadece adıyla (örneğin "apiservice") ifade eder ve Asper gerisini halleder.

Bu, sıkıcı kurulum adımlarını ortadan kaldırarak geliştirici deneyimini önemli ölçüde iyileştirir ve geliştiricilerin altyapı yerine koda odaklanmalarını sağlar.

AppHost'ta Hizmetlerin ve Bağımlılıkların Tanımlanması

Tim, Aspire'ın yapılandırmasının kalbini gösteriyor: AppHost'un Program.cs dosyası. Var builder modeli kullanılarak, Aspire her hizmeti basit komutlarla tanımlar:

var cache = builder.AddRedis("cache");
var api = builder.AddProject<Projects.ApiService>("apiservice");
var web = builder.AddProject<Projects.Web>("webfrontend")
    .WithReference(cache)
    .WithReference(api);
var cache = builder.AddRedis("cache");
var api = builder.AddProject<Projects.ApiService>("apiservice");
var web = builder.AddProject<Projects.Web>("webfrontend")
    .WithReference(cache)
    .WithReference(api);

Bu sözdizimi, her kaynağı tanımlar, bağımlılık sırasını ayarlar ve net bir kaynak yaşam döngüsü oluşturur. Aspire, öncelikle cache'in başlamasını, ardından API'nin, sonra web frontend'in başlamasını sağlayarak bağımlılıkların beklenmesini otomatik olarak yönetir.

Bu küçük talimat seti, geliştiricilere üretime hazır dağıtılmış uygulamalarda her şeyin nasıl çalışacağını yansıtarak başlangıç davranışı üzerinde ayrıntılı kontrol sağlar.

Aspire'ı Çalıştırma ve Gösterge Panelini Anlama

Tim projeyi çalıştırdığında, Aspire kendi container çalışma zamanını başlatır ve her şeyi izlemek için merkezi bir arayüz olan Aspire Dashboard'u açar. Başlangıçta bir hata belirir: "Container runtime unhealthy"—Docker çalışmıyordu. Docker başlatıldığında, Aspire otomatik olarak bir Redis çalıştırılabilir kaynağını başlatır ve bunu uygulamanın geri kalanına bağlar.

Gösterge paneli, her kaynağın sağlığını belirten renk kodlu durum simgelerini gösterir. Redis, API ve web ön yüzü çalışmaya başladığında, gösterge paneli yeşil olur ve uygulamanın sağlıklı olduğunu gösterir.

Bu bildirim sistemi, gerçek zamanlı durumları anında yansıtır ve standart konsol günlüklerinden daha net hata mesajları sağlar. Geliştiriciler, servis ilişkilerini görselleştirebilir, metrikleri izleyebilir ve hatta kaynak uç noktalarına doğrudan UI'den erişebilir.

Aspire Dashboard ile Görsel İçgörüler

Gösterge panelindeki grafik görünümü, hizmetlerin nasıl bağlandığını görselleştirir. Örneğin, web ön yüzü hem Redis'e hem de API servisine bağlanırken, API bağımsızdır. Bu izleme görünümü, çağrıların ve bağımlılıkların iç akışını anlamaya yardımcı olur.

Tim, gösterge panosunun izleme detay iyileştirmelerini içerdiğini, örneğin izleme filtreleme seçeneklerini ve zamanlama dökümlerini gösterdiğini vurguluyor. Geliştiriciler, Aspire'ın izleme görünümü ile HTTP isteklerini hizmetler arasında izleyebilir ve performans etkilerini görebilir.

Merkezi Kayıt ve Yapılandırılmış Kayıtlar

Aspire, tüm proje dosyalarından gelen konsol loglarını tek bir görünümde birleştirir. Geliştiriciler, birden fazla günlük penceresini yönetmek yerine, kontrol panelini kullanarak web uygulaması, API ve Redis entegrasyonu gibi tüm hizmetlerin günlüklerini tek bir zaman çizelgesinde görüntüleyebilirler.

Tim, Aspire'ın kimlikler, parametreler ve etiketler gibi bağlam açısından zengin girdilere izin vererek yapılandırılmış günlüklemeyi kullandığını gösteriyor. Geliştiriciler, günlükleri seviye (Bilgi, Uyarı, Hata) veya özellik değerlerine göre filtreleyebilir.

Örneğin, bir geliştirici yalnızca "evenOddResult" == "odd" olan girdileri görüntüleyebilir. Bu gelişmiş günlük filtreleme, Aspire'in renk kodlu önekleriyle birleşerek hata ayıklamayı sezgisel ve görsel hale getirir.

Izler ve Telemetri ile Çalışma

Traces sekmesinde, Tim, Aspire'ın uygulamanın hizmetleri arasında talepleri nasıl izlediğini gösteriyor. Her iz, hangi hizmetin neyi işlediğini gösteren zamanlama, durum ve aralıklar içerir.

Örneğin, bir "GetWeather" isteği, önbelleğin ne zaman vurulduğunu veya kaçırıldığını, API çağrısının ne zaman gerçekleştiğini ve her bir eylemin ne kadar sürdüğünü gösterir. Bu izleme filtreleme, darboğazları ve bağımlılıkları kesin bir şekilde tanımlamayı sağlar.

Aspire, geliştiricilere dağıtılmış hizmetler üzerinde tam gözlemlenebilirlik sağlamak için izleme verilerini diğer araçlara veya sistemlere aktarmak amacıyla OpenTelemetry'yi de destekler.

Gerçek Zamanlı Metrikler ve Performans İzleme

Tim, istek süreleri, SignalR aktif bağlantıları ve aktif istek sayıları gibi metrikleri inceliyor. Bu metrikler, uygulamanızın canlı durumunu görselleştirir ve bağlantı veya gecikme sorunlarını erken tespit etmenizi sağlar.

Aspire 9.5 içindeki metrik verileri, iz detaylarının iyileştirilmesinden ve daha iyi iz filtrelemesinden de faydalanır, bu da geliştiricilerin performans düşüşlerinin gerçek zamanlı olarak nerede meydana geldiğini belirlemelerine olanak tanır.

Aspire Yerel Geliştirme İçindir, Üretim İçin Değildir

Tim, Aspire'ın kontrol panelinin üretim sunucularına dağıtım için tasarlanmadığını açıkça belirtiyor. Bunu dağıtmak, iç sistem detaylarını ve ortam değişkenlerini ortaya çıkarabilir, bu da riskli olabilir.

Bununla birlikte, geliştiriciler hâlâ Aspire'ın "aspire deploy" komutunu kullanarak hizmetleri Azure Container Apps, Azure Container App Jobs veya diğer Aspire entegrasyonlarına yayınlayabilirler. Bu dağıtım seçenekleri artıyor ancak kontrol panelinden ayrı kalıyor.

Aspire'ın amacı, üretim benzeri bir ortamı yerel olarak güvenli yükseltmelerle ve ön izleme desteğiyle yansıtmak olup, üretim izleme sistemlerinin yerini almak değildir.

Günlükleme ve İstisna İşleme ile Deney Yapmak

Tim, Counter sayfasına yapılandırılmış günlükleme ekler ve Weather sayfasında kasten bir NotImplementedException ekler. Yeniden çalıştırıldığında, kontrol paneli hem yapılandırılmış günlükleri hem de işlenmemiş istisnaları derhal yakalar.

Aspire'ın günlüklerinin, parametre adı, değerler ve çağrı yığını dahil olmak üzere tam ayrıntıları nasıl gösterdiğini açıklıyor. GitHub Modelleri ve Copilot AI ile entegrasyon, istisnaların otomatik açıklamalarını ve düzeltmeler için kod önerilerini sağlar—erken dönem AI hizmetleri ve üretken AI görselleştirici entegrasyonunun geliştirici deneyimine dahil edilmesine bir örnektir.

Hataları İzleme Filtresi ile Analiz Etme

Traces sekmesinde, Tim başarısız olan API çağrılarının kırmızı ünlem simgeleriyle nasıl göründüğünü gösteriyor. Birini tıkladığınızda, her .NET projesi arasında her isteği bağlayan, span ID'sine göre filtrelenmiş ilgili tüm günlükler görüntülenir.

Günlükler, izler ve sağlık kontrollerinin birleştirilmesi ile oluşturulan bu birleşik görünüm, harici yapılandırma gerektirmeden gözlemlenebilir sistemler oluşturmak ve hata ayıklamak için etkileşimli bir yönlendirme sağlar.

Mevcut .NET Projelerine Aspire'ı Entegre Etme

Tim daha sonra Aspire'ı mevcut bir uygulamaya nasıl entegre edeceğini açıklar. Geliştiricilerin sadece iki şey eklemesi gerekiyor:

AppHost projesi, hangi hizmetlerin başlayacağını ve bunların bağımlılıklarının neler olduğunu kontrol eder.

Özellik bayrakları, sağlık kontrolleri, telemetri ve hizmet keşfi sağlayan ServiceDefaults projesi.

Her proje dosyasında ServiceDefaults'a referans vererek, geliştiriciler otomatik olarak varsayılan ortam değişkenlerini, günlük kaydı ayarlarını ve telemetriyi alır. Aspire'in uç nokta çözümleme sistemi, manuel port yönlendirme veya bağlantı dizesi yönetimi ihtiyacını ortadan kaldırır.

Aspire'i Yerel Kullanımın Ötesine Taşımak

Tim, Aspire'ın yeteneklerinin yerel kullanımın ötesine nasıl genişlediğini ele alıyor. Azure Container Apps ve Azure AI Foundry entegrasyonları ile, geliştiriciler Aspire CLI kullanarak minimal konfigürasyon ile dağıtık sistemler dağıtabilir.

Sistem zaten OpenAI uç noktaları veya Azure PostgreSQL bağlantıları gibi yapay zeka hizmetleri için özel kaynak simgeleri, ad özellikleri ve önizleme desteğini destekliyor.

Aspire'ın birleşik araç zinciri, sürüm kontrolünü ve ana sürümler ve alt sürümler arasındaki güvenli yükseltmeleri de destekleyerek, ekiplerin Aspire 9.5 gibi güncellemeleri güvenle benimsemesine yardımcı olur.

Son Düşünceler ve Geleceğe Bakış

Video sona ererken, Tim Aspire'ı "geliştiriciler için bir altın madeni" olarak nitelendiriyor. Kontrol paneli, izleme görüntüleri, sağlık kontrolleri, loglar ve metrikleri tek bir birleşik panelde birleştiriyor—bu, yerel geliştirmede daha önce mevcut olmayan bir şeydi.

Tim ve ekibi için, her yeni .NET Aspire projesi artık varsayılan olarak bu sistemi kullanıyor. Özelleştirilmiş derlemeleri daha hızlı hale getirir, geliştirici deneyimini iyileştirir ve üretime hazır dağıtılmış uygulamaların makinelerde tutarlı şekilde davranmasını sağlar.

Önemli Aspire sürümlerinin, izleme filtrelemesi, uç nokta çözünürlüğü ve ai entegrasyonlarını iyileştirmeye devam ederken, güvenli yükseltmeleri ve genel kullanılabilirliği korumaya odaklanacağını belirtiyor.

teşvik eder.

Hero Worlddot related to Aspire 9.5'e Giriş - Bu Temel Araçla Hızla Başlayın
Hero Affiliate related to Aspire 9.5'e Giriş - Bu Temel Araçla Hızla Başlayın

Sevdiğiniz Şeyleri Paylaşarak Daha Fazla Kazanın

.NET, C#, Java, Python veya Node.js ile çalışan geliştiriciler için içerik oluşturuyor musunuz? Uzmanlığınızı ek gelire dönüştürün!

Iron Destek Ekibi

Haftada 5 gün, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara