Создание кода при помощи CodeDOM

В этой главе:

  • Понимание CodeDOM
  • Классы провайдеров кода
  • Добавление объектов в граф кода
  • Метапрограммирование с CodeDOM

Веб браузеры имеют объектную модель документа (DOM) для создания окон и управления навигацией между страницами. В HTML есть DOM для описания содержания и структуры этих страницах. В JavaScript есть DOM для автоматизации других. Эти модели уместно назвать DOM, потому что они – технологии для World Wide Web, который является в значительной степени документо-ориентированной системой.

Учитывая широкий круг ролей, которые может исполнить DOM, как вы думаете, что делает Microsoft CodeDOM? Он может быть использован для описания кода. Как вы узнали из глав 1 и 2, .NET предоставляет богатый фундамент метаданных для приложений. Или, возможно, он используется для определения кода в качестве данных в своего рода манере структуры документа. API, так многообещающе названный, также может быть использован для генерации кода. В конце концов, JavaScript может генерировать HTML на лету. Тогда почему бы CodeDOM не генерировать .NET код динамически?

Как вы уже догадались по нашим гипотезам о природе API, CodeDOM и основные поставщики кода, о которых вы узнаете в этой главе, включают все эти сценарии в .NET:

  • Описание кода в, по большей части, независимой от языка структуре данных
  • Создание исходного кода на разных языках
  • Компиляция кода и "кода-как-данных" в .NET сборки

CodeDOM является инструментом метапрограммирования, который должен понять каждый серьезный разработчик на .NET платформе. В этой главе вы начнете с изучения графов кода, конструкций, которые использует CodeDOM, чтобы выразить логику и структуру кода как данные. Затем мы рассмотрим различные провайдеры CodeDOM и наиболее важные классы в пространствах имен System.CodeDom и System.CodeDom.Compiler. После этого вы изучите пример, который поможет вам понять мощь CodeDOM.

Что такое CodeDOM

Классы поставщиков кода

Добавление объектов в граф кода

Метапрограммирование с CodeDOM

Резюме

или RSS канал: Что новенького на smarly.net