Как лучше всего отделить логику пользовательского интерфейса (дизайнера / редактора) от инфраструктуры пакета (например, пакета Visual Studio)

Здесь я хочу разделить опасения. Создайте и вставьте всю логику пользовательского интерфейса для пользовательского XML-дизайнера, объектной модели, проверок и т. д. В отдельную сборку. Затем структура пакета должна только зарегистрировать информацию о дизайнере и запросить службу пользовательского интерфейса, и все работает волшебным образом.

Таким образом, мне не нужно играть со сборкой Package framework (Visual Studio Package), когда мне нужно изменить конструктор пользовательского интерфейса.

Этот вопрос также относится ко всему, где вам нужно отделить логику пользовательского интерфейса от фреймворка Skeleton, который его загружает, например плагина.

У меня есть несколько вариантов: модель ServiceProvider, модель плагина или что-то еще.

Приветствуются любые образцы, предложения по выкройкам, ссылки.

Обновление 1: то, что я ищу, - это такая мысль: «Соответствует ли Prism (Composite WPF) всем требованиям? Кто-нибудь работал над проектом / приложением, которое выполняет разделение проблем, как я упоминал выше? И т. Д.» (Я все еще ищу ответы)

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
0
487
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

То, что вы спрашиваете о швах, очень похоже на разделение проблем, которое пытается обеспечить шаблон MVC.

ASP.NET MVC уже существует с превью 5.

В основном это для Интернета, но я думаю, что они планируют использовать его также для WinForms, но я не уверен.

Спасибо за указание, но я искал более точные предложения / образцы того, как это сделать в отношении пакета VSX.

Vin 09.10.2008 20:51
Ответ принят как подходящий

Я создал VSPackage, который загружает редактор. Редактор находится в отдельной сборке и реализует определенный мной интерфейс. VSPackage работает с интерфейсом, поэтому любые изменения, которые я вношу в редактор (и его сборку), не влияют на VSPackage, пока я не меняю интерфейс.

Да, я этим и закончил. Мы также создали проект PackageSupport, который имеет эти интерфейсы и общую логику, связанную с VS, и это удобно.

Vin 15.07.2009 17:42

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