Earn More by Sharing What You Love
Do you create content for developers working with .NET, C#, Java, Python, or Node.js? Turn your expertise into extra income!

Tim Corey
19m 06s
Bu derste Tim Corey, bir C# sınıf kütüphanesi oluşturma sürecini, planlamadan gerçek koda kadar olan pratik süreci bize kılavuzluk eder. Tim, planlamanın önemli olduğunu vurgular, ama planlama bittiğinde, inşa etmeye başlamanın zamanı geldiğini söyler.
Bu makalede, Tim'in yaklaşımını ve nedenlerini adım adım takip ederek bir sınıf kütüphanesinin nasıl oluşturulduğunu, organize edildiğini ve Visual Studio'da belgelendiğini anlayacağız.
Tim, bir süredir planlama modunda kaldıklarını, ama artık kodlamaya hazır olduklarını belirterek başlar. Visual Studio'yu açar ve "Yeni bir proje oluştur" seçeneğini seçer, ardından "Sınıf Kütüphanesi" seçeneğini seçer. Tim, kütüphaneye TrackerLibrary adını verir ve çözüm adını TournamentTracker olarak ayarlar.
Tim'in yeni kütüphanedeki ilk eylemi, varsayılan Class1.cs dosyasını silmek ve proje içinde varsayılan veya kötü adlandırılmış dosyalar istemediğini açıklamaktır. Yeniden adlandırmanın sorunlara yol açabileceğini söylediği için, tamamen kaldırarak ileride sorun yaşamamak için.
Tim, planlamanın en büyük faydasının, kodlamaya hazır olduğunuzda hangi verilere ihtiyacınız olduğuna bakmadan, planladığınız tasarımı doğrudan koda aktarmaktır. Bunun yerine, yalnızca planlanan tasarımı gerçek koda aktarıyorsunuz.
Bu noktada, hangi verilere ihtiyaç duyulduğunu düşünmüyorsunuz, aksine adları, yapıları doğruluyor ve eksik bir şey olup olmadığını kontrol ediyorsunuz. Bu yüzden planlamanın kodlama sürecini önemli ölçüde hızlandırdığını söylüyor.
Tim ilk sınıfı ekler: TeamModel. Sadece Team olarak adlandırabileceğini, ancak bunu bir veri modeli olarak belirgin bir şekilde tanımlamak için sonuna Model eklemeyi tercih ettiğini açıklar.
Visual Studio'nun prop kısa yolunu kullanarak hızlıca özellikler oluşturur. Tim aşağıdaki özellikleri oluşturur:
List<PersonModel> TakımÜyeleri
string TakımAdı
Tim ayrıca önemli bir noktayı açıklar: TeamMembers'in otomatik olarak başlatılmasını istiyor, böylece hiçbir zaman boş olmayacaktır. İki yaklaşımı gösterir:
C# 6.0 öncesinde: Listeyi yapılandırıcının içinde başlatın.
C# 6.0'dan itibaren: Özellikte doğrudan başlatın:
public List<PersonModel> TakımÜyeleri { get; set; } = new List<PersonModel>();
Tim modern yaklaşımı tercih ediyor çünkü bu kodu basitleştiriyor.
Sonra Tim PersonModel'i oluşturur. Prop kısa yolunu kullanarak hızla özellikler ekler:
string Ad
string Soyad
string E-postaAdresi
string CepTelefonuNumarası
Tim, planlamanın zaten yapıldığı zaman modelleri ne kadar hızlı inşa edebileceğinizi gösterir. Ayrıca kodun artık doğrudan planlama belgesine dayandığını hatırlatır.
Tim TournamentModel'i ekler, içine şunlar dahildir:
string TurnuvaAdı
decimal KatılımÜcreti
List<TeamModel> KatılanTakımlar
List<PrizeModel> Ödüller
List<List<MatchupModel>> Turlar
C#'ın List<List<MatchupModel>> gibi karmaşık liste yapıları anladığını ve yeni kullanılırken türü otomatik doldurduğunu vurgular.
Tim PrizeModel'i aşağıdaki özelliklerle ekler:
int SıraNumarası
string SıraAdı
decimal ÖdülMiktarı
double ÖdülYüzdesi
Bu değerlerin şimdilik varsayılan değerlere bırakıldığını ve gerektiğinde sonra değiştirilebileceğini not eder.
Tim MatchupModel'i aşağıdakileri içeren şekilde ekler:
List<MatchupEntryModel> Entries
TeamModel Kazanan
int EşleşmeTuru
Daha önce yaptığı gibi, Entries listesinin otomatik olarak başlatılmasını sağlar.
Daha sonra Tim MatchupEntryModel'i ekler, içine şunlar dahildir:
TeamModel YarışanTakım
double Puan
MatchupModel ÜstEşleşme
Tim, bu modellerin sınıf kütüphanesinin temelini tamamladığını vurgular.
Tim, bir kez planlama tamamlandığında sınıf kütüphanesini oluşturmanın çok basit hale geldiğini söylüyor. Kütüphanenin yapısının, tüm tasarım çalışmasının zaten tamamlandığı için basit olduğunu vurgular.
En büyük faydasının, kodlamanın hızlı ve temiz hale gelmesi olduğunu hatırlatır.
Tim, son adımın kodun özellikle XML yorumları kullanılarak belgelenmesi gerektiğini belirtiyor. Yorum yapmanın sıkıcı olduğunu kabul ediyor ama şimdi yapmazsanız, muhtemelen daha sonra yapmayacağınız konusunda uyarıda bulunuyor.
Bir özelliğin üstüne üç eğik çizgi (///) yazarak XML yorumlarının nasıl oluşturulacağını gösterir. Tim şu gibi açıklamalar yazmayı gösterir:
"Eşleşmede bir takımı temsil eder"
"Bu belirli takımın skorunu temsil eder"
"Bu takımın kazanan olarak geldiği eşleşmeyi temsil eder"
Tim XML yorumlarının sadece formatlanmış yorumlar olmadığını, aynı zamanda kod belgelendirmesinin bir parçası haline gelip diğer geliştiricilerin sınıflarınızı anlamalarına yardımcı olduğunu açıklar.
Tim, XML yorumlarının IntelliSense ile nasıl çalıştığını gösterir. Bir yapılandırıcı oluşturur ve parametre için XML yorumları ekler, böylece yorumların IntelliSense'de otomatik olarak göründüğünü gösterir.
Visual Studio'nun yerleşik Console.WriteLine() açıklamasıyla bunun karşılaştırmasını yapar, bu açıklama Microsoft'un kendi XML belgelendirmesinden gelir. Tim, XML yorumları kullanarak kendi sınıf kitaplığınızda aynı açıklık ve kullanılabilirliği sağlayabileceğinizi açıklar.
Tim izleyicileri kalan modeller için XML yorumları eklemeye teşvik eder, tam süreci tekrar etmeyeceğini çünkü tekrarlayıcı olduğunu söyler.
Bir sonraki dersi öngörerek bitirir: formlar oluşturmak. Tim, form planlama sırasında tasarlanan formların basit eskizler olduğunu ve şimdi daha modern ve işlevsel görünmelerinin zamanı geldiğini belirtiyor.
Tim Corey'nin dersi, bir C# sınıf kütüphanesinin, planlamanın koda çevrilmesiyle yaratıldığını gösterir. Adımlar şunlardır:
Sınıf kütüphane projesi oluşturun
Planlamaya dayalı modeller ekleyin
Null olmadan listeleri başlatın
Kodu XML yorumlarıyla belgeleyin
Sonra form inşa etmeye hazırlanın
Tim'in yöntemini takip ederek, temiz ve iyi yapılandırılmış bir sınıf kütüphanesi verimli ve profesyonel bir şekilde inşa edebilir, uygulamanızın geri kalanını desteklemeye hazır hale getirebilirsiniz.
Do you create content for developers working with .NET, C#, Java, Python, or Node.js? Turn your expertise into extra income!
Join our newsletter, you’ll get exclusive access on article updates. We value your privacy