SlideShare a Scribd company logo
1 of 15
System programing
Module 1
Процес
Процес - це програма, що виконується. Формально
процес визначається як концепція рівня операційної
системи, яка використовується для опису набору
ресурсів (таких як зовнішні бібліотеки коду і головний
потік) і необхідної пам'яті, що виділяється
виконуваним додаткам.
Для кожного завантаженого в пам'ять файлу *.exe
операційна система створює окремий ізольований
процес, який застосовується протягом усього часу
життя.
Andrii Hladkyi
trilobt@gmail.com 2
Процес
Дані одного процесу не доступні безпосередньо іншим
процесам, якщо тільки не використовується API-
інтерфейс для програмування розподілених обчислень,
подібний Windows Communication Foundation. З
урахуванням цих моментів, процес можна розглядати
як фіксовану і безпечну границю для виконуваних
додатків.
Кожному процесу Windows призначається унікальний
ідентифікатор процесу (process identifier - PID) і він
може незалежно завантажуватися і вивантажуватися
операційною системою при необхідності (а також і
програмно).
Andrii Hladkyi
trilobt@gmail.com 3
Взаємодія з процесами в .NET
В просторі імен Sуstem.Diagnostiсs визначено кілька
типів, які дозволяють програмно взаємодіяти з
процесами.
Andrii Hladkyi
trilobt@gmail.com 4
Тип Опис
Process Цей клас надає доступ до локальних і віддалених
процесів, а також дозволяє програмно запускати і
зупиняти процеси
ProcessModule Цей тип представляє модуль (*.dll або *.exe),
завантажений в певний процес. Важливо розуміти,
що тип ProcessModule може представляти будь-який
модуль, тобто двійкові збірки на основі COM, .NET
або традиційного ‘C’
ProcessModuleCollection Цей тип надає строго типізовану колекцію об'єктів
Process Module
Взаємодія з процесами в .NET
Andrii Hladkyi
trilobt@gmail.com 5
Тип Опис
ProcessStartInfo Цей тип дозволяє вказувати набір значень, які
використовуються при запуску процесу за
допомогою методу Process.Start ()
ProcessThread Цей тип являє потік в заданому процесі. Слід мати
на увазі, що тип ProcessThread застосовується для
діагностики набору потоків процесу, але не для
породження нових потоків виконання всередині
процесу
ProcessThreadCollection Цей тип надає строго типізовану колекцію об'єктів
ProcessThread
Основні методи класу Process
Andrii Hladkyi
trilobt@gmail.com 6
Метод Опис
CloseMainWindow() Цей метод закриває процес, який має
користувацький інтерфейс, відправляючи його
головному вікні повідомлення про закриття
GetCurrentProcess() Цей статичний метод повертає новий об'єкт Process,
що представляє процес, який є активним в поточний
момент
GetProcesses() Цей статичний метод повертає масив нових об'єктів
Process, які виконуються на заданій машині
Kill() Цей метод негайно зупиняє заданий процес
Start() Цей метод запускає процес
Домени додатків
Домени додатків (Application Domain - AppDomain) -
це логічні підрозділи всередині окремого процесу, в
якому розміщується набір пов'язаних збірок .NET.
Кожен домен додатка, в свою чергу, ділиться на
контекстні границі які використовуються для
групування разом подібних об'єктів .NET.
Поняття контексту дозволяє середовищі CLR
забезпечувати належну обробку об'єктів з особливими
потребами часу виконання.
Один процес може містити кілька доменів додатків,
кожен з яких обслуговує свій виконуваний файл .NET.
Andrii Hladkyi
trilobt@gmail.com 7
Домени додатків
Таке додаткове розділення традиційного процесу
Windows надає ряд переваг:
 Домени додатків є ключовим аспектом нейтральної, по
відношенню до операційних систем, природи платформи .NET
 Домени додатків набагато менше використовують
обчислювальних ресурсів і пам'яті в порівнянні з
повноцінними процесами. Завдяки цьому середовище CLR
здатне завантажувати і вивантажувати домени додатків
набагато швидше, ніж формальні процеси, тим самим значно
покращуючи масштабованість серверних додатків.
 Домени додатків забезпечують більш глибокий рівень ізоляції
