Meraklı bir bilgisayar programcısının notları.
Merhaba! Ben Burak Selim Şenyurt - yazılım geliştirici, blogger ve öğrenme tutkunu.
Bu blogda yazılım mühendisliği, sistem tasarımı, programlama dilleri ve yeni teknolojiler üzerine yazılar paylaşıyorum. Özellikle .NET, Rust, Zig, yapay zeka araçları ve mimari konularına ilgi duyuyorum. Kendimi sürekli geliştirmeye ve yeni şeyler öğrenmeye adıyorum.
-
Tek Fotoluk İpucu-31(Hashing)
Hiç bir zaman kullanıcılarımıza ait şifreleri açık formatta saklamamamız gerekir. En basit anlamda söz konusu verileri Hash’leyerek tutmak en doğrusudur. Bu anlamda.Net tarafında kullanımı son derece basit olan Hash algoritma tipleri mevcuttur. Nasıl kullanıldığını merak ediyor musunuz?
-
Tek Fotoluk İpucu-30 (Entity Sorgusundan Excel Dosyasına)
.Net Framework 4.0’ ın getirdiği pek çok yenilik sayesinde Office gibi API’leri kullanmamız çok daha fazla kolaylaştı. Örneğin bir Entity sorgusunun sonucunu Excel dosyasına aktarmak için daha basit kodlamalar yapabiliyoruz. Nasıl mı?
-
Eager Loading, Lazy Loading, Explicit Loading
Şöyle basit tek bir Main metodu içerisinde, Entity Framework’teki Loading çeşitlerini görmek ister miydiniz?
-
Tek Fotoluk İpucu-29 (Ne Kadar TextBox Varsa)
Kaliteli kod yazmak için aslında biraz titiz düşünmek gerekir. Söz gelimi bir Windows programlamada bir Container kontrol içerisindeki tüm TextBox’ların içeriğini temizlemek istediğiniz bir durumda nasıl kodlama yaparsınız? İşin içerisine Recursive metod formatını katabilirsiniz. Hatta bunu bir Extension Method haline de getirebilirsiniz. Nasıl mı?
-
Tek Fotoluk İpucu-28(Bir Klasörün Yaklaşık Toplam Boyutunu Bulmak)
Bir klasörün tüm içeriğinin toplam boyutunu öğrenmek isteyebiliriz. Bunun için DirectoryInfo tipine bir ExtensionMethod eklersek de güzel olur. Hatta bu metodun alt klasörleri de gezebilmesi için Recursive olarak yazılması da gerekir. Nasıl mı?
-
Tek Fotoluk İpucu-27(FileInfo Bilgisinin Tamamını İndirmek)
FileInfo tipi yardımıyla bir dosyanın pek çok özelliğine erişebiliriz bildiğiniz üzere. Peki tüm bu bilgileri tek bir String içerisinde toplamak ister misiniz? Söz gelimi loglamalarda bu oldukça işe yarayabilir. Hatta bunu bir Extension method olarak da yazabiliriz. Nasıl mı?
-
Tek Fotoluk İpucu-26 (Runtime Method Çağrımı)
Sanırım bir önceki tek fotoluk ipucunda çalışma zamanındaki bir nesne özelliğinin değerinin nasıl alınabileceğini görmüştük. Elbette reflection konulu işlerde bir nesne örneğinin bir metodunun çağırılması da söz konusu olabilir. Nasıl mı?
-
Tek Fotoluk İpucu-25 (Runtime Value ve Extension Method)
Özellikle Reflection kullandığımız bazı çalışma zamanı senaryolarında, nesnelerin özellik değerlerini elde etmek istediğimiz durumlar da söz konusu olabilir. Çok basit bir senaryo göz önüne alındığında bunun için bir Extension method dahi geliştirebiliriz. Nasıl mı?
-
Tek Fotoluk İpucu-24(DataContractJsonSerializer ve Extension Method)
Extension metodlar çok ama çok işimize yarayabiliyor. Örneğin serileştirilebilir herhangibir tipin Json formatındaki çıktısının string tipinden döndüren bir extension metodu geliştirebilirsiniz. Nasıl mı?
-
Tek Fotoluk İpucu-23 (BinaryFormatter, DataSet, Extension Methods)
Bu kez elimde bir DataSet, Binary serileştirme için BinaryFormatter ve tabiki Extension Method kabiliyeti var. Ne yapabiliriz? Belki de bir DataSet’in Binary formatta Serialize, DeSerialize işlemlerini üstlenen genişletme metodlarını yazabiliriz. Ben Serialize kısmını yazdım. Gerisi size kalmış
-
Tek Fotoluk İpucu-22 (GetCommandLineArgs)
Zaman zaman komut satırından çalışan Console uygulamaları geliştiririz ve bu programlar genellikle komut satırı parametreleri alarak çalışırlar. Çoğunlukla Main metodunun string[] tipinden parametresini kullanırız. Peki Environment tipinin de komut satırı argümanlarını alabilmemiz için bir metod sunduğunu biliyor muydunuz?
-
Tek Fotoluk İpucu-21(FileInfo,GZipStream ve Extension)
Elimde FileInfo, GZipStream tipleri ve Extension Method kabiliyeti var. Sizce ne yapılabilir? Yoksa FileInfo tipinde Compress ve DeCompress işlemleri için birer Extension Method’mu yazılabilir?
-
Tek Fotoluk İpucu-20 (Except Sorgusu)
Hemen hepimiz LINQ sorgularını kullanıyoruz (Tabi aramızda halen.Net 2.0 ve altı ile çalışan zavallılar da yok değil
-
Tek Fotoluk İpucu-19 (StringBuilder deyip geçme)
String tipleri çok garip tiplerdir. Onları + operatörü ile birleştirmek bazen akıl karı değildir. Çok fazla performans kaybettirir. Bir de uzlaşma yoluna gidebileceğini StringBuilder var. Örneğin
-
Tek Fotoluk İpucu-18 (5 Parametreden Fazlası için Struct)
Çok sevgili Juval Löwy der ki: “Bir metod 5den fazla parametre alıyorsa, verileri Struct tipini kullanarak aktarın”. Meşhur kod standartlarından birisi olan bu kurala kaçımız ne kadar uyuyoruz acaba? Oysaki kullanımı çok basit. İşte basit bir örnek
-
Tek Fotoluk İpucu-17 (Query ile Daha Şık Kodlama)
LINQ sorgularını sadece sorgulamak için kullandığımızı da nereden çıkartıyorsunuz. Aslında onları kodlarımızı daha şık hale getirmek için de kullanabiliriz? Nasıl mı? İşte küçük bir örnek
-
Tek Fotoluk İpucu-16 (Dynamic Var)
LINQ tarafında isimsiz tipleri (Anonymous Types) oldukça sık kullanmaktayız. Ancak isimsiz tiplerin metodlara parametre olarak geçirilemediğini de biliyoruz
-
Tek Fotoluk İpucu - 15(Self Hosted Workflow Service)
Elinizde bir Workflow Service kütüphanesi ve XAMLX uzantılı Workflow Service dosyaları var. Bu dosyalardan yararlanarak kendi Workflow Service Host uygulamanızı yazmak niyetindesiniz. Diyelim ki bu uygulama bir Console projesi olacak. Nasıl yaparsınız? İşte böyle
-
Tek Fotoluk İpucu–14 (Compiled Query)
Entity Framework ile Compiled Query’ler hazırlayabileceğinizi ve daha performanslı sorgulamalar yaptırabileceğinizi biliyor muydunuz? İşte basit bir örnek
-
Tek Fotoluk İpucu-13(XmlSerializer ile Daha Fazla Kontrol)
Bazen SOAP Bazlı WCF servisimizdeki veri türlerinin,.Net tabanlı olmayan platformlarda yer alan istemci veya servislerle daha kolay anlaşabilmesini sağlamak isteyebiliriz. Özellikle bu noktada XmlSerializer işimizi kolaylaştırabilir. Nasıl mı?