WCF. Расширение OperationContext.

14.07.2010

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

WCF предоставляет средства расширения, которые позволяют добавлять свои
расширения к некоторым инфраструктурным элементам. Подробнее про расширяемость
WCF можно
почитать  тут
. Расскажу о том, как привязать к OperationContext свой
собственный контекст выполнения.

Шаг 1. Реализовываем класс-расширение.

Для реализации
класса, который будет хранить наш контекст, необходимо реализовать интерфейс IExtension.
Данный интерфейс позволяет расширять возможности некоторых инфраструктурных
элементов WCF, например, OperationContext. Реализовать необходимо два метода:
Attach и Detach.

1: using System.ServiceModel;
2:
3: namespace ContextExtentionSample
4: {
5:   public class ContextExtention  : IExtension<OperationContext>
6:   {
7:     // custom data... 
8:
9:     #region IExtension<OperationContext> Members
10:
11:     public void Attach(OperationContext owner)
12:     {
13:       // attach to OperationCompleted to destroy context 
14:       owner.OperationCompleted += new  EventHandler(delegate (object  sender, EventArgs args)
15:       {
16:         this.Detach((OperationContext)sender);
17:       });
18:     }
19:
20:     public void Detach(OperationContext owner)
21:     {
22:       // free context data 
23:     }
24:     #endregion 
25:   }
26: }

Шаг 2. Реализовываем привязку к OperationContext.

При инициализации вашего контекста необходимо означить контекст для
OperationContext.

1:ContextExtention  extention;
2:extention = new ContextExtention(user.Id, gropIds);
3:OperationContext.Current.Extensions.Add(extention);

Шаг 3. Использвование контекста.

Получить контекст достаточно просто, для этого необходимо просто обратиться к
OperationContext следующим образом:

1:OperationContext.Current.Extensions.Find<ContextExtention >()

Интересный факт

12.05.2010

Когда Александр Дюма писал «Трёх мушкетёров», в контракте с издателем была оговорена построчная оплата рукописи. Для увеличения гонорара Дюма придумал слугу Атоса по имени Гримо, который говорил и отвечал на все вопросы исключительно односложно, в большинстве случаев «да» или «нет». Продолжение романа под названием «Двадцать лет спустя» оплачивалось уже пословно, и Гримо стал чуть более разговорчивым.

http://muzey-factov.ru/

Posted via email from Комуникликабельность

Upload в Google Chrome

15.04.2010

Сегодня увидел вот такую замечательную панельку в Google Chrome. Появляется она в момент подгрузки с клиента на сервер (upload) какого либо файла. Может быть такое же есть и в других браузерах, просто я не замечал, но мне такая штука очень понравилась. Позволяет оценить когда отработается загрузка файлика.

Posted via email from Комуникликабельность

Не сдаваться!!!

14.04.2010

Плач математика и …

02.04.2010

«Если хочешь построить корабль, то не собирай людей для того, чтобы валить сосны, распиливать стволы на доски и сколачивать доски вместе… Прежде всего научи людей любить море».

By Вика Придатко – HR-Maverick :)

