.NET / Мой опыт с AOP и PostSharp
2011-07-01 20:04:03
Давным-давно я достаточно хорошо исследовал PostSharp и даже начал использовать его в своих ...
+ развернуть текст сохранённая копия
Давным-давно я достаточно хорошо исследовал PostSharp и даже начал использовать его в своих разработческих целях. Умудрился даже написать скринкаст и пару-тройку статей на эту тему. К сожалению, с PostSharp’ом у меня в последствии совсем не сложилось и, по причинам периодических воспросов со стороны комьюнити на тему “как? почему?”, я решил написать этот пост чтобы расставить все точки над i.
Если интересно...
Тэги:
aop,
csharp,
dotnet,
postsharp
WCF Proxy tunnel
2011-06-15 16:37:21
Ниже расскажу о реализации проброса WCF запросов от одного сервера через несколько промежуточных, ...
+ развернуть текст сохранённая копия
Ниже расскажу о реализации проброса WCF запросов от одного сервера через несколько промежуточных, так называемый wcf tunneling, вопрос о реализации которого уже поднимался на gotdotnet.ru. Там автор предлагал использовать Castle.DynamicProxy для динамической генерации прокси-классов для создания канала. Однако комментаторы отметили, что полученный функционал дублирует лишь стандартные возможности при прямом взаимодействии точка-точка.
Актуальность приобретается, когда добавляется набор промежуточных точек. При этом на клиенте идет перехват вызова произвольной удаленной функции FuncName на вызов абстрактной функции object _DataTransfer(HeaderAuthen auth, object ServiceLink, object FuncName, object[] param); Далее обращение транслируется через серию промежуточных машин и в итоге обращение передается на ServiceLink, где обрабатывается. Также возвращается результат. Грубо говоря примитивный функционал Biztalk своими руками по передачи soap сообщений в многосвязной сети. Кроме того мы без ведома пользователя накладываем на канал защиту через HeaderAuthen auth.
Отдельно выкладываю реализацию класс DynamicServiceProxy и ServiceChannelManagerInterceptor, подменяющие вызов, а также сам вызов в ServiceChannelManager. Соответственно все закладывается в библиотеку, которая должна быть на всех точках, а на туннельных-промежуточных точках еще и реализуется Контранкт, в котором важно описать передаточную функцию _DataTransfer, все функции на конечных точках, а также все классы и типы через KnownTypeContainer. Также важно включить сериализатор XmlSerializerFormat, так как по умолчанию в WCF используется DataContractSerializer, которых не позволяет передавать object. То есть вызовы проходить будут, а данные - нет. Кроме того у XmlSerializerFormat тоже есть особенность, кто нельзя передать некоторые стандартные типы, например, DataSet как параметр, так как в них используется нетипизированный ArrayList. Вот пожалуй и все, что нужно знать.
Тэги:
code,
csharp
JavaScript / Компилятор .NET в JavaScript и пример XNA-демо в браузере
2011-06-04 11:07:52
Разработчик Kevin Gaad, который судя по его профилю работает в компании Mozilla, представил свою ...
+ развернуть текст сохранённая копия
Разработчик Kevin Gaad, который судя по его профилю работает в компании Mozilla, представил свою разработку – компилятор .NET(C#) кода в JavaScript. Для демонстрации работоспособности библиотеки Кевин опубликовал портированный пример демонстрационного проекта игры на базе XNA 3.1.
Игра работает в браузерах IE9+, Firefox 4+, and Chrome 11. Разработчик пишет, что Opera не поддерживается из-за проблем браузера с ECMAScript5 и в Chrome 12 и 13 есть баги, которые мешают нормальной работе.
Проект компилятора с открытым кодом доступен на сайте GitHub. Разработчик сделал анонсы своей работы на Hacker News и Reddit, где можно ее прокомментировать. Кроме того, демонстрационный проект с игрой доступен здесь: Platformer.zip.
Выглядит впечатляюще.
Тэги:
csharp,
javascript,
net,
xna