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 […]
Ç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 […]
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 […]
C# OOP Terminolojisi
Erişim Değiştirici (Access Modifier) : Bir tipe veya tipin üyelerine erişimi sınırlayan private, protected, internal, public gibi kelimelerdir. Erişilebilir Üye (Accessible Member) : Verilen tip tarafından ulaşılabilen üyedir. Bir tip ile erişilebilen bir üye başka bir üye tarafından erişilebilir olmayabilir. Erişimci (Accessor) : Bir özellik (Property) ile ilişkilendirilmiş Özel (private) veri alanı (data field) üyenin […]
Enum ile liste numaralandırma
Uygulama geliştirirken bazı durumlara karşılık gelen rakam değerleri uygulama içinde kullanmak isteriz. Bazen de belirli rakam değerlere karşı gelen bir listemiz olabilir. Enum kelimesi C# içinde bu senaryoları gerçekleştirmemize olanak sağlar. Enum kelimesi enumerasyon tanımlamak için kullanılır. Enumerasyon, enumarasyon listesi olarak adlandırılan ve isimlendirilmiş sabitlerden oluşan ayrı tiptir. Enum Tanımlamak 1 enum durumlar 2 { 3 beklemede, […]
Web uygulamasında temaların uygulanma sırası
Web uygulamanızda temalar kullandığınızda, kontroller için öznitelikler (attributes): @page direktifinde standart veya stylesheet tema olarak, Web.config dosyasında standart veya stylesheet tema olarak ya da kontrolün kendi özelliklerinde tanımlanabilir. ASP.NET içinde tema uygulama öncelik sırası şöyledir: 1- '@Page' direktifinde yeralan Theme özniteliği (attribute) 2- Web.config dosyasında yeralan <pages theme="temaAdi"> elemanı 3- Yerel kontrol öznitelikleri 4- '@Page' […]
Master Page, içerik sayfasıyla birleştirilirken gerçekleşen olaylar
Olaylara tepki verirken ana ve içerik sayfalarında olayların gerçekleşme sırası belirleyici olmaktadır. Aşağıdaki listede ana sayfa, içerik sayfasıyla birleştirildiğinde gerçekleşen olayların sırası gösterlimektedir. Listede kontrollerin olaylarının da gerçekleşme sırası görülebilir. Master page kontrolleri Init event. Content page kontrolleri Init event. Master page Init event. Content page Init event. Content page Load event. Master page Load […]