Namespace kavramına genel bakış
Namespace kavramını kısaca tanımlamak gerekirse programımızı hazırlarken kullandığımız tüm nesneleri ve kendi oluşturduğumuz nesneleri mantıksal bir bütünlük ve ahenk içinde organize etmemizi kolaylaştıran bir yapıdır. Eğer namespace yapısı olmasaydı birden fazla programcının tek bir proje üzerinde aynı isimle oluşturacakları method ve classların kullanımı sırasında problemler yaşanacaktı ya da bu nesnelerin programın neresinde hangi amaçla çağırılacağı konusunda mantıksal bir bütünlük ve erişilebilirlikte zorluklar yaşanacaktı. Örneğin namespace kullanmadan aşağıda göreceğiniz örnekte hem EmailGonder hem de EpostaGonder adında iki classın içinde Gonder adlı metodların çağırılmasına bakalım.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
class EpostaGonder
{
public void Gonder()
{
//Posta gönderme işlemi
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
class EmailGonder
{
public void Gonder()
{
//Gönderme işlemi
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
class Program
{
static void Main(string[] args)
{
EmailGonder e = new EmailGonder();
e.Gonder();
EpostaGonder k = new EpostaGonder();
k.Gonder();
}
}
Farklı iki programcının aynı proje üzerindeki çalışmalarında hazırladıkları kodları mantıksal bir bütünlüğün ve kullanım kolaylığının sağlanması için şimdi de namespace kullanımını dahil ederek inceleyelim.
namespace emre_kiyak
{
class EpostaGonder
{
public void Gonder()
{
//Posta gönderme işlemi
}
}
}
namespace burak_yilmaz
{
class EmailGonder
{
public void Gonder()
{
//Gönderme işlemi
}
}
}
class Program
{
static void Main(string[] args)
{
emre_kiyak.EpostaGonder e = new emre_kiyak.EpostaGonder();
e.Gonder();
burak_yilmaz.EmailGonder k = new burak_yilmaz.EmailGonder();
k.Gonder();
}
}
Gördüğünüz gibi namespace kullanımı ile programın hazırlanışındaki organizasyon daha mantıksal bir yapıya oturdu. .NET Frameworkde kullandığımız sınıfların bir isim alanından çağırıldığına dikkat edin. Örneğin dosya yazma okuma işlemlerinde System.IO sınıfı altındaki classkarın kullanılması, XML dosya işleme ile ilgili işlemleri için System.XML, veritabanlarına bağlanma ve ADO katmanında yapılacak işlemler için System.Data, System.Sql gibi namespacelerin kullanıldığını hatırlatalım.
.NET Framework mimari yapısını anlamanın önemli konularından biridir namespace kavramı. Bir sınıfın oluşturulması, bu sınıfın bir namespace'e dahil edilmesi ve o namespace üzerinden çağırılması; sınıf yapıları arasındaki hiyerarşik düzeni anlamak için önemlidir. Ardından kalıtım ve interface konuları ile tam anlamıyla nesne yönelimli programlamanın ne anlama geldiği konusunda iyi bir fikir sahibi olursunuz.
İyi çalışmalar
25 Aralık 2009 Cuma öğleden sonra 14:41
Mesajınızı yazabilirsiniz