Altbilgi içeriğine atla
Iron Academy Logo
C# Uygulaması
C# Uygulaması

Diğer Kategoriler

C# Uygulama Geliştirme: Tim Corey’nin “Takım Formu Yaratma Bölüm 2” (Ders 13) Üzerinden Derinlemesine Bakış

Tim Corey
46m 06s

Bu makalede, Tim Corey'nin "C# App Start to Finish" serisindeki 13. Dersini takip ederek C# uygulama geliştirmeyi daha derinlemesine inceleyeceğiz. Tim, Windows Forms uygulaması oluşturma sürecini, özellikle de kombinasyon kutuları, liste kutuları ve düğmeler gibi UI kontrollerini veriye nasıl bağlayacağımızı gösterir. Bu ders, gerçek dünya C# uygulamalarını oluşturmak için gerekli beceriler olan veri bağlama, liste yönetimi, Dapper kullanarak veritabanı bağlantısı ve temel doğrulama ve hata ayıklama gibi önemli kavramları gösterir.

Takım Formunu Oluşturmaya Devam Etmek

Tim, "Yeni Üye Ekle" bölümünün bağlandığı bir önceki videonun devamı olduğunu hatırlatarak başlar. Bu derste, Tim esas amacın açılır liste (kombinasyon kutusu) ve liste kutusunu bağlamak ve ardından yeni oluşturulan kişi nesnesini listede görünmesi için bağlamak olduğunu açıklar. Tim, planı net bir şekilde belirler: bu ders, UI bağlama, veri hareketi ve liste senkronizasyonu—C# masaüstü uygulaması oluşturmanın temel yönleri—üzerinde odaklanacaktır.

Açılır Liste ve Liste Kutusu Verilerini Anlamak

Tim, kombinasyon kutusu ve liste kutusunun arkasında, bir Kişi nesneleri listesi olacağını açıklar. Bu, Windows Forms'ta klasik bir veri bağlama örneğidir; burada UI unsurları veri modelleri koleksiyonlarına bağlanır.

Sınıf düzeyinde iki özel liste oluşturur:

  • availableTeamMembers – takıma eklenebilecek kişiler

  • selectedTeamMembers – takıma zaten eklenmiş kişiler

Tim, beklenen davranışı netleştirir: bir kişi açılır listeden seçilip eklendiğinde, availableTeamMembers'tan selectedTeamMembers'a geçmelidir. Bu masaüstü uygulama geliştirmede standart bir CRUD işlem modeli olup, UI'nizin altında yatan verileri yansıtması gerekir.

Tim Neden Takım Üyelerini Turnuvalarla Sınırlamıyor?

Tim, sıkça sorulan bir tasarım sorusuna yanıt verir: "Takım üyelerini turnuvaya göre sınırlandırmamak mümkün mü?" Tim, Takım Oluştur formunun doğrudan bir turnuvaya bağlı olmadığını ve birden fazla turnuvanın aynı anda çalışabileceğini açıklar.

Tim pratik bir örnek verir: Hem bir basketbol turnuvası hem de bir masa tenisi turnuvası varsa, bir kişi her iki etkinliğe de katılabilir. Açılır menüyü sınırlamak karmaşık bir mantık gerektirir ve hatalara neden olabilir. Bunun yerine, Tim daha basit bir yaklaşımı tercih eder:

  • Bir kişi bir takıma eklendikten sonra açılır menüden kaldırın.

Bu yaklaşım, gereksiz yere karmaşıklaştırmaktan kaçınmanın pratik bir yazılım tasarım kararı olduğunu gösterir.

WireUpLists Yöntemini Oluşturma

Tim, listeleri UI kontrollerine bağlamak için WireUpLists adlı bir yöntem oluşturur. Bu yöntem, availableTeamMembers listesini kombinasyon kutusuna ve selectedTeamMembers listesini liste kutusuna bağlar.

