27 Обзор возможностей Visual Studio 2013. Рекомендации по дальнейшему развитию

Расширение Perspectives аналогично по возможностям одноименному расширению другой широко известной интегрированной среды - Eclipse. Расширение Perspectives появилось в 2011 году, после выпуска Visual Studio 2010. Оно предназначено для управления конфигурациями окон, используемыми при работе в среде. С его помощью можно создать удобную конфигурацию окон, соответствующую часто повторяемым действиям. Расширение содержит менеджер окон, позволяющий управлять их конфигурациями.

Microsoft организовала программу VSIP - Visual Studio Industry Partner. Любая компания может заключить с Microsoft соглашение о партнерстве в области развития и использования Visual Studio в своем бизнесе. Фирма Microsoft предоставит поддержку в виде технической документации и информационных материалов. Имеются cпециальные страницы MSDN, посвященные программе VSIP и другим видам интеграции с Visual Studio.

Имеется также несколько видов интеграции программного обеспечения с Visual Studio c некоммерческими (учебными и исследрвательскими) целями:
  • Разработаны библиотеки (REST API) для интеграции Ваших приложений и сервисов с Visual Studio Online, облачным решением для командной разработки проектов;
  • Имеется возможность расширения среды Visual Studio (элементов управления, функциональности и т.д.), используя Visual Studio SDK и Team Foundation Server SDK и, в результате, создания экспериментальной версии среды Visual Studio;
  • Имеется аналогичная возможность расширения Team Foundation Server.

Наиболее простая и реальная возможность участия в развитии Visual Studio - разработка add-ins (расширений) Visual Studio, позволяющая интегрировать с ней Ваши разработки.

Параметры-константы в параметризованных типах (generics). В настоящее время в языке C# в параметризованных типах реализованы только параметры-типы. Между тем, в первоначальной идее generics, реализованной в языке CLU, кроме параметров-типов, имелись также параметры-константы. На мой взгляд, они были бы полезны и в C# - например, параметризованный тип Stack с двумя параметрами: первый - тип элементов стека, второй - максимальный размер (глубина) стека.

Cопрограммы (coroutines). Механизм сопрограмм широко известен еще с 1960-х гг. Он заключается в особого рода взаимодействии параллельно или квазипараллельно выполняемых процессов (или потоков). Если условно обозначить два процесса через process M и process N, то сопрограммное взаимодействие можно представить следующим образом. Внутри каждого процесса имеется локальное управление (ссылка на текущую команду). Процесс M может переключить управление на процесс N оператором: resume N. При этом локальное управление в M запоминается, и активизируется процесс N, начиная с начала, если он пока не исполнялся, либо с приостановленного места, если он был ранее приостановлен. Обратная операция ("возврат" в M) не обязательна, в отличие от подпрограммной (процедурной) взаимосвязи. Например, процесс N может выполнить оператор resume K, и т.д. Другой оператор, который может быть выполнен для каждого из процессов, - это оператор detach. Этот оператор останавливает сценарий выполнения процесса и превращает его в пассивные данные, доступ к которым возможен через поля (атрибуты) процесса. Описанный механизм удобен для задач моделирования систем с дискретными событиями и впервые использован в языке SIMULA 67 в 1960-х гг. Несмотря на свою важность, сопрограммы пока не представлены в общем виде в .NET CLR. Пока в языке C# реализован лишь частный случай сопрограммного взаимодействия - взаимосвязь заголовка цикла по коллекции с его телом, при котором очередной обрабатываемый элемент коллекции передается от заголовка цикла к его телу оператором yield return (обозначения и семантика почти совпадают с оператором yield, используемым в итераторах языка CLU). Мне кажется, было бы целесообразно реализовать сопрограммы в общем виде в языке C#, либо даже в .NET CLR.

Набор для практики

Вопросы

  • Что такое Perspectives?
  • Что такое VSIP?
  • Что такое сопрограммы?
  • Какое расширение параметризованных типов предлагается в курсе?
  • Какие идеи по развитию поддержки надежных и безопасных вычислений предлагаются в курсе?

Упражнения

  • Найдите в сети, инсталлируйте и попробуйте в действии расширение Visual Studio под названием Perspectives.
  • Разработайте простой add-in среды Visual Studio.
  • Сформулируйте свои предложения по развитию Visual Studio.

Темы для курсовых работ, рефератов, эссе

  • Перспективы Visual Studio и предложения по развитию данной среды (реферат).