Реализовать структуру нескольких веб-проектов в веб-формах asp.net

Я работаю в веб-приложении, которое работает в нескольких областях. Со временем его размер стал проблемой для развития и поддержания. Я хотел бы разбить веб-проект на несколько подпроектов или библиотек, в зависимости от основного корневого веб-проекта, который имеет общие файлы для совместного использования (Masterpages, Resources, Css и т. Д.). В идеале я хотел бы иметь какой-то вид инъекция, которая позволяет мне опционально публиковать эти "компоненты" или просто публиковать измененный вариант, хотя его конфигурация зависела после установки БД.

Я искал по всей сети, читая все страницы, связанные с несколькими проектами, внедрением зависимостей и составными приложениями, которые я мог найти, пока я не смягчил свою голову, но не смог найти ничего действительно полезного. Основная часть работ, где теоретические подходы или модульное тестирование приложений (ну, вы не можете создать желаемое приложение, но вы все равно можете тестировать что-то другое). Другие подходы просто не работают в VS2010 .Net 4.0

Может кто-нибудь обратиться ко мне по поводу ПОЛНОГО решения или примера? Или просто давайте обсудим.

Мы говорим, что решение имеет следующую структуру с содержимым модуля, уже разделенным на каталоги:

Решение

      L_ Datalayer library project
      L_ Bussiness logic /common utils library project
      L_ Web project
      L_ Controls
      L_ Images
      L_ Css....
      L_ Warehouse
      L_ Sales
      Masterpages
      ...

Warehouse and Sales содержит страницы, связанные с "модулем"

Спасибо,


Я публикую свой прогресс в этой теме.

По предложению Стивена я еще больше экспериментировал с использованием MEF. Из-за отсутствия документации, особенно для веб-форм, это было болью *. До сих пор мне удалось внедрить MEF в моём решении и успешно вставить проект плагина, видимый для основного приложения.

Затем загружает доступные плагины через интерфейс, который имеет имя плагина, URL-адрес страницы по умолчанию и его порядок, выбирает все эти данные и отображает вкладку меню. Это легко.

Нажатие на элемент меню должно перенаправить на главную страницу плагина, которая отобразит несколько меню для своих страниц (из другого интерфейса экспорта)

Я наконец получил страницу aspx, встроенную как ресурс в проект плагина. Где я сейчас застрял.

¿Есть ли способ визуализировать страницу, встроенную в качестве ресурса в библиотеку, используя MEF, или я вынужден также использовать VirtualPathProvider? Specifically Как конкретно заявление, чтобы перенаправить на эту страницу? Я пробовал несколько способов, но никто не работает (MEF и VirtualPathProvider)

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

1 ответ

Хотя это не ответ на ваш вопрос, я добавляю его как ответ из-за продолжительности моего предложения. Я предлагаю вам взглянуть на подход, которому придерживается NopCommerce, когда они вышли за пределы.net со своей собственной структурой, которая поддерживает плагины и расширения для существующих решений. Хотя я определенно знаю, что nopcommerce - это решение для электронной коммерции, но если вы изучите его, вы можете изменить его в соответствии с потребностями своего бизнеса или, по крайней мере, оно может дать вам представление о том, что вы должны принять при разработке своего решения. Надеюсь, поможет.

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