Tim, önemli bir iyileşmeyi vurgular: modern Windows Forms'ta listeleri ayrı bir BindingSource kullanmadan doğrudan kontrollere bağlayabilirsiniz. Bu, Windows Forms veri bağlaması üzerinde çalışan geliştiriciler için yararlı bir ipucudur.

Full Name ile DisplayMember Ekleme

Tim, kombinasyon kutusunun okunabilir bir ad göstermesi gerektiğini açıklar. DisplayMember özelliği, Person modelinden bir dize özelliği bekler. Tim, yalnızca FirstName veya LastName kullanmanın yinelemelere neden olabileceği uyarısında bulunur.

Bu yüzden Tim, FullName adlı salt okunur bir özellik oluşturur:

public string FullName
{
    get
    {
        return "{FirstName} {LastName}";
    }
}

Bu, kullanıcı dostu bilgileri gösterdiğinizden emin olunması gerektiği ve ham nesne verilerini göstermemeniz gerektiğine dair önemli bir UI uygulamasını demonstre eder.

Test için Örnek Veri Oluşturma

Tim, listeleri ve kullanıcı arayüzünü test etmek için CreateSampleData adlı bir yöntem oluşturur. Her iki listeye de örnek Kişi nesneleri ekler ve yapıcıda WireUpLists'i çağırır.

Bu, gerçek bir veritabanına bağlanmadan önce Windows Forms uygulamaları oluşturmak ve hızlıca test etmek için kullanışlı bir tekniktir.

Örnek Veriyi Gerçek Veri ile Değiştirme

Tim, örnek veriyi yoruma alır ve gerçek veriyi yüklemeye hazırlanır. IDataConnection arayüzüne GetPerson_All adlı bir yöntem ekler. Tim, adlandırma düzenini açıklar:

  • Oluştur = ekle

  • Getir = seç

Bu, C# uygulamalarında veri erişim katmanları için standart bir adlandırma stratejisidir.

SQL Veri Çekme İşlemlerini Dapper Kullanarak Uygulama

Tim, Dapper ve bir saklı yordam kullanarak GetPerson_All'ın SQL sürümünü uygular:

bağlantı.Query<KişiModeli>("spPeople_GetAll").ToList();

Tim, hata ayıklamayı kolaylaştırmak için doğrudan dönüş yerine bir çıktı değişkeni kullanmayı kasıtlı olarak seçer. Bu, hata ayıklama uygulamalarının kod tasarımını nasıl etkileyebileceğini gösterir.

Tekrarlanan Kodları Sabitlerle Temizleme

Tim, tekrarlanan bağlantı dizesi adlarını fark eder ve bunları bir sabit haline getirir. Tekrarlamanın kötü bir uygulama olduğunu ve daha sonra hatalara neden olabileceğini açıklar.

