8

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

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

+0

Как побочный комментарий к моему опубликованному ответу, я хотел уточнить, что существует разница между портативными областями и более типичными зонами. Если портативные районы не соответствуют вашим потребностям, то, вероятно, делают обычные области. –

+1

Привет @DaveA, я согласен с вами, и это то, что я использую в данный момент. – Sam

ответ

12

Давайте с

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

Portable Area является длл, которая содержит items, которые обычно быть частью решения. Переносимые области содержат Views, Controllers, Models, даже JS Scripts, CSS-файлы и изображения.

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

Benefit

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

Как создать Многоразовую функциональность?

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

Неудобство

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

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

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

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

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

9

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

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

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

  • Все веб Ressources (CSS, Js, Просмотров) должны быть Embedded Ресурсы (входит в DLL). Это означает, что на самом деле это действительно боль для dev/debug, потому что для каждой модификации кода требуется пересоздание. Кроме того, для размещения переносной области вам необходимо создать веб-сайт клиента.

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

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

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

+0

Спасибо, поразили гвоздь на голове, вы сумели убедить меня в этом и придерживаться вместо этого областей. Проблема с поставщиком виртуальных путей была проблемой. – Sam

+2

Nuget не решает проблему сохранения функциональности в любом случае, это просто облегчает слияние источников и сборок в существующий проект. Правильное выполнение этого слияния, обработка обновлений и устранение ужасающих последствий, если вы делаете это неправильно, все еще на вас, особенно когда речь идет об активах JS/CSS и изменениях конфигурации (т. Е. Вставки web.config). Переносимые области не вводят никакого исходного кода в проект импорта, который, я думаю, хорош для стабильности. – shahzbot

 Смежные вопросы

  • Нет связанных вопросов^_^