Для людей, которые имеют опыт работы с портативными районов,Портативный Область
Я хотел бы знать, если есть недостатки их использования и почему вы не бы использовать их, чтобы разбить большое приложение MVC вниз в компоненте частей. начало
Для людей, которые имеют опыт работы с портативными районов,Портативный Область
Я хотел бы знать, если есть недостатки их использования и почему вы не бы использовать их, чтобы разбить большое приложение MVC вниз в компоненте частей. начало
Давайте с
Определение:
Portable Area
является длл, которая содержит items
, которые обычно быть частью решения. Переносимые области содержат Views, Controllers, Models, даже JS Scripts, CSS-файлы и изображения.
В идеале, items
в вашей портативной области работают вместе, чтобы создать сплоченную функциональность. Если нет, вы, вероятно, не пользуетесь портативной зоной.
Benefit
сравнивает Переносной Areas на веб-форм Web Parts
, потому что они являются как попыткой ответить на вопрос:
Как создать Многоразовую функциональность?
Вы сможете воспользоваться портативными областями, если хотите создать функциональные возможности, которые будут использоваться в нескольких проектах, или распределены как функциональные возможности, которые будут использоваться третьими сторонами.
Неудобство
Каждый раз, когда вы вносите изменения в любое представление, JS файл, CSS файл или изображение в пределах вашей портативной зоны, вам нужно будет восстановить его. Я подчеркиваю эти компоненты, потому что их обычно не нужно перестраивать при тестировании или разработке.
Это может стать проблемой. Если вы каждый раз настраиваете перестройку CSS, 30 секундных изменений становятся 2-минутными изменениями. Сделайте 30 из них, и вы потратили 15 минут на работу за 2 часа.
Портативные районы предназначены для зрелой функциональности, которая должна быть повторно использована в нескольких проектах или решениях как есть.
Портативные районы не идеальны для функциональности, которая находится на ранней стадии разработки.
Портативные районы не идеальны для функциональности, которая существует только в одном решении или проекте.
Многие вещи уже говорили. У меня есть опыт работы с портативными областями, и вот моя личная точка зрения.
MvcContrib не обновлялся с один год (см nuget). Если вы посмотрите на codeplex, вы увидите, что с момента выпуска последней версии было не так много обновлений в исходном коде. Он может быть зрелым, но никакая поддержка не может быть проблематичной.
Переносная зона самодостаточна в одном сборке. Это проще для повторного использования и для обновления, но проблема заключается в том, как вы позволяете достаточно контролировать пользовательский интерфейс клиентским приложением. Даже если это функция многократного использования, вы по-прежнему хотите использовать макет или частичные макеты.
Все веб Ressources (CSS, Js, Просмотров) должны быть Embedded Ресурсы (входит в DLL). Это означает, что на самом деле это действительно боль для dev/debug, потому что для каждой модификации кода требуется пересоздание. Кроме того, для размещения переносной области вам необходимо создать веб-сайт клиента.
Переносные области используют пользовательский поставщик виртуального пути. Код поставщика пользовательского виртуального пути не тестируется и полностью не тестируется. Использование провайдеров виртуального пути не приветствуется командой ASP.Net, так как они могут вызвать проблемы с производительностью.
Портативные районы с пакетами Nuget. Портативные районы были спроектированы четыре года назад (до Nuget). Portable Areas решила возможность легко переносить файлы, просматривать и активы (Css, javacript) в отдельное приложение. Нюджет также решил эту проблему.
Однако, несмотря на все эти недостатки, моя команда все еще использует его. Зачем ? потому что это было правильное решение в нужное время для нас.
Спасибо, поразили гвоздь на голове, вы сумели убедить меня в этом и придерживаться вместо этого областей. Проблема с поставщиком виртуальных путей была проблемой. – Sam
Nuget не решает проблему сохранения функциональности в любом случае, это просто облегчает слияние источников и сборок в существующий проект. Правильное выполнение этого слияния, обработка обновлений и устранение ужасающих последствий, если вы делаете это неправильно, все еще на вас, особенно когда речь идет об активах JS/CSS и изменениях конфигурации (т. Е. Вставки web.config). Переносимые области не вводят никакого исходного кода в проект импорта, который, я думаю, хорош для стабильности. – shahzbot
Как побочный комментарий к моему опубликованному ответу, я хотел уточнить, что существует разница между портативными областями и более типичными зонами. Если портативные районы не соответствуют вашим потребностям, то, вероятно, делают обычные области. –
Привет @DaveA, я согласен с вами, и это то, что я использую в данный момент. – Sam