Kategori arşivi: C#, VB.NET, ASP.NET

Asp.Net, C#, Vb.Net uygulama örnekleri, ipuçları, .Net Framework 1.1 – 2.0 – 3.0 – 3.5 – 4.0 ile ilgili notlar

.NET’te Single Sign-On (SSO)

Single Sign-On (SSO), aynı veya farklı domain altındaki, farklı subdomain altındaki web uygulamalarında sözkonusu olup her uygulama için yeniden giriş yapmak yerine tek bir yerden giriş yapıp tüm uygulamalara otomatik olarak logon olabilme özelliğidir. SSO, farklı uygulamalara aynı kullanıcı adı ve şifreyle girildiği için kullanıcılara zaman kazandırır. Microsoft’un passport (Windows Live ID) veya birçok firmanın destek verdiği OpenId veya Sun’ın Java Identity Manager projesi, farklı web uygulamalardaki servislere tek bir noktadan giriş yapılması için geliştirilmiştir. Örneğin MSN Messenger, MSN Hotmail, MSN Müzik gibi passport network sitelerindeki servislerden yaralanmak için Windows Live ID’ye erişmek yeterli olmaktadır. Aynı şekilde özellikle intranet uygulamalarında kullanıcı Active Directory(AD) üzerinden login olduktan sonra AD yetkisi altındaki diğer sistemlere yeniden güvenlik bilgilerini girmeksizin Bu yazıda .NET tabanlı web uygulamalarımızda sözü geçen servislere benzer bir özelliği nasıl kuracağımızı örneklendireceğiz. Okumaya devam et

.NET’te Serileştirme & Ters Serileştirme (Serialization & Deserialization)

Serialization(serileştirme), bir nesnenin o anki durumunu(içeriğini) belli bir formata dönüştürüp geçici veya kalıcı bir kaynak üzerinde depolama işlemidir. Bu kaynak bir disk olabildiği gibi hafıza veya network üzerindeki bir akım da olabilir. .NET Framewok’ün birçok sınıfında gizli olarak kullanılan bu işlem daha çok .NET Framework’ün en önemli bileşenlerinden olan Remoting mimarisinde etkilidir. Bu mimaride veriler, serileştirilerek farklı uygulamalar arasında taşınır. Serileştirilmiş veriyi geri elde etme yani orijinal nesne haline çevirme işlemini de deserialization(ters-serileştirme) denilir. Okumaya devam et

.NET’te Akımlar (.NET & Streams)

.NET Framework’te diğer başka platformlarda olduğu gibi I/O sistemi, akımlar üzerine kuruULdur. Akım(stream), byte düzeyinde bir girdi bilgisi oULşturan veya çıktı bilgisi elde eden mantıksal birimlerdir. Bu birimler I/O sistemi aracılığıyla dosya, network, ekran gibi fiziksel aygıta bağlanır. Örneğin disk üzerinde bilgi okuma/yazma, klavyeden bilgi alma ve ekrana bilgi yazdırma gibi işlemler için akım yöntemi kullanılır. Bilindiği gibi bu ortamlar, okuma veya yazma bakımından bellek kadar hızlı ve kullanışlı değildir. Bu yüzden bu ortamlara okuma/yazma işlemleri bir kere de değil parça parça(byte byte) işlenir. Örneğin internet’ten izlenilecek videoyu makinemiz bir kerede almaya hazır olmayabilir veya network alt yapısı bunu karşılamıyor olabilir. İşte bu tür durumlarda stream kavramı bir çözüm olarak ortaya çıkmıştır. Okumaya devam et

Delegeler ve Olaylar (Delegates and Events) – III

System.EventArgs Sınıfı
GUI kontrollerinde dikkat ettiyseniz kontrollerin çalıştırdığı metodlarda System.Object türünde sender ve System.EventArgs türünde e isimli iki tane parametre kullanılır. Bu format, önceki sayfada yazdığım gibi System.EventHandler isimli delegate’ten gelmektedir. Buradaki sender parametresi, eventi tetikleyen objeyi temsil eder. e parametresi ise o obje ile ilgili detayları bildirir. Bu parametreler, eventi üreten kontrolü öğrenmek ve ona ait ek özellikleri kullanmak için kolaylıklar sağlar. Örneğin mouse ile Form’a tıklandığında (MouseDown) mouse’in sağ mı yoksa sol mu tıklandığını e parametresinden anlarız. Okumaya devam et

Delegeler ve Olaylar (Delegates and Events) – II

