
Ahead is a series of weekends where you can have a great and useful time. And in my humble opinion, when a modern person has thousands of cases that distract him from the possibility of expanding his knowledge, having a master class will be very useful. After all, it is at least an opportunity to come and not be distracted by household chores to do something interesting, useful, and most importantly - new to yourself.
A few days ago (and it seems yesterday) I published the
announcement of a master class in the .Net Framework Internals , which today was called CLRium. This mini-conference will show how any .Net application works, and how to add features to the .Net application that were not laid out when designing the platform. What for? Each of you can pursue your own interests. However, in my opinion, several interest groups can be derived:
- You are very interested in how the .Net Framework works. After all, if you find out how it works, you can understand its essence and begin somehow to relate differently in the platform itself. Without unicorns, rose-colored glasses and fairies in the form of a Garbage Collector;
- You want to improve your knowledge so that you can easily respond to interviews more than you need, thereby taking more paid vacancies
- You are interested in understanding how you can easily and unconditionally hack .Net applications in real time (for academic purposes, of course, without violating the law and without malicious intent. Well, you understand)
However, whatever you are guided by, you will begin to understand why something is done in the .Net Framework anyway. Where the legs grow are not the correct counting of count ++ in different threads, why ThreadPool was done, why there are flows, but there are processes ... And many other questions, the roots of which go beyond the platform.
')
I do not want to repeat, and this is not accepted at Habré, but I can slightly lift the veil of what will be.
For a rough understanding of the level of problem solving, I will provide a link to one of my articles in the past:
In addition, the following topics will be covered:
- The Basics of .Net / Windows / Processor Memory Management
- How .Net objects are arranged in memory, how type information is stored. How inheritance is implemented at the level of physical content of objects
- Son Of Strike (SOS) debugger extension for viewing the internals of .Net objects
- Consider sizeof () of any .Net type (standard sizeof counts only by Value types)
- We transfer objects between AppDomains without serialization: no overhead.
- We load the assembly so that its types can be used in the current domain, but at the same time it can be shipped
- How do exceptions work? We are wedging into the process of servicing exceptions.
- We are developing a class for allocating .Net objects outside .Net memory (outside SOH / LOH)
- Writing a pool of objects outside .Net memory
- We write the Memory Profiler core - we make a virtual memory dump with recognition of .Net objects in it.
- Sharing an .Net object between processes (using the Paging file)
- We write the fork () method: a method that creates a stream that starts from the same place where fork was called ( C ++ / CLI / asm).
When and where?
- May 16, Friday , from 18:00 to 23:00, Moscow, 1st Volokolamsky passage, 10, p. 3. So, if you take time off from work, it’s not for long. If there are many registrations, then we will hold a repeated master class on Saturday . Here everything is welcome: write to the post office, whenever it is more convenient to whom (sunex.development@gmail.com)
Registration page:
What do you need from you:
- Come with a laptop and installed Visual Studio. I will mail you to the mail before starting the link to DropBox or Google Drive with files (it will be MSIL, C ++ / CLI, which will take a long time to write without preparation, and therefore we may not be in time) They must be downloaded and checked.
The picture for the seed (after calling CloneThread, the current thread branches into two, each of which goes to its own part of the if condition):

See you!