Главная > Дизайн времени , Silverlight > Как писать Silverlight Дизайн времени для всех дизайнеров: Visual Studio 2008, Blend 2; Blend 3, а также Visual Studio 2010

Как писать Silverlight Дизайн времени для всех дизайнеров: Visual Studio 2008, Blend 2; Blend 3, а также Visual Studio 2010

Введение

Это является частью серии по дизайну времени осуществления изменений в Silverlight Инструментарий марта 2009 выпуска . Этот пост посвящен разрыву изменения в рамках расширения дизайнер представил в Silverlight 3/Blend 3/Visual Studio 2010, а также как разрабатывать Silverlight время разработки для поддержки всех дизайнеров: Visual Studio 2008/Blend 2, а также Visual Studio 2010/Blend 3.

Silverlight 2 Дизайн Время для Visual Studio 2008 и Blend 2

Visual Studio и Blend одни и те же рамки расширяемости конструктора, и использовать его как для WPF и Silverlight. WPF расширяемости конструктора на MSDN, вероятно, лучшая рекомендация для расширения рамок дизайнера. Декабрь 2008 Выпуск из Silverlight Инструментарий основан на Silverlight 2 (ака SL2), и дизайнер поддержка Visual Studio 2008 (ака VS9) и Blend 2. Это хороший реальном примере продемонстрировать, как разрабатывать Silverlight 2 проектирования возможности для VS9 и Blend 2. Мой блог Дизайн Время выполнения функций в Silverlight Инструментарий подробно объясняет, как это делается, и в рамках реализации читатели могут использовать в своей работе по осуществлению время разработки.

Напомним, что Silverlight 2 дизайн временные рамки для Visual Studio 2008 и Blend 2 в двух словах:

  • MWD: дизайн расширения временных рамок подвергается через множество узлов, в первую очередь Microsoft.Windows.Design.dll, Microsoft.Windows.Design.Extensibility.dll и Microsoft.Windows.Design.Interaction.dll. Совокупность этих сборок называются MWD. Они устанавливаются в соответствии DevEnvDir%% \ PublicAssemblies (C: \ Program Files \ Microsoft Visual Studio 9.0 \ Common7 \ IDE \ PublicAssemblies в 32-битном OS, или C: \ Program Files (x86) \ Microsoft Visual Studio 9.0 \ Common7 \ IDE \ PublicAssemblies в 64-битной ОС). Они также GAC-ред. Большинство время разработки проектов необходимо ссылаться на эти MWD DLL. Visual Studio 2008 и Blend 2 использования MWD версия 3,5.
    MWD in GAC
  • Naming Convention: Visual Studio и Blend нагрузки узлов дизайн времени, используя соглашение об именовании: для контрольной сборки Foo.dll В.С., Blend найдет свое время проектирования узлов с именем Foo.Design.dll, Foo.VisualStudio.Design.dll и Foo.Expression.Design.dll, в том же каталоге, где Foo.dll есть, или каталога Дизайн югу. Visual Studio загружает Foo.Design.dll и Foo.VisualStudio.Design.dll, а Blend будет загружать Foo.Design.dll и Foo.Expression.Design.dll. Поэтому рекомендуется положить проектирования функции общих для всех дизайнеров. Design.dll и положить Visual Studio и Blend время разработки конкретных функций. VisualStudio.Design.dll и. Expression.Design.dll соответственно.
  • Точка входа: когда Visual Studio или Blend нагрузки время сборки конструкции, он использует отражение, чтобы найти все классы, которые реализуют IRegisterMetadata , и призывает его единственный метод регистра . Silverlight Инструментарий декабря 2008 Выпуск имеет срок внедрения дизайна рамках подробно говорилось в предыдущих блога Дизайн времени Функция реализации в Silverlight Инструментарий .

Ниже скриншоты Silverlight.Controls.Design.sln в Silverlight 2 Инструментарий источник в марте 2009 Выпуск свидетельствует о реализации SL2 время дизайн для VS9 Blend 2 и выше:
SL2 design projects

Что изменилось в Silverlight 3, Blend 3 и Visual Studio 2010

Как указано в конструкторе WPF расширяемости архитектуры на MSDN:

Конструктор WPF поддерживает полный рамках расширения. Expression Blend поддерживает только редакторы свойств, загрузка метаданных и лицензирование. Смесь не поддерживает меню действий и adorners.

