Недостатки портативной зоны

Для людей, которые имеют опыт работы с портативными зонами,

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

2 ответа

Давайте начнем с

Определение:

Portable Area это DLL, которая содержит items это обычно будет частью вашего решения. Переносимые области содержат представления, контроллеры, модели, даже сценарии JS, файлы CSS и изображения.

В идеале items в вашей портативной области работайте вместе, чтобы создать связную функциональность. Если нет, то вы, вероятно, не выиграете от наличия переносного участка.

Выгода

Я сравниваю переносимые области с веб-формами Web Parts потому что они оба являются попыткой ответить на вопрос:

Как создать функциональность многократного использования?

Вы получите выгоду от Portable Areas, если хотите создать функциональность, которая будет использоваться в нескольких проектах или распространяться как функциональность для использования третьими лицами.

Недостаток

Каждый раз, когда вы вносите изменения в любой View, JS-файл, CSS-файл или изображение в вашей Portable Area, вам нужно будет перестраивать его. Я подчеркиваю эти компоненты, потому что их обычно не нужно перестраивать при тестировании или разработке.

Это может стать проблемой. Если вы обнаружите, что пересматриваете каждый раз, когда настраиваете CSS, 30-секундные изменения становятся 2-минутными изменениями. Сделайте 30 из них, и вы потянете 15 минут работы на 2 часа.

Портативные области предназначены для повторного использования зрелых функций в нескольких проектах или решениях "как есть".

  • Портативные области не идеальны для функциональности, которая находится на ранней стадии разработки.

  • Портативные области не идеальны для функциональности, которая существует только в одном решении или проекте.

Многое уже сказано. У меня есть некоторый опыт работы с Portable Areas, и вот моя личная точка зрения.

  • MvcContrib не обновлялся с одного года (см. Nuget). Если вы посмотрите на codeplex, вы увидите, что со времени последнего выпуска не было так много обновлений в исходном коде. Это может быть зрелым, но никакая поддержка не может быть проблематичной.

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

  • Все веб-ресурсы (CSS, Js, Views) должны быть встроенными ресурсами (включены в dll). Это означает, что действительно сложно разрабатывать / отлаживать, потому что каждая модификация кода требует перестройки. Кроме того, вам нужен клиентский веб-сайт для размещения переносной области.

  • Портативные области используют собственный поставщик виртуальных путей. Код провайдера настраиваемого виртуального пути не проверен и полностью непроверен. Команда провайдеров ASP.Net не рекомендует использовать поставщиков виртуальных путей, поскольку они могут вызвать проблемы с производительностью.

  • Портативные Области Против Пакетов Nuget. Портативные области были разработаны четыре года назад (до появления Nuget). Портативные области позволили упростить перенос, просмотр и хранение файлов (Css, javacript) в отдельное приложение. Nuget также решил эту проблему.

Однако, несмотря на все эти недостатки, моя команда все еще использует его. Зачем? потому что это было правильное решение в нужное время для нас.

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