Как создать модульную систему для cms? - PullRequest
0 голосов
/ 15 февраля 2010

Я создаю CMS (ASP.NET C #), и в настоящее время я смотрю, как реализовать модульную систему. Как это делается с большинством модульных систем в Интернете? Самое главное, что я не хочу, чтобы модули вмешивались в какие-либо файлы ядра.

Пример случая: У меня есть метод поиска ajax, который использует метод веб-службы под названием Поиск; Как модуль может «добавить» свои результаты поиска в список результатов? Если основной поиск выполняет поиск только по веб-страницам, и я хочу, чтобы поиск также осуществлял поиск продуктов в модуле электронной коммерции, как он может добавить поиск продукта и его содержимое в список возврата исходного метода поиска? Это вообще возможно?

Я немного посмотрел на отражение, и кажется, что это полезно при запуске кода модуля изнутри ядра, это правильно?

У меня нет опыта работы с подобными вещами, поэтому очень хотелось бы получить толчок в правильном направлении и / или ссылки / руководства / советы.

Ответы [ 2 ]

1 голос
/ 17 февраля 2010

Я согласен с Тофером в целом.

В контексте ASP.NET и приведенного вами примера, я думаю, наилучшим подходом было бы, чтобы все ваши модули реализовали свою собственную логику поиска и представили ее с помощью метода. Затем результат поиска будет вызывать метод для получения результатов от всех компонентов / модулей в системе, которые осуществляют поиск.

Как правило, у вас должна быть какая-то платформа для базовой системы, а компоненты должны быть абстрагированы (интерфейсы для общей функциональности). Простое эмпирическое правило заключается в том, что «компонент вызывается, а фреймворк вызывает компоненты».

Поскольку поиск будет реализован по-разному в зависимости от компонента, задача компонента - реализовать его, а задача платформы - вызвать реализацию.

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

1 голос
/ 15 февраля 2010

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

Один из крупнейших проектов с открытым исходным кодом, основанный на плагинах, - Eclipse , но я бы посмотрел и на некоторые другие.

Вы также можете выполнить некоторые поиски в Google по «шаблону компонента», «шаблону модуля» и «шаблону плагина».

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