.NET teknolojisi, COM nesnelerini yok saymayıp aksine onlarla bütünleşik bir çalışma ortamı sunar. Hem COM nesnelerinin .NET içinde kullanılmasına hem de .NET nesnelerinin COM içinde kullanılmasına destek verir. Birçok şeyi .NET nesneleriyle daha kolay ve hızlı yapabiliz ancak yeni projelerde bazı eski COM nesnelerimizi kullanmak zorunda kalabiliriz. Bu durumda nasıl bir etkileşim sözkonusu olacak. Bu yazıda .NET bileşenlerinin var olan COM bileşenlerini değiştirmeden onlarla nasıl iletişim kuracaklarını işleyeceğiz. Okumaya devam et
Yazar arşivleri: Ahmet Kaymaz
C# 3.0 Yenilikleri
C# 3.0 ile birlikte programlama dili tarafına bazı yenilikler eklendi. Bu yenilikleri incelendiğinde bunların daha çok LINQ teknolojisiyle ilişkili olduğunu ve onun sorgularını desteklemek amacıyla sunulduğu görülür. Bu yazıda .NET 3.0 ile birlikte gelmiş yenilikler incelenmektedir. Okumaya devam et
Bellek Yönetimi ve Çöp Toplama (Garbage Collection) – ÖZET
Program yazmada dikkat edilmesi gereken konulardan biri belleği en uygun şekilde kullanmaktır. Özellikle kurumsal uygulamalarda kullanılacak programların, kaynakları ekonomik ve ergonomik kullanması her zaman tercih nedeni olmuştur. Bir programcı başta bellek olmak üzere sistem kaynaklarını daima idareli kullanmalı ve meşgul ettiği alanı işi bittikten sonra serbest bırakmalıdır! Okumaya devam et
DataViewManager Nesnesi
DataSet içerisinde birden fazla tablo olduğu zaman her tablo için ayrı ayrı DataView nesneleri oluşturup tablo verilerini sorgulamak yerine tüm tablolar için ortak bir sorgulama hazırlamak daha mantıklı olacaktır. Bu işlem için DataSet nesnesinin DataViewManager türünde değer döndüren DefaultViewManager özelliği kullanılır. DataViewManager nesnesi, DataView nesnelerinin bulunduğu koleksiyon için tek bir sorgulama nesnesi oluşturur. Okumaya devam et
.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