Вопрос

Вопрос к тем из вас, кто уже просмотрел VS2010.Насколько велики изменения, которые должны будут внести разработчики надстроек, чтобы заставить свои надстройки работать под VS2010?

Это было полезно?

Решение

Мы уже перенесли версию разработки нашего продукта Visual Lint на VS2010, и по большей части миграция была простой - или была бы, если бы не было так много ошибок в модели автоматизации Visual Studio 2010 Beta 1 , Опыт был похож на работу, которую мы должны были сделать для поддержки VS2005 (в отличие от VS2008 было легко), поэтому очевидно, что VS2010 представляет собой серьезное изменение в эволюции Visual Studio.

Поскольку мы используем один и тот же двоичный файл для всех версий Visual Studio, которые мы поддерживаем (что означает, что код считается родным для C ++), разрывные изменения в интерфейсах, как правило, нам хорошо видны. На этот раз области, которые вызвали у нас проблемы:

<Ол>
  • Новый формат файла проекта .vcxproj (мы анализируем файлы проекта для чтения свойств проекта, поскольку это более надежно для нескольких версий Visual Studio, чем при использовании VCProjectEngine - модели автоматизации Visual C ++). Следовательно, нам пришлось написать новый парсер для файлов .vcxproj, и, поскольку они потенциально очень сложны, это само по себе было серьезной задачей.
  • Различные ошибки в командной строке / интерфейсах команд (предположительно связанные с новым редактором WPF / интеграцией командной строки). Карлос Кинтеро много писал на эту тему, поэтому, если у вас есть проблемы в этой области, рекомендуем вам прочитать его блог.
  • Недокументированное изменение последовательности запуска надстройки в бета-версии 1, которое означало, что интерфейсы окна DTE не работали, пока не произошло событие OnStartupComplete. MS сообщила нам, что они отменяют это конкретное изменение в бета-версии 2 из-за потенциальных проблем с совместимостью, но мы в любом случае десенсибилизировали наш код к этому.
  • Окна инструментов в бета-версии 1 не могут быть созданы внутренним CLSID (хотя ProgID работает нормально). Это последний, который мы ожидаем, прежде чем мы сможем завершить последний основной бит порта.
  • Я подозреваю, что наш опыт будет довольно представительным для большинства надстроек - только если вы используете области, на которые напрямую влияют серьезные изменения в самой Visual Studio (например, интеграция редактора или intellisense), эффекты, вероятно, будут особенно тяжелый.

    Наконец, мы не планируем переносить саму сборку на VS2010; в настоящее время он встроен в VS2008, и мы просто не видим причин для перехода на IDE, которая показывает все признаки того, что все еще находится в процессе разработки. даже когда в конце этого года будут RTM (хотя это только мое личное мнение - YMMV).

    Другие советы

    Как назло, я только что написал об этом именно этот предмет и показал, что потребовалось для обновления моей надстройки.(ссылки ниже)

    По сути, ваш ответ заключается в том, что существует миграция с низким уровнем воздействия, потому что для большинства функциональных возможностей установлена совместимая с бэк-вардами "прокладка".Понятно, однако, что для получения новых материалов в 2010 году, таких как MAF, MEF и WPF, разработчикам потребуется некоторая работа.

    Наконец, обязательно прочтите этот выдающийся пост от Карлоса Кинтеро, MVP, о надстройках, фреймворках и совместимости с CLR.Блог Карлоса - лучшее, что я нашел для надстроек.

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top