.NET → Dispose pattern
“Не стоит следовать некоторой идиоме только потому, что так делают все или так где-то написано”
Мысли автора статьи во время чтения и рефакторинга чужого кода
Ни для кого не будет секретом, что платформа .NET поддерживает автоматическое управление памятью. Это значит, что если вы создадите объект с помощью ключевого слова new, то вам не нужно будет самостоятельно заботиться о его освобождении. Сборщик мусора определит «достижимость» объекта, и если на объект не осталось корневых ссылок, то он будет освобожден. Однако, как только речь заходит о ресурсах, таких как сокет, буфер неуправляемой памяти, дескриптор операционной системы и т.д., то сборщик мусора, по большому счету, умывает руки и весь головняк по работе с такими ресурсами ложится на плечи разработчика.
А как же финализаторы? – спросите вы. Ну, да, есть такое дело, финализаторы действительно предназначены для освобождения ресурсов, но проблема в том, что время их вызова не детерминировано, а это значит, что никто не знает, когда они будут вызваны и будут ли вызваны вообще. Да и порядок вызова финализаторов не определен, поэтому при вызове финализатора некоторые «части» вашего объекта уже могут быть «разрушены», поскольку их финализаторы уже были вызваны. В общем, финализаторы – они-то есть, но это скорее «страховочный трос», а не нормальное средство управления ресурсами.
Мысли автора статьи во время чтения и рефакторинга чужого кода
Ни для кого не будет секретом, что платформа .NET поддерживает автоматическое управление памятью. Это значит, что если вы создадите объект с помощью ключевого слова new, то вам не нужно будет самостоятельно заботиться о его освобождении. Сборщик мусора определит «достижимость» объекта, и если на объект не осталось корневых ссылок, то он будет освобожден. Однако, как только речь заходит о ресурсах, таких как сокет, буфер неуправляемой памяти, дескриптор операционной системы и т.д., то сборщик мусора, по большому счету, умывает руки и весь головняк по работе с такими ресурсами ложится на плечи разработчика.
А как же финализаторы? – спросите вы. Ну, да, есть такое дело, финализаторы действительно предназначены для освобождения ресурсов, но проблема в том, что время их вызова не детерминировано, а это значит, что никто не знает, когда они будут вызваны и будут ли вызваны вообще. Да и порядок вызова финализаторов не определен, поэтому при вызове финализатора некоторые «части» вашего объекта уже могут быть «разрушены», поскольку их финализаторы уже были вызваны. В общем, финализаторы – они-то есть, но это скорее «страховочный трос», а не нормальное средство управления ресурсами.
C++ → Использование паттерна синглтон из песочницы
Введение
Многие уже знакомы с таким термином, как синглтон. Если описать вкратце, то это — паттерн, описывающий объект, у которого имеется единственный экземпляр. Создать такой экземпляр можно разными способами. Но сейчас пойдет речь не про это. Я также опущу вопросы, связанные с многопоточностью, хотя это очень интересный и важный вопрос при использовании данного паттерна. Рассказать бы я хотел о правильном использовании синглтона.
.NET → Команде разработчиков MVVM библиотеки Prism нужна ваша помощь
В одном из недавних твиттеро-постов я отметил, что работа над библиотекой Prism приостановлена после выхода 4-й версии. В ответ на это я получил сообщения от Ade Miller (бывший дев лид в комманде patterns & practices) и от Bob Brumfield (работает в patterns & practices на проектах Prism, Enterprise Library, и Windows Phone 7 guidance).
Персональные блоги → В Москве прошла конференция Patterns & Practices Summit

