.NET → Измеряем производительность с помощью DynamicObject
С динамическими типами данных сложилась ситуация, схожая с АОП. А именно – полезных примеров применения этой техники можно пересчитать по пальцам, и они достойны коллекционирования (одна из коллекций по АОП собрана mezastel здесь). Сегодня, я надеюсь, мы добавим ещё пару таких примеров.
.NET → DynamicXml: «динамическая» оболочка для работы с XML данными
Я уже однажды писал о том, что, несмотря на мою любовь к статической типизации, в некоторых сценариях преимущества от той свободы, которую дает динамическая типизация, может превосходить связанные с ней недостатки. В прошлый раз шла речь о Dynamic LINQ, а в этот раз речь пойдет об использовании новой возможности C# 4.0 под названием dynamic, для работы с такими исходно слаботипизированными данными, как XML.
ПРИМЕЧАНИЕ
Исходный код библиотеки DynamicXml, рассматриваемой в данной статье, доступен на github
Начиная с версии 4.0, в языке C# появилась поддержка динамического программирования, благодаря новому статическому типу под названием dynamic. По сути, применение этого ключевого слова говорит компилятору сгенерировать весь необходимый код, чтобы процесс привязки (binding) и диспетчеризации вызовов (dispatch operations) производился во время выполнения, вместо определения всех этих характеристик во время компиляции. При этом компилятор генерирует весь необходимый код с помощью библиотеки DLR – Dynamic Language Runtime (*), которая была изначально создана при проектировании языка программирования Iron Python и впоследствии вошла в состав .Net Framework 4.0, как основа для реализации динамических языков программирования, а также для взаимодействия между ними.
ПРИМЕЧАНИЕ
Исходный код библиотеки DynamicXml, рассматриваемой в данной статье, доступен на github
Введение
Начиная с версии 4.0, в языке C# появилась поддержка динамического программирования, благодаря новому статическому типу под названием dynamic. По сути, применение этого ключевого слова говорит компилятору сгенерировать весь необходимый код, чтобы процесс привязки (binding) и диспетчеризации вызовов (dispatch operations) производился во время выполнения, вместо определения всех этих характеристик во время компиляции. При этом компилятор генерирует весь необходимый код с помощью библиотеки DLR – Dynamic Language Runtime (*), которая была изначально создана при проектировании языка программирования Iron Python и впоследствии вошла в состав .Net Framework 4.0, как основа для реализации динамических языков программирования, а также для взаимодействия между ними.
.NET → Динамические вызовы: сравнение методов

Динамические вызовы: что это и зачем?
Думаю, для каждого разработчика, работающим на статических языках программирования, иногда возникала необходимость прибегнуть к динамическим вызовам — вызвать метод чего-то, о чем пока еще ничего не известно. Или получить какое-то свойство у какого-то объекта, о котором будет известно только в run-time.
Это иногда используется в алгоритмах, основанных на так называемой «утиной типизации» (duck typing):
Если что-то выглядит как утка, плавает как утка и крякает как утка, то это, вероятно, утка и есть.
В данной статье я хотел бы рассмотреть основные доступные в Microsoft .NET 4.0 способы, сравнить их производительность и синтаксис.
.NET → Знакомимся с DynamicObject
DynamicObject – это как раз такая фича, которая кажется простой и понятной, но в шаловливых ручках становится более опасной затеей.Подкасты → 12й Подкаст Петербургской Группы Alt.Net

Участники
Новые фичи C# 4.0 и .Net Framework 4.0
C# 4.0
- Опциональные и именованные параметры
- Контракты
- Ковариантность и контравариантность
- dynamic
.Net 4.0
- DLR
- IronPython
- PLINQ/TPL
- Использование interop C#/C++/OpenMP в TypograFix
Дополнительно
- Метапрограммирование в C# 5?
- Почему никто не упомянул F#?
- Квантовые компьютеры :)
- Будет ли аналог Mono.Simd?
- .Net и Embedded
Наш подкаст на RPOD и PodFM
прослушан 340 раз
ASP.NET MVC → Передача анонимных объектов в View

Идея состоит в том чтобы пользоваться моделью с новым более удобным dynamic синтаксисом. Главное ограничение тут в том, что нельзя просто передать анонимный объект как модель, потому что анонимные типы имеют модификатор доступа internal.
.NET → Вычисляем динамические выражения на C# 4.0 с помощью dynamic
Здравствуйте. Вчера я опубликовал на Хабре перевод статьи об одной из новых возможностей четвертой версии C# 4.0 – ключевого слова dynamic. В комментариях развернулась бурная дискуссия, основными мотивами которой было две вещи: производительность динамиков и область их применения. В этой статье я не буду затрагивать первый вопрос, а попытаюсь привести пример того, как новая возможность позволяет решить вполне реальную задачу за пару часов с минимальными усилиями.
.NET → Интересные вещи, которые можно делать с dynamic в .NET 4.0
В статье «Обзор C# 4.0» я обсуждал некоторые из новых особенностей четвертой версии языка C#. Так получилось, что я не рассмотрел одно из самых важных нововведений: ключевое слово dynamic.
.NET → DynamicObject, JSON и ближайшее будущее
В данной статье хочу ознакомить вас с небольшим приложением для работы с JSON данными, демонстрирующим возможности, доступные нам в .NET 4.0. Поверхностно будут рассмотрены вопросы JSON-формата, а так же работы с динамическими типами данных.
.NET → C# 4.0, и несуществующие методы
Предупреждение: Нижеследующее многие сочтут извращением с C#. Возможно конечно это и не так, но я Вас предупредил:).
В Ruby есть интересная особенность для перехвата вызовов несуществующих методов. В таких случаях Ruby вызывает метод вашего класса с названием «method_missing». Автор этого текста показывал пример этого на IronRuby в другой статье.
Для динамических языков это может быть нормой, но в статически типизированных языках такого не бывает.
Не было до текущего момента!(Барабанная дробь)
В Ruby есть интересная особенность для перехвата вызовов несуществующих методов. В таких случаях Ruby вызывает метод вашего класса с названием «method_missing». Автор этого текста показывал пример этого на IronRuby в другой статье.
Для динамических языков это может быть нормой, но в статически типизированных языках такого не бывает.
Не было до текущего момента!(Барабанная дробь)