В предыдущей главе мы изучили интерфейс прикладного программирования (API), имеющийся у разработчиков для настройки и управления различными частями интегрированной среды Visual Studio. Данная глава основывается на этих знаниях и показывает вам, как писать макросы, которые используют объектную модель расширяемости.
Задача макроса— обеспечить вам способ написания ваших собственных модулей расширения. В предыдущих главах вы видели множество функций интегрированной среды, которые автоматизируют повторяющиеся задачи. Встроенная поддержка рефакторинга, технология автоматического дописывания слов IntelliSense, фрагменты кода — вот только некоторые из таких функций. И по мере того как вы разрабатываете решения в Visual Studio, вы будете выполнять все больше повторяющихся задач, которые просто просят автоматизации. Таким средством автоматизации являются макросы, это процедуры на языке Visual Basic, которые взаимодействуют с объектной моделью расширяемости для управления различными аспектами интегрированной среды. Несмотря на то, что макросы, безусловно, могут быть логически сложными, их реальная ценность состоит в том, что можно относительно просто написать короткую процедуру, которая снимет с вас часть ручного труда процесса разработки. Макросы не часто используются для добавления в интегрированную среду новых функциональных возможностей, обычно они группируют операции интегрированной среды и создают единую точку запуска таких групп операций.
Если вы задумаетесь об обычных задачах, которые вы выполняете при разработке решения внутри Visual Studio, то вы поймете, что ценность макроса состоит в его способности помогать вам автоматизировать те задачи, для которых это имеет смысл. Глава 11 содержит пример макроса, который вставляет стандартный блок комментариев в начало функции или процедуры. Целью того макроса было уменьшить расход времени на комментирование процедур. Макрос не был сложным и не решал никаких особенных проблем разработки программного обеспечения. Он должен был просто взять на себя малую часть очень "ручной" составляющей процесса создания кода: комментирования этого кода. Процесс разработки макроса фактически начинается с нахождения возможности для автоматизации. Следующий шаг— понять, с какими объектами интегрированной среды вам придется работать, чтобы создать решение. Финальный шаг— связать эти объекты кодом на языке Visual Basic (в форме макроса).
Мы уже описали два из трех необходимых элементов знаний, которые позволят вам стать знатоками макросов: в предыдущей главе мы подробно обсудили объектную модель расши
ряемости и разобрались, в каких ситуациях хороши макросы. Третий и последний элемент— это понять механику написания макроса от начала до конца и его последующего выполнения в интегрированной среде.
Макросы могут писаться вручную или генерироваться путем записи действий внутри интегрированной среды. Фактически в Visual Studio имеется отдельная среда разработки макросов — интегрированная среда Macros, созданная для помощи в разработке макрорешений.