WCF

WCF, Dictionary<string,object>, int[]

18 April 2011 |

Задали вопрос – не передаётся объект типа Dictionary<string,object>, к примеру int[8] – рефлекторно ответил – расставьте для всех типов которые могут передаваться в object атрибуты KnownType и всё заработает. Не заработало, проблема носит локальный характер, т.е. с List<object> таких трудностей не возникает. Каких-то разумных способов решения не нашел, но к счастью есть хитрый обходной способ решения проблемы: в класс контейнер содержащий свойство типа Dictionary<string,object>(без класса контейнера не обойтись) нужно добавить Fake свойство типа object и тогда прокси будут строится правильно и всё заработает. [DataContract] [KnownType(typeof(int[]))] public class CompositeType { [DataMember] public object UsedForKnownTypeSerializationObject; [DataMember] public string StringValue { get; set; } [DataMember] public...

jQuery + Jsonp + WCF

07 December 2008 |

Недавно была статья о том как можно дома развернуть Web сервер, даже если у вас нет статического IP адреса. Имея такую возможность сразу возникает желание применить её на практике. Есть небольшая база, в которую записываю высказывания/афоризмы, если они показались мне любопытными. Идея заключается в том, чтобы каждый раз при загрузке страницы блога, случайным образом отображался один из афоризмов. Начальные условия таковы: есть блог который ведется на blogspot (Google), у меня есть доступ на уровне формирования страницы HTML + JavaScript, с другой стороны домашний Web сервер. Напрашивается решение построенное на технологии AJAX, все выглядит просто. Имея такие предпосылки переходим к практике....

WCF: MaxReceivedMessageSize And Message Logging

10 September 2008 |

В WCF для WSHttpBinding есть ограничение на размер сообщения (MaxReceivedMessageSize), очень вероятно, что в работе Вы столкнётесь с этом ограничением. По умолчанию ограничение на размер сообщения 65,536, сделано это для того, чтобы затруднить DoS атаки. Это всё хорошо, и замечательно, но столкнувшись с этим ограничением у Вас сразу возникнет вопрос: на сколько увеличить допустимый размер сообщения? Чтобы разумно ответить на него, необходимо сначала понять, какого размера сообщения у Вас реально ходят. Наилучший способ, который я обнаружил это использовать механизм Message Logging. В моём случае анализ логов привёл к необходимости искать компромисс, между сокрытием алгоритмов на сервере и размером сообщений. Большое...

WCF In Demo & Prototype

27 August 2008 |

Большинству известно, а остальные догадываются, что переделывать клиент-серверное приложения в 3-х уровневое значительно сложнее, чем если сразу делать 3-х уровневое. Но на начальных этапах проекта хочется, чтобы эволюционный прототип или демо версия выглядела, как одноуровневое или хотя бы двухуровневое. Почему, чтобы проще развёртывать было, чтобы не ставить серверную часть, не настраивать IIS или какой-нибудь другой host для Application Server-а. Чтобы было просто передать эту версию заинтересованному лицу и она легко запустилось, без установки. В итоге задача сводиться к тому, чтобы наименее трудозатратно, надёжно и просто хостить WCF сервер в клиентском приложении, при этом по честному, чтобы как только так сразу...

WCF Exception Handler

08 February 2008 |

WCF пришёл и никуда уже не уйдёт. К сожалению практики работы с ним нет, а необходимость понимания и умения очевидна. Время от времени приходил вопрос в голову, как в WCF обрабатываются исключения. Но времени и повода специально ознакомится с этим вопросом не было. И вот наткнулся на статью которая просто и доходчиво освещает этот вопрос. Не очень глубоко, как раз то, что надо знать, для общего образования. Сайт gotdotnet.ru сам по себе не нравится но статья хорошая, тут ничего не скажешь. В общем советуем.

WCF Eventing in practice

06 January 2008 |

В одной из предыдущих заметок описывались новые возможности WCF. Eventing - позиционировалось как самая революционная feature WCF. Для того чтобы быстро и просто перейти от теории к практике, достаточно ознакомиться со статьей. На практике в представленную в статье модель организации работы с событиями, полезно будет добавить, понятие sender и фильтры. Sender - отправитель события, это может быть комбинация из идентификатора машины, идентификатора приложения и идентификатора метода/компонента из которого вызвано это событие. Эта служебная информация унифицирована для всех событий и может быть использована для фильтрации событий на уровне сервера и для обработки событий на клиенте. Фильтры. В стандартной модели подписчик подписывается...

WCF New Opportunity For Architecture

25 December 2007 |

Как выглядит типовая архитектура информационной системы уровня предприятия. Это сервер/а баз данных, сервер приложений и клиенты. Взаимодействие между клиентом и сервером приложений происходит обычно в режиме SingleCall. Это обусловлено двумя факторами, существующие технологии (WebService, EnterpriseSerivces/COM+) способствуют этому и требования к масштабируемости, чтобы клиенту было все равно к какому физическому серверу обращаться. Что может измениться с приходом технологии WCF. В общем то с концептуальной точки зрения в архитектуре приложения не так много изменений должно произойти. Требования к масштабируемости останутся, режим SingleCall по прежнему будет доминировать. Проще будет поддерживать транзакционность, безопасность, надежность, да конечно, но это детали. Единственно что может и должно...

WCF Async Call and Proxy Lifetime

11 December 2007 |

Microsoft утверждает, что WCF это просто, легко и удобно. Оно конечно так, только всегда надо помнить по сравнению с чем, с WS-* да конечно. На сам по себе это большой и сложный framework, понимание которого не есть легко и просто. Здесь мы рассмотрим простейший пример использования WCF. Опыта работы с WCF у меня нет никакого, так что какие то выводы, утверждения заключения могут быть ложны, не точны или просто глупы, доверять здесь можно только фактам, а не их интерпретации. СерверСерверная часть состоит из одного сервиса, с одним методом, который возвращает строку. Метод выполняется эмулирует долгую операцию (выполняется 10 секунд). Настройки...