Altbilgi içeriğine atla
Iron Academy Logo
C# öğrenin
C# öğrenin

Diğer Kategoriler

Linux'ta .NET Aspire Kurulumu

[[academy-video-youtube({"vid": "YV2p0NqKZ-E", "start_time": "0", "title": "Setting Up .NET Aspire on Linux", "creator": "Tim Corey", "length": "18m 53s"})]]

Yerel olarak çalışan dağıtılmış uygulamalar her zaman birden fazla terminal penceresiyle jonglörlük yapmayı, her hizmetin hangi porta bağlı olduğunu hatırlamayı ve ön uç istekleri kabul etmeye başlamadan önce bağımlılıkların sağlıklı olduğunu manuel olarak doğrulamayı gerektirmiştir. .NET Aspire, hizmet keşfi, sağlık kontrolü ve telemetriyi kutu dışında yöneten tek bir orkestrasyon katmanına bu iş akışını toplar. Linux'ta çalışan C# geliştiricileri için kurulum, birkaç terminal komutu ve bir VS Code uzantısından ibarettir.

"Setting Up .NET Aspire on Linux" videosunda, Tim Corey bir Linux makinesine Aspire kurar, VS Code uzantısını yapılandırır, bir API arka ucu ile bir başlangıç Blazor uygulaması talimatına başlar ve yapılandırılmış günlük kaydı, dağıtılmış izler ve metriks gösteren Aspire panosunu tanıtır. Bu bölüm ayrıca C# on Linux serisinin yeni bir aşamasını başlatır: "Tiny Ticket"'i oluşturmak, gelecekteki bölümlerde veritabanı kurulumunu, Azure'a dağıtımı ve çapraz platform geliştirmeyi kapsayacak küçük ama dağıtılabilir bir yardım masası uygulaması. Linux serisini takip ettiyseniz veya Aspire'ın gerçek bir geliştirme iş akışına nasıl uyduğunu görmek istiyorsanız, bu makale, Tim'in gösterdiği her adımı kapsar.

Aspire CLI Kurulumu

[0:48 - 2:20] Tim, aspire.dev adresinden başlar, kısa süre önce projenin "Aspire.NET" den sadece "Aspire" olarak yeniden markalandığını belirterek. İsim değişikliği aracın genişleyen kapsamını yansıtır: Aspire hala .NET üzerinde inşa edilirken ve ağırlıklı olarak .NET geliştiricilerine hizmet verirken, artık TypeScript uygulama ana bilgisayarlarını da destekliyor ve yol haritasında daha fazla dil entegrasyonu var.

Kurulumun kendisi, 9.2 sürümü için Aspire dokümantasyonundan kopyalanmış tek bir bash komudu ile yapılır:

dotnet tool install -g aspirate
dotnet tool install -g aspirate
SHELL

Yükleyiciyi çalıştırdıktan sonra, aracın PATH'e kaydolması için terminal oturumunuzu yeniden başlatın. Yeniden başlatma olmadan, kabuğunuz yeni komutu tanımayacaktır.

Daha sonra kurulumun doğru şekilde tamamlandığını doğrulayın:

aspire --version
aspire --version
SHELL

Sürüm numarası yazdırılırsa, CLI hazır demektir. Bu iki adımlı süreç (kurulum, doğrulama) terminal tarafındaki kurulumun tamamıdır.

VS Code Uzantısını Yapılandırma

[2:23 - 3:30] CLI kurulduktan sonra, bir sonraki adım VS Code uzantısı dır. Uzantılar panelini açın, "Aspire" arayın ve Microsoft tarafından yayınlanan resmi uzantıyı yükleyin. Uzantı, proje kalıp oluşturmayı, başlatma yapılandırma desteğini ve Aspire pano ile entegrasyonu ekler.

Yükleme sonrası, VS Code, CLI ve uzantının uyuştuğunu doğrulamak için bir doğrulama adımı yürütür. Tim, uzantının komut paleti aracılığıyla doğrudan yeni bir proje oluşturmaya da olanak tanıyabileceğini belirtir, ancak bunun yerine CLI yaklaşımını tercih eder. Bu seçim kasıtlıdır: CLI'yi bilmek, bir GUI aracı arıza yaptığında asla sıkışıp kalmamanız anlamına gelir. VS Code şablon seçici, kurulumdan sonra Aspire şablonlarını göstermediğinde, CLI hemen bir geri dönüş sağladı.

Başlangıç ​​Projesini Şekillendirme

[3:30 - 6:42] VS Code'un "Yeni .NET Projesi Oluştur" komutunu (aralıklı olarak Aspire şablonlarını bulmayı başaramadığı) kullanmak yerine, Tim terminale girer ve şunu çalıştırır:

aspire new
aspire new
SHELL