при розміщенні завантажених додатків. У разі збою одного
домена додатку всередині процесу інші домени додатків
залишаються працездатними
Andrii Hladkyi
trilobt@gmail.com 8
Домени додатків
З огляду на цей факт, дуже важливо розуміти, що
додаток, що виконується в одному домені додатку, не
може отримувати дані з іншого домену додатка, якщо
тільки не буде використовуватися протокол
розподіленого програмування (такий як WCF).
Процес операційної системи буде обслуговувати так
званий стандартний домен додатка.
Цей специфічний домен додатка створюється
автоматично середовищем CLR під час запуску
процесу.
Після цього середовище CLR створює додаткові
домени додатків в міру необхідності.
Andrii Hladkyi
trilobt@gmail.com 9
Клас System.AppDomain
Платформа .NET дозволяє програмно здійснювати
моніторинг доменів додатків, створювати нові домени
додатків (або вивантажувати їх) під час виконання,
завантажувати збірки в домени додатків і вирішувати
цілий ряд інших завдань із застосуванням класу
AppDomain
Andrii Hladkyi
trilobt@gmail.com 10
Основні методи класу AppDomain
Andrii Hladkyi
trilobt@gmail.com 11
Метод Опис
CreateDomain() Цей статичний метод дозволяє створювати новий
домен програми в поточному процесі
CreateInstance() Цей метод дозволяє створювати екземпляр типу з
зовнішньої збірки після завантаження даної збірки в
викликаючий домен додатки
ExecuteAssembly() Цей метод запускає збірку *. exe всередині домену
додатки, отримавши її ім'я файлу
GetAssemblies() Цей метод отримує набір збірок .NET, які були
завантажені в даний домен додатка (виконавчі збірки
на основі СОМ і С ігноруються)
GetCurrentThreadId() Цей статичний метод повертає ідентифікатор активного
потоку в поточному домені додатку
Load() Цей метод застосовується для динамічного
завантаження збірки в поточний домен додатка
Unload() Цей статичний метод дозволяє вивантажити вказаний
домен програми із заданого процесу
Вибрані властивості класу AppDomain
Andrii Hladkyi
trilobt@gmail.com 12
Властивість Опис
BaseDirectory Ця властивість дозволяє отримати шлях до каталогу,
який розпізнавач збірок використовує для зондування
збірок
CurrentDomain Це статична властивість дозволяє отримати домен
програми, що використовується для поточного
виконувалного потоку
FriendlyName Це властивість дозволяє отримати дружнє ім'я
поточного домену додатки
MonitoringIsEnabled Це властивість дозволяє отримати або встановити
значення, яке вказує, чи включений моніторинг ресурсів
центрального процесора і пам'яті для поточного
процесу. Після того, як моніторинг включений для
процесу, відключити його неможливо
SetupInformation Це властивість дозволяє витягти деталі конфігурації для
зазначеного домену додатка, які представлені у вигляді
об'єкта AppDomainSetup
Вибрані події класу AppDomain
Andrii Hladkyi
trilobt@gmail.com 13
Подія Опис
AssemblyLoad Ця подія виникає, коли збірка завантажується в пам'ять
AssemblyResolve Ця подія виникає, коли аналізатор збірок не може
знайти місце розташування обов'язкової збірки
DomainUnload Ця подія виникає перед початком вивантаження домена
додатку з розміщуваного процесу
FirstChanceException Ця подія дозволяє отримувати повідомлення про те, що
в домені додатку було згенеровано виняток, перед тим
як середовище CLR почне пошук відповідного
оператора catch
ProcessExit Ця подія виникає в стандартному домені додатку тоді,
коли його батьківський процес завершується
UnhandledException Ця подія виникає, коли виняток не було перехоплено
оброблювачем винятків
Andrii Hladkyi
trilobt@gmail.com 14
Демонстрація
Створення нових доменів додатків
Єдиний процес здатний розміщувати безліч доменів
додатків, що створюються за допомогою статичного
методу AppDomain.CreateDomain().
Необхідність створення нових доменів додатка:
 Створювані динамічні збірки повинні встановлюватися в
