application domain

C# Application Domains

Application domain işletim sisteminde bulunan process’lere benzetilebilir. Öyleyse process nedir?

Process, çalıştırdığınız uygulamanın bellekte kendine ayrılan bölümü kullanmasını sağlayan ve diğer uygulamaların birbirini etkilememesini sağlayan izolasyon konteynırlarıdır. Her process kendi sanal (virtual) bellek adresine sahiptir ve diğer process’ler bu alana erişemezler. 32 bit Windows işletim sistemlerinde her process uygulamanın yapısına bağlı olarak maksimum 3 GB bellek kullanabilmektedir. Ancak kullandığınız işletim sistemi versiyonuna göre bellek kullanım miktarı farklılık göstermektedir. Aynı şekilde bellek kullanımı 64 bit sistemlerde önemli derecede arttırılmış olup limit yazılımdan ziyade donanımdan kaynaklanmaktadır. Örneğin Windows 7 64 bit’de 192GB a kadar bellek kullanılabilir, Windows Server 2008 64 bit’de bu sınır 2TB’dır.

Application Domain geliştiriciye izolasyon ve güvenlik seviyesi sağlamaktadır. Her .Net Process’i varsayılan olarak bir Application domain’i içinde barındırır. Bu application domain CLR tarafından process’in başlatılması ile otomatik oluşturulur ve gerektiğindede aynı process içinde birden çok Application Domain yaratılabilir. Her application domain kendine ait bellek bölgesine ve güvenlik seviyesine sahip olup böylece process içinde diğer application domain’lerin bellek belgesine erişip birbirlerini kararsız hale getirmesine engel olunmuş olur.

Ayrıca Application domain’lere runtime’da dinamik olarak Assembly’ler yüklenip, istendiğinde yüklenen assembly’e ait kaynaklar bellekten temizlenebilir.

Application domain’e yüklenen assembly’ler deki sınıflar serileştirilebilir (Serializable) olmalı yada MarshalByRefObject sınıfından türemelidir.

(daha&helliip;)