İsim uzayları Slaytı

Download Report

Transcript İsim uzayları Slaytı

.Net Class Framework’ün en üst yapısına
İsim Uzayı(Namespace) denir.
Turbo pascal programlama dilinde 1990
ve hatta öncesinden beri varolmuş, C’de yer
almayan ancak C++’ta sonradan eklenmiş
bir halde yer edinerek, C#’ta dev bir boyutta
karşımıza çıkmıştır bu Namespace’ler.
İsim alanları, yazılan programlarda mantıksal
organizasyonu sağlar.
Eski programlama dillerinde,çok kişi tarafından
yazılan projelerde, isim çakışmaları meydana
gelebilmekteydi. Bu çakışmalar fonksiyon, alt program
ya da sınıf isimlerinin değiştirilmesi ile çözülebiliyordu.
Programlama Dilleri bu karmaşanın önüne geçebilmek
için modern dillerde mantıksal bir ayırma yapısı
kullanmaya başlamıştır.
C++ ve C# dillerindeki isim alanları(namespace) ya
da Java dilindeki paketler(package) buna birer örnektir
.NET Framework’te programcıların işlerini
kolaylaştırmak için birtakım hazır kütüphaneler vardır
fakat C# dilinde hazır kütüphaneler mevcut değildir.Bunun
yerine Framework dediğimiz altyapıda Base Class Library
adı verilen temel sınıf kütüphaneleri mevcuttur.
Temel sınıf kütüphaneleri,uygulamalarınızı geliştirirken
size lazım olabilecek birçok servisi ve nesneyi içinde
barındıran bir sistemdir. Temel sınıf kütüphaneleri,
namespaces (isim alanları)’ler içinde organize edilmiştir.
İsim Uzayı Bildirimi
İsim alanı namespace anahtar sözcüğü ile bildirilir.
Namespace için yine sınıflarda olduğu gibi bir
parantez blok açılır . Bu bloğa ise isim alanı içinde
yer alacak bildirimler tanımlanır.
Tanımlanan isim anları using ifadesi ile belirtilir ve using
anahtarı sözcüğü tanımlamaların üstünde yer almalıdır.
Bu şekilde tanımlandıktan sonra isim alanı içersindeki
türlere tam isim belirtmeden erişilebilir.
using System;
namespace isimalan1
public class C#
{
public static void Main()
{
Console.WriteLine (C#)
}
}
(Bu sınıf System isimalanı içinde bulunan Console sınıfına
ait bir fonksiyonla gerçekleştirilmektedir.)
C++ Dilinde Namespace Kullanımı
using namespace System;
public static void Main()
{
Console.WriteLine (" C++ ")
}
(Bu sınıf System isimalanı içinde bulunan Console sınıfına
ait bir fonksiyonla gerçekleştirilmektedir.)
İsim Alanlarında Dikkat Edilmesi
Gerekenler !
İsim alanları içersinde yalnızca
sınıf(class), numaralandırma(enum) ,
yapı (struct),temsilci(delegate) ya da
arayüz(interface) bildirimi yapılabilir.
İsim anları içinde değişken
tanımlaması veya metot bildirimi
yapılamaz.
Farklı konumlarda ya da
dosyalarda aynı adlı isim alanları
tanımlanabilir. Bu hataya neden
olmaz.
İç İçe Girmiş İsim Alanları
(Nested NameSpaces)
İsim alanları içersinde başka isim alanları da
tanımlanabilir. Bu şekilde hiyerarşik düzenlemeler
yapılır.
Bu şekilde tanımlanmış isim alanlarına “.” operatörü
ile erişilir. Using ile tanımlanırken de aynı yöntem
kullanılır.
İç İçe Namespace Kullanımı
using System;
namespace Alan
{
class Sinif1
{
public Sinif1() { }
}
namespace AltAlan
{
class Sinif2
{
public Sinif2() { }
}
}
}
Bazı Namespace’ler …
System : Ortak kullanıma sahip değerleri, referans edilen veri
türlerini, olayları ve bu olayların işleyişlerini, çeşitli arayüzleri,
özellikleri ve işlem hatalarını tanımlayan temel sınıfları içerir.
System.Configuration: Yazdığımız programın içinden .Net
Framework konfigürasyon ayarlarına erişmemizi sağlayan
arayüz ve sınıfları içerir.
System.Data : Veritabanı kullanan projelerimizde çok işimize
yarayacak olan sınıftır.
Bazı Namespace’ler …
System.Web.Security:Web
sunucu uygulamalarında,ASP.Net
teknolojisinin güvenliğinin
sağlanabilmesi için kullanılan
sınıfları içerir.
System.Web.UI: Bir web
sayfası üzerinde kullanıcı ara
yüzünü oluşturan kontrollerin
yaratılması için gereken sınıf ve
arayüzleri sağlar.Ayrıca web
uygulamasında bir sayfaya istem
olduğu anda oluşturulan page
kontrolünü içerir.
Bazı Namespace’ler …
System.Web.UI.WebControls:Bir web sayfası üzerinde
web sunucu kontrolleri yaratabilmeyi sağlayan sınıfları
içerir.
System.Xml: Xml dili için standartlara dayalı destek
sağlar.
System.Web: İstemci/sunucu iletişimini sağlayan sınıf
ve arayüzleri içerir.Bu namespace aynı zamanda cookie
işleme, dosya transferi, exception information ve çıktı ön
bellekleme denetimlerini de içerir.