Мастер-класс по нутрям .Net Framework

сегодня в 16:17

cdf96fb16522f5f5aa2e43cbc097d546.png Прежде всего хочу отметить что я имею ввиду под internals. В данном случае я имею ввиду именно внутренние структуры данных .Net Framework. Ведь, находясь под его опекой, что мы видим? Стройную архитектуру классов, строгую типизацию, настройки безопасности. И все вроде как автомагически работает и не надо ни о чем задумываться. И вроде как даже прекрасно. Но вы по сути, находитесь в Матрице. В Матрице, о законах которой вы знаете только понаслышке. Что GC работает именно так, вам сказали. Но Вы ведь не уверенны что это именно так? Так вот если продолжать метафору, курс направлен на программный выход из Матрицы. Прослушав курс, проделав прямо на месте практические задания, вы научитесь выходить из .Net средствами .Net. Менять структуру типов .Net не прибегая к рифлексии. Вмешиваться в процесс многопоточности, и проделывать по-настоящему шаманские вещи -)

Я очень надеюсь, что программа Вам очень понравится, т.к. по сути — это результат собственных исследований, и все что тут есть, нагуглить не получится :)

Программа мастер-класса Основы управления памятью в .Net и не только Small Objects Heap/Large Objects Heap Thread Stack, High / Low Frequency Heaps, Code Heap, Stubs Heap Ephemeral Segments Pages, Memory mapped files Как устроены объекты в памяти Как устроен любой Object? Что он содержит? MethodTable EEClass Son Of Strike (SOS) расширение отладчика для просмотра внутренностей объектов .Net Основные команды отладчика Рассмотрим что в реальности представляют из себя объекты в памяти Считаем sizeof () любого .Net типа (стандарнтый sizeof считает только по Value типам) Практика: базовые трюки Получаем указатель на объект.Net, исследуем его реальную структуру Практически интересный пример: передаем объекты между AppDomains без сериализации: без накладных расходов. Практически интересный пример: загружаем сборку так что ее типами можно пользоваться в текущем домене, но при этом ее можно отгрузить. Немного развлечемся: создадим RefType экземпляр на стеке Что такое Исключение? Какие структуры данных создаются при написании try/catch/finally? Как их получить и как ими управлять? Почему исключение безошибочно пробрасывается через методы, которые не поддерживают исключения? Помещаем в цепочку свой обработчик, который будет просто слушать все что через него идет. Вручную, без catch перехватываем исключение Как реализуется catch (){ throw; } Практика: продвинутые трюки Разрабатываем класс для выделения .Net объектов вне .Net памяти (вне SOH/LOH) Пишем пул объектов вне .Net памяти Вызываем конструктор по указателю — избавляемся от тормозов рефлексии Практически интересный пример: Создаем прокси-тип, подменяя указатели на скомпилированные тела методов Практически интересный пример: Пишем ядро Memory Profiler«а — делаем дамп виртуальной памяти с распознанием .Net объектов в ней. Создадим тип вручную прямой генерацией внутренних структур CLR (таблиц виртуальных методов и интерфейсов) Практичеcки интересный пример: Расшарим .Net объект между процессами (через использование Paging файла) Практичеcки интересный пример: Пишем метод fork (): метод, создающий поток, который стартует с того же места, на котором был вызван fork (ветвление потоков) — C++/CLI/asm Когда и где?

16-го мая, в Пятницу, с 18:00 до 23:00, Москва, 1-й Волоколамский проезд, д. 10, стр. 3. Так что если отпрашиваться с работы, то совсем не на долго. Если будет много регистраций, то вторую часть проведем в субботу. Тут все welcome: пишите на почту, кому когда удобнее (sunex.development@gmail.com) Страница регистрации:

Что от вас надо:

Прийти с ноутбуком и установленной Visual Studio. Я вам на почту скину перед началом ссыль на DropBox или Google Drive с файлами (будет MSIL, C++/CLI, которые писать долго без подготовки, а потому — можем все не успеть). Их — надо будет скачать и проверить.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.

© Habrahabr.ru