31 окт. 2013 г.

Application Pool Identity и раздача прав на доступ к файлам

Начиная с версии IIS 7.5 пул приложения по умолчанию запускается от имени AppPoolIdentiy. Это было сделано для улучшения реализации принципа изоляции процессов путем использования отдельных учетных записей, генерируемых для каждого пула приложения.
Теперь, для того, чтобы дать пулу приложения права на доступ к файловой системе, необходимо использовать пользователя IIS AppPool\<app_pool_name>. Это же имя можно использовать в MS SQL сервере для организации доступа к базе данных.

30 окт. 2013 г.

DI: в чем плюсы внедрения зависимостей через конструктор

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

24 окт. 2013 г.

Отслеживание кликов на кнопки соцсетей в GA

Напоминалочка. Периодически всплывает такая задача: - Хочу считать в Google Analytics нажатия на кнопки социальных сетей. Зафиксирую решение для facebook, twitter и ВК, чтобы в следующий раз не искать.
Для GooglePlus код работает по умолчанию из коробки. Для прочих соцсетей потребуется небольшая доработка скриптов.

23 окт. 2013 г.

О заказчиках, требованиях и защите от дурака

Есть проекты, где мы обрабатываем данные, поступающие извне системы. Приходят они разными способами: из сторонней системы через специальный интерфейс, импортируются из Excel\CSV\TXT-файлов, забиваются руками.
Каждый раз встает вопрос о корректности входных данных, и каждый раз приходится слышать: "Вы же профессионалы, вы же могли предусмотреть защиту от дурака? Можно же подстелить соломку? Не надо ссылаться на зафиксированные требования о формате/допустимых значениях данных - мы живем в реальном мире, и жизнь часто непредсказуема".

20 окт. 2013 г.

Падение тестов в MSTEST

Обнаружили несколько странных проблем с выполнением Unit-тестов в Visual Studio.
Вначале при запуске тестов на Win7-64 студия перезагружалась.
Потом возникла проблема, что часть тестов при запуске стала падать. В режиме пошаговой отладки выполняется, при запуске всех тестов или только текущего - падает.
Дальше - хуже. Внесли изменения в сигнатуру нескольких методов, изменили тесты, пересобрали проект - и получили кучу красненьких кружочков. Особенно обрадовало сообщение об ошибке "System.MissingMethodException: Method not found:"
Вылечилось снятием галочки "Code Coverage" на панели "Data and Diagnostics" в настройках тестирования проекта.

Зачем этот блог

Иногда возникают задачи, которые требуют затрат времени на решение. А потом, спустя какое-то время, они возникают снова, - либо у тебя, либо у коллег. И ты снова тратишь время на копание в старом коде, либо на поиске в интернете.
Иногда коллеги задают вопрос, ответ на который хотелось бы донести до большого числа людей, - и ты пишешь всем письмо, которое со временем теряется в папке "Входящие".
Этот блог в первую очередь предназначен тем, кто работает со мной и содержит то, что нужно нам при работе.