.NET dilleriyle geliştirilmiş bir program sınıflardan oluşur. Sınıflar içinde de sınıf, yapı, numaralandırma, yordam gibi üyeler bulunur. İyi bir programcı, bu üyelerin kodlamasını önemsediği kadar üyelerle ilgili dokümantasyonu da önemsemelidir. Hem grup çalışmalarda bir başkasının sınıflar içindeki yapıların işlevini anlaması hem de geçmişe dönüp kodlarımızı incelediğimizde kod satırlarını daha rahat anlamak için kodlarımız arasına açıklamalar eklemeliyiz. Programlara hem tek satırlı hem de çok satırlı açıklamalar ekleyebiliriz. .NET dilleri dili açıklamalar için XML tabanlı belgelendirme formatı da sunar. Böylece hem standart bir biçim sağlanır hem de ihtiyaç duyulduğunda tüm açıklamalar XML olarak çıkarılarak msdn veya başka formatlarda etkili proje dokümantasyonu oluşturulabilir. Read the rest of this entry »
ADO.NET’in önemli üyesi olan DataTable nesnesi üzerinde arama yaparken distinct (tekilleştirme) veya top n (üstten belli sayıda satır seçme) işlemlerine ihtiyaç duyabiliriz. Bu işlemleri çoğu zaman VTYS üzerinde yapmak mantıklı görünse de özellikle bağlantısız katman işlemlerinde veritabanına gitmeksizin bu işlemleri yapmak işlemleri hızlandırır. Bu yazıda bununla ilgili basit bir örnek vereceğiz. Read the rest of this entry »
SQL Server üzerinde bir veritabanı oluşturduğumuzda veritabanının sahip olduğu data ve log dosyalarının başlangıç büyüklük değerlerini de belirleriz. Aynı zamanda veritabanının ileride büyüme ihtiyacı duyduğunda nasıl hangi oranda büyüyeceği de data ve log dosyası bazında belirtilir. Eğer veritabanı için maksimum bir büyüklük verilir ve bunu aşmaması işaretlenirse maksimum değerden daha fazla yere ihtiyaç duyması durumunda sistem hata verecektir. Bu yüzden veritabanlarının büyüklük ayarlarının sistemin amacına uygun düzenlenmesi gerekir. SQL Server özellikle büyük veritabanlarında index düzenlemeler, geniş çaplı güncellemeler, toplu kaydetme veya silme gibi yoğun disk işlemlerinde o veritabanını büyütme ihtiyacı duyar. Bu büyüme kalıcı veya geçici olabilir. Özellikle kalıcı durumlarda sistemin kullandığı geniş disk alanını serbest bırakmak veya veritabanı dosyalarında zamanla kullanılmayan data page’leri yok etmek için daraltma (shrinking) işlemi gerçekleştirilir. Read the rest of this entry »
.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. Read the rest of this entry »
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. Read the rest of this entry »
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! Read the rest of this entry »
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. Read the rest of this entry »
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. Read the rest of this entry »
.NET’te Serileştirme & Ters Serileştirme (Serialization & Deserialization)
C#, VB.NET, ASP.NET 3 Comments »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. Read the rest of this entry »
.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. Read the rest of this entry »



Recent Comments