SlideShare a Scribd company logo
.NET CLR Hosting API
Evgen Napryaglo
Intetics
1. Runtime Customizations
Runtime
Assembly
Loading
Policy
Management
Host
Protection
Memory
Management
Garbage
Collection
I/O
Completion
CLR
Events
Task
Management
Synchronization
Management
Thread Pool
Management
Application Host – Native Environment
.NET Application Environment
Objectives
• Monitoring
• Diagnostics
• Customization
• Restriction
• Integration
• Extensibility
Development Operations
Product Development
Enterprise Integration
2. Execution & State Monitoring
Profiling
API
Debugging
API
CLR Hosting
Host
Runtime
.NET Codemscoree
ICLRRuntimeHost
CorBindToRuntimeEx
ICLRControlIHostControl
Assembly
Initialization Flow
:Host :mscoree :Runtime
CorBindToRuntimeEx
ICLRRuntimeHost
SetHostControl
Start
Initialization
ICLRControl
Status
GetCLRControl
ICLRControl
ExecuteInDefaultAppDomain
Assembly Loading
ICLRAssemblyReferenceList
ICLRAssemblyIdentityManager
• The location from which assemblies are loaded
• The way versions are managed
• The formats from which assemblies can be loaded
Customize
IHostAssemblyManager
IHostAssemblyStore
Synchronization Management
IHostSyncManager ICLRSyncManager
Enables the host to implement its own synchronization primitives for
the runtime to use.
Custom
Events IHostManualEvent, IHostAutoEvent
Critical Section
Semaphore IHostSemaphore
IHostCrst
Policy Management
ICLRPolicyManager IHostPolicyManager
Enables the host to specify the way program failures are handled, to
support different reliability requirements.
NoAction
ThrowException
AbortThread
RudeAbortThread
UnloadAppDomain
RudeUnloadAppDomain
ExitProcess
FastExitProcess
RudeExitProcess
DisableRuntime
NonCriticalResource
CriticalResource
FatalRuntime
OrphanedLock
StackOverflow
ThreadAbort
ThreadRudeAbortInNonCriticalRegion
ThreadRudeAbortInCriticalRegion
AppDomainUnload
AppDomainRudeUnload
ProcessExit
FinalizerRun
ActionsFailures
Events
Host Protection
Enables the host to enforce its own programming model, by
preventing the use of specified types or members.
ICLRHostProtectionManager
Reflection
Licensing
Synchronization
UI Components
Thread Pool Management
Enables the host to implement its own thread pool for the runtime
to use.
IHostThreadPoolManager
GetAvailableThreads
GetMaxThreads
GetMinThreads
QueueUserWorkItem
SetMaxThreads
SetMinThreads
I/O Completion
IHostIoCompletionManager
Enables the host to implement its own implementation of
asynchronous input/output.
ICLRIoCompletionManager
CLR
Host
IHostIoCompletionManager
ICLRIoCompletionManager
IO Operations Calls
Results & Feedback
Profiling
• Class loading and unloading
events.
• Thread creation and destruction
events.
• Function entry and exit events.
• Exceptions.
• Transitions between different
runtime contexts.
• Information about runtime
suspensions.
• Information about the runtime
memory heap and garbage
collection activity.
Application
For
Profiling
CLR
HOST IPC Transport
Profiler
User
Interface
Profile Target Profiler
ICorProfilerInfo
ICorProfilerCallback
Debugging
Application
For
Debugging
CLR
HOST IPC Transport
Debugger
User
Interface
Profile Target Debugger
ICorDebug
ICorDebugManagedCallback
• Accessing Call Stacks and
Variables
• Accessing IL Code and Native
Code
• On-the-Fly Data and Code
modifications
• Runtime Expressions Evaluation
• IL Code Injections
• Custom Breakpoints
• Step by Step Execution
Practical Case
Architecture
Domestic Area
New Architecture
Printer
Domestic Area
Internet
Windows User Mode Driver Framework
Virtual Printer Driver
CLR Host
.NET Data
Converter
.NET Data
Converter
.NET Data
Converter
Native
Native
Native
CLR Hosting vs COM Integration
Simple Programming Model
Fully Managed
Good Performance
Flexible Programming Model
High Reliability
Tailored Integration with Native Services
Native Programming Environment
Low Reliability
COM Infrastructure Availability
Complex Diagnostics
Strange Errors
THANK YOU
Ad