Bu, yazılım mühendisliğinde önemli bir ilkedir: DRY (Don't Repeat Yourself - Kendi Kendini Tekrarlama).

Açılır Menüye Gerçek Verileri Yükleme

Tim, LoadListData() oluşturur ve GetPerson_All() kullanarak availableTeamMembers'ı doldurur. selectedTeamMembers listesi boş kalır, çünkü yeni bir takım boş başlar.

Bu, kullanıcı arayüzünü ister veritabanı ister metin dosyası gibi gerçek veri kaynaklarına nasıl bağlayacağınızı gösterir.

Üye Ekleme Düğmesini Bağlamak

Tim, Üye Ekle düğmesi olay işleyicisini oluşturur. Mantık şöyledir:

  1. Açılır listeden seçilen kişiyi al

  2. Onları mevcut listeden kaldır

  3. Onları seçilen listeye ekle

  4. Kullanıcı arayüzünü yenile

Tim, seçilen öğenin PersonModel olarak yazılması gerektiğini, çünkü kombinasyon kutusunun nesneleri obje olarak depoladığını açıklar. Bu, C#'ta tür yazma ve nesne işlemenin önemini vurgular.

Yenileme Sorunu Hata Ayıklama

Tim, öğeleri taşıdıktan sonra kullanıcı arabiriminin yenilenmediğini keşfeder. Yapılan hata ayıklamadan sonra çözümü bulur:

  • DataSource'u null olarak ayarlayın

  • Ardından listeyi yeniden atayın

Bu, kombinasyon kutusu ve liste kutusunu yenilemeye zorlar. Tim, hata ayıklama becerilerinin önemli olduğunu ve genellikle veri bağlamanın nasıl davrandığını anlamak için gerekli olduğunu vurgular.

Seçilen Öğeyi Kaldırma Düğmesini Bağlama

Tim, düğmeyi Seçilen Öğeyi Kaldır olarak yeniden adlandırır ve olay işleyicisini oluşturur. Bu, ekleme işlemini tersine çevirir:

  • selectedTeamMembers'dan kaldır

  • availableTeamMembers'a geri ekle

  • UI'yi yenile

Tim, bir sorun keşfeder: hiçbir öğe seçilmezse, null değeri eklenir. Doğrulama ekler:

if (p != null)
{
    //devam et
}

Bu, temel doğrulama ve hata önlemenin nasıl yapılacağını gösterir.

Testin Önemi

Tim, kullanıcıların uygulamanızı kırmaya çalışıyormuş gibi test etmenin önemini vurgular. Gerçek kullanıcıların beklenmedik işlemler yapabileceğinden dolayı, kasıtlı olarak uygulamayı kırmaya çalışan test edicilere sahip olmayı önerir.

Bu, güvenilir yazılımlar geliştirmede önemli bir derstir.

"Üye Oluştur" Düğmesini Bağlama

Tim, "Üye Oluştur" düğmesini, veri deposuna yeni bir kişi kaydetmek ve hemen seçili listeye eklemek için değiştirir. Bu, Windows Forms uygulamasında CRUD işlemlerinin nasıl uygulanacağını gösterir.

Metin Dosyası için GetPerson_All Uygulama

Tim, GetPerson_All'ın metin dosyası versiyonunun eksik olduğunu fark eder. Basit bir satır kullanarak uygular:

return KişiDosyası.FullFilePath.LoadFile().ConvertToPersonModels();

Bu, karmaşık mantıklar olmadan dosya tabanlı depolamanın kolayca uygulanabileceğini gösterir.

Her Şeyin Çalıştığını Doğrulama

Tim, uygulamayı çalıştırır ve açılır listenin artık metin dosyasından ve veritabanından insanları yüklediğini doğrular. Yeni insanlar ekler ve bunların hemen görünmelerini görür, tam sistemin doğru çalıştığını gösterir.

Sırada Ne Var?

Tim, bir sonraki videoda takımın kendisinin oluşturulmasına odaklanılacağını belirterek sonuçlandırır. Bu, özelliği tamamlayarak birden fazla veri parçasını veritabanına veya metin dosyasına kaydetmeyi içerir.

Son Düşünceler

Tim Corey'nin 13. Dersi, C# Windows Forms uygulama geliştirmeye dair gerçek dünya örneğidir. UI kontrollerini ve veri bağlamasını bağlamaktan, hata ayıklama ve doğrulaçıya kadar, Tim gerçek masaüstü uygulamalar oluşturmak için pratik programlama becerilerini öğretir. Bu ders, veri bağlama, Dapper, SQL CRUD işlemleri ve C#'ta UI odaklı programlama öğrenmek isteyen geliştiriciler için özellikle değerlidir.

Öğrenmeye devam etmek istiyorsanız, Tim'in bir sonraki dersi takım oluşturma özelliğini tamamlayacak ve her şeyi çalışan bir uygulamaya bağlayacaktır.

Hero Worlddot related to C# Uygulama Geliştirme: Tim Corey’nin “Takım Formu Yaratma Bölüm 2” (Ders 13) Üzerin...
Hero Affiliate related to C# Uygulama Geliştirme: Tim Corey’nin “Takım Formu Yaratma Bölüm 2” (Ders 13) Üzeri...

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