спеціальний домен додатка.
 Багато API-інтерфейсів, пов'язані з безпекою .NET, вимагають
розуміння того, як конструювати нові домени додатків для
ізоляції збірок на основі наданих облікових даних безпеки.
Andrii Hladkyi
trilobt@gmail.com 15

More Related Content

What's hot

Net Framework and C# Module 3 4. Inheritance, Abstractions
Net Framework and C# Module 3 4. Inheritance, AbstractionsNet Framework and C# Module 3 4. Inheritance, Abstractions
Net Framework and C# Module 3 4. Inheritance, AbstractionsAndrii Hladkyi
 
NET Framework and C# Module 6.2. Generics
NET Framework and C# Module 6.2. GenericsNET Framework and C# Module 6.2. Generics
NET Framework and C# Module 6.2. GenericsAndrii Hladkyi
 
Advanced c sharp part 3
Advanced c sharp part 3Advanced c sharp part 3
Advanced c sharp part 3eleksdev
 
Net framework і c# module 9
Net framework і c# module 9Net framework і c# module 9
Net framework і c# module 9Andrii Hladkyi
 
Net framework і c# module 16
Net framework і c# module 16Net framework і c# module 16
Net framework і c# module 16Andrii Hladkyi
 
12 Architecture
12 Architecture12 Architecture
12 Architectureeleksdev
 
.NET Platform. C# Basics
.NET Platform. C# Basics.NET Platform. C# Basics
.NET Platform. C# Basicseleksdev
 
iPhone Objective-C Development (ukr) (2009)
iPhone Objective-C Development (ukr) (2009)iPhone Objective-C Development (ukr) (2009)
iPhone Objective-C Development (ukr) (2009)Anatoliy Okhotnikov
 
System programing module 1
System programing module 1System programing module 1
System programing module 1Andrii Hladkyi
 
08 Exceptions and AOP
08  Exceptions and AOP08  Exceptions and AOP
08 Exceptions and AOPeleksdev
 
лаб. роб. №2 обєкти та сервіси що ними надаються
лаб. роб. №2   обєкти та сервіси що ними надаютьсялаб. роб. №2   обєкти та сервіси що ними надаються
лаб. роб. №2 обєкти та сервіси що ними надаютьсяcit-cit
 
Advanced C#. Part 2
Advanced C#. Part 2Advanced C#. Part 2
Advanced C#. Part 2eleksdev
 
Net framework і c# module 17
Net framework і c# module 17Net framework і c# module 17
Net framework і c# module 17Andrii Hladkyi
 
System programing module 2
System programing module 2System programing module 2
System programing module 2Andrii Hladkyi
 
Net framework і c# module 10
Net framework і c# module 10Net framework і c# module 10
Net framework і c# module 10Andrii Hladkyi
 
Net framework і c# module 14
Net framework і c# module 14Net framework і c# module 14
Net framework і c# module 14Andrii Hladkyi
 
Version control
Version controlVersion control
Version controleleksdev
 
Net framework і c# module 12
Net framework і c# module 12Net framework і c# module 12
Net framework і c# module 12Andrii Hladkyi
 
System programing module 3
System programing module 3System programing module 3
System programing module 3Andrii Hladkyi
 

What's hot (20)

Net Framework and C# Module 3 4. Inheritance, Abstractions
Net Framework and C# Module 3 4. Inheritance, AbstractionsNet Framework and C# Module 3 4. Inheritance, Abstractions
Net Framework and C# Module 3 4. Inheritance, Abstractions
 
NET Framework and C# Module 6.2. Generics
NET Framework and C# Module 6.2. GenericsNET Framework and C# Module 6.2. Generics
NET Framework and C# Module 6.2. Generics
 
Advanced c sharp part 3
Advanced c sharp part 3Advanced c sharp part 3
Advanced c sharp part 3
 
Net framework і c# module 9
Net framework і c# module 9Net framework і c# module 9
Net framework і c# module 9
 
Net framework і c# module 16
Net framework і c# module 16Net framework і c# module 16
Net framework і c# module 16
 