Recommended

PPTX
Денис Резник "Зачем мне знать SQL и Базы Данных, ведь у меня есть ORM?"
Fwdays
 
PPTX
Сергей Радзыняк ".NET Microservices in Real Life"
Fwdays
 
PPTX
Игорь Леонтьев "Azure Container Service: not only Docker"
Fwdays
 
PPTX
Сергей Калинец "Стероиды для Дотнетчика"
Fwdays
 
PPTX
Debugging your Way through .NET with Visual Studio 2015
Ido Flatow
 
PPTX
Qui Quaerit, Reperit. AWS Elasticsearch in Action
GlobalLogic Ukraine
 
POTX
Mobile 3: Launch Like a Boss!
MongoDB
 
PDF
How Class Data Sharing Can Speed up Your Jakarta EE Application Startup
Rudy De Busscher
 
PPTX
From VMs to Containers: Introducing Docker Containers for Linux and Windows S...
Ido Flatow
 
PPTX
ASP.NET vNext
Alex Thissen
 
PDF
AWS to Bare Metal: Motivation, Pitfalls, and Results
MongoDB
 
PPTX
Debugging the Web with Fiddler
Ido Flatow
 
PPTX
Project meniscus
Kichul Jung
 
PPTX
JavaEE Microservices platforms
Payara
 
PPTX
Glass fish performance tuning tips from the field
Payara
 
PPTX
High performance java ee with j cache and cdi
Payara
 
PDF
What's New in Nuxeo Platform 7.3
Nuxeo
 
PPTX
Node proxy
Ilya Starostin
 
PPTX
Internals of Steroids Framework
Supun Dissanayake
 
PPTX
MVC 6 - the new unified Web programming model
Alex Thissen
 
PPTX
Azure Update, July 2016
Tokyo Azure Meetup
 
PPTX
RavenDB 4.0
Oren Eini
 
PPTX
Microsoft ASP.NET 5 - The new kid on the block
Christos Matskas
 
PDF
OSMC 2014: Interesting use cases of Zabbix improvements in latest versions | ...
NETWAYS
 
PDF
ECS위에 Log Server 구축하기
AWSKRUG - AWS한국사용자모임
 
PPTX
Windows Azure Blob Storage
ylew15
 
PDF
Breaking the Monolith - Microservice Extraction at SoundCloud
Jan Kischkel
 
PPTX
Google Cloud Platform monitoring with Zabbix
Max Kuzkin
 
PPT
Владимир Никонов "Вызовы при разработке enterprise продукта"
Fwdays
 
PDF
Антон Молдован "Type driven development with f#"
Fwdays
 

More Related Content

What's hot (20)

PPTX
From VMs to Containers: Introducing Docker Containers for Linux and Windows S...
Ido Flatow
 
PPTX
ASP.NET vNext
Alex Thissen
 
PDF
AWS to Bare Metal: Motivation, Pitfalls, and Results
MongoDB
 
PPTX
Debugging the Web with Fiddler
Ido Flatow
 
PPTX
Project meniscus
Kichul Jung
 
PPTX
JavaEE Microservices platforms
Payara
 
PPTX
Glass fish performance tuning tips from the field
Payara
 
PPTX
High performance java ee with j cache and cdi
Payara
 
PDF
What's New in Nuxeo Platform 7.3
Nuxeo
 
PPTX
Node proxy
Ilya Starostin
 
PPTX
Internals of Steroids Framework
Supun Dissanayake
 
PPTX
MVC 6 - the new unified Web programming model
Alex Thissen
 
PPTX
Azure Update, July 2016
Tokyo Azure Meetup
 
PPTX
RavenDB 4.0
Oren Eini
 
PPTX
Microsoft ASP.NET 5 - The new kid on the block
Christos Matskas
 
PDF
OSMC 2014: Interesting use cases of Zabbix improvements in latest versions | ...
NETWAYS
 
PDF
ECS위에 Log Server 구축하기
AWSKRUG - AWS한국사용자모임
 
PPTX
Windows Azure Blob Storage
ylew15
 
PDF
Breaking the Monolith - Microservice Extraction at SoundCloud
Jan Kischkel
 
PPTX
Google Cloud Platform monitoring with Zabbix
Max Kuzkin
 
From VMs to Containers: Introducing Docker Containers for Linux and Windows S...
Ido Flatow
 
