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]
Regex ve Performans İpuçları – Otomatik Cache 06 Ağustos 2010 Burak-Selim-Senyurt C# Aslında Regular Expression terimini ağırlıklı olarak Asp.Net Web uygulamalarından tanımaktayız. Bu anlamda özellikle RegularExpressionValidator web kontrolünden yararlanarak, girilen verinin doğrulanması için bazı desenleri kullanabiliyoruz. [Daha fazla]
LINQ Sorgusu mu? ForEach mi? Bir Türlü Karar Veremedim 27 Mayıs 2010 Burak-Selim-Senyurt C#, LINQ Bilim Kurgu fanatiklerinin kafasında her zaman hayranı oldukları filmlerden kesitler, sahneler kalır. Matrix filmini izleyenler eminimki Neo' ya uzatılan kırmızı ve mavi hap serenatını gayet iyi hatırlayacaktır. Morpheus haplardan birisinde Alice Harikalar Diyarının kapılarını ardına kadar açabileceğini ifade ederken, diğer hapı yuttuğunda, Neo' nun yatağında hiç bir şey olmamış gibi uyanacağını ve tüm bunların bir hayalden ibaret olduğunu düşüneceğini belirtir. Tabi Neo amacına ulaşmak için zaten hangi hapı içmesi gerektiğini biliyordur ki son bölümde aslında gerçekten hapı yutmaktadır [Daha fazla]
Değişken Atamalarında Bir Efsane 12 Nisan 2010 Burak-Selim-Senyurt C# Bu kod parçasında double tipinden olan x, y ve z değişkenlerine tek satırda Pi değerinin atanması söz konusudur. Bu son derece doğaldır nitekim eşitliğin sağından başlayan bir atama sırası mevcuttur. Hatta buna göre aşağıdaki ifade de doğrudur. [Daha fazla]
Object vs Dynamic 31 Mart 2010 Burak-Selim-Senyurt C#, C# 3.0, C# 4.0 Ayrıntılar detaylarda saklıdır. Bu cümleyi çok severim. Sevdiğim özlü sözler arasındadır. Gerçel bir nesnenin ne kadar kaliteli olduğunu anlamak için detaylarına bakmak gerekir. İşçiliğine, kullanılan malzemeye, malzemelerin uyumuna vs...Hatta benzer diğerleri ile olan kalite farkını anlamak için bile. Çok doğal olarak yazılım dünyasında da bir takım konuların anlaşılabilmesi, kavranabilmesi, benzerleri ile olan farklarının irdelenebilmesi için mutlaka detaylara bakmak, ama sıkılmadan bakmak gerekir. Aynen bu günkü yazımızda yapacağımız gibi. [Daha fazla]
.Net 4.0 Öncesi ThreadPool Kullanımı 23 Aralık 2009 Burak-Selim-Senyurt C# ThreadPool; arka planda belli bir işi yapmak üzere planlanmış görevlerin Thread' lere bölünmesi ve bu Thread' lerin bir koleksiyon şeklinde tutularak asenkron işleyişlerinin yönetilmesi amacıyla kullanılan sarmalayıcı(Wrapper) bir tip olarak düşünülebilir. Genellikle sunucu tabanlı uygulamalarda değerlendirildiği gözlemlenmektedir... [Daha fazla]
Mesaj Sözleşmeleri(Message Contracts) 09 Şubat 2008 Burak-Selim-Senyurt C# Değerli Okurlarım Merhabalar, Servis tabanlı uygulamalarda en önemli noktalardan biriside aradaki bilgi transferlerinin nasıl ve ne şekilde gerçekleştirildiğidir. Gerçek şuki, bu bilgi transferinin oluşma şekli çoğu zaman geliştiricinin gözünden kaçan yada çok fazla ilgilenmediği ... [Daha fazla]
Using İfadesi ile Garanti Dispose 28 Ekim 2007 Burak-Selim-Senyurt C# Bellek yönetimi özellikle büyük çaplı projelerde performans kazanımı açısından çok önemlidir. Günümüz sistemlerinin yüksek Ram kapasitesine sahip oldukları göz önüne alındığında bu durum çoğu zaman göz ardı edilmektedir. Ancak sayısız kullanıcının bağlandığı sunucu(server) sistemleri üzerinde çalışan windows veya web servisleri gibi uygulamalar göz önüne alındığında bellek sorunları ile her zaman için karşılaşılma olasılığı vardır. [Daha fazla]
C# Temelleri - Olayları(Events) Kavramak 06 Haziran 2007 Burak-Selim-Senyurt C# Olaylar (Events), görsel uygulamalar ile uğraşan her geliştirici tarafından bilinçli veya bilinçsiz bir şekilde kullanılmaktadır. Nesne yönelimli programlama ortamında olayları tanımlamak için klasik olarak verilen bir örnek vardır. [Daha fazla]
C# Temelleri : Nitelikleri(Attributes) Kavramak 11 Nisan 2007 Burak-Selim-Senyurt C# Nitelik(Attribute) eninde sonunda her dotNet programcısının kullandığı ve karşılaştığı bir kavramdır. Özellikle yansıma (Reflection) konusu ile birlikte anıldığından, .Net Framework içerisinde önemli bir yere sahiptir. [Daha fazla]
Bağlantısız Katmanda LINQ 02 Nisan 2007 Burak-Selim-Senyurt C# Language Integrated Query (Dil ile tümleştirilmiş sorgu) yardımıyla yapabileceklerimiz saymakla bitmiyor. Aslında LINQ projesinin en önemli çıkış nedeni, Anders Hejslberg' ın anlatımıyla veri ve nesne eşitsizliğidir. (data!=objects) [Daha fazla]
WPF, Xaml, Baml ve Dahası 21 Mart 2007 Burak-Selim-Senyurt C# Windows Presentation Foundation (WPF), windows tabanlı uygulama geliştirme modeline yeni ve çok farklı bir soluk getirmiştir. Daha çok web uygulama geliştirme sistematiğini andıran bu yeni model, .Net Framework 2.0 ile birlikte yapabildiklerimizi tek bir çatı altında toplamıştır. Hatırlayacağınız üzere, benzer bir yaklaşım modelinin Windows Communication Foundation (WCF) içerisinde de yer aldığından daha önceki makalelerimizde bahsetmiştik. Öncelikle bu noktaya nasıl gelindiğini vurgulamakta fayda var. [Daha fazla]
.Net Tarafında Xml ile Oynamak-2 08 Mart 2007 Burak-Selim-Senyurt C# Yıllar önce odamdaki bilgisayarımda arkadaşlarımın telefon ve doğum günü bilgilerini C tabanlı bir programda kütük dosyasına kaydetmeye çalışmıştım. O günlerde sadece bulunduğum oda içerisindeki alanla sınırlıyken, bir süre sonra internet ortamına taşınıvermiştik. [Daha fazla]
.Net Tarafında Xml ile Oynamak-1 28 Şubat 2007 Burak-Selim-Senyurt C# Bu makalemiz ile birlikte Xml mimarisini yönetimli kod(managed code) tarafından ele almaya çalışacak ve konuları örnek senaryolar üzerinden geliştireceğiz. Bildiğiniz gibi Xml(eXtensible Markup Language) çok yaygın olarak kullanılan, platformlar arası veri taşıma standartlarından birisidir. [Daha fazla]
Kullanıcı Web Kontrollerini Daha Etkin Kullanmak 21 Kasım 2006 Burak-Selim-Senyurt C# Kullanıcı web kontrolleri (web user control) kendi içlerinde birden fazla kontrolü barındırabilen komposit tipteki görsel bileşenlerdir. Asp.Net 1.0/1.1 den veri var olan kullanıcı web kontrollerini çoğunlukla, birden fazla sayfada kullandığımız durumlarda (hatta aynı sayfada bir çok yerde aynı kontrol kümelerini kullanmak istediğimizde) düşünür ve geliştiririz... [Daha fazla]
C# Temelleri : Enum Sabitinin Bilinmeyen Yönleri 30 Ekim 2006 Burak-Selim-Senyurt C# Enum sabitleri geliştirici dostu tipler olarak düşünülebilir. Çoğu zaman uygulamalarımız içerisinde yer alan algoritmaların bazı durumlara göre farklı şekillerde hareket etmesi beklenir. Bu hareket serbestliğini sağlamanın kolay yollarından birisi, koşulların doğru şekilde tespitinden sonra, uygun bir biçimde ele alınabilmesidir... [Daha fazla]