Etkileşimli istemde birkaç şablon seçeneği belirir. Üretim uygulaması için genellikle boştaki C# uygulama ana bilgisayarını seçer ve buradan inşa edersiniz. Öğrenme amaçlı, Tim Başlangıç ​​Uygulamasını seçer, bu Blazor ön ucu ve minimal bir API ile desteklenir. Başlangıç ​​şablonu, bir hava tahmini son noktası, sayaç sayfası ve keşfedilecek işlevsel bir şeyler vermek üzere önceden kablolu sağlık kontrolleri içerir.

Sonraki istemler, kalan yapılandırma sürecini yürütür:

Proje adı: TinyTicket
Çıkış yolu:          TinyTicket
Dev localhost kullan:    Evet
Redis önbellek:          Hayır
Test projesi:         Hayır
AI ajan ortamı: Hayır

Tim, karmaşıklığı en aza indirmek için her isteğe bağlı özelliği kapalı tutar. Hedef, gelecekteki bölümlerin kademeli olarak üzerine inşa edileceği yalın bir başlangıç ​​noktasıdır. Kalıp tamamlandığında, VS Code'da klasörü açın ve çalışma alanına güvenin.

Proje Yapısını Anlama

[6:42 - 10:00] Üretilen çözüm dört proje içerir ve bunlar arasındaki ilişkiler Aspire'ın nasıl çalıştığını gösterir. Uygulama Ana Bilgisayarı projesi, orkestrasyon katmanıdır. Onun Program.cs yaklaşık olarak on iki satır koddur:

var builder = DistributedApplication.CreateBuilder(args);

var api = builder.AddProject<Projects.TinyTicket_ApiService>("api")
    .WithHttpHealthCheck("/health");

builder.AddProject<Projects.TinyTicket_Web>("frontend")
    .WithExternalHttpEndpoints()
    .WithHttpHealthCheck("/health")
    .WithReference(api)
    .WaitFor(api);

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

var api = builder.AddProject<Projects.TinyTicket_ApiService>("api")
    .WithHttpHealthCheck("/health");

builder.AddProject<Projects.TinyTicket_Web>("frontend")
    .WithExternalHttpEndpoints()
    .WithHttpHealthCheck("/health")
    .WithReference(api)
    .WaitFor(api);

builder.Build().Run();

Ön uç, bir referans ilan edip sağlıklı hale gelene kadar başlamadan önce API'yi beklediğini fark edin. Bu bağımlılık sıralaması, hizmet keşfi ve sağlık kontrolü kod seviyesinde Aspire tarafından sağlanan her şeydir. Bu dosyada gördüğünüzden öte bir sihir yoktur.

Uygulama ana bilgisayarının yanında, telemetri, yapılandırılmış günlük kaydı, ve sağlık kontrolü kayıtları için genişletme yöntemleri içeren Hizmet Varsayılanları projesi yer alır. Bunlar isteğe bağlı kolaylıklardır: hizmetlerinizde OpenTelemetry veya sağlık uç noktalarını zaten yapılandırmadıysanız, varsayılanlar bunları sizin için bağlar.

API Hizmeti projesi, rastgele yaratılmış hava durumu tahminlerini döndüren tek bir uç noktaya sahiptir. Web projesi, yalnızca bir hizmet adı ("api") ile yapılandırılmış bir HttpClient aracılığıyla API'yi çağıran bir Blazor uygulamasıdır. Aspire, adı çalışma zamanında doğru URL ile eşler, böylece Blazor uygulaması bir bağlantı noktası numarasını veya ana bilgisayar adını asla yerleştirmez.

Tim, önemli bir dağıtım detayına dikkat çeker: Aspire'ın kendisi üretime dağıtılmaz. Orkestrasyon geliştirme-açılışında bir araçtır. Üretimde, hizmet URL'leri yapılandırmadan (ortam değişkenleri, uygulama ayarları veya bir dağıtım hattı) alınır ve uygulamalar uygulama ana bilgisayarı olmadan bağımsız çalışır.

Pano Çalıştırma ve Keşfetme

[10:59 - 14:46] HTTPS başlatma profilini seçerek VS Code'daki Çalıştır ve Hata Ayıkla paneli aracılığıyla uygulama ana bilgisayarını başlatın. İlk geri yükleme ve yapıdan sonra Aspire panosu tarayıcıda açılır. İlk kez bağlandığınızda, terminal çıktısından bir giriş belirteci yapıştırmanız gerekecek.

Pano, ek yapılandırma olmadan dört gözlenebilirlik veri kategorisi sunar:

Konsol çıktısı, her hizmetten standart çıkışı tek bir görünümde toplar. Terminal sekmeleri arasında geçiş yapmak yerine, tüm çıktıyı hizmete göre filtelenebilir ve iç içe geçmiş olarak görürsünüz.

Yapılandırılmış günlükler, yapılandırılmış özellikleriyle birlikte günlük girişlerini gösterir. Örneğin, Tim tarafından karşılaşılan sertifika güven uyarısı, burada hangi hizmetin ürettiği ve hangi ciddiyet seviyesinde olduğuna dair tam bağlam ile görünür.