Olaylar(Events)
Olaylar, mouse ile tıklama, klavyeden tuşa basma gibi kullanıcının işletim sistemi üzerinden gerçekleştirdiği faaliyetlerdir. Bu şekilde, uygulamamız içerisinde meydana gelen durum değişikliklerine karşı hassas olan ve bu değişiklikler doğrultusunda yönlendirilebilen programlama modeline olay güdümlü programlama (event driven programming) denir. Bu modeldeki programlar, bir şeyler yapmak için bazı şeylerin gerçekleşmesini beklerler. Bir bileşen üzerinde meydana gelen olayların takipçisi olup onları yakalayan mekanizmaya olay yöneticisi (event handler) denir. Olay tutucusu veya işleyicisi olarak ta tanımlanan event handler, ilgili olay gerçekleştiği zaman tetiklenir. Olay yöneticilerinin yönlendirilmesi bizim tarafımızda kodlanır, olay yöneticisinin olay gerçekleştikten sonra hangi işlemleri yapacağını delegatelerle tanımlarız. Yani olay yöneticileri, delegatelerle temsil edilir. Okumaya devam et

Delegeler ve Olaylar (Delegates and Events) – I

Değişkenler gibi metodlar da bellek üzerinde özel bir alanda yaşar. Değişken pointerleri gibi metodların başlangıç adresini işaret eden pointerler bulunur. Bunlara metod işaretçileri (function pointers) denilir. İstenirse metodlar, hafıza üzerinden sadece isimleriyle değil bu pointerler sayesinde de çağrılabilir. C veya C++’da bu yöntem yoğun olarak kullanılmaktaydı. .NET’in eskiden alışagelmiş unmanaged pointer desteği C# ile sınırlıdır. VB.NET, bu destekten yoksundur. Fakat desteklediği pointer yapısı CLS ile uyumlu olmadığı için tür güvenliği sunmaz. Bu yüzden .NET, fonksiyon işaretçileriyle aynı amaca sahip tür güvenliği sağlayan delege (delegate) isimli işaretçiler sunar. Okumaya devam et

Statik Sınıflar (Static Classes) C#

Önceki yazıda, bir sınıfın statik üyelerine erişmek için o sınıftan bir nesne oluşturmamıza gerek kalmadığını doğrudan sınıfın adını kullanarak erişebileceğimizi hatta bu üyelere, oluşturulmuş bir instance üzerinden erişilemeyeğini söylemiştik. İçerisinde sadece statik üye içeren bir sınıfı ele aldığımızda hiç bir zaman bu sınıftan türemiş bir nesneye ihtiyacımızın olmayacağını söyleyebiliriz ama bu durum, bu sınıftan instance oluşturamayacağımız anlamına gelmemektedir. Okumaya devam et

Statik Üyeler (Static Members) [ C# / VB.NET ]

.NET Framework’ta nesneler, statik(static) veya statik olmayan(non-static) üyelerden oluşur. Statik olmayan üyeler, class’tan türetilmiş nesnenin üyeleridir, sınıftan kaç nesne türetilmişse bu üyelerin o kadar kopyası bulunur, bir nesneye ait üyenin değerinin değişmesi, o üyenin diğer nesnelerdeki değerini etkilemez. Statik üyeler ise, doğrudan class’ın kendi üyeleri olup class’tan üretilen nesneden bağımsız hareket ederler. Tüm nesnelerin ulaşabileceği ortak bir bellek alanında tutulur. Bu nedenle statik üyelere erişmek için class’tan bir nesne oluşturmaya gerek yoktur. Bu da statik üyelerle işlem yapmayı hızlandırır. Bütün statik üyeler, değer veya referans türü olup olmamasına bakılmaksızın hafızanın heap alanı üzerinde depolanır. Bu heap alanına 8 byte’lık bir pointer işaret eder. Kaç tane instance’in yaratıldığı önemli olmayıp her zaman tek bir hafıza slotu varlık gösterir. Okumaya devam et

C# Yield Sözcüğü (Yield Keyword)

C# 2.0 ile birlikte gelmiş olup iterasyon işlemlerini daha kısa ifadelerle oluşturmayı sağlar. Foreach() metodu gibi IEnumerable türündeki bir metodun foreach yöntemiyle hangi değerleri döndüreceği, yield anahtar sözcüğüyle belirlenir. Böylece her iterasyon için farklı bir değer gönderme imkanına sahibiz. Yield sözcüğü, “return” veya “break” ifadesiyle birlikte kullanılır. “return” ifadesi, geriye değer döndürmesini, “break” ifadesi ise o adım için iterasyon yapmamasını sağlar. Okumaya devam et