вторник, 26 февраля 2013 г.

Вернёмся к Data Flow, теперь на C#

Некоторое количество заметок назад я рассказывал о шаблоне многозадачного программирования Data Flow и демонстрировал пример его реализации на C++ с помощью библиотеки Asynchronous Agents Library (AAL). Пришла пора ещё раз вспомнить об этом шаблоне: дело в том, что с недавних пор его реализация стала доступной для платформы .NET.

понедельник, 26 ноября 2012 г.

Добавим к C# немного PowerShell`а

Как я уже описывал тут и тут, мы избрали PowerShell в качестве языка для разработки сценариев управления инфраструктурой. Дело осталось за малым – научиться вызывать PowerShell скрипты из серверного приложения, написанного на C#.

понедельник, 3 сентября 2012 г.

Особенности управления крупной инфраструктурой. Переход

Замена ключевого компонента системы никогда не бывает безболезненным: всегда приходится идти на компромиссы, чем-то жертвовать, что-то доделывать. Принимаемые решения всегда балансируют между двумя противоположными целями: сделать правильно и добиться обратной совместимости, чтобы минимизировать потери времени и не навредить стабильности продукта. В итоге новый компонент частично обретает черты старого, где-то вынужденно повторяет его ошибки. Это неизбежная плата за возможность наиболее безболезненным образом исправить некоторый фатальный недостаток старого компонента, из-за которого и был затеян весь переход. Не стал исключением и наш Windows Provisioning Engine, о котором я начал рассказывать в прошлый раз. Если сравнить его с Microsoft Provisioning System, то можно обнаружить много общего.

четверг, 9 августа 2012 г.

Современные подходы к параллельной разработке

В разработке современных приложений параллельное программирование играет наиважнейшую роль не только на стороне серверного, но и на стороне клиентского ПО. Писать многопоточные приложения могут многие, многозадачные - единицы. Лекция посвящена обзору основных техник и шаблонов параллельной разработки, применяемых в промышленном программировании, и немного облегчающих рядовому программисту задачу написания эффективных многозадачных приложений.
Именно этой теме была посвящена моя очередная лекция на летней школе Parallels. И хотя она составлена по мотивам более ранних заметок из этого блога, возможно кому-нибудь подобная комиляция материала может показаться весьма поленой.

вторник, 3 июля 2012 г.

Особенности управления крупной инфраструктурой. Начало

При разработке контрольной панели управляющей крупной сетевой инфраструктурой и автоматизирующей такие рутинные сценарии, как: создание организационных единиц в Active Directory или подготовка почтовых ящиков пользователям, приходится сталкиваться с множеством оптимизационных задач. В новом цикле, открываемом этой заметкой, я расскажу об одном решении, применяемом нами в Parallels Automation, позволяющем справиться сразу с несколькими проблемами подобного рода.

среда, 18 апреля 2012 г.

Асинхронно в WinAPI. Продолжение

Нет ничего сложного в том, чтобы отправить потоку асинхронное сообщение длинной в пару байт. Гораздо интереснее проделать этот же трюк с неограниченным объёмом информации. Итак, цели прежние: организовать асинхронное взаимодействие между потоками с минимальным количеством блокировок. Лишь немного изменились условия: теперь сообщение – это строка произвольной длинны.

понедельник, 19 марта 2012 г.

Асинхронно в WinAPI. Начало

Различные средства параллельного программирования от библиотек вроде Concurrency Runtime до специализированных языков вроде Erlang предоставляют такую типовую операцию, как отправка асинхронного сообщения потоку. А каким образом можно реализовать эту возможность, опираясь только функционал WinAPI. Попробуем разобраться.