В понедельник 13 сентября, в день программиста, прошла конференция Patterns & Practices Summit. Мероприятие состоялось в центре Москвы в отеле Holiday Inn на Лесной.
Для тех кто не в теме, стоит пояснить, что такое Patterns & Practices. Являясь крупнейшим разработчиком платформ для разработки программного обеспечения, Microsoft всеми средствами помогает разработчикам строить на своей платформе эффективные решения. Для этого в Microsoft создают руководства по разработке ПО для тех или иных платформ, например, SharePoint, Windows Phone 7 или для определенных задач, как например, руководства по созданию параллельных приложений в среде .NET. Кроме руководств, Microsoft выпускает инструменты разработчиков в виде библиотек кода и другой материал: лабораторные работы, реалистичные демонстрационные проекты, видео-курсы.
Большую часть материалов с рекомендациями по построению приложений в Microsoft разрабатывает группа под названием Patterns & Practices. Эта группа исследует лучшие практики по построению архитектуры приложений, написанию кода, создает многочисленные руководства и библиотеки (например, известную многим .net-разработчикам Enterprise Library). Из под пера группы постоянно выходят и публикуются книги.
Таким образом, мероприятие Patterns & Practices Summit – это еще один шаг Microsoft в попытке поделиться своим опытом и лучшими практиками разработки ПО с российскими разработчиками. Доклады на конференции читали и разработчики из группы Patterns & Practices.
.NET → Enterprise Library 5
Замечательный набор инструментов от команды patterns & practices – Enterprise Library выпущен в пятой версии. Для тех, что не знает, Enterprise Library — это архитектурные блоки, которые реализуют наиболее частые задачи при разработке программного обеспечения. Примеры таких задач: кеширование, логирование, валидация данных. Наверное, самой популярной частью библиотеки является IoC-контейнер Unity.Из названия Enterprise Library понятно, что библиотека построена самым серьезным образом и может использоваться для самых ответственных задач. Для каждого блока могут быть установлены системные счетчики производительности.
Enterprise Library — это open source проект под свободной лицензией MSPL. Исходные коды поставляются вместе с библиотекой либо их можно скачать отдельно.
Для удобного конфигурирования всех параметров каждого блока, с библиотекой поставляется удобный инструмент Enterprise Library Configuration.
Enterprise Library 5 содержит следующие блоки: Caching Block, Cryptography Block, Data Access Block, Exception Handling Block, Logging Block, Policy Injection Block, Security Block, Validation Block, Unity.
Кроме того, коммюнити-проект EntLinb Contrib содержит еще ряд дополнительных блоков и расширений.
Ссылки:
— загрузить Enterprise Library 5;
— страница проекта на codeplex.com;
— документация к пятому релизу;
— release notes к пятому релизу.
Персональные блоги → Enterprise Library 5.0 and Unity 2.0 Roadmap
На днях Григорий Мельник анонсировал план выпуска Enterprise Library 5.0 и Unity 2.0. Вся основная информация изображена на рисунке. Дополнительные комментарии можно прочитать в блоге автора. Хорошая новость состоит в том, что ждать осталось не долго.
Разработка → Книга Application Architecture Guide, Second Edition
Доступен для бесплатного скачивания финальный вариант книги Application Architecture Guide во второй редакции. Книга содержит 560 страниц разбитых на 28 больших глав. Application Architecture Guide посвящена архитектуре и дизайну ПО, как то: дизайну и разработке различных типов ПО (мобильные, web, клиентские, RIA, сервисы и облачные сервисы), организации и разработке уровней ПО (представления, бизнеслогики, данных, сервисов), созданию компонентов.
Получить книгу можно несколькими путями:
* скачать pdf (7.5 Mb);
* читать online;
* купить на Amazon;
* скачать дополнительную информацию на App Arch Guide 2.0 Knowledge Base.
Официальный анонс одного из авторов в его блоге J.D. Meier's Blog.
Получить книгу можно несколькими путями:
* скачать pdf (7.5 Mb);
* читать online;
* купить на Amazon;
* скачать дополнительную информацию на App Arch Guide 2.0 Knowledge Base.
Официальный анонс одного из авторов в его блоге J.D. Meier's Blog.
.NET → Логирование с помощью Microsoft Enterprise Library 4.1
В данной статье рассказывается как работать с блоком логирования из библиотеки Microsoft Enterprise Library 4.1. Решил разобраться после посещения Patterns & Practices Roadmap Kiev.
Загрузить Enterprise Library 4.1 можно отсюда. Помните, что кроме блока логирования устанавливается много других компонентов.
Установка Enterprise Library
Загрузить Enterprise Library 4.1 можно отсюда. Помните, что кроме блока логирования устанавливается много других компонентов.
Microsoft → Конференция для ИТ-архитекторов + сертификат на Visual Studio 2010
22 сентября в Москве состоится конференция Patterns&Practices Summit. Подобные мероприятия уже достаточно давно проводятся в разных регионах мира, однако для России это будет впервые.
Темы конференции включают разработку архитектуры приложений, Modern Data Access, Enterprise Library 5.0, Cloud Computing, Agile методологии.
Большинство докладчиков – члены команды Microsoft patterns & practices (p&p). Команда p&p – маленькая группа опытных архитекторов, разработчиков, писателей, тестеров, планировщиков продуктов и менеджеров, ответственных за разработку прикладных инженерных руководств, которые помогают архитекторам, разработчикам и их командам полностью использовать преимущества технологий на платформе Microsoft. Команда p&p выпускает руководства (guidance), которые входят в библиотеку MSDN.
В качестве бонуса — участникам вручат сертификат на получение лицензионного дистрибутива Visual Studio 2010. Обменять сертификат на дистрибутив можно будет сразу же после официального выхода продукта в России, планируемая дата – март 2010.
Вся информация — на официальном сайте конференции.
Темы конференции включают разработку архитектуры приложений, Modern Data Access, Enterprise Library 5.0, Cloud Computing, Agile методологии.
Большинство докладчиков – члены команды Microsoft patterns & practices (p&p). Команда p&p – маленькая группа опытных архитекторов, разработчиков, писателей, тестеров, планировщиков продуктов и менеджеров, ответственных за разработку прикладных инженерных руководств, которые помогают архитекторам, разработчикам и их командам полностью использовать преимущества технологий на платформе Microsoft. Команда p&p выпускает руководства (guidance), которые входят в библиотеку MSDN.
В качестве бонуса — участникам вручат сертификат на получение лицензионного дистрибутива Visual Studio 2010. Обменять сертификат на дистрибутив можно будет сразу же после официального выхода продукта в России, планируемая дата – март 2010.
Вся информация — на официальном сайте конференции.
Персональные блоги → Microsoft Object Builder
Всем привет! Это моя первая статья в Хабре. Столкнувшись сегодня в ленте на описание Java-фреймворков Spring и Tapestry, решил просмотреть Хабру и найти ценителей «конкурирующих» фреймворков от Microsoft – в частности Composite UI Application Block (CAB) и Unity. К моему удивлению, ничего не нашел. Увидев в коментах в статье про Java-фреймворки просьбу описать механизм инъекций зависимостей, решил начать свой цикл статей про .Net-фреймворки именно с разъяснения вопросов IoC. Итак, встречайте – краеугольный камень (в прошлом) замечательного движка CAB – Microsoft Object Builder.