Недостатки портативной зоны
Для людей, которые имеют опыт работы с портативными зонами,
Я хотел бы знать, есть ли недостатки в их использовании и почему бы вам не использовать их для разбиения большого 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 также решил эту проблему.
Однако, несмотря на все эти недостатки, моя команда все еще использует его. Зачем? потому что это было правильное решение в нужное время для нас.