Я нахожусь на этапе планирования создания системы интрасети для сотрудников с помощью ASP.NET MVC 4. Мы бы хотели, чтобы сайт состоял из отдельных «модулей», каждый из которых предоставляет различные функции: обмен сообщениями, изменение заработной платы и т. Д. Я хотел бы, чтобы эти модули были включены или отключены во время компиляции. На домашней странице будет отображаться какая-то навигация, которая будет ссылаться на каждый загруженный модуль.
Пока это просто, но я не хочу, чтобы навигационная функция заранее знала о модулях. Другими словами, я хочу, чтобы модули были динамически обнаруживаемыми; Я хочу иметь возможность написать код для нового модуля, а затем добавить ссылку на панель навигации без каких-либо изменений кода в другом месте источника. Каждый модуль должен иметь какой-либо способ регистрации с помощью панели навигации, и, что более важно, это должно быть сделано для каждого модуля при его загрузке.
Я считаю, что это исключает использование областей MVC, так как они предназначены для случая, когда макет сайта известен заранее. MEF кажется, что это может быть уместно, хотя люди, кажется, имели смешанный успех в сочетании MEF с MVC. Действительно ли MEF - путь сюда, или есть лучший способ выполнить то, что мне нужно?