Blend 2 имеет выше ограниченную поддержку время разработки Silverlight тоже, но Visual Studio 2008 имеет никакой поддержки, за время разработки Silverlight (только значки, метаданные загрузки на несколько атрибутов, например, ToolboxBrowsableAttribute): это больше, чем зритель дизайнера. Чтобы иметь WPF паритета на время разработки Silverlight поддержку, Blend 3 и Visual Studio 2010 (ака VS10) должны представить нарушение изменений в рамках расширения дизайнера (т.е. MWD), в первую очередь:

  • MWD: большинство дизайнеров рамках расширения API остаются теми же, но их физические изменения упаковки: Microsoft.Windows.Design.dll ушел, и версии всех MWD узлов изменяется от 3,5 до 4,0. Перед Visual Studio 2010 Beta1, единственный способ получить новые MWD осуществляется через Blend 3 просмотра, и его версия 3,7 вместо 4,0 на данный момент:
    MWD in Blend 3
  • Точка входа: вместо того чтобы отражать через IRegisterMetadata реализации, Blend 3 и Visual Studio 2010 использовать новую сборку атрибутом ProvideMetadataAttribute и metadataProviderType должны осуществлять IProvideAttributeTable:
    ProvideMetadataAttribute
  • Naming Convention: из-за нарушения изменения, такие как MWD версии и точки входа, существующие сборки проектирования развитых против 3,5 MWD не будет загружаться в Blend 3 и Visual Studio 2010, вы должны написать новое время проектировании новых 4,0 MWD для Blend 3 и Visual Studio 2010. Хотя это нормально для Blend (поскольку вы можете использовать только Blend 3 с Silverlight 3 и 2 Blend с Silverlight 2), это создает проблемы для Visual Studio, поскольку вы можете использовать Visual Studio 2008 для Silverlight 3 развития, а также Visual Studio 2010 для Silverlight 2 развития.

Ниже таблице перечислены все поддерживаемые сценарии и версии MWD используется для загрузки узлов время разработки:

SL \ конструктора VS9 VS10 Blend2 Blend3
SL2 MWD3.5 MWD4.0 MWD3.5
SL3 MWD3.5 MWD4.0 MWD4.0

Мы не можем строить один дизайн время сборки в отношении двух несовместимых MWDs, поэтому мы должны создать два отдельных проектирования узлов, один друг против MWD. Дизайн собраний время загружены по имени, и мы не можем иметь два собрания с таким же именем в том же месте, поэтому монтаж проектирование механизм загрузки (например, соглашение об именовании) должно измениться, чтобы несколько версий одного и того же проектирование монтаж сосуществовать.

В ожидании нового именования выйти с Blend 3 и Visual Studio 2010 RTM, что мы можем сделать что-нибудь умное в настоящее время для поддержки как VS9 и VS10. Помните текущего именования позволяет Visual Studio и Blend каждой загрузки 2 узлов конструкции:

DLL \ конструктора Visual Studio Смесь
Foo.Design.dll X X
Foo.VisualStudio.Design.dll X
Foo.Expression.Design.dll X

так что мы можем построить два собрания с различными версиями MWD:

  • В Silverlight 3, мы можем иметь общие. Design.dll строить против 4,0 MWD, поэтому он может быть загружен как VS10 и Blend 3. Тогда мы имеем. VisualStudio.Design.dll построить MWD против 3,5 и дублировать все от общей. Design.dll, поэтому он может быть загружен VS9. Существует один вопрос, хотя незначительные: у нас нет места, чтобы положить Visual Studio особенности времени дизайн для VS10, как с помощью ToolboxBrowsableAttribute (ложь), чтобы скрыть некоторые элементы управления с более переполненном инструментов Visual Studio, поскольку VS10 не могу загрузить . VisualStudio.Design.dll построить MWD против 3,5. Это будет решать с новым именования раз Visual Studio 2010 RTM.
DLL \ MWD \ конструктора MWD VS9 VS10 Blend3
Foo.Design.dll 4,0 X X
Foo.VisualStudio.Design.dll 3,5 X ?
Foo.Expression.Design.dll 4,0 X
  • В Silverlight 2, такой же подход: иметь общие. Design.dll строить против 4,0 MWD, но то и другое. VisualStudio.Design.dll и. Expression.Design.dll построить MWD против 3,5 и дублировать все в общем. Design.dll . Таким образом, как и VS9 Blend 2 будет работать нормально, но с тем же вопросом, что нет места, чтобы положить Visual Studio особенности для VS10. Опять же, которые будут решаться с новым именования в VS10.
DLL \ MWD \ конструктора MWD VS9 VS10 Blend2
Foo.Design.dll 4,0 X X
Foo.VisualStudio.Design.dll 3,5 X ?
Foo.Expression.Design.dll 3,5 X


Дизайн Время выполнения функций в Silverlight 3 Инструментарий

MWD

Дизайн-проектов в Silverlight 3 Инструментарий в марте 2009 выпуска после вышеупомянутой схемы для поддержки как Visual Studio 2008 и Visual Studio 2010, а также Blend 3.

Скачать марта 2009 выпуска , распаковать исходный код, нагрузка Silverlight.Controls.Design.sln в Visual Studio 2008. Используйте простые Control.Input.Design проекта, например:

