Поделиться через


Сравнение функционального и процедурного программирования (LINQ to XML)

XML-приложения имеют самые разнообразные типы.

  • Некоторые приложения принимают исходные XML-документы и представляют новые XML-документы в новой форме, отличной от формы исходных документов.

  • Некоторые приложения принимают исходные XML-документы и представляют документы совершенно в другом формате, например в виде кода HTML или текстовых файлов CSV.

  • Некоторые приложения принимают исходные XML-документы и вставляют записи в базу данных.

  • Некоторые приложения принимают данные из другого источника, например из базы данных, и создают из них XML-документы.

Это не все типы XML-приложений, а лишь представительный набор тех типов, которые приходится создавать программисту, работающему с кодом XML.

При всем разнообразии типов приложений существуют только два противоположных подхода, которыми может воспользоваться разработчик:

  • функциональное построение с использованием декларативного стиля;

  • модификация XML-дерева в оперативной памяти с использованием процедурного кода.

LINQ to XML поддерживает оба подхода.

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

При изменении XML-дерева на месте вы должны написать код, который прослеживает узлы находящегося в памяти XML-дерева и переходит по ним, по мере необходимости вставляя, удаляя и изменяя узлы.

LINQ to XML можно использовать в обоих подходах. Используются одни и те же классы, а в некоторых случаях и одинаковые методы. Но организация и цели этих двух подходов существенно различаются. Например, в разных ситуациях один из них часто оказывается производительнее другого и использует больше или меньше памяти. Кроме того, код на основе одного или другого подхода легче писать, а сам код является более простым в обслуживании.

Сравнение этих двух подходов см. в разделе Сравнение изменения XML-дерева в памяти с функциональным построением (LINQ to XML).

Учебник по написанию функциональных преобразований см. в разделе Чистые функциональные преобразования XML.

См. также

Основные понятия

Общие сведения о программирования LINQ to XML