12 Architecture
12 Architecture12 Architecture
12 Architecture
 
.NET Platform. C# Basics
.NET Platform. C# Basics.NET Platform. C# Basics
.NET Platform. C# Basics
 
iPhone Objective-C Development (ukr) (2009)
iPhone Objective-C Development (ukr) (2009)iPhone Objective-C Development (ukr) (2009)
iPhone Objective-C Development (ukr) (2009)
 
System programing module 1
System programing module 1System programing module 1
System programing module 1
 
08 Exceptions and AOP
08  Exceptions and AOP08  Exceptions and AOP
08 Exceptions and AOP
 
лаб. роб. №2 обєкти та сервіси що ними надаються
лаб. роб. №2   обєкти та сервіси що ними надаютьсялаб. роб. №2   обєкти та сервіси що ними надаються
лаб. роб. №2 обєкти та сервіси що ними надаються
 
Advanced C#. Part 2
Advanced C#. Part 2Advanced C#. Part 2
Advanced C#. Part 2
 
Net framework і c# module 17
Net framework і c# module 17Net framework і c# module 17
Net framework і c# module 17
 
System programing module 2
System programing module 2System programing module 2
System programing module 2
 
Net framework і c# module 10
Net framework і c# module 10Net framework і c# module 10
Net framework і c# module 10
 
Net framework і c# module 14
Net framework і c# module 14Net framework і c# module 14
Net framework і c# module 14
 
Version control
Version controlVersion control
Version control
 
Net framework і c# module 12
Net framework і c# module 12Net framework і c# module 12
Net framework і c# module 12
 
System programing module 3
System programing module 3System programing module 3
System programing module 3
 
DAL
DALDAL
DAL
 

Similar to System programing module 1. Processes

Web service lecture
Web service lectureWeb service lecture
Web service lectureeleksdev
 
Lec12 користувацькi елементи керування ed
Lec12 користувацькi елементи керування edLec12 користувацькi елементи керування ed
Lec12 користувацькi елементи керування edcit-cit
 
Inf tema 1_urok_4_6_klas
Inf tema 1_urok_4_6_klasInf tema 1_urok_4_6_klas
Inf tema 1_urok_4_6_klasAllaGureva
 
Aspnet core
Aspnet coreAspnet core
Aspnet coreeleksdev
 
Lecture 09 Android Storage
Lecture 09 Android StorageLecture 09 Android Storage
Lecture 09 Android StorageMaksym Davydov
 
V24 com to_net
V24 com to_netV24 com to_net
V24 com to_netRingonoki
 
Android Programming Intro
Android Programming IntroAndroid Programming Intro
Android Programming IntroMaksym Davydov
 
Загальні принципи розроблення АРМ оператора на базі SCADA/HMI
Загальні принципи розроблення АРМ оператора на базі SCADA/HMIЗагальні принципи розроблення АРМ оператора на базі SCADA/HMI
Загальні принципи розроблення АРМ оператора на базі SCADA/HMIПупена Александр
 
Презентація 10 клас Урок 18 для учнів 10 класу вааааааааууу ахуєть
Презентація 10 клас Урок 18 для учнів 10 класу вааааааааууу ахуєтьПрезентація 10 клас Урок 18 для учнів 10 класу вааааааааууу ахуєть
Презентація 10 клас Урок 18 для учнів 10 класу вааааааааууу ахуєтьkostyasheremetyev1
 
5 клас урок 18 НОВА ПРОГРАМА
5 клас урок 18 НОВА ПРОГРАМА5 клас урок 18 НОВА ПРОГРАМА
5 клас урок 18 НОВА ПРОГРАМАЮлія Артюх
 

Similar to System programing module 1. Processes (20)

6 клас урок 4
6 клас урок 46 клас урок 4
6 клас урок 4
 
Web service lecture
Web service lectureWeb service lecture
Web service lecture
 
Lec12 користувацькi елементи керування ed
Lec12 користувацькi елементи керування edLec12 користувацькi елементи керування ed
Lec12 користувацькi елементи керування ed
 
1 4
1 41 4
1 4
 