ASP.NET vNext
Alex Thissen
 
AWS to Bare Metal: Motivation, Pitfalls, and Results
MongoDB
 
Debugging the Web with Fiddler
Ido Flatow
 
Project meniscus
Kichul Jung
 
JavaEE Microservices platforms
Payara
 
Glass fish performance tuning tips from the field
Payara
 
High performance java ee with j cache and cdi
Payara
 
What's New in Nuxeo Platform 7.3
Nuxeo
 
Node proxy
Ilya Starostin
 
Internals of Steroids Framework
Supun Dissanayake
 
MVC 6 - the new unified Web programming model
Alex Thissen
 
Azure Update, July 2016
Tokyo Azure Meetup
 
RavenDB 4.0
Oren Eini
 
Microsoft ASP.NET 5 - The new kid on the block
Christos Matskas
 
OSMC 2014: Interesting use cases of Zabbix improvements in latest versions | ...
NETWAYS
 
ECS위에 Log Server 구축하기
AWSKRUG - AWS한국사용자모임
 
Windows Azure Blob Storage
ylew15
 
Breaking the Monolith - Microservice Extraction at SoundCloud
Jan Kischkel
 
Google Cloud Platform monitoring with Zabbix
Max Kuzkin
 

Viewers also liked (17)

PPT
Владимир Никонов "Вызовы при разработке enterprise продукта"
Fwdays
 
PDF
Антон Молдован "Type driven development with f#"
Fwdays
 
PPTX
Сергей Поплавский "DeepDive в Bot платформу Microsoft. Технические аспекты ра...
Fwdays
 
PPTX
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"
Fwdays
 
PPTX
Стас Султанов "Assembling Solutions with Microsoft Azure"
Fwdays
 
PPTX
Андрей Чебукин "Построение успешных API"
Fwdays
 
PPTX
Игорь Фесенко "What’s New in C# 7.0"
Fwdays
 
PPTX
Борис Могила "Isomorphic React apps in production"
Fwdays
 
PDF
Юрий Лучанинов "Критерии выбора JS-фреймворков"
Fwdays
 
PDF
Алексей Косинский "React Native vs. React+WebView"
Fwdays
 
PDF
Алексей Волков "Еще несколько слов об архитектуре"
Fwdays
 
PDF
Юлия Пучнина "PhaserJS for advertisement: игры внутри баннеров"
Fwdays
 
PDF
Григорий Шехет "Treasure hunt in the land of Reactive frameworks"
Fwdays
 
PPTX
Neurociencia ii
Carolina
 
PDF
Manual de capacitación para capacitadores
Julia Villagomez
 
PDF
Ficha exploração isometrias
saocampos
 
PDF
Cristianismo y Espiritismo
Osvaldo Brascher
 
Владимир Никонов "Вызовы при разработке enterprise продукта"
Fwdays
 
Антон Молдован "Type driven development with f#"
Fwdays
 
Сергей Поплавский "DeepDive в Bot платформу Microsoft. Технические аспекты ра...
Fwdays
 
Евгений Остапчук "Tips&Tricks for ASP.NET MVC performance"
Fwdays
 
Стас Султанов "Assembling Solutions with Microsoft Azure"
Fwdays
 
Андрей Чебукин "Построение успешных API"
Fwdays
 
Игорь Фесенко "What’s New in C# 7.0"
Fwdays
 
Борис Могила "Isomorphic React apps in production"
Fwdays
 
Юрий Лучанинов "Критерии выбора JS-фреймворков"
Fwdays
 
Алексей Косинский "React Native vs. React+WebView"
Fwdays
 
Алексей Волков "Еще несколько слов об архитектуре"
Fwdays
 
Юлия Пучнина "PhaserJS for advertisement: игры внутри баннеров"
Fwdays
 
Григорий Шехет "Treasure hunt in the land of Reactive frameworks"
Fwdays
 
Neurociencia ii
Carolina
 
Manual de capacitación para capacitadores
Julia Villagomez
 
Ficha exploração isometrias
saocampos
 
Cristianismo y Espiritismo
Osvaldo Brascher
 
Ad

Similar to Евгений Напрягло ".NET Framework Hosting API Overview" (8)

PDF
From 'dotnet run' to 'hello world'
Alexandra Hayere
 
PPTX
From 'dotnet run' to 'hello world'
Matt Warren
 