İzler dağıtılmış çağrı zincirlerini gösterir. Blazor ön ucu hava durumu verileri talep ettiğinde, iz, HTTP GET isteğini ön uçtan, API hizmetine gidişi (videoda 7.35 milisaniye süren) ve toplam sayfa render süresini gösterir. Tim, mutlak sayıların önemli olmadığını, ancak nispi karşılaştırmaların önemli olduğunu belirtir: bir çağrı normalde 5 saniye sürüyorsa ve aniden 10 saniye sürerse, bir profil alıcı eklemeden gerilemeyi bulmuşsunuz demektir.

Metrikler hizmetler bazında istek oranları, hata oranları ve kaynak tüketimi için sayaçlar sağlar. Pano ayrıca her hizmet için ortam değişkenlerini ve uç nokta kimlik bilgilerini ifşa eder, bu da yapılandırma değerlerinin doğru şekilde aktığını doğrulamak için faydalıdır.

Tiny Ticket'i Tanıtma: Seri Projesi

[14:46 - 17:17] Tim, serinin geri kalanında devam edecek projeyi planlar. Tiny Ticket, indirgenmiş bir yardım masası uygulamasıdır: kullanıcılar destek talepleri gönderir ve sistem önceliği ve durumu izler. Veri modeli, tek bir SQL tablosu kadar küçük olabilir. Amaç, kapsamlı bir ürün inşa etmek değil, Linux'taki geliştirme döngüsünün her aşamasını kapsayan dikey bir dilim oluşturmaktır: inşa etme, test etme, dağıtma ve dış hizmetlerle bağlantı kurma.

Başlangıç ​​şablonundaki hava durumu tahmin ve sayaç sayfaları bilet görünümleriyle değiştirilecek, ancak Aspire orkestrasyonu, API'den ön uca desen ve hizmet varsayılanları kalacaktır. Gelecek bölümler, veritabanı olarak Microsoft SQL Server'ı ekleyecek ve Tim, yaygın bir itiraza yanıt verecek: SQL Server'ı yerel olarak çalıştıramayan geliştiriciler (ARM işlemciler gibi) bazen farklı bir veritabanı tercih ederler. Yanıtı, geliştirme ortamının üretimi yansıtması gerektiğidir. Eğer üretim veritabanı SQL Server ise, geliştirici ortamı eşleşmelidir, bu bile veritabanının bir konteyner içinde çalıştırılması anlamına gelse bile.

Sararak: Sıfırdan Pano'ya

[17:17 - 18:20] Yirmi dakikadan kısa sürede video, Linux'ta tam Aspire kurulumunu kapsar: bir CLI kurulum, bir VS Code uzantısı, bir şekillendirilmiş proje ve yapılandırılmamış bir pano. Aspire'ın gerçek değeri, herhangi bir tek özelliği değil, aksine sürtüşmede azalmadır: bir süreç başlatmak için, bir pano izlemek için ve hizmetlerin nasıl etkileşime girdiğini görmek için tek bir yer.

Sonuç

[18:20 - 18:53] Linux üzerinde Aspire kurmak CLI aracı, VS Code uzantısı ve bir proje şeklini gerektirir. Oradan, pano telemetri kodu yazmadan her hizmet için gözlenebilirlik sağlar. Uygulama ana bilgisayarı dosyası, hizmet grafiğinizi bir düzine satırda tanımlar ve hizmet varsayılanları, aksi takdirde elle yapılandıracağınız su tesisatını halleder.

Burada tanıtılan Tiny Ticket projesi, yaklaşmakta olan veri tabanı entegrasyonu, Azure dağıtımı ve çapraz platform iş akışları üzerine temel oluşturacaktır. Bu başlangıç ​noktası ile birlikte hareket etmek, her yeni kavramın daha önce doğrulanan altyapıya dayanması anlamına gelir.

Seri Navigasyonu: Bu makale C# on Linux serisinin bir parçasıdır ve Tiny Ticket uygulamasını oluşturur. Önceki: Linux'ta Docker Üzerinde SQL Server. Sonraki: Linux üzerinde .NET Aspire'a Swagger UI Ekleme.

Örnek İpucu: Uzantı yüklemesinden sonra VS Code şablon seçicisi Aspire şablonlarını bulamazsa, terminalden güvenilir bir alternatif olarak aspire new kullanın ve ardından uzantı durumunu senkronize etmek için VS Code'u yeniden başlatın.

Tam videoyu YouTube Kanalında izleyin ve Linux geliştirme için .NET Aspire kurulumunda daha fazla fikir edinin.

Hero Worlddot related to Linux'ta .NET Aspire Kurulumu
Hero Affiliate related to Linux'ta .NET Aspire Kurulumu

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