Расширение 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 некоммерческими (учебными и исследрвательскими) целями:
Наиболее простая и реальная возможность участия в развитии 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.
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 и предложения по развитию данной среды (реферат).