Controls.Input.Design.csproj in Silverlight 3 Toolkit Source

  • Дизайн-проекты для VS9/Blend3 необходимо сослаться на новый 4,0 MWD. Здесь мы используем уже созданных событий ссылаться на CopySystemWindows.bat найти Blend 3 и копия 2 MWD библиотек DLL в каталог исполняемых файлов.
  • Обратите внимание на незначительные изменения в CopySystemWindows.bat файла: нам нужно привести "%% THIS_DIR \ Binaries \ Blend3" (линии желтого цвета) для рассмотрения дел, где есть место в путь к каталогу, исходный код распаковать.

Если вам не нравится хрупкой CopySystemWindows.bat файл или с помощью создания событий, вы можете установить номер пути, чтобы помочь Visual Studio, где найти новые MWD, как показано ниже. Единственное ограничение в том, что вам нужно указать как% ProgramFiles% и% ProgramFiles (x86)% и сделать его построить на x86 и x64 машины.

Controls.Input.Design.csproj in Silverlight 3 Toolkit Source

Ссылка пути настройки сохраняются в. Csproj.user файл:

<Проект xmlns = " http://schemas.microsoft.com/developer/msbuild/2003 " >
<PropertyGroup>
<ReferencePath> C: \ Program Files \ Microsoft \ Expression Blend 3 Предварительный \; C: \ Files программы (x86) \ Microsoft Expression Blend 3 Предварительный \ </ ReferencePath>
</ PropertyGroup>
</> Проект

Metadata.cs

Я использую те же рамки реализации, как описано в Дизайн Время выполнения функций в Silverlight Инструментарий , с некоторыми незначительными изменениями:

Metadata.cs in Silverlight 3 Toolkit Source

  • Я переехал ссылки на общие файлы Extensions.cs и MetadataBase.cs Controls.Design.Common из папки в папку решение с таким же названием;
  • Metadata.cs в. Проектирование и. Expression.Design проектов используют новые точки входа: использование атрибута ProvideMetadata собраний, и осуществлять IProvideAttributeTable интерфейс;
  • добавить к сведению, что все в AddAttributes () метод должен быть повторен в соответствующий. VisualStudio.Design проекта.

. VisualStudio.Design проектов по-прежнему использовать старый интерфейс IRegisterMetadata в MWD 3,5, но:
image

  • в папке Controls.Design приведены ссылки на все * Metadata.cs файлов в соответствующий. Дизайн-проект;
  • AddAttributes () метод дублирует содержание AddAttributes () в соответствующий. Дизайн-проект.

Controls.Input.Expression.Design.csproj in Silverlight 3 Toolkit Source

Заключение

Хотя разрыв изменения в MWD может вызвать некоторые неудобства, необходимо внедрить в богатых опыт проектирования для Silverlight как WPF. Эта должность описывается способ справиться с разрывом изменений и по-прежнему поддерживать все существующие конструкторы: Visual Studio 2008, Blend 2, а Blend 3. После Visual Studio 2010 общедоступна, я блог о новых именования, и как Инструментарий проектирования работы в Visual Studio 2010. Оставайтесь с нами!

12/5/2009: Обновление для VS2010 Beta2

Для решения указанной задачи поддержки и Visual Studio 2008/Blend2 и Visual Studio 2010/Blend3, в которых используются несовместимые версии MWDs (V3.5 против. V4.0), соглашение об именовании для проектирования узлов усиливается из VS2010 Beta2 и Blend 3:

для выполнения Foo.dll собраний, общий время сборки конструкция называется Foo.Design *. DLL, Visual Studio конкретных время сборки конструкция называется Foo.VisualStudio.Design *. DLL, а также конкретные Blend время сборки конструкция называется Foo . Expression.Design *. DLL, где * может быть равно нулю или более допустимых символов для имен файлов. Когда дизайнер (например, Visual Studio или Blend) пытается загрузить время сборки дизайн и некоторые подходят именования, ноль или один будет загружен:

  • Если версия MWD, на которые ссылается времени собраний дизайн различных основной номер версии, чем в MWD версии дизайнера, а затем во время разработки собраний не будет загружаться и обойти.
  • Если более чем один дизайн-время сборки совместим с MWD в версии дизайнера, конструктора нагрузки 1 составлены в отношении высших MWD вариант, который меньше или равен в MWD версии дизайнера.

Silverlight 3 SDK ГДР 2 (также устанавливается автоматически VS2010) и Silverlight 3 Инструментарий октября 2009 Выпуск использовать новые именования поддержку как VS2008 и VS2010. Возьмите System.Windows.Controls.dll например, System.Windows.Controls.VisualStudio.Design.dll построен в отношении MWD 3,5 и используется VS2008, который использует старый именования, новая System.Windows.Controls.Toolkit. VisualStudio.Design.4.0.dll построен в отношении MWD 4,0 добавляется для VS2010, который понимает новые именования. См. Silverlight Дизайн Время Ассамблеи для получения дополнительной информации.

Делите и наслаждайтесь:

  • Print
  • email
  • RSS
  • Twitter
  • TwitThis
  • del.icio.us
  • LinkedIn
  • Technorati
  • Facebook
  • Google Bookmarks
  • Live
  • MySpace
  • QQ书签