Впереди череда выходных, на которых можно отлично и полезно провести время. И на мой скромный взгляд, когда современный человек имеет тысячи дел, отвлекающих его от возможности расширить свои знания, наличие мастер-класса будет очень полезным. Ведь это как минимум возможность прийти и не отвлекаясь на домашние хлопоты сделать что-то интересное, полезное, а главное – новое для себя.
Несколько дней назад (а кажется, еще вчера) я опубликовал анонс мастер-класса по .Net Framework Internals, который сегодня был назван CLRium. На этой мини-конференции будет показано, как работает любое .Net приложение, и как внести в .Net приложение возможности, которые не закладывались при проектировании платформы. Зачем? Каждый из вас может преследовать свои интересы. Однако, на мой взгляд, можно вывести несколько групп интересов:
Однако чем бы вы ни руководствовались, вы начнете понимать, почему в .Net Framework что-то сделано так или иначе. Откуда растут ноги не правильного подсчета count++ в разных потоках, почему сделали ThreadPool, почему есть потоки, а есть процессы… И на множество других вопросов, корни которых уходят за пределы платформы.
Я не хочу повторяться, да и не принято это на Хабре, но могу немного приоткрыть завесу того что будет.
Для примерного понимания уровня решения задач, приведу ссылку на одну из мои статей в прошлом:
Кроме того, будут освещены следующие темы:
Когда и где?
Страница регистрации:
Что от вас надо:
Картинка для затравки (после вызова CloneThread, текущий поток ветвится на два, каждый из которых идет в свою часть условия if):
До встречи!
Несколько дней назад (а кажется, еще вчера) я опубликовал анонс мастер-класса по .Net Framework Internals, который сегодня был назван CLRium. На этой мини-конференции будет показано, как работает любое .Net приложение, и как внести в .Net приложение возможности, которые не закладывались при проектировании платформы. Зачем? Каждый из вас может преследовать свои интересы. Однако, на мой взгляд, можно вывести несколько групп интересов:
- Вам очень интересно, как .Net Framework работает. Ведь если узнать как оно работает, можно понять ее сущность и начать как-то по-другому относиться в самой платформе. Без единорогов, розовых очков и фей в виде Garbage Collector’а;
- Вы хотите подтянуть знания чтобы с легкостью отвечать на собеседованиях глубже чем требовалось, тем самым забирая более оплачиваемые вакансии
- Вам интересно понять как можно легко и непринужденно взламывать .Net приложения в режиме реального времени (в, конечно же, академических целях, не нарушая законодательства и без злого умысла. Ну вы поняли)
Однако чем бы вы ни руководствовались, вы начнете понимать, почему в .Net Framework что-то сделано так или иначе. Откуда растут ноги не правильного подсчета count++ в разных потоках, почему сделали ThreadPool, почему есть потоки, а есть процессы… И на множество других вопросов, корни которых уходят за пределы платформы.
Я не хочу повторяться, да и не принято это на Хабре, но могу немного приоткрыть завесу того что будет.
Для примерного понимания уровня решения задач, приведу ссылку на одну из мои статей в прошлом:
Кроме того, будут освещены следующие темы:
- Основы управления памятью .Net/Windows/процессора
- Как устроены объекты .Net в памяти, как хранится информация о типах. Как реализовано наследование на уровне физического содержимого объектов
- Son Of Strike (SOS) расширение отладчика для просмотра внутренностей объектов .Net
- Считаем sizeof() любого .Net типа (стандарнтый sizeof считает только по Value типам)
- Передаем объекты между AppDomains без сериализации: без накладных расходов.
- Загружаем сборку так что ее типами можно пользоваться в текущем домене, но при этом ее можно отгрузить
- Как работают исключения? Вклиниваемся в процессы обслуживания исключений.
- Разрабатываем класс для выделения .Net объектов вне .Net памяти (вне SOH/LOH)
- Пишем пул объектов вне .Net памяти
- Пишем ядро Memory Profiler’а — делаем дамп виртуальной памяти с распознанием .Net объектов в ней.
- Расшарим .Net объект между процессами (через использование Paging файла)
- Пишем метод fork(): метод, создающий поток, который стартует с того же места, на котором был вызван fork (ветвление потоков) — C++/CLI/asm
Когда и где?
- 16-го мая, в Пятницу, с 18:00 до 23:00, Москва, 1-й Волоколамский проезд, д.10, стр. 3. Так что если отпрашиваться с работы, то совсем не на долго. Если будет много регистраций, то проведем в субботу повторный мастер-класс. Тут все welcome: пишите на почту, кому когда удобнее (sunex.development@gmail.com)
Страница регистрации:
- http://braingems.timepad.ru/event/120644/. Это система для бронирования. После бронирования, вам придет письмо с инструкциями, как оплатить.
Что от вас надо:
- Прийти с ноутбуком и установленной Visual Studio. Я вам на почту скину перед началом ссыль на DropBox или Google Drive с файлами (будет MSIL, C++/CLI, которые писать долго без подготовки, а потому — можем все не успеть). Их — надо будет скачать и проверить.
Картинка для затравки (после вызова CloneThread, текущий поток ветвится на два, каждый из которых идет в свою часть условия if):
До встречи!