Favorilerine Ekle | Giriş Sayfan Yap | Tavsiye Et

 

Kurs Tanıtım Sayfası | Süper Üye Kimdir? | Menü Tasarımı Konulu Örnek Ders
Kod İndir| Hazır Kodlar | Makaleler| İpuçları | VB .NET Kursu | Dersler | Forum | Alt Bölümler | Servisler
    Merhaba Misafir
    anasayfa » .NET makaleleri » net » AppDomain SInıfı
Üye Girişi
Kullanıcı Adı:  
Şifre : 
Kaydet ?
Siteden tam olarak faydalanabilmek için üye olmalısınız.
Unuttuğunuz şifrenizi öğrenebilmek için kayıt sırasında verdiğiniz Hatırlatma Cevabı'nı bilmeniz gereklidir.
Şifre hatırlatma işlevini sadece 3 defa kullanma hakkınız vardır.
Kullanıcı adını ve şifresini unutan üyelere email ile yardım verilmez.

Aktivasyon Gelmedi mi?Aktivasyon mesajınız email adresinize gelmedi mi?
Buraya tıklayarak bir kez daha aktivasyon mesajı gönderilmesini sağlayabilirsiniz.
Lütfen email hesabınızın BULK ve SPAM klasörlerini de kontrol ediniz.
Rastgele Makale

Bir ağda 1'den Fazla kişiyle iletişim kurma yöntemi(Hızlı ve Güvenilir)

Yazar: SLKEMA
Bu yöntem ile ağda birden fazla kişi ile iletişim kurabilecek ve kendinize msn gibi bir iletişim listesi bile oluşturabileceksiniz.


Webmasterlar
Sitenize Ekleyin!
Sitenizde "Son Eklenen 10 Visual Basic Yazısı"'nı göstermek ve içeriğini zenginleştirmek için buraya tıklayınız.

Vbasicmaster.com'a link verin!
Aşağıdaki minik banneri sitenize eklemek için tıklayın!

Üye Sayısı:
Ziyaretçiler nerede?
Yayın № : 5057
Yayın Tar:21.11.2005
Yazar : dream__onur
Hit :1573

Bu Yazarın Yazıları Sadece bu yazarın  göster
Bu Yazıyı Tavsiye Et

Bu makalede uygulama etki alanının desteklediği metodları ve bazı özelliklerine değindikten sonra bir örnek yapacağız.

Default domain, yönetilmeyen kodun yüklenmesi sırasında, CLR host arayüzünün çağırılmasıyla otomatik olarak oluşturulur. Yönetilmeyen kodu kullanarak, System_AppDomain arayüzü ile System.AppDomain sınıfına erişiriz. System.AppDomain sınıfı ile yönetilen kodların üzerinde işlemler yapabiliriz.

Uygulama etki alanları AppDomain sınıfı kullanılarak oluşturulabilir. Oluşturulan uygulama etki alanının özelliklerini istediğimiz şekilde yine AppDomain sınıfını kullanarak ayarlanabilir.

Uygulama Etki Alanının Oluşturulması

Uygulama etki alanı System.AppDomain sınıfının CreateDomain metodu ile oluşturulur. CreateDomain metodunun overload seçenekleri vardır. Bunlar;

1. Overloads Public Shared Function CreateDomain(String) As AppDomain

İsmini vererek AppDomain oluşturma.

2. Overloads Public Shared Function CreateDomain(String, Evidence) As AppDomain

System.Security.Evidence nesnesi uygulama için CreateDomainin güvenlik ayarlarını tanımlamamızı sağlar.

3. Overloads Public Shared Function CreateDomain(String, Evidence, AppDomainSetup) As AppDomain

Güvenlik ayarlarına ek olarak uygulama etki alanı içinde CreateDomain için assembly ayarlarının yapılmasını sağlar.

4. Overloads Public Shared Function CreateDomain(String, Evidence, String, String, Boolean) As AppDomain

Güvenlik ve assembly ayarlarının yanında, özel yapılandırma ayarlarının yapılmasını sağlar

Uygulama Etki Alanının Güvenlik Ayarları (Evidence)

Yönetilen kod CLR içine yüklenir. CLR, koda ulaşım sırasında güvenliği sağlar. Koda ulaşım güvenliğini nasıl sağladığına baktığımızda evidende terimi ile karşılaşıyoruz. Evidencenin çalışma mantığında yatan temel; çalıştırılacak kod hakkında soru sormaktır. Çalıştırılmak istenen kod hangi bölgeden geliyor, tam ismi nedir gibi çeşitli sorular sorarak kod hakkında bilgi toplar. İşte toplanan bu bilgiler evindenceyi oluşturuyor. Toplanan bilgiler ile kodun yüklenip yüklenmeyeceği veya çalıştırılması sırasında ne tür haklara sahip olup olmayacağını belirlenerek ayarlanıyor. Toplanan bilgilere göre güvenlik sağlanır. Bu bilgilerin akabinde güvenlik politikası oluşturuluyor. Güvenlik politikası her koda ayrı ayrı özel hazırlanır.

Assembly Ayarları