PPTX
You are not_hiding_from_me_.net
Chung Wee Jing
 
PPTX
Tamir Dresher - Demystifying the Core of .NET Core
Tamir Dresher
 
PPTX
Appdomains
Dhowlath Mohammed
 
PPTX
.Net deep dive: CLR & IL
Tural Suleymani
 
PPT
.Net Session Overview
Logu Thanigachalam
 
PPSX
Net framework session03
Vivek Singh Chandel
 
From 'dotnet run' to 'hello world'
Alexandra Hayere
 
From 'dotnet run' to 'hello world'
Matt Warren
 
You are not_hiding_from_me_.net
Chung Wee Jing
 
Tamir Dresher - Demystifying the Core of .NET Core
Tamir Dresher
 
Appdomains
Dhowlath Mohammed
 
.Net deep dive: CLR & IL
Tural Suleymani
 
.Net Session Overview
Logu Thanigachalam
 
Net framework session03
Vivek Singh Chandel
 
Ad

More from Fwdays (20)

PDF
''Taming Explosive Growth: Building Resilience in a Hyper-Scaled Financial Pl...
Fwdays
 
PDF
"Scaling in space and time with Temporal", Andriy Lupa.pdf
Fwdays
 
PDF
"Database isolation: how we deal with hundreds of direct connections to the d...
Fwdays
 
PDF
"Scaling in space and time with Temporal", Andriy Lupa .pdf
Fwdays
 
PPTX
"Provisioning via DOT-Chain: from catering to drone marketplaces", Volodymyr ...
Fwdays
 
PPTX
" Observability with Elasticsearch: Best Practices for High-Load Platform", A...
Fwdays
 
PPTX
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
Fwdays
 
PPTX
"Istio Ambient Mesh in production: our way from Sidecar to Sidecar-less",Hlib...
Fwdays
 
PPTX
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
Fwdays
 
PPTX
"Confidential AI: zero trust concept", Hennadiy Karpov
Fwdays
 
PPTX
"Choosing Tensor Accelerators for Specific Tasks: Compute vs Memory Bound Mod...
Fwdays
 
PPTX
"Custom Voice Assistants: Infrastructure, Integrations, and Uniqueness", Yeho...
Fwdays
 
PPTX
"Different Facets of AI: Computer Vision and Large Language Models. How We De...
Fwdays
 
PPTX
"Machine Learning in Agriculture: 12 Production-Grade Models", Danil Polyakov
Fwdays
 
PPTX
"Using AI to Automate Operational Processes at MK-Consulting", Maxim Korzhene...
Fwdays
 
PPTX
"AI in the browser: predicting user actions in real time with TensorflowJS", ...
Fwdays
 
PDF
"Interactive problems", Yuri Artiukh. JavaScript
Fwdays
 
PPTX
Web Vitals: Try to Improve Me, Oleksandr Mostovenko
Fwdays
 
PPTX
May the blocks be with you – How to Integrate Crypto Payments Without Stress ...
Fwdays
 
PDF
Від KPI до OKR: як синхронізувати продажі, маркетинг і продукт, щоб бізнес ре...
Fwdays
 
''Taming Explosive Growth: Building Resilience in a Hyper-Scaled Financial Pl...
Fwdays
 
"Scaling in space and time with Temporal", Andriy Lupa.pdf
Fwdays
 
"Database isolation: how we deal with hundreds of direct connections to the d...
Fwdays
 
"Scaling in space and time with Temporal", Andriy Lupa .pdf
Fwdays
 
"Provisioning via DOT-Chain: from catering to drone marketplaces", Volodymyr ...
Fwdays
 
" Observability with Elasticsearch: Best Practices for High-Load Platform", A...
Fwdays
 
"How to survive Black Friday: preparing e-commerce for a peak season", Yurii ...
Fwdays
 
"Istio Ambient Mesh in production: our way from Sidecar to Sidecar-less",Hlib...
Fwdays
 
" How to survive with 1 billion vectors and not sell a kidney: our low-cost c...
Fwdays
 
"Confidential AI: zero trust concept", Hennadiy Karpov
Fwdays
 
"Choosing Tensor Accelerators for Specific Tasks: Compute vs Memory Bound Mod...
Fwdays
 
"Custom Voice Assistants: Infrastructure, Integrations, and Uniqueness", Yeho...
Fwdays
 
