WinForms ve Blazor ile Bir Test API'si Kullanma
[[academy-video-youtube({"vid": "Q-KNZMzHUqw", "start_time": "0", "title": "WinForms ve Blazor ile Test API Kullanımı", "creator": "Tim Corey", "length": "39m 54s"})]]
Masaüstü ve web uygulamaları oluşturmak karmaşık olabilir, ancak test edilecek güvenilir bir örnek API'nin olması süreci basitleştirir. Tim Corey, "WinForms ve Blazor ile Test API Kullanımı" adlı video öğreticisinde, hem bir Blazor WebAssembly projesinde hem de Visual Studio kullanılarak bir Windows Forms Uygulamasında test API'sinden nasıl yararlanılacağına dair adım adım bir izlenecek yol sunar. Bu yaklaşım, geliştiricilere güncel bilgiler sağlamanın yanı sıra, UI işlevselliğini oluşturma ve test etme konusundaki gerçek dünya senaryolarını da gösterir.
Örnek API ve Visual Studio'ya Giriş
Tim, web geliştirme veya Windows Forms programlamayı öğrenirken bir örnek API'nin önemini vurgulayarak başlar. Güvenilir bir API, çeşitli kullanıcı arayüzü ortamlarında özellikleri test etmek için stabil bir arka uç işlevi görür. Visual Studio IDE'yi kullanarak, Tim yeni projeler oluşturma aşamasına geçer ve hem Blazor hem de Windows Forms platformlarını tanıtır.
Blazor Web Uygulaması ile Başlama
Visual Studio'nun "Yeni Proje" diyalogunu kullanarak, Tim bir Blazor WebAssembly uygulaması seçer. Projeyi, "DemoApps" başlıklı bir çözüme "BlazorDemo" ismiyle adlandırır. Bu kurulum, hem sunucu tarafı hem de WebAssembly renderingini desteklemek için "otomatik" modunu kullanır.
API'den Bir Model Ekleme
Tim, istemci tarafı proje içinde CourseModel.cs adlı yeni bir dosya oluşturur. API'nin /courses uç noktasıdan bir JSON yükü kopyalayarak, Visual Studio'nun "JSON'u Sınıf olarak Yapıştır" aracını kullanarak sınıf yapısını otomatik olarak oluşturtur. Araç mükemmel olmasa da, Tim sınıfı Pascal biçimlendirme ve boş geçilebilir dizeler kullanarak C# standartlarına uyacak şekilde düzenler.
Veri Türlerini Ayarlama ve JSON Eşlemesi
Tim oluşturulan özellikleri manuel olarak gözden geçirir, fiyatUSD gibi değerleri doğruluk için ondalık sayıya dönüştürür. Ayrıca JSON anahtarlarının doğru şekilde C# özelliklerine eşlemesini sağlamak için özellik adlarının büyük/küçük harfe duyarsız olması için bir JsonSerializerOptions nesnesi yapılandırır.
Bir Razor Sayfası Oluşturma ve Bağlantı Kurma
Ardından, Courses.razor adında bir Razor bileşeni ekleyerek onu /courses URL'si aracılığıyla erişilebilir bir sayfa haline getirir. Bir List<CourseModel> başlatır ve örnek API'yi çağırmak için bir HttpClient ekler. Bileşenin mantığı, veri kullanılabilirliğine dayalı olarak koşullu UI render ve try-catch ile hata yönetimini içerir.
Kurs Bilgilerini Görüntüleme
Temel HTML ve Razor sözdizimini kullanarak, Tim kurs listesi üzerinden döngü yapar ve her kurs görüntüsünü tıklanabilir bir bağlantı olarak gösterir. Yerleşimi kontrol etmek ve erişilebilirlik için alt özellikleri atamak üzere yerleşik stiller uygular.
Program.cs İçinde HTTP İstemcisi Kaydetme
Tim, Blazor uygulamasının Program.cs içerisinde HTTP istemcisini yapılandırır, onu builder.Services.AddScoped(...) kullanarak kaydeder ve temel adres olarak https://thesampleapi.com atar. Bu kaydın, Blazor'un hibrit render modelini desteklemek için hem istemci hem de sunucu yapılandırmalarında gerçekleşmesi gerektiğini açıklar.
Çifte API Çağrısı Sorununu Düzeltme
Blazor'un varsayılan ön rendere davranışı nedeniyle, sayfa yüklenirken iki API çağrısı yapar. Tim, @rendermode InteractiveAuto ve pre-render=false ayarını yaparak ön renderlemeyi devre dışı bırakır, bu da uzaktan veri işlerken yinelenen API isteklerini önler ve performansı artırır.
Vites Değiştirmek: Bir Windows Forms Uygulaması Oluşturma
Visual Studio ortamını kullanarak Tim, .NET Framework'ü hedefleyen WinFormDemo adlı yeni bir Windows Forms App oluşturur. Varsayılan form adını Courses olarak değiştirip, UI'yi daha okunabilir hale getirmek için Özellikler Penceresi üzerinden yazı tipi boyutunu değiştirir.
Solution Explorer ile Projeyi Düzenleme
Tim, iki klasör ekler: Modeller ve Hizmetler. Hizmetler'de, bir HttpClient örneği ile statik HttpService sınıfı oluşturur. Bu istemciyi, aynı API temel URL'sini hedef alacak şekilde yapılandırır. Tim, basitlik için statik bir yaklaşım kullanır, ancak üretim sınıfı geliştirme için bağımlılık enjeksiyonunu tavsiye eder.
Toolbox Kontrolleri ile Form UI Tasarımı
Windows Forms Tasarımcısı'nda, Tim bir PictureBox ve iki Düğme kontrolünü ("Önceki" ve "Sonraki") forma sürükler. Görüntü kutusunun SizeMode ayarını Yakınlaştır olarak ayarlayarak, kurs resimlerinin kontrolün içine düzgünce oturmasını sağlar. Ayrıca, form başlığını "DevForge Kursları" olarak yeniden adlandırarak şirket markalarını yansıtır.
Kod-Arkası Mantığını Uygulama
Form_Load olayı (Özellikler Penceresi'nde çift tıklayarak tetiklenir) kullanarak Tim, API'den veri almak için asenkron mantığı yazar. Ayrıca görüntü görüntüleme ve sınır geçerlilik kontrolünü gerçekleştiren yardımcı bir LoadCourse(int index) yöntemini tanımlar. Bu yöntem sağlamdır, null liste ve aralık dışı indeksleri zarif bir şekilde ele alır.
Düğmelerle Kurslarda Gezinme
Tim "Önceki" ve "Sonraki" düğmelerine çift tıklayarak etkinlik işleyicilerini (object sender, EventArgs e) oluşturarak bağlar. Her düğme geçerliCourse indeksini ayarlar ve görüntülenen resmi güncellemek için LoadCourse() çağrısı yapar. Bu, bir slayt gösterisi gibi bir sorunsuz kullanıcı deneyimi sağlar.
Yerel Gelişime Docker Kullanarak Geçiş
Tim, uzak API yerine yerel bir Docker konteynırını nasıl kullanılacağını gösterir. En son görüntüyü çeker, rastgele bir portta çalıştırır ve HttpService.cs içindeki temel URI'yi günceller. İşlevselliği onayladıktan sonra, başarısızlık yönetimini test etmek için Docker konteynırını durdurup, kurtarmayı doğrulamak için yeniden başlatır.
Son Düşünceler ve Pratik Uygulamalar
Tim, Windows masaüstü uygulamaları veya Blazor ön uçlarını oluşturmada bir örnek API'nin ne kadar kullanışlı olabileceğini vurgulayarak sonuca varır. Güvenilir bir veri kaynağı ile, geliştiriciler arka uç kurulumuyla boğuşmadan grafik kullanıcı arayüzü tasarımında, form kontrollerinde, olaylarda ve düzen araçlarında ustalaşmaya odaklanabilirler.
Sonuç
Tim Corey'nin detaylı video öğreticisini takip ederek, geliştiriciler Blazor ve Windows Forms programlama konularında uygulamalı deneyim kazanır. Visual Studio ve bir test API kullanarak, modern kullanıcı arabirimleri oluşturmayı ve onları canlı veri kaynaklarına bağlamayı öğrenirler; bu da bu öğreticiyi .NET ekosistemini keşfeden geliştiriciler için değerli bir kaynak yapar.
İster formen programlamada yeni olun, ister Windows uygulamaları oluşturma becerilerinizi geliştirmek isteyin, bu kılavuz, geliştirmeye yönelik pratik, güncel bilgi ve en iyi uygulamaları içerir.