Assemblyyi uygulama etki alanı içinde kontrol edebilmek için AppDomainSetup sınıfını kullanırız. AppDomainSetup sınıfının birçok özelliğinin yanında, ApplicationBase ve ConfigurationFile olmak üzere iki önemli özelliği vardır.

Yeni oluşturulan bir uygulama alanı, oluşturanın ApplicationBase özelliğini miras alır. ApplicationBase özelliği uygulamamız için kök klasör özelliğindedir.

ConfigurationFile özelliği, XML dosyaları tanımlar. Bu dosyalar uygulama etki alanı içinde çalıştırılacak olan uygulama için yapılandırma ayarlarını içerir. Yapılandırma dosyalarında, uyarlama kuralları gibi uygulamaya ait çeşitli bilgiler tanımlanır.

Uzaktaki Uygulama Etki Alanında Çalışma

Uzaktaki uygulama etki alanının assemblyyi çalıştırmak için ilk olarak System.AppDomain.CreateDomain ile uzakta uygulama etki alanı oluşturulur. ApplicationBase özelliği ve Evidence özelliği kullanılabilir. Ve isteğe göre ApplicationBase gibi yapılandırma bilgileri assemblynin yüklendiği yerde aranır. Ve yine istenirse Evidence ile güvenlik uygulaması yapılır. System.AppDomain.ExecuteAssembly ile uygulama etki alanında oluşturulan assembly kullanılır. Bu metodun üç kullanım şekli vardır. Şöyle ki :

1. Overloads Function ExecuteAssembly(String, Evidence, String()) As Integer

ExecuteAssemblynin en genel halidir. İlk aldığı parametre çalıştırılacak olan Assemblynin adresidir. İkinci parametre assembly güvenliği için Evidence desteğinin çağırılmasını sağlar. Son parametre assemblynin temel giriş noktasının değerini gönderir.

2. Overloads Function ExecuteAssembly(String, Evidence) As Integer

3. Overloads Function ExecuteAssembly(String) As Integer

System.AppDomain.CreateInstanceyi ile uzaktaki uygulama etki alani içinden herhangi bir metod çağırılabilir. CreateInstance, nesnenin referansını dönderir. Çağırılan nesne System.MarshalByRefObjectden türetilmiş olmalıdır. Bu sayede, oluşturulan uygulama etki alanı sınırları içinde karşı tarafa referans gönderilmiş olur.

Load-Unload

Uygulama etki alanında assemblynin yüklenmesi için System.AppDomain.Load() metodu kullanılır.

Uygulama etki alanının geri yüklenmesi için System.AppDomain.Unload() metodu kullanılır. Uygulama etki alanı geri yüklenmesi sırasında, uygulama etki alanına herhangi bir threadin girişine izin verilmez. Uygulama etki alanına ait bütün özel bilgiler serbest bırakılır.

Şimdi uygulama etki alanına ait bir örnek yapalım. Bir konsol uygulaması ile uygulama etki alanı oluşturalım. Sonra da oluşturduğumuz etki alanına ait bazı bilgileri konsola yazdıralım.


Imports System

Imports System.Reflection

Imports System.Security.Policy evidence için import ediliyor

Class ApplicationDomain

Public Shared Sub Main()

uygulama etki alanı yükleme ayarları yapılıyor

Dim DomainBilgisi As New AppDomainSetup

DomainBilgisi.ApplicationBase = "file:///" + System.Environment.CurrentDirectory

yeni oluşturulan etki alanı için evidence oluşturuluyor.

Dim KodBilgisi As Evidence = AppDomain.CurrentDomain.Evidence

yükleme bilgileri kullanılarak yeni bir uygulama etki alanı oluşturuluyor.

Dim OlusturulanDomain As AppDomain = AppDomain.CreateDomain("BuBenimIlkDomainim", KodBilgisi, DomainBilgisi)

uygulama etki alanı hakkındaki bilgiler konsol ekranına yazdırılıyor.

Console.WriteLine(("Host domain : " + AppDomain.CurrentDomain.FriendlyName))

Console.WriteLine(("Yeni oluşturulan domain ismi: " + OlusturulanDomain.FriendlyName))

Console.WriteLine()

Console.WriteLine(("Application base : " + OlusturulanDomain.SetupInformation.ApplicationBase))

AppDomain.Unload(OlusturulanDomain)

uygulama etki alanı geri yükleniyor

Console.ReadLine()

End Sub

End Class


Şimdi kodu bir gözden geçirelim. Yükleme ayarlarını yaptıktan sonra kod bilgisi elde etmek için delil topluyoruz. AppDomain sınıfına ait CreateDomain() fonksiyonu kullanılarak bir tane uygulama alanı oluşturuyoruz. Daha sonradan Host domainin ismi, oluşturduğumuz etki alanının ismi ve ApplicationBase isimli özelliğin içerdiği değerleri konsol ekranına yazdırıyoruz.





Bu sayfa için henüz yorum eklenmemiş.

© Hakan Ersöz 2000-2013| Üyelik Sözleşmesi | | Ödeme Bildirimi
Sitemizden yenilikleri hemen öğrenin, pop upları engelleyin, chat yapın... ToolBarımızı indirin:
Vasicmaster Toolbar'ı indirin