Используя seq
прекрасно как предложенный Jiaaro. Diablo мира предложила, чтобы цикл Bash постарался не называть подпроцесс с дополнительным преимуществом того, чтобы быть большей памятью дружественным, если $END является слишком большим. Zathrus определил типичную ошибку в реализации цикла, и также подсказал, что с тех пор i
текстовая переменная, непрерывные преобразования туда и сюда, числа выполняются со связанным замедлением.
Это - улучшенная версия цикла Bash:
typeset -i i END
let END=5 i=1
while ((i<=END)); do
echo $i
…
let i++
done
, Если единственная вещь, которую мы хотим, эти echo
, тогда мы могли записать echo $((i++))
.
ephemient преподавал мне что-то: Bash позволяет for ((expr;expr;expr))
конструкции. Так как я никогда не читал целую страницу справочника для Bash (как, я сделал с оболочкой Korn (ksh
) страница справочника, и это было давным-давно), я пропустил это.
Так,
typeset -i i END # Let's be explicit
for ((i=1;i<=END;++i)); do echo $i; done
, кажется, самый эффективный памятью путь (не будет необходимо выделить память для потребления seq
вывод, который мог быть проблемой, если КОНЕЦ является очень большим), хотя, вероятно, не “fastest”.
eschercycle отметил что { .. b} нотация Bash работает только с литералами; верный, соответственно к руководству Bash. Можно преодолеть это препятствие с синглом (внутренним) fork()
без exec()
(как имеет место с вызовом seq
, какое быть другим изображением требует fork+exec):
for i in $(eval echo "{1..$END}"); do
И eval
и echo
Bash builtins, но fork()
требуется для замены команды (эти $(…)
конструкция).
ASP.NET MVC V2 имеет функцию под названием «Области», которая позволяет вам иметь отдельные проекты, на которые ссылается основное приложение. Прочтите сообщение ScottGu .
Один инструмент, который может вас заинтересовать, называется ILMerge
Это это инструмент, который позволит вам объединить несколько сборок .Net в одну DLL. Его можно использовать для объединения результатов нескольких ваших проектов в одну DLL для развертывания.
Я никогда не пробовал это с Asp.Net MVC, и я недостаточно знаком с архитектурой MVC, чтобы сказать, будет ли это работать в вашей ситуации. Но, вероятно, попробовать стоит.
Проблема решается простым созданием нескольких проектов MVC и объединением вывода в конце простым копированием и вставкой :)
вот структура, которой мы следовали:
В конце мы используем сценарии сборки, чтобы объединить вывод всех проектов и создать файлы, необходимые для запуска всего веб-приложения.
Если вам нужна помощь в реализации аналогичного решения, свяжитесь со мной по текст ссылки
Если вашему приложению не нужны области, а ваша цель - просто обеспечить независимость команды, почему бы просто не использовать лучшую систему управления исходным кодом? Если у вас нет действительно независимых модулей, похоже, что управление через ветки в Subversion уместно.
Одним из способов решения этой проблемы в моей предыдущей работе было создание главного приложения «контроллера». Это приложение было развернуто и стало общедоступным. Его задача заключалась в том, чтобы прочитать входящий URL-адрес и на основе набора правил сопоставления в файлах конфигурации сопоставить этот URL-адрес с другими приложениями MVC, работающими на том же сервере. Это дало нам множество вариантов, например, возможность запускать вспомогательные приложения на разных серверах в ферме, если мы хотели выполнить грубую балансировку нагрузки. Вам необходимо управлять такими вещами, как аутентификация в нескольких приложениях (если вы используете аутентификацию).
Это в основном дает вам возможность иметь столько разных приложений MVC, сколько вам нужно, работающих на серверах, все с одним и тем же фронт-контроллером. (по существу)
Вы можете просто использовать хороший контроль версий и попросить соответствующие команды проверить, над чем им нужно работать.
Таким образом, во время компиляции у вас будет только одна dll ...
Перейдите по этой ссылке, чтобы решить вашу проблему.
Прохождение занимает всего 10 минут.
Пошаговое руководство: организация приложения ASP.NET MVC по логическим областям