Compact Framework Üzerinde RDA ile Senkronizasyon 24 Ocak 2006 Burak-Selim-Senyurt C# Mobil uygulamalarda veri senkronizasyonu son derece önemlidir. Örneğin bir kurye firmasının dağıtım elemanını göz önüne alalım. Mobil cihaz ile donatılmış olan bu personelin görevi, kendisine verilen teslimat bilgilerine göre, sipariş sahiplerine ürünlerini teslim etmektir... [Daha fazla]
Generic Mimaride Kısıtlamaların(Costraints) Kullanımı 31 Aralık 2005 Burak-Selim-Senyurt C# Bu makalemizde .Net 2.0 ile birlikte gelen Generic mimarisinin uygulanışında, kısıtlamaların rolünü basit örnekler ile incelemeye çalışacağız. Generic mimari her ne kadar tür bağımsız algoritmaların geliştirilmesine izin versede, bazı durumlarda çeşitli zorlamaların uygulanmasınıda gerektirir. Örneğin generic olması planlanan tiplerin sadece referans tipleri ile çalışmasını isteyebiliriz. Generic bir tipe her hangibir zorunluluk kuralını uygulayabilmek için where anahtar sözcüğünü içeren bir ek ifade kullanılır. Bu ifadeler 5 adettir ve aşağıdaki tabloda gösterilmektedir. [Daha fazla]
C# 2.0 ile Generic Delegates 21 Kasım 2005 Burak-Selim-Senyurt C# Bu makalemizde generic temsilcilerin (generic delegates) ne olduğunu ve nasıl kullanılabildiğini incelemeye çalışacağız. .Net 2.0 ile gelen en önemli yenelik generic mimarisidir. Generic mimarisi, tür bağımsız algoritmalar kurmamıza imkan sağlayan gelişmiş bir yapıdır. .Net 2.0' da sınıfları (class), yapıları (struct), arayüzleri (interface), metodları (method), koleksiyonları (collection) ve temsilcileri (delegate) generic olarak oluşturabilir ve kullanabiliriz. [Daha fazla]
Kendi Referans Tiplerimizi Klonlamak 14 Kasım 2005 Burak-Selim-Senyurt C# Bu makalemizde kendi yazmış olduğumuz referans tipleri arasında yapılan atama işlemleri sırasında üyeden üyeye (Member by member) kopyalamanın nasıl yapılabileceğini incelemeye çalışacağız. Bildiğiniz gibi referans tipleri belleğin heap bellek bölgesinde tutulurlar. [Daha fazla]
Constructor Initializers (Yapıcı Metod Başlatıcıları) Deyip Geçmeyin 03 Ekim 2005 Burak-Selim-Senyurt C# Yapıcı metodlar nesne yönelimli programlamada çok büyük öneme sahiptir. Uygulamada oluşturduğumuz her bir nesnenin en az bir yapıcı metodu (ki bu varsayılan yapıcı metodtur) vardır. Kuşkusuz ki yapıcı metodlar (constructors), bir nesne örneğinin kapsüllediği verilere başlangıç değerlerinin atanabileceği en elverişli elemanlardır. [Daha fazla]
Boxing ve Unboxing Performans Kritiği 26 Eylül 2005 Burak-Selim-Senyurt C# Bundan yaklaşık olarak iki sene önce boxing ve unboxing kavramları ile ilgili bir makale (30.12.2003) yazmıştım. Aradan uzun süre geçti. Ancak boxing ve unboxing kavramları ile ilgili olarak halen daha dikkat edilmesi gereken hususlar var. [Daha fazla]
CallBack Tekniği ile Asenkron Metod Yürütmek 09 Eylül 2005 Burak-Selim-Senyurt C# Çoğu zaman projelerimizde, çalışmakta olan uygulamaları uzun süreli olarak duraksatacak işlevlere yer veririz. Özellikle görsel tabanlı uygulamalarda veritabanlarına ait kapsamlı sorguların yer aldığı işlemlerde bu sorunla sıkça karşılaşılmaktadır. En büyük problem var sayılan olarak kod satırlarının senkron hareket etmesidir... [Daha fazla]
Numaralandırıcıları Kullanmak İçin Bir Sebep 28 Ağustos 2005 Burak-Selim-Senyurt C# Bildiğiniz gibi numaralandırıcılar (enum sabitleride diyebiliriz) yardımıyla sayısal değerleri kod içerisinde daha anlamlı isimlendirmelerle ifade edebiliriz. Uygulama geliştirirken çoğunlukla framework' ün parçası olan pek çok enum sabitini kullanmaktayız. [Daha fazla]
SortedList ve Hashtable İçin 2 Basit Öneri 06 Ağustos 2005 Burak-Selim-Senyurt C# SortedList ve Hashtable koleksiyonları, anahtar-değer (key-value) çiftlerini esas alır. Hashtable koleksiyonu özellikle sahip olduğu elemanlar ile ilgili işlemlerde kullandığı hash algoritmalı teknik sayesinde en hızlı çalışan koleksiyon olma özelliğinide gösterir. Diğer yandan SortedList anahtar-değer çiftlerinin, anahtar değerine göre her zaman sıralandığı bir koleksiyon tipidir. [Daha fazla]
Tip Güvenli (Type Safety ) Koleksiyonlar Oluşturmak - 2 31 Temmuz 2005 Burak-Selim-Senyurt C# Bir önceki makalemizde tip güvenli koleksiyon nesnelerimizi CollectionBase sınıfı yardımıyla nasıl oluşturabileceğimizi incelemiştik. CollectionBase bize ArrayList benzeri koleksiyon sınıflarını yazma fırsatı vermektedir. Diğer yandan Hashtable koleksiyonunda olduğu gibi key (anahtar) - value (değer) çiftlerinden oluşacak tip güvenli bir koleksiyon sınıfı yazmak isteyebiliriz. [Daha fazla]
Tip Güvenli (Type Safety ) Koleksiyonlar Oluşturmak - 1 23 Temmuz 2005 Burak-Selim-Senyurt C# Tip güvenliğini sağlamak her zaman için önemli unsurlardan birisidir. Koleksiyon tabanlı nesneleri kullanırken çoğu zaman istediğimiz tip güvenliğini sağlayamayabiliriz. Buradaki en büyük etken, koleksiyon tabanlı nesnelerin object tipinden referanslar taşıyor olmasıdır. [Daha fazla]
Dizilere(Arrays) İlişkin Üç Basit Öneri 14 Temmuz 2005 Burak-Selim-Senyurt C# Hepimiz dizileri (Arrays) bilir ve kullanırız. Her ne kadar günümüzde koleksiyonlar, xml kaynakları ve tablo yapıları veri saklamak amacıyla daha çok kullanılıyor olsalar da, dizilerdende yoğun şekilde yararlanmaktayız. Örneğin kendi tasarladığımız bir sınıfa ait nesneler topluluğunu pekala bir dizi şeklinde ifade edebilir hatta serileştirebiliriz (serializable). [Daha fazla]
C# 2.0 İçin İterasyon Yenilikleri 05 Temmuz 2005 Burak-Selim-Senyurt C# Bazen kendi yazmış olduğumuz tiplerin dizi bazlı elemanları olur. Uygulamalarımızda, bu elemanlar arasında, elamanların sahipi olan nesne örneği üzerinden ileri yönlü iterasyonlar kurmak isteyebiliriz. Foreach döngüleri belirtilen tip için bu iterasyonu sağlayan bir mekanizmaya sahiptir. [Daha fazla]
C# 2.0 Covariance ve Contravariance Delegates 30 Haziran 2005 Burak-Selim-Senyurt C# Bildiğiniz gibi temsilciler (delegates) çalışma zamanında metodların başlangıç adreslerini işaret eden tiplerdir. Bu tipleri uygulamalarımızda tanımlarken çalışma zamanında işaret edebilecekleri metodların geri dönüş tipi ve parametrik yapılarını bildirecek şekilde oluştururuz. [Daha fazla]
C# 2.0 ile Partial Types (Kısmi Tipler) 27 Haziran 2005 Burak-Selim-Senyurt C# Visual Studio.Net ile windows veya web uygulamaları geliştirirken, kod yazılması sırasında karşılaştığımız güçlüklerden birisi, tasarım kodları ile kendi yazmış olduklarımızın iç içe geçmeleridir. Bu zamanla kodun okunabilirliğini zorlaştıran bir etmendir. [Daha fazla]
C# 2.0 ve Nullable Değer Tipleri 22 Haziran 2005 Burak-Selim-Senyurt C# C# programlama dilinde bildiğiniz gibi veri türlerini Referans Türleri(Reference Types) ve Değer Türleri (Value Types) olmak üzere iki kısma ayırıyoruz. Bu iki tür arasında bellek üzerinde fiziki tutuluş şekillerinden tutunda birbirleri arasındaki atamalara kadar pek çok farklılık vardır. [Daha fazla]
C# 2.0 ve Static Sınıflar 20 Haziran 2005 Burak-Selim-Senyurt C# Çoğu zaman uygulamalarımızda, nesne örneğinin oluşturulmasına gerek duymayacağımız üyeleri kullanmak isteriz. Bu amaçla static üyeleri kullanırız. Şimdi bir de sadece static üyelerden oluşacak bir sınıf tasarlamak istediğimizi düşünelim. [Daha fazla]
C# 2.0 ve Anonymous (İsimsiz) Metodlar 16 Haziran 2005 Burak-Selim-Senyurt C# İsimsiz metodlar bildiğiniz gibi C# 2.0' a eklenmiş olan yeni özelliklerden birisidir. Temeli C# dilinin temsilci tipine dayanan bu yeni teknikte amaç, temsilcileri işaret edecekleri metodların sahip oldukları kod blokları ile bir seferde tanımlayabilmektir. [Daha fazla]
Operator Overloading (Operatörlerin Aşırı Yüklenmesi) 03 Haziran 2005 Burak-Selim-Senyurt C# Hepimiz uygulamalarımızda sıklıkla operatörleri kullanmaktayız. Matematiksel işlemlerde, koşullu ifadelerde,tip dönüştürme işlemlerinde vb...Ancak onların kendi yazdığımız sınıflar için özel anlamlar ifade edecek şekilde yüklenmesi ile pek az uğraşmaktayız. [Daha fazla]
Kendi İstina Nesnelerimizi Kullanmak (ApplicationException) 23 Mayıs 2005 Burak-Selim-Senyurt C# İstisna yakalama mekanizması (Exception Handling) dotNet mimarisinde oldukça önemli bir yere sahiptir. Bu mekanizma sayesinde uygulamalarımızın kilitlenmesi ve istem dışı bir şekilde sonlandırılmaya zorlanmasının önüne geçmiş oluruz. [Daha fazla]
RijndaelManaged Vasıtasıyla Encryption(Şifreleme) ve Decryption(Deşifre) 23 Şubat 2005 Burak-Selim-Senyurt C# Bu makalemizde, Rijndael Algoritmasını kullanan Managed tiplerden RijndaelManaged sınıfı ile şifreleme (encryption) ve deşifre etme (decryption) işlemelerinin nasıl gerçekleştirilebileceğini incelemeye çalışacağız. [Daha fazla]
Oyun Programlamaya Giriş (Matrisler Yardımıyla Çarpışma Kontrolü) 04 Aralık 2004 Burak-Selim-Senyurt C# Değerli Okurlarım Merhabalar,Hafta sonu evde bilgisayarım başında internette gezinirken, tarihi oyu [Daha fazla]
Oyun Programlamaya Giriş (Çarpışma Teknikleri - 3) 19 Kasım 2004 Burak-Selim-Senyurt C# Değerli Okurlarım Merhabalar,Geçtiğimiz hafta boyunca, Oyun Programcılığı ile ilgili olarakt [Daha fazla]
Oyun Programlamaya Giriş (Çarpışma Teknikleri - 2) 12 Kasım 2004 Burak-Selim-Senyurt C# Hatırlayacağınız gibi bir önceki makalemizde, Oyun Programcılığına girmek adına çarpışma tekniklerini incelemeye başlamış ve dörtgenlerin çarpışmalarını ele almıştık. Bugünkü makalemizde ise, dairesel şekillerin birbirleri ile olan çarpışmalarını incelemeye çalışacağız. [Daha fazla]
Oyun Programlamaya Giriş (Çarpışma Teknikleri - 1) 06 Kasım 2004 Burak-Selim-Senyurt C# Değerli Okurlarım Merhabalar,Yaklaşık bir ay kadar önce evde dinlenirken, şu ana kadar yaptığı [Daha fazla]