"Different Facets of AI: Computer Vision and Large Language Models. How We De...
Fwdays
 
"Machine Learning in Agriculture: 12 Production-Grade Models", Danil Polyakov
Fwdays
 
"Using AI to Automate Operational Processes at MK-Consulting", Maxim Korzhene...
Fwdays
 
"AI in the browser: predicting user actions in real time with TensorflowJS", ...
Fwdays
 
"Interactive problems", Yuri Artiukh. JavaScript
Fwdays
 
Web Vitals: Try to Improve Me, Oleksandr Mostovenko
Fwdays
 
May the blocks be with you – How to Integrate Crypto Payments Without Stress ...
Fwdays
 
Від KPI до OKR: як синхронізувати продажі, маркетинг і продукт, щоб бізнес ре...
Fwdays
 

Recently uploaded (20)

PDF
Techniques for Automatic Device Identification and Network Assignment.pdf
Priyanka Aash
 
PDF
Cyber Defense Matrix Workshop - RSA Conference
Priyanka Aash
 
PDF
A Constitutional Quagmire - Ethical Minefields of AI, Cyber, and Privacy.pdf
Priyanka Aash
 
PPTX
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC
 
PPTX
Curietech AI in action - Accelerate MuleSoft development
shyamraj55
 
PDF
10 Key Challenges for AI within the EU Data Protection Framework.pdf
Priyanka Aash
 
PDF
Securing AI - There Is No Try, Only Do!.pdf
Priyanka Aash
 
PDF
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik
 
PPTX
You are not excused! How to avoid security blind spots on the way to production
Michele Leroux Bustamante
 
PDF
cnc-processing-centers-centateq-p-110-en.pdf
AmirStern2
 
PDF
Oh, the Possibilities - Balancing Innovation and Risk with Generative AI.pdf
Priyanka Aash
 
PDF
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Safe Software
 
PDF
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Nilesh Gule
 
PDF
2025_06_18 - OpenMetadata Community Meeting.pdf
OpenMetadata
 
PDF
The Growing Value and Application of FME & GenAI
Safe Software
 
PDF
WebdriverIO & JavaScript: The Perfect Duo for Web Automation
digitaljignect
 
PDF
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
caoyixuan2019
 
PDF
AI Agents and FME: A How-to Guide on Generating Synthetic Metadata
Safe Software
 
PDF
Quantum AI: Where Impossible Becomes Probable
Saikat Basu
 
PDF
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
revolcs10
 
Techniques for Automatic Device Identification and Network Assignment.pdf
Priyanka Aash
 
Cyber Defense Matrix Workshop - RSA Conference
Priyanka Aash
 
A Constitutional Quagmire - Ethical Minefields of AI, Cyber, and Privacy.pdf
Priyanka Aash
 
OpenACC and Open Hackathons Monthly Highlights June 2025
OpenACC
 
Curietech AI in action - Accelerate MuleSoft development
shyamraj55
 
10 Key Challenges for AI within the EU Data Protection Framework.pdf
Priyanka Aash
 
Securing AI - There Is No Try, Only Do!.pdf
Priyanka Aash
 
Raman Bhaumik - Passionate Tech Enthusiast
Raman Bhaumik
 
You are not excused! How to avoid security blind spots on the way to production
Michele Leroux Bustamante
 
cnc-processing-centers-centateq-p-110-en.pdf
AmirStern2
 
Oh, the Possibilities - Balancing Innovation and Risk with Generative AI.pdf
Priyanka Aash
 
Using the SQLExecutor for Data Quality Management: aka One man's love for the...
Safe Software
 
Enhance GitHub Copilot using MCP - Enterprise version.pdf
Nilesh Gule
 
2025_06_18 - OpenMetadata Community Meeting.pdf
OpenMetadata
 
The Growing Value and Application of FME & GenAI
Safe Software
 
WebdriverIO & JavaScript: The Perfect Duo for Web Automation
digitaljignect
 
Tech-ASan: Two-stage check for Address Sanitizer - Yixuan Cao.pdf
caoyixuan2019
 
AI Agents and FME: A How-to Guide on Generating Synthetic Metadata
Safe Software
 
Quantum AI: Where Impossible Becomes Probable
Saikat Basu
 
ReSTIR [DI]: Spatiotemporal reservoir resampling for real-time ray tracing ...
revolcs10
 

Евгений Напрягло ".NET Framework Hosting API Overview"