Пространства имен в XML c привлечением .NET
Маленький рецепт на заметку: если вы желаете использовать некий XML-документ в Mono/.NET, убедитесь, что он не содержит определений дополнительных пространств имен (namespaces). Потому как попытка адресоваться по XPath-выражению в стиле //seprfeed/myns:title будет заранее обречена на неудачу.
Причина сего в том, что XML-парсеру неизвестно о пространствах имен, а, следовательно, ему надо информацию сообщить. Делается это весьма просто – создается объект класса XmlNamespaceManager, которому и указываются заветные namespaces. А затем при поиске этот объект идет параметром к вызову методов XPathNavigator.
Рецепт благополучно был найден в блоге Wayne Allen .
Flash-интерфейс для приложения
Современному ПО уже мало быть просто функциональным, необходимо еще иметь привлекательный интерфейс, причем такой, чтобы заказчики и «Вау» сказали, и пользователи потом сильно не мучились.
Существует несколько вариантов создания подобных красивостей, нами на практике применялась пара из них. Первый состоял в использовании собственных картинок поверх стандартных элементов управления в библиотеке Qt. Это само по себе извращение, поскольку Qt имеет достаточно гибкую систему стилей, которую можно использовать, но в нашем случае быстрее (а порой это очень критично) оказалось нарисовать собственные элементы управления.
Подробнее »»
Функциональный C# на практике – 4
Говорить компилятору что вам необходимо много приятнее, нежели то, так это сделать. Последнее, к сожалению, является тяжким бременем для программиста на императивных языках. Мы пытаемся понять логику машинного взаимодействия, проверяя по шагам выполнение операций, выверяя результаты и убеждаясь, что эффект от выполнения кода соответствует нашим ожиданиям. Функциональное программирование поможет нам отойти от всего этого.
Подробнее »»
Функциональный C# на практике – 3. Цикловселенское зло
Начнем, пожалуй, с небольшого задания – попробуйте объяснить, что делает следующий фрагмент кода:
1 2 3 4 5 6 7 8 9 10 11 | static void Main(string[] args) { string output = ""; if (args.Length > 0) output = args[0]; if (args.Length > 1) { for (int i = 1; i < args.Length; i++) { output += ", " + args[i]; } } Console.WriteLine(output); } |
Функциональный C# на практике – 2
В прошлый раз было продемонстрировано, как вместо привычного using использовать традиционную функцию. Теперь перейдём к повседневным практикам,на примере которых попробуем доказать эффективность применения функционального подхода. Для примера будем использовать пространство имён WCF.
Подробнее »»
Функциональный C# на практике – 1
Избыточность ведет к деградированию кода. Она особенно коварна и может свести на нет простоту, блочность, приёмы проектирования. Написание хорошего, повторно используемого кода – непростая задача.
Эта и последующие статьи демонстрируют преимущества применения функциональной парадигмы программирования (ФПП) в деятельности разработчика. Сначала попробуем развенчать миф о том, что ФПП сложно и загадочно.
Подробнее »»


