1 Ağustos 2008 Cuma

namespace (isimalanı) nedir?

Namespace için, benzer amaçlara hizmet eden üyeleri içerisinde barındıran bir pakettir denilebilir. Class, Struct, Enum, Delegate ve Interface, .NET'in yapıtaşları olan 5 temel tiptir. Örnek vermek gerekirse bu 5 temel tipten Class, gerçek hayattaki nesneleri .NET platformunda modellemek için kullanılabilir. .NET Framework ile biz programcılara bu 5 tipten oluşan temel sınıf kütüphaneleri (BaseClassLibrary) sunuldu.

Bu tipler içerisinde veri işlemlerinde kullanılan birçok sınıf vardır(SqlConnection, SqlCommand, SqlDataReader gibi). Aynı şekilde koleksiyon amaçlı kullanılan birçok sınıf .NET Framework ile programcılara sunulmuştur (ArrayList, Stack, Queue gibi). Kısaca şunu söyleyebiliriz; .NET Framework içerisinde benzer işlerde kullanılabilecek aynı amaca yönelik sınıflar mevcuttur. Aynı amaca hizmet eden bu sınıfları bir paket altında toplamak hiyerarşik yapı olarak aradığımızı daha kolay bulmamızı ve benzer üyeleri gruplamamızı sağlayacaktır diyebiliriz. Aynı amaca hizmet eden yapıtaşlarını grupladığımız bu pakete namespace (isimalanı) adını veriyoruz.

SqlConnection, SqlCommand ve SqlDataReader sınıfları Framework içerisinde System.Data.SqlClient namespace'i (isimalanı) altında yer alırlar. ArrayList, Stack ve Queue sınıfları ise System.Collections isimalanı altında yer alırlar. Aynı bu örneklerde olduğu gibi kendi uygulamamız içerisinde yazdığımız tipleri de belli bir düzen içerisinde organize edebilmek için namespace'lerden faydalanırız.

Benzer amaçlara hizmet eden namespace'ler ise yine başka bir namespace içerisinde tekrar paketlenebilirler. İçiçe namespace tanımlamaları yaparak hiyerarşik bir yapı oluşturulabilir.
Yine örneklendirecek olursak, System.Data.SqlClient ve System.Data.OleDb namespace'leri kendi içlerinde, kendileri ile aynı amaca hizmet eden üyeler barındırırlar ama başka bir bakış açısı ile bunların ikiside Data ile ilgili işler yapıyorlar. Ortak yanları Veri İşlemleri olan bu iki namespace'te System.Data namespace'i altında toplanmışlardır.

Hiç yorum yok: