Описание тега codedom
Что такое CodeDOM?
CodeDOM - это.NET-библиотека от Microsoft, которая:
Дает возможность представить исходный код как объекты выражения
Предоставляет несколько встроенных генераторов для преобразования выражений в исходный код.
Упрощает компиляцию сгенерированного исходного кода в исполняемый код
Вот отрывок из MSDN, описывающий CodeDOM:
CodeDOM предоставляет типы, которые представляют многие общие типы элементов исходного кода. Вы можете разработать программу, которая строит модель исходного кода, используя элементы CodeDOM для сборки графа объектов. Этот граф объектов можно отобразить как исходный код с помощью генератора кода CodeDOM для поддерживаемого языка программирования. CodeDOM также можно использовать для компиляции исходного кода в двоичную сборку.
Вот некоторые распространенные варианты использования CodeDOM:
Создание шаблонного кода: создание кода для клиентских прокси-серверов ASP.NET, веб-служб XML, мастеров кода, конструкторов или других механизмов создания кода.
Динамическая компиляция: поддержка компиляции кода на одном или нескольких языках.
Если вы посмотрите на CodeDOM, вы, вероятно, много столкнетесь с абстрактными синтаксическими деревьями (AST). Это технический термин для дерева выражений в данном контексте (происходящий от способа написания генераторов кода, парсеров и компиляторов). Если вы планируете попасть в CodeDOM, это поможет понять основную концепцию; В Википедии есть разумная статья на эту тему.
В каких вопросах следует использовать этот тег?
Этот тег следует использовать в вопросах, если они касаются использования, понимания или взаимодействия с библиотекой CodeDOM. Его также можно использовать в вопросах, связанных с генерацией кода с использованием стратегии объектной модели документа (DOM), аналогичной той, что предоставляется библиотекой Microsoft CodeDOM.
Дальнейшее чтение
Введение MSDN в CodeDOM на самом деле дает довольно хороший обзор библиотеки и ее использования.
На GeeksWithBlogs есть хороший компактный пример создания генератора сущностей с использованием CodeDOM.
Пиюш С. Бхатнагар опубликовал достойную статью о CodeProject, динамическом генерации кода с помощью CodeDOM, в которой выделяются общие задачи, которые вы, возможно, захотите выполнить.
Если вы хотите получить хороший обзор теории, лежащей в основе абстрактных синтаксических деревьев (AST), дизайна языка и стратегии синтаксического анализа / компиляции (для контекста), то Теренс Парр (автор генератора синтаксического анализа ANTLR) написал очень доступный книга (даже для случайных программистов!) под названием " Шаблоны языковой реализации: создание собственных предметно-ориентированных и общих языков программирования" (ISBN 978-1-93435-645-6).