Inf tema 1_urok_4_6_klas
Inf tema 1_urok_4_6_klasInf tema 1_urok_4_6_klas
Inf tema 1_urok_4_6_klas
 
Aspnet core
Aspnet coreAspnet core
Aspnet core
 
NodeJS.pptx
NodeJS.pptxNodeJS.pptx
NodeJS.pptx
 
Lecture 09 Android Storage
Lecture 09 Android StorageLecture 09 Android Storage
Lecture 09 Android Storage
 
Android Storage
Android StorageAndroid Storage
Android Storage
 
V24 com to_net
V24 com to_netV24 com to_net
V24 com to_net
 
Android Programming Intro
Android Programming IntroAndroid Programming Intro
Android Programming Intro
 
Wcf module 3.5
Wcf module 3.5Wcf module 3.5
Wcf module 3.5
 
Загальні принципи розроблення АРМ оператора на базі SCADA/HMI
Загальні принципи розроблення АРМ оператора на базі SCADA/HMIЗагальні принципи розроблення АРМ оператора на базі SCADA/HMI
Загальні принципи розроблення АРМ оператора на базі SCADA/HMI
 
dfgInf tema 1_urok_4_6_klas
dfgInf tema 1_urok_4_6_klasdfgInf tema 1_urok_4_6_klas
dfgInf tema 1_urok_4_6_klas
 
ASP.Net MVC
ASP.Net MVCASP.Net MVC
ASP.Net MVC
 
Презентація 10 клас Урок 18 для учнів 10 класу вааааааааууу ахуєть
Презентація 10 клас Урок 18 для учнів 10 класу вааааааааууу ахуєтьПрезентація 10 клас Урок 18 для учнів 10 класу вааааааааууу ахуєть
Презентація 10 клас Урок 18 для учнів 10 класу вааааааааууу ахуєть
 
Wcf module 2
Wcf module 2Wcf module 2
Wcf module 2
 
вашенюк
вашенюквашенюк
вашенюк
 
ASP.Net basics
ASP.Net basics ASP.Net basics
ASP.Net basics
 
5 клас урок 18 НОВА ПРОГРАМА
5 клас урок 18 НОВА ПРОГРАМА5 клас урок 18 НОВА ПРОГРАМА
5 клас урок 18 НОВА ПРОГРАМА
 

More from Andrii Hladkyi (20)

Net Framework and c# Lesson 1
Net Framework and c# Lesson 1Net Framework and c# Lesson 1
Net Framework and c# Lesson 1
 
Wpf module 2
Wpf module 2Wpf module 2
Wpf module 2
 
Wpf module 1
Wpf module 1Wpf module 1
Wpf module 1
 
Msp module 3
Msp module 3Msp module 3
Msp module 3
 
Msp module 2
Msp module 2Msp module 2
Msp module 2
 
Msp module 1
Msp module 1Msp module 1
Msp module 1
 
Ado.net module 2
Ado.net module 2Ado.net module 2
Ado.net module 2
 
Ado.net module 1
Ado.net module 1Ado.net module 1
Ado.net module 1
 
Design pattern module 1
Design pattern module 1Design pattern module 1
Design pattern module 1
 
Win api module_2.0_gdi+
Win api module_2.0_gdi+Win api module_2.0_gdi+
Win api module_2.0_gdi+
 
Win api module_1.1_ok
Win api module_1.1_okWin api module_1.1_ok
Win api module_1.1_ok
 
Win api module_6.2
Win api module_6.2Win api module_6.2
Win api module_6.2
 
Design pattern module 1
Design pattern module 1Design pattern module 1
Design pattern module 1
 
Net framework і c# lesson1
Net framework і c# lesson1Net framework і c# lesson1
Net framework і c# lesson1
 
Uml module 6
Uml module 6Uml module 6
Uml module 6
 
Uml module 5
Uml module 5Uml module 5
Uml module 5
 
Uml module 4
Uml module 4Uml module 4
Uml module 4
 
Uml module 3
Uml module 3Uml module 3
Uml module 3
 
Uml module 2
Uml module 2Uml module 2
Uml module 2
 