Начал вчера читать перевод эссе Пола Локхарда «Плач математика» (Paul Lockhart. A Mathematician's Lament) . Каюсь, еще не осилил до конца, а поделиться уже хочется.

Как математику (бывших не бывает, поэтому без приставки) стало интересно. Многие мысли сошлись с моими, многие разошлись. Вообще по жизни встречал два типа математиков (людей): «непризнанный гений» и «прикладной трудяга». Один получается из бунтарей, второй из «смирившихся». Кто лучше – хз. Может и тут нету черного и белого.

Однако одна мысль затронула глубже остальных: «Математическое творчество в школах умирает…».

Posted via email from Комуникликабельность

Ляпис Трубецкой – Капитал

29.03.2010
Êàïèòàë by Ëÿïèñ Òðóáåöêîé  
Download now or listen on posterous

lyapis_trubeckoy_-_kapital.mp3 (3139 KB)

Я ем на обед золотые слитки

Бриллиантовый десерт, нефтяные сливки

Мне имя Вельзевул – хозяин стратосферы

Я нереальный кул – мой респект без меры

Припев:

В левой руке – “Сникерс”, в правой руке – “Марс”

Мой пиар-менеджер – Карл Маркс

В левой руке – “Сникерс”, в правой руке – “Марс”

Мой пиар-менеджер – Карл Маркс

Капитал! Капитал! Капитал! Капитал!

Я ем города, морями запиваю

Моя борода небо заслоняет

Гром и молнии, туманы и дожди

Мои ботинки лижут министры и вожди

Припев

В левой руке – “Сникерс”, в правой руке – “Марс”

Мой пиар-менеджер – Карл Маркс

Мое лицо – Мадонна, внутри из тухлых груш

Все на колени! Оркестр, туш!

Капитал! Капитал! Капитал! Капитал!

Posted via email from Комуникликабельность

Simple Text? No, Text 2.0!

29.03.2010

С приходом 2.0. даже простой текст меняется. Он подсказывает, адаптируется, переводит… интересно, а когда текст будет думать за нас?…

Кростпост с ECM-Journal http://www.ecm-journal.ru/blog/post/Chem-stanet-tekst.aspx.

Posted via email from Комуникликабельность

Начал пользоваться posterous…

22.03.2010

Начал пользоваться бесплатным сервисом/блогом posterous. Интересный сервис с точки зрения такого человека как я, человека, у которого есть несколько ресурсов для размещения своих блогов. Сервис позволяет как размещать статьи у себя, так и сразу же постить их на ресурсы самых популярных платформ. На картинке можете посмотреть куда именно можно постить статьи. Сразу скажу что при посте в твиттер уходит только название статьи  и ссылка на нее даже если пост влезает в ограничения твиттера.

Вот примерно какая карта по распространению контента получилась у меня:

Очень удобно оказалось постить через почту. Раньше думал что удобней обычного редактора, который умеет размещать записи напрямую быть ничего не может. Оказывается есть. Только наверное потом наткнусь на какие нить ограничения, например выкладывание файлов или большие размеры постов с картинками не будут проходить по почте.

Если кто то заинтресовался, то вэлкам на мой новый ресурс heeepi.posterous.com, добавляйтесь в подписчики, читайте мои бредовые статьи.

Posted via email from Комуникликабельность

Мужчины не плачут …

21.03.2010

Будет удача, Жека, ты знаешь,

Не может иначе быть,

Солнце раскроет свои объятья,

Ох ох ох и можно плыть…

Ляпис Трубецкой – Мужчины не плачут.

Posted via email from Комуникликабельность

Сказочные метрики от Eldar Musayev

21.03.2010

Наткнулся сегодня на отличный блог of Eldar Musayev. Называется Метрики при разработке кода. Рекомендую всем прочитать до конца. Оказывается метрики это не такая уж и полезная штука и порой они только тормозят развитие и служат показателями проблем в организации.

Особенно вдохновила следующий сказочный пример:

Представьте себе сказочного принца, решившего спасти сказочную принцессу. Явилась она ему в "видении"… Одна беда – он понятия не имеет где она, как туда добраться, сколько драконов окажется по дороге, и прочие мелочи, делающие жизнь интересной и непредсказуемой. Причем непредсказуемой оказывается не только жизнь, но и время и денежные затраты, требующиеся для миссии, что совершенно не устраивает папу-короля, которому нужно только чтобы его балбес в предсказуемый срок и с предсказуемыми затратами притащил особу женского пола, которую можно будет выдать замуж за принца и посадить королевой, когда придет их время. И начинается процесс планирования с метриками и прочими причандалами управления проектами спасения сказочных принцесс.

Во-первых, "открытый поиск" не входит в планы королевства, так что требуется спецификация. Спецификация, как обычно, включает задачу минимум и задачу максимум. В качестве задачи максимум записываются смутные воспоминания принца о его видении или там сновидении, а в задачу минимум вставляется упомянутое выше описание короля. Дальше начинается планирование work items – промежуточных задач, и milestones – этапов проекта для достижения результата.

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

С маршрутом оказывается, что практически все принцы (и царевичи) начинали с первого этапа – визита к Бабе-Яге, благо маршрут хорошо известен. Правда, проходит он по соседнему королевству-царству-государству, так что создается еще одна группа, занимающаяся отношениями с партнерской командой, но в остальном первый этап выглядит неплохо и достаточно ясно.

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

К сожалению, драконов никто из менеджеров в глаза не видел, а допустить плохо определенный термин при планировании просто недопустимо. В результате задача второго этапа формулируется как "Добраться до места, указанного Бабой-Ягой. Сразить мечом животное, на которое укажет Баба-Яга." Правда, "место, указанное Бабой-Ягой" звучит несколько неопределенно, так что в задачу принцу так же ставится добиться, чтобы "указанное место" было в пределах X дней пути. По поводу величины X разворачивается длительная дискуссия, приводящая к тому, что после времени затраченного на дискуссию, на X остается не более одного дня.

Этап три в этом случае уже совсем простой. Есть правда проблема с определением принцессы, поскольку ни в одной сказке ни одна принцесса не размахивала сертификтом о королевском рождении, но все сказки описывали другой признак, которым обладали принцессы. Таким образом и третий этап формулирется достаточно точно и предсказуемо.

В результате такого планирования получается техническое задание для принца:

Этап 1. Добраться до избушки Бабы-Яги.

Этап 2. Добраться до животного, на которое укажет Баба-Яга (убедить Бабу-Ягу указывать на зверя не далее одного дня пути, либо предварительно найти такого самостоятельно) и сразить его.

Этап 3. Жениться на особе женского пола, которую охраняло сраженное животное и привезти ее обратно в королевство.

В общем, вы уже поняли, что женится наш принц на внучке Бабы-Яги, сразив козла, которого та пасла на лужайке огородом.

Posted via email from heeepi's posterous

14.03.2010

«Я медвежонок с маленьким мозгом. Длинные слова меня только расстраивают!»

Винни-Пух

Психоделичная картинко

25.01.2010

optical

А веть она не движется …

Переезды…

18.01.2010

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

Разработчик или кодировщик?

28.12.2009

Мысль эта крутится в моей голове уже давно и для себя я уже давно определился кого называть разработчиком, кого программистом, в кого кодером. Спасибо коллегам, которые подкинули статью в блоге Сергея Мартыненко 255 ступеней. Публикация называется Кодировщик или разработчик?.

Несколько вырезок из статьи:

Мое предположение:

  1. Те, кто занимаются только написанием кода – “кодировщики”.
  2. Те, кто занимаются всеми или большей частью работ в секторе, выделенном пунктирной линией – “программисты”. Какой же программист не может проверить требования или свой собственный код? Это не программист. Это кодер.
  3. Термин “разработчик”. Здесь, пожалуй, самое сложное. На мой взгляд, под этим термином следует понимать всех людей выполняющих какие либо виды работ по разработке портала. А их отличие от обычных узкоспециализированных специалистов вроде кодировщика, аналитика, верстальщика, копирайтера – то, что они выполняют несколько видов работ.

У меня мнение было несколько котигоричнее. Есть только разработчик и кодер. Вот как их делить:

  • Кодер – это пишущая машинка. Он умеет только реализовывать простые механизмы согласно готовому проекту.
  • Разработчик – человек, который помимо простого кодинга занимается вещами несколько более «творческими». Разработка архитектуры, тезпроектированием, проработкой детального проекта и т.д.

А как бы вы определили термины «кодировщик», «программист» и «разработчик»?

Переходи на темную сторону, у нас есть печеньки

12.12.2009

6rs3zqqoqdb3