2009-06-13 3 views
2

Я попытался выполнить поиск, но если это дубликат, он скрыт от шума. Альтернативное название вопроса:Что такое VS 2008 IDE Написана?

Какие навыки необходимо искать при необходимости интеграции с IDE Visual Studio?

ответ

10

Visual Studio 2008 написан как в собственном, так и в управляемом коде, хотя основная часть написана на C++. Существует несколько частей Visual Studio, которые всегда были написаны в управляемом коде (например, в браузере свойств, в WinForms Designer). И, конечно же, Visual Studio 2008 сшивается вместе с COM.

В Visual Studio 2010 есть попытка переместить больше IDE в управляемый код. Текстовый редактор и оболочка (т. Е. Меню, панели инструментов, рамки документов и инструментальных окон и т. Д.) Записаны на C#. Кроме того, фрагменты C# и VB IDE записываются в C# и VB соответственно. Новый язык, F #, полностью написан в управляемом коде - компилятор, служба языка, система проекта и т. Д. - все записаны в F #.

Вы можете использовать C#, VB или C++ для интеграции с Visual Studio 2008. Тем не менее, учитывая, что Visual Studio построена на COM, полезно понимать COM/ATL. Кроме того, если вы решите использовать управляемый язык, известная команда COM-взаимодействия и отладки смешанного режима будет чрезвычайно полезна. Обратите внимание, что существует несколько уровней интеграции VS:

  1. Макросы - самый простой способ запуска пользовательского кода в среде IDE.
  2. Надстройка - простой, но мощный способ создания пользовательских функций в среде IDE. С надстройкой вы можете создавать пользовательские команды, прослушивать события, манипулировать текстом в редакторе и т. Д. Однако вы не можете добавить, скажем, новый язык или редактор в среду разработки с надстройкой. Для многих целей надстройка работает нормально.
  3. Пакет - это тот же уровень интеграции, что и функции Microsoft. С пакетом вы можете создать практически что угодно в среде Visual Studio IDE, включая добавление новых языков.

Следует отметить, что они становятся все более сложными для автора и развертывания.

В Visual Studio 2010 новая форма расширяемости внедряется в нескольких областях IDE, но в основном для расширения нового текстового редактора WPF. В будущем интеграция с Visual Studio потребует компонентов MEF (Managed Extensibility Framework), а не COM. Таким образом, в VS 2010 расширение текстового редактора просто потребует создания MEF-компонента на вашем любимом управляемом языке.

0

Смесь. Ядром является C++/COM-материал, но многие из новых вещей - это управляемый код (C# и т. Д.). Из-за того, что ядром является C++/COM (с кучей кода «заимствовано» из MS Office), интеграция VS - забавный опыт.

+0

Вы имеете в виду создание дополнений? Именно поэтому я задаю вопрос. – ojblass

+0

@ojblass - интеграция VS может быть создана в управляемом коде. –

+0

@ojblass - Add-ins/addons/VSIP и т. Д. Использует COM-интерфейсы, но вы обычно записываете их в управляемый код. Две головные боли, с которыми вы столкнетесь, - это: а) как VS (например, обмен и т. Д.) Загружает сборки .net по-другому, чем 100% -установленные кодовые приложения, и б) COM-литье и очистка COM-файлов обычно не требуется в 100% код-приложение. О, и испорченные/несогласованные интерфейсы, связанные с интеграцией VS. :) – KristoferA

4

В эпизоде ​​№ 48 подкаста, содержащем интервью с Дастином Кэмпбеллом, менеджером программ в группе управляемых языков Visual Studio.

В этом интервью он несколько минут говорит об этой точной проблеме и подробно рассказывает о том, почему изменения в 2010 году не согласуются с 2008 годом и как выглядит будущее.

Если это вопрос строгого любопытства, то другие ответы верны. Но если вы захотите копать немного глубже, слушание подкаста будет стоить вашего времени.

+0

Мне интересно, какой навык нужно искать, когда для работы требуются компоненты интеграции Visual Studio. – ojblass

+0

@ojblass - если вы имеете в виду языковые навыки, C++ и C# - хорошее место для начала. Наличие возможности быстро выбирать другие языки - плюс. –

+0

@ojblass, чтобы добавить к комментарию Дастина - навыки C# или C++ хороши, но также понимание различий между COM и .net, отладкой CLR сильно задействованы, если вы хотите сделать серьезную интеграцию VS. Чтобы сократить кривую обучения, я бы поискал того, кто [успешно] разработал что-то, что интегрируется с VS IDE (любая версия - интерфейсы одинаковы для 2002/2003/2005/2008) с некоторыми незначительными дополнениями в каждой новой версии , – KristoferA

3

По крайней мере, следующие языки используются внутри Visual Studio 2008

  1. C++
  2. C#
  3. VB.Net
  4. C
  5. C++/CLI
  6. C++ с управляемыми расширениями

Возможно, несколько других, о которых я забыл.

+0

Мне любопытно, номер 4 выше ... какая его часть? – ojblass

+1

@ojblass, # 4 больше личного мнения. Если вы не используете классы, деструкторы, шаблоны и управляемую память с malloc и бесплатно, я называю это C, даже если он скомпилирован с помощью компилятора C++. – JaredPar

+0

Я склонен согласиться с тем, что C++ подразумевает, что не-OO может задерживаться. Я думаю, что ваш ответ правильный, но ответ выше всех моих проблем. +! ура – ojblass

Смежные вопросы