Tek Fotoluk İpucu-26 (Runtime Method Çağrımı) 19 Ağustos 2011 Burak-Selim-Senyurt C#, Tek Fotoluk Ipucu Merhaba Arkadaşlar, 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. N... [Daha fazla]
Tek Fotoluk İpucu-25 (Runtime Value ve Extension Method) 18 Ağustos 2011 Burak-Selim-Senyurt C#, Tek Fotoluk Ipucu Merhaba Arkadaşlar, Ö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 m... [Daha fazla]
Tek Fotoluk İpucu-24(DataContractJsonSerializer ve Extension Method) 14 Ağustos 2011 Burak-Selim-Senyurt C#, Tek Fotoluk Ipucu Merhaba Arkadaşlar, 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ı? JsonExtensions.rar (23,64 kb)
Tek Fotoluk İpucu-23 (BinaryFormatter, DataSet, Extension Methods) 05 Ağustos 2011 Burak-Selim-Senyurt C#, Tek Fotoluk Ipucu Merhaba Arkadaşlar, 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ı... [Daha fazla]
Tek Fotoluk İpucu-22 (GetCommandLineArgs) 01 Ağustos 2011 Burak-Selim-Senyurt C#, Tek Fotoluk Ipucu Merhaba Arkadaşlar, 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ı ar... [Daha fazla]
Tek Fotoluk İpucu-21(FileInfo,GZipStream ve Extension) 20 Temmuz 2011 Burak-Selim-Senyurt C#, Tek Fotoluk Ipucu Merhaba Arkadaşlar, 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? Ben Compress' I yazdım. Kalanı da size ait olsun GZipExtension.rar (24,4... [Daha fazla]
Tek Fotoluk İpucu-20 (Except Sorgusu) 19 Temmuz 2011 Burak-Selim-Senyurt C#, LINQ, Tek Fotoluk Ipucu Merhaba Arkadaşlar, 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 ) Lakin LINQ içerisinde çok enteresan extension method' lar olduğunu da biliyor muyuz? Örneğin, şehir bazındaki müşteri listesini ... [Daha fazla]
Tek Fotoluk İpucu-19 (StringBuilder deyip geçme) 18 Temmuz 2011 Burak-Selim-Senyurt C#, Tek Fotoluk Ipucu Merhaba Arkadaşlar, 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 StringPerformance.rar (22,11 kb)
Tek Fotoluk İpucu-18 (5 Parametreden Fazlası için Struct) 13 Temmuz 2011 Burak-Selim-Senyurt C#, Tek Fotoluk Ipucu Merhaba Arkadaşlar, Ç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 örne... [Daha fazla]
Tek Fotoluk İpucu-17 (Query ile Daha Şık Kodlama) 12 Temmuz 2011 Burak-Selim-Senyurt C#, C# 3.0, C# 4.0, Tek Fotoluk Ipucu Merhaba Arkadaşlar, 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 ShortCodes.rar (22,69 kb)
Tek Fotoluk İpucu-16 (Dynamic Var) 11 Temmuz 2011 Burak-Selim-Senyurt C#, C# 3.0, C# 4.0, Tek Fotoluk Ipucu Merhaba Arkadaşlar, LINQ tarafında isimsiz tipleri(Anonymous Types) oldukça sık kullanmaktayız. Ancak isimsiz tiplerin metodlara parametre olarak geçirilemediğini de biliyoruz Çünkü bu tipler derleyici tarafından üretiliyorlar. Ama üzülmeyin. Ç&... [Daha fazla]
Tek Fotoluk İpucu - 7 (Windows Liste Bazlı Kontrolleri ve ToString Metodu) 27 Haziran 2011 Burak-Selim-Senyurt C#, Tek Fotoluk Ipucu Merhaba Arkadaşlar, WinForms programcılığında sık rastlanan sorunlardan birisi de, kendi özel tiplerimizi liste bazlı kontrollere bağladığımız durumlarda ortaya çıkmaktadır. Acaba liste bazlı kontrolün içeriğini kendimiz nasıl belirleyebiliriz? SmartToString.rar (36,38 k... [Daha fazla]
Tek Fotoluk İpucu - 6 (Fluent Exception Handling) 24 Haziran 2011 Burak-Selim-Senyurt C#, Tek Fotoluk Ipucu Merhaba Arkadaşlar, Bazen iç içe çağrılarda bulunan metod zincirlerinde herhangibir seviyede meydana gelen Exception durumunu, en üst noktada yakalamak isteriz. Bu durumda balon köpüğü misali bir aşağıdan yukarı yükselen bir mekanizmayı kullanabiliriz. ... [Daha fazla]
Tek Fotoluk İpucu - 5 (Rastgele Sıralı Generic List Koleksiyonu) 24 Haziran 2011 Burak-Selim-Senyurt C#, C# 3.0, C# 4.0, Tek Fotoluk Ipucu Merhaba Arkadaşlar, Elinizde List tipinden bir koleksiyon var ve içerisindeki nesnelerden rastgele sırada yeni bir liste kullanmak istiyorsunuz. Ne yaparsınız? İşte cevabı RandomList.rar (22,53 kb)
Tek Fotoluk İpucu - 2 (StackTrace ve Çalışma Zamanı Metod Bilgisi) 22 Haziran 2011 Burak-Selim-Senyurt C#, C# 3.0, C# 4.0, Tek Fotoluk Ipucu Merhaba Arkadaşlar, Hani olurda çalışma zamanında(Runtime) o anda yürütülmekte olan metodun bilgilerine kolayca ulaşmak istersiniz. Özellikle loglama sistemlerinde. İşte bu durumda StackTrace tipinden yararlanabilirsiniz. Nasıl mı? Aşağıdaki fotoğrafta(ya da Ercan Hocamız... [Daha fazla]
Netspecter Takipte - Object Initializer Deyip Geçmemek Lazım 14 Nisan 2011 Burak-Selim-Senyurt C#, C# 3.0 C# 3.0 ile birlikte gelen önemli yeniliklerden birisi de Object Initializers kullanımı idi. Bu kullanım sayesinde özellikle LINQ(Language Integrated Query) sorgularında Anonymous Type üretiminin mümkün hale gelmesi de sağlanmaktaydı. Dolayısıyla her zaman ifade ettiğimiz gibi bu yenilik, başka bir yeniliğin yapılabilmesi için getirilmiş bir yenilikti. [Daha fazla]
Netspecter Abstract Class Peşinde 07 Nisan 2011 Burak-Selim-Senyurt C# Netspecter bu kez bir abstract sınıfın peşinde. Sizin içinde eğlenceli bir deneyim olacağına inandığım enteresan bir vakayı analiz etmeye çalışıyor olacağız. Çoğunlukla kod geliştirirken pek fark etmediğimiz bir hata ama hemen çözüm üretebiliyorz. Lakin bu çözümü üretirken istediğimizin dışında bir sonuca da neden olabiliyoruz. Dilerseniz hiç vakit kaybetmeden konumuza geçelim. İlk olarak aşağıdaki kod içeriğini göz önüne alarak başlamamızda yarar olacağı kanısındayım. [Daha fazla]
Fluent Interface Nedir? 27 Mart 2011 Burak-Selim-Senyurt C# Bu günkü yazımızda ilk olarak Martin Fowler ve Eric Evans tarafından tanımlanan Fluent Interface konusunu irdelemeye çalışıyor olacağız. Aslında kelime anlamlarından yola çıkarsak okunabilir, açık, net arayüz tiplerinden bahsettiğimizi düşünebiliriz. Ancak bu şekilde söz konusu kavrama biraz haksızlık etmiş oluruz. Fluent Interface esas itibariyle daha okunabilir kodlama açısından önem arz eden ve uygulanması sırasında metod zincirlerinden yararlananan bir yaklaşım sunmaktadır. Şimdi ne demek istediğimizi ben de ifade edemedim aslında Confused smile Gelin basit bir örnek ile konuyu didiklemeye başlayalım.Bu amaçla aşağıdaki kod içeriğini göz önüne alabiliriz. [Daha fazla]
Daha iyi Kodlama için Basit Öneriler 17 Mart 2011 Burak-Selim-Senyurt C# Aslında daha okunaklı, daha efektif ve zaman zaman daha verimli kod üretmek için bir kaç küçük noktaya dikkat etmekte yarar olabilir. Bu sayede sanıyorum ki kodlarımız en azından daha şık duracaktır Wink Gelin bu bir kaç küçük püf noktadan bir kaçına hep birlikte bakalım. [Daha fazla]
Regex ve Performans İpuçları – Interpreted ve Compiled Farkı, Bir de Sürpriz 03 Mart 2011 Burak-Selim-Senyurt C# İnce ayarlar çekilmiş bir yazılım, zaman zaman çok hızlı sonuçlar verebilir. Hatırlayacağınız üzere Regex ve Performans İpuçları – Otomatik Cache başlıklı bir önceki yazımızda son derece sıcak bir gecede, Regex tipinin performanslı kullanımına ilişkin ilk ip ucunu aktarmış ve sonuçlarını incelemeye çalışmıştık. Regex kullanımında dikkat çeken noktalardan bir diğeri de(bir başka deyişle yapılabilecek ince ayarlardan bir diğeri de) yorumlanarak(Interpret) veya önceden derlenerek(Compiled) çalıştırılabilen ifadeler ile ilişkilidir. [Daha fazla]
Bana Bir Struct Yaz. Yok Yok Bana Bir Class Yaz. 28 Şubat 2011 Burak-Selim-Senyurt C# Bu yazımızda, Struct(Yapı) ile Class(Sınıf) tipleri arasındaki temel farklılıkları irdelemeye çalışıyor olacağız. Ancak benzerlikleri de yakalamaya gayret edeceğiz. (Hemen şunu hatırlatalım; .Net Framework, 5 temel veri tipi tanımlar. Bunlar Class, Struct, Enum, Interface ve Delegate tipleridir) Özellikle Struct tipinin kullanımına ilişkin örnekler geliştireceğiz. [Daha fazla]
Yıllar Sonra Yeniden Enum Sabitleri 20 Şubat 2011 Burak-Selim-Senyurt C# İşte bu yazımızda Enum sabitlerinin başımıza dert olabileceği bir kaç vakayı ele almaya çalışıyor olacağız. Öyleyse hızlı bir başlangıç yapalım ve aşağıdaki kod parçasını göz önüne alalım. [Daha fazla]
Temeller Kolay Unutulur (C# – Implicitly Name Hiding Sorunsalı) 06 Şubat 2011 Burak-Selim-Senyurt C# Özellikle C#, Java gibi nesne yönelimli(Object Oriented) programlama dillerinin temelleri son derece önemlidir ve bu temeller bir süre sonra profesyonel bir geliştirici için artık bisiklet sürmek gibi unutlmayacak unsurlara dönüşmelidir. İşte bu yazımızda kolayca unutulabilen bilinçsiz üye gizleme(Implicitly Name Hiding) ile alakalı bir vakayı ele almaya çalışıyor olacağız. [Daha fazla]
Struct, Class ve Default Constructors - İnanmak İstiyorum 27 Eylül 2010 Burak-Selim-Senyurt C# Konumuz C# programlama dilinin temelleri arasında sayılmaktadır. Class ve Struct tiplerinde Default Constructor(Varsayılan Yapıcı Metod) kullanımı. Bildiğiniz üzere .Net Framework Base Class Library üzerinde tiplere en üst seviyeden baktığımızda değer(Value) ve referans(Reference) türleri olarak ikiye ayırmaktayız. [Daha fazla]
Diamond Problem, C# ve Multiple Inheritance 15 Eylül 2010 Burak-Selim-Senyurt C# Olaya C++ tarafından baktığımızda, Diamond Problem adı verilen bir sorunsalın, böyle bir yasağa neden olduğunu da ifade edebiliriz. Peki Diamond Problemi nedir? Dilerseniz öncelikle bu vakayı ele almaya çalışarak işe başlayalım. [Daha fazla]