Система плагинов приложений - PullRequest
1 голос
/ 10 октября 2010

Я пишу приложение ASP.NET MVC 2, где разработчики могут расширять его с помощью плагинов. Я начал думать о том, как создать систему плагинов. (например, как у Joomla)

У меня есть некоторые сомнения относительно того, как это сделать. Я искал по сети и обнаружил, что есть два возможных решения.

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

  • использование событий C # для загрузки сборки и вызова событий, когда мне нужно перехватить систему. Плагин в конструкторе зарегистрирует функцию с событием, предоставленным моим приложением.

Какое лучшее решение? Какие соображения производительности есть? Какие еще могут быть подходы?

Ответы [ 2 ]

4 голосов
/ 10 октября 2010

Вместо того, чтобы писать собственную систему плагинов, вам, вероятно, следует рассмотреть Managed Extensibility Framework (MEF), который является собственной платформой Microsoft.

1 голос
/ 11 октября 2010

Посмотрите на проект Orchard на Codeplex.Разработчики Microsoft создали механизм плагинов, аналогичный тому, что вы описываете.Это довольно сложный материал ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...