Oluşturduğumuz web kontrollerinin ihtiyaç duyduğu script, stil dosyası, imajlar gibi dosyaları assembly içine gömerek kontrol ile birlikte kolayca dağıtılmasını sağlayabiliriz. Bu durum dağıtım avantajının yanında bant genişliği ile ilgili bir dezavantajı beraberinde getirmektedir. Web kaynağı olarak assembly içine gömdüğümüz her dosya sunucuya yapılan her istekte tekrar tekrar sunucudan yüklenecek ve gereksiz yere bant genişliğini işgal […]
Kendi Sunucu Kontrollerimizi Oluşturmak
Bazı durumlarda kendine has HTML kodları üreten kontrollere ihtiyaç duyabiliriz. Bunun için mevcut kontrollerden veya mevcut kontrollerin miras yoluyla türetildiği webcontrol (System.Web.UI.WebControls.WebControl) sınıfından kendi kontrollerimiz türetme yoluna gidebiliriz. Bu işleme başlamak için öncelikle bir sınıf kütüphanesi projesine ihtiyacımız var. Bu projemizin adı "MyControl" olsun. Sonraki adımda kontrolümüzün adını taşımasını istediğimiz bir sınıf dosyasını projemize eklememiz […]
F#` a Giriş
F# (f şarp okunur), .NET Framework için tiplendirilmiş işlevsel programlama dilidir. F#, yüksek kaliteli, iyi desteklenen modern bir runtime sistemi üzerinde çalışmanın tüm avantajları ile tip güvenliği, başarım ve betik yazımının (scripting) çok arzu edilen bileşimini sağlar. Bu anlamda F#, betik/işlevsel/emreden/nesne yönelimli programlama dilidir. Bir çok pratik bilimsel, mühendislik ve web tabanlı programlama görevleri için […]
Çok Biçimlilik (Polymorphism)
Miras (Inheritance) kavramının iki önemli boyutu vardır. Bunlardan birincisi kodun tekrar kullanımıdır. Bir sınıftan türetilen bir sınıf oluşturduğunuzda taban sınıfın mantığının bir kısmını kullanabilirsiniz… Mirasın ikinci önemli boyutu ise çok biçimliliktir. Çok biçimlilik bir tipin birden fazla formunun olması demektir. Böylece tipin detaylarına bakmadan birden fazla biçiminin kullanılabilmesidir. Konuyu açmamız gerekirse şu klasik bir örnek verilebilir. […]
Erişim Değiştiricileri (Access Modifiers) anlamak
Erişim değiştiricilerin amacını anlamak kelime anlamlarından fazlasını anlamayı gerektirir… public: olarak işaretlenen sınıf üyesine diğer sınıfların üye metodları erişebilir. private: olarak işaretlenen sınıf üyesi sadece üyesi olduğu sınıf üye metodlarına görünür. protected: olarak işaretlenen sınıfı üyesinin görünürlüğü üyesi olduğu sınıftan türetilmiş sınıfların üye metodlarına genişletilir. Klavyeleriniz şen ola…
Volatile Anahtar Kelimesi
Volatile anahtar kelimesi ile bir alanın peş peşe çalışan iş parçacıkları (thread) tarafından değiştirilebileceği belirtilir. Volatile tanımlanan alanlar, sadece tek bir iş parçacığının eriştiğini kabul eden derleyici iyileştirmelerinden (compiler optimizations) hariç tutulurlar. Volatile kelimesi çoklu iş parçacıkları tarafından lock ifadesi kullanılmadan erişilecek alanlara erişimi serileştirmek, sıraya sokmak (serialize) için kullanılır… 1 using System; 2 using System.Collections.Generic; 3 using […]
Dizi Yeniden Boyutlandırma
Dizileri boyutlarını dinamik olarak değiştirek bir metod yoktur. Ama aşağıdakine benzer bir metod ile bu ihtiyacınızı karşılayabilirsiniz. Mantık basit. Yeni boyutta bir dizi oluştur, eski dizi içeriğini buraya aktar… Basit bir konsol uygulamasında örnek vermek gerekirse. 1 public static System.Array ResizeArray(System.Array oldArray, int newSize) 2 { 3 int oldSize = oldArray.Length; 4 System.Type elementType = oldArray.GetType().GetElementType(); 5 […]
FOR ve FOREACH Döngülerinin Kullanımı
Belirli bir sayıda tekrarlanan bir işlemi gerçekleştirmek döngülere başvurmamız gerekir. Örneğin bir DataTable içinde yer alan kayıtlar üzerinde bir işlem yürütmek istediğinizde FOR döngüsü ile bu amacınıza ulaşabilirsiniz. FOR döngüsünde önemli olan döngünün kaç kez tekrarlanacağını belirtmektir. Bu döngü kurarak üzerinde işlem yapmak istediğiniz dizinin ya da koleksiyonun eleman sayını bilmek gerekecektir. 1 DataTable dt = […]
Kodunuzu Anlaşılır kılma ve yazacağınız bilgi satırları ile Yardım dosyası oluşturma
Kodunuzu daha okunaklı kılmak için öncelike yapmanız gereken kod bloklarınızdan önce /// (üç bölü) yazmanız ve visual studio 2005 editörünün sizin için oluşturacağı bölümleri doldurmak. /// <summary> /// Bu sınıf Kişi verisi ve bu veri üzerinde yapılacak işlemleri içerir. /// </summary> Böylece ilgili kodunuz (class, method, vb.) kullanırken Visual Studio 2005 Editörü geliştirmeyi yapan kişiye […]
XAML Dosyası ve Nesneleri
Extensible Application Markup Language – XAML (zamıl) dosyaları XML dosyalarıdır. Temel olarak “Canvas” nesnesi ve bu nesne içine yerleştirilmiş diğer kanvas, şekil, imaj, medya gibi nesnelerden ibarettir. Text tabanlı olduğundan herhangi bir metin editörü (notepad vs.) ile değişiklik yapabilirsiniz. Yazmak zor geliyorsa bir Microsoft Expression Blend veya benzeri bir uygulama ile XAML dosyalarınızı oluşturabilir, değiştirebilirsiniz. […]