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

StackOverflow https://stackoverflow.com/questions/158420

Вопрос

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

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

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

У меня есть несколько вариантов: модель ServiceProvider, модель плагина или может быть другой.

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

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

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

Решение

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

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

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

ASP.NET MVC уже существует с предварительный просмотр 5.

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

Я предпочитаю Ведущий представления модели узор

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