Namespace nedir ve önemli namespaceler

Visual Basic bölümünde yer alan bu konu SüKuN tarafından paylaşıldı.

  1. SüKuN

    SüKuN Harbi Aktif Üye

    Net Class Framework’ün en üst yapısına NameSpace(Ad Uzayı) denir. Namespace’lerin bize nasıl bir faydası olduğunu çok küçük bir örnekle gösterdikten sonra, önemli namespaceler hakkında bilgi vermeye geçicem.

    Net Framework, bünyesindeki büyük ve genişleyebilir kütüphanesiyle bize projelerimizde birçok kolaylık sağlar. 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 namespaceler. .Net Framework bu dev kütüphaneleri sayesinde projelerimizde omuzlarımızdan büyük bir yük indirmiştir.

    .Net Class Framework birçok dil tarafından desteklenir. Platformlar arası kullanılabilirliğe sahip, nesneye dayalı, hiyerarşik ve birleşik, içinde yüzlerce sınıf, arayüz ve yapı içeren bir sınıf kütüphanesidir.

    Imports System.Console

    Module Module1

    Sub Main()

    Response.write(“YazGeliştir”)

    End Sub

    End Module

    Bu kodda eğer system.console namespace’ini kullanmasaydık, daha sonra karşımıza gelebilicek bir writeline işinde (örneğin filesystemobject kullanıp, dosyaya birkaç satır birşeyler yazmak istedik) kodumuzu system.console.writeline(“YazGeliştir”) şeklinde yazmamız gerekirdi. Dolayısıyla tekrar tekrar aynı şeyi yazıp gereksiz kodlardan kurtulmak için ve compiler’ımızı yormamak için namespace’lere başvuruyoruz  Şimdi geçelim önemli namespacelerimizi ve kullanım alanlarını anlatmaya.

    Editörümüzde imports yazdıktan sonra karşımıza gelen Microsoft ve System isimleri birer namespace’dir. Bu namespaceler içlerinde birçok özelliği barındırır. Şimdi bunlardan önemli olanlarını anlatmaya çalışacağım.

    Microsoft.CSharp : C#.Net dilini kullanarak derlemeyi ve kodlamayı sağlayan sınıfları içerir.
    Microsoft.JScript : JScript dilini kullanarak derlemeyi ve kodlamayı sağlayan JScript Runtime ile sınıflarını içerir.
    Microsoft.VisualBasic : Visual Basic, .Net Rumtime’ı içerir.Bu runtime, visualbasic.net dili tarafından kullanılır. Bu ad uzayı aynı zamanda visual basic programlama dili için derlemeyi ve kodlamayı sağlayan sınıfları da içerir.
    Microsoft.Vsa : .Net Framework için, runtime’da kullanılmak üzere script motorlarını uygulamalarımıza yerleştirmeyi sağlayan arayüzleri içerir.
    Microsoft.Win32 : Bu namespace bize 2 farklı sınıf sunar. Bunlardan birincisi işletim sistemince üretilen olayları işleyen, ikincisi ise sistem registry işleyen sınıflardır.

    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.CodeDom.Compiler : Yazdığımız programa (çalışan programa) kod veya script ekleyebilmemizi sağlayan sınıftır.
    System.Collections : Çeşitli nesne koleksiyonlarını tanımlayan arayüz ve sınıfları içerir. Örnek olarak; list, arraylist ve binnary’i verebiliriz.
    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.Configuration.Assembly : Bir assembly konfigürasyonunu değiştirmeyi sağlayan sınıfları içerir.
    System.Data : Veritabanı kullanan projelerimizde çok işimize yarayacak olan sınıftır. Ado.Net mimarisinin temelini içinde barındıran sınıflardan oluşur.
    System.Data.OleDb : .Net Data Provider’ı içerir. Bu namespace, veritabanı gibi verikaynaklarına erişim için bir sınıflar koleksiyonu sağlar.
    System.Data.SqlClient : .Net Data Provider’ı içerir. Bu namespace’te oledb namespace’ine benzer bir şekilde, veritabanı gibi verikaynaklarına erişim için bir sınıflar koleksiyonu sağlar.
    System.Data.SqlTypes : Sql Server içindeki veri türleri için çeşitli sınıflar tanımlar. Bu sınıflar diğer veri türlerine göre daha güvenli ve hızlıdır. Bu sınıfların kullanılmasıyla birlikte, olası tip dönüşümü sorunları ortadan kalkmaktadır.
    System.Diagnotics : Sistem süreçleri, olay logları ve performans sayaçları ile etkileşim için gerekli sınıfları içerir. Bu namespace ek olarak, yazdığımız kodun adım adım işlenimi yada hata ayıklama sistemi için özel sınıflara da sahiptir.
    System.Drawing : GDI+ (Graphics Device Interface) temek grafik işlevlerine erişim sağlar. Bu tip işlevlere örnek olarak; design, imaging ve printing verilebilir.
    System.EnterpriseServices : COM+ servis mimarisi içerir. Bu namespace .Net Framework nesnelerini kurumsal uygulama ve projeler için daha pratik bir hale getirir.
    System.Globalization : Kültürel bilgileri tanımlayan sınıfları içerir. Örnek olarak; dil, ülke, takvim, tarih, para birimi, ve sayılarla alakalı bilgiler verilebilir.
    System.IO : Dosyalar üzerinden okuma ve yazmayı sağlayan veri türlerini içerir.
    System.Net : Bilgisayar ağlarında kullanılan protokoller için arayüz sağlar. WebRequest ve WebResponse sınıfları, internet kaynaklarını kullanan ağ servislerinin gelişimi için temel oluşturur.
    System.Net.Sockets : Ağ erişimi için önemli ve dikkat edilmesi gereken kontrollere ihtiyaç duyan yazılım geliştiricileri için, Windows Sockets (WinSock) arayüzüne olanak tanıyan sınıftır. Soket programlama için önemli özellikler içerir.
    System.Object : Tüm .Net yönetimli sınıflar system.object sınıfından kalıtımla gerçekleşir. Bu kalıtım visual basic ve c# gibi dillerde compiler tarafından otomatik olarak algılanır. Object sınıfı, hiyerarşinin en üstünde yer aldığından bu tipteki bir değişkene diğer nesne referansları da atanabilir. Object sınıfı diğer tüm sınıflar içinde kalıtımla ortak hale gelen; equals, finalize, gettype, gethashcode, memberwiseclone ve tostring metotlarını içerir.
    System.Runtime.Remoting : Dağıtık uygulamalar yaratmak için gereken hertürlü sınıf ve arayüzü içerir.
    System.Runtime.Remoting.Channels : Uzaktaki bir nesnenin metotunun, bir istemci tarafından çağırımında kullanılan ulaştırma sisteminin, kanal ve kanal havuzlarını işleyen, destekleyen bütün sınıflarını içerir.
    System.Runtime.Remoting.Channels.Http : HyperText Transfer Protokolünü kullanan tüm kanalları içerir.
    System.Runtime.Remoting.Channels.Tcp : Transmission Control Protokolünü kullanan tüm kanalları içerir.
    System.Security : CLR (Common Language Runtime) güvenlik sisteminin altında bulunan yapıyı sağlayan ve izinler için temel sınıfları içeren sınıftır.
    System.Security.Cryptography : Şifreleme sınıflarını içinde barındırır. 3 çeşit algoritması vardır. Bunlar ; simetrik anahtar algoritması (DES, IDEA, RC5 vb.), asimetrik anahtar algoritması (RSA), karışık algoritma (PGP)’dır. Bu sınıf; sayı üretimi, hashing ve şifreleme gibi güvenli encoding ve decoding içeren servisleri içerir.
    System.Security.Permissions : Algoritmaya bağımlı kalarak, işlemlere ve kaynaklara erişimi kontrol eden sınıfları içerir.
    System.ServiceProcess : Windows servis uygulamaları gerçekleştirmeyi, kurmayı, yönetmeyi ve denetlemeyi sağlayan tüm sınıfları içerir.
    System.Text : ASCII, Unicode, UTF-7 ve UTF-8 gibi karakter encodingi sağlayan tüm sınıfları içerir.
    System.Text.RegularExpressions : .Net Framework regular expressions engine için hertürlü erişimi sağlayan sınıfları içerir. Bu namespace ise .net framework ile çalışabilen her programlama dili yada platformdan kullanılabilen regular expressions işlevselliği sağlar.
    System.Threading : Thread bir işlemcinin birden çok iş yapması için yaratılan kod parçasıdır. Bu çoklu iş parçacıklarını programlamayı sağlayan sınıf ve arayüzleri ise system.threading sınıfı içerir.
    System.Timers : Bu sınıf belli aralıklardaki olayları tetiklemeyi sağlayan timer bileşenini içerir.
    System.Web : İstemci/sunucu iletişimini sağlayan sınıf ve arayüzleri içerir. Bu namespace, http isteğiyle bilgi içeren http request sınıfını, istemciye giden çıktıyı yöneten http response sınıfını ve sunucu taraflı zamanlar için erişim sağlayan HttpServerUtility nesnesini içerir. Bu namespace aynı zamanda cookie işleme, dosya transferi, exception information (istisna bilgisi) ve çıktı ön bellekleme denetimlerini de içerir.
    System.Web.Caching : Sunucudaki kaynaklardan en sık kullanılanları ön belleğe almayı sağlayan sınıfları içerir.
    System.Web.Mail : CDOSYS mesaj sistemini kullanarak, mesaj oluşturma ve göndermeyi sağlayan sınıfları içerir.
    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.Services : Web servislerinin oluşturulması ve kullanımı için gereken sınıfları içerir. Web servisleri, internet üzerinde bulunan sunucular tarafından sağlanan ve standart internet protokelleri üzerinden çalışan, programlanabilir birimlerdir.
    System.Web.SessionState : Sunucudaki bir web uygulaması içinde tek bir istemciye özel verinin tutulmasını sağlayan arayüz ve sınıfları içerir. Session state yani oturum durum verisi, kullanıcıya uygulamayla sürekli bir bağlantı varmış hissini verir.
    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. Bu namespace ortak bir işlevsellikle HTML yada web kullanıcı kontrolleri olmak üzere tüm kontrolleri içeren control sınıfına sahiptir. Ayrıca web uygulamasında bir sayfaya istem olduğu anda oluşturulan page kontrolünü de içerir.
    System.Web.UI.HtmlControls : Bir web sayfası üzerinde HTML sunucu kontrolleri yaratmayı sağlayan sınıfları içerir. HTML sunucu kontrolleri sunucuda çalışır ve her tarayıcı tarafından desteklenen HTML tagleriyle temsil edilirler. Bu durum, bir web sayfasındaki HTML elemanlarının, program içinden kontrol edilebilmesini sağlar.
    System.Web.UI.WebControls : Bir web sayfası üzerinde web sunucu kontrolleri yaratabilmeyi sağlayan sınıfları içerir. Web kontrolleri sunucuda çalışır ve calendar gibi özel amaçlı kontrollerle beraber button ve textbox gibi form kontrollerini de içerir. Bu namespace aynı zamanda bir web sayfası üzerindeki kontrollere, program içinden erişebilmeyi de sağlar. Web kontrolleri, HTML kontrollerinden daha farklı ve bağımsızdır. Nesne modelleri, HTML sözdizimiyle alakasızdır.
    System.Windows.Forms : Windows tabanlı, Microsoft Windows işletim sisteminin sahip olduğu, zengin kullanıcı arayüzü olanaklarını kullanan uygulamaları yaratabilmek için gereken tüm sınıfları içerir.
    System.Xml : Xml (extensible markup language) dili için standartlara dayalı destek sağlar.
    System.Xml.Schema : Standartlara dayalı xml şemaları (xsd) için destek sağlar.
    System.Xml.Serialization : Xml biçimindeki dökümanlara nesnelerin belli zamanlardaki halinin saklanmasını sağlayan sınıfları içerir.
    System.Xml.XPath: Xpath ayrıştırıcısı ve değerlendirme motorunu içerir.
    System.Xml.Xsl : Xslt (Extensible Stylesheet Transformation) için destek sağlar.