Uml module 1
Uml module 1Uml module 1
Uml module 1
 

System programing module 1. Processes

  • 2. Процес Процес - це програма, що виконується. Формально процес визначається як концепція рівня операційної системи, яка використовується для опису набору ресурсів (таких як зовнішні бібліотеки коду і головний потік) і необхідної пам'яті, що виділяється виконуваним додаткам. Для кожного завантаженого в пам'ять файлу *.exe операційна система створює окремий ізольований процес, який застосовується протягом усього часу життя. Andrii Hladkyi trilobt@gmail.com 2
  • 3. Процес Дані одного процесу не доступні безпосередньо іншим процесам, якщо тільки не використовується API- інтерфейс для програмування розподілених обчислень, подібний Windows Communication Foundation. З урахуванням цих моментів, процес можна розглядати як фіксовану і безпечну границю для виконуваних додатків. Кожному процесу Windows призначається унікальний ідентифікатор процесу (process identifier - PID) і він може незалежно завантажуватися і вивантажуватися операційною системою при необхідності (а також і програмно). Andrii Hladkyi trilobt@gmail.com 3
  • 4. Взаємодія з процесами в .NET В просторі імен Sуstem.Diagnostiсs визначено кілька типів, які дозволяють програмно взаємодіяти з процесами. Andrii Hladkyi trilobt@gmail.com 4 Тип Опис Process Цей клас надає доступ до локальних і віддалених процесів, а також дозволяє програмно запускати і зупиняти процеси ProcessModule Цей тип представляє модуль (*.dll або *.exe), завантажений в певний процес. Важливо розуміти, що тип ProcessModule може представляти будь-який модуль, тобто двійкові збірки на основі COM, .NET або традиційного ‘C’ ProcessModuleCollection Цей тип надає строго типізовану колекцію об'єктів Process Module
  • 5. Взаємодія з процесами в .NET Andrii Hladkyi trilobt@gmail.com 5 Тип Опис ProcessStartInfo Цей тип дозволяє вказувати набір значень, які використовуються при запуску процесу за допомогою методу Process.Start () ProcessThread Цей тип являє потік в заданому процесі. Слід мати на увазі, що тип ProcessThread застосовується для діагностики набору потоків процесу, але не для породження нових потоків виконання всередині процесу ProcessThreadCollection Цей тип надає строго типізовану колекцію об'єктів ProcessThread
  • 6. Основні методи класу Process Andrii Hladkyi trilobt@gmail.com 6 Метод Опис CloseMainWindow() Цей метод закриває процес, який має користувацький інтерфейс, відправляючи його головному вікні повідомлення про закриття GetCurrentProcess() Цей статичний метод повертає новий об'єкт Process, що представляє процес, який є активним в поточний момент GetProcesses() Цей статичний метод повертає масив нових об'єктів Process, які виконуються на заданій машині Kill() Цей метод негайно зупиняє заданий процес Start() Цей метод запускає процес
  • 7. Домени додатків Домени додатків (Application Domain - AppDomain) - це логічні підрозділи всередині окремого процесу, в якому розміщується набір пов'язаних збірок .NET. Кожен домен додатка, в свою чергу, ділиться на контекстні границі які використовуються для групування разом подібних об'єктів .NET. Поняття контексту дозволяє середовищі CLR забезпечувати належну обробку об'єктів з особливими потребами часу виконання. Один процес може містити кілька доменів додатків, кожен з яких обслуговує свій виконуваний файл .NET. Andrii Hladkyi trilobt@gmail.com 7
  • 8. Домени додатків Таке додаткове розділення традиційного процесу Windows надає ряд переваг:  Домени додатків є ключовим аспектом нейтральної, по відношенню до операційних систем, природи платформи .NET  Домени додатків набагато менше використовують обчислювальних ресурсів і пам'яті в порівнянні з повноцінними процесами. Завдяки цьому середовище CLR здатне завантажувати і вивантажувати домени додатків набагато швидше, ніж формальні процеси, тим самим значно покращуючи масштабованість серверних додатків.  Домени додатків забезпечують більш глибокий рівень ізоляції при розміщенні завантажених додатків. У разі збою одного домена додатку всередині процесу інші домени додатків залишаються працездатними Andrii Hladkyi trilobt@gmail.com 8
  • 9. Домени додатків З огляду на цей факт, дуже важливо розуміти, що додаток, що виконується в одному домені додатку, не може отримувати дані з іншого домену додатка, якщо тільки не буде використовуватися протокол розподіленого програмування (такий як WCF). Процес операційної системи буде обслуговувати так званий стандартний домен додатка. Цей специфічний домен додатка створюється автоматично середовищем CLR під час запуску процесу. Після цього середовище CLR створює додаткові домени додатків в міру необхідності. Andrii Hladkyi trilobt@gmail.com 9
  • 10. Клас System.AppDomain Платформа .NET дозволяє програмно здійснювати моніторинг доменів додатків, створювати нові домени додатків (або вивантажувати їх) під час виконання, завантажувати збірки в домени додатків і вирішувати цілий ряд інших завдань із застосуванням класу AppDomain Andrii Hladkyi trilobt@gmail.com 10
  • 11. Основні методи класу AppDomain Andrii Hladkyi trilobt@gmail.com 11 Метод Опис CreateDomain() Цей статичний метод дозволяє створювати новий домен програми в поточному процесі CreateInstance() Цей метод дозволяє створювати екземпляр типу з зовнішньої збірки після завантаження даної збірки в викликаючий домен додатки ExecuteAssembly() Цей метод запускає збірку *. exe всередині домену додатки, отримавши її ім'я файлу GetAssemblies() Цей метод отримує набір збірок .NET, які були завантажені в даний домен додатка (виконавчі збірки на основі СОМ і С ігноруються) GetCurrentThreadId() Цей статичний метод повертає ідентифікатор активного потоку в поточному домені додатку Load() Цей метод застосовується для динамічного завантаження збірки в поточний домен додатка Unload() Цей статичний метод дозволяє вивантажити вказаний домен програми із заданого процесу
  • 12. Вибрані властивості класу AppDomain Andrii Hladkyi trilobt@gmail.com 12 Властивість Опис BaseDirectory Ця властивість дозволяє отримати шлях до каталогу, який розпізнавач збірок використовує для зондування збірок CurrentDomain Це статична властивість дозволяє отримати домен програми, що використовується для поточного виконувалного потоку FriendlyName Це властивість дозволяє отримати дружнє ім'я поточного домену додатки MonitoringIsEnabled Це властивість дозволяє отримати або встановити значення, яке вказує, чи включений моніторинг ресурсів центрального процесора і пам'яті для поточного процесу. Після того, як моніторинг включений для процесу, відключити його неможливо SetupInformation Це властивість дозволяє витягти деталі конфігурації для зазначеного домену додатка, які представлені у вигляді об'єкта AppDomainSetup
  • 13. Вибрані події класу AppDomain Andrii Hladkyi trilobt@gmail.com 13 Подія Опис AssemblyLoad Ця подія виникає, коли збірка завантажується в пам'ять AssemblyResolve Ця подія виникає, коли аналізатор збірок не може знайти місце розташування обов'язкової збірки DomainUnload Ця подія виникає перед початком вивантаження домена додатку з розміщуваного процесу FirstChanceException Ця подія дозволяє отримувати повідомлення про те, що в домені додатку було згенеровано виняток, перед тим як середовище CLR почне пошук відповідного оператора catch ProcessExit Ця подія виникає в стандартному домені додатку тоді, коли його батьківський процес завершується UnhandledException Ця подія виникає, коли виняток не було перехоплено оброблювачем винятків
  • 15. Створення нових доменів додатків Єдиний процес здатний розміщувати безліч доменів додатків, що створюються за допомогою статичного методу AppDomain.CreateDomain(). Необхідність створення нових доменів додатка:  Створювані динамічні збірки повинні встановлюватися в спеціальний домен додатка.  Багато API-інтерфейсів, пов'язані з безпекою .NET, вимагають розуміння того, як конструювати нові домени додатків для ізоляції збірок на основі наданих облікових даних безпеки. Andrii Hladkyi trilobt@gmail.com 15