Несколько проектов MVC ASP.NET, который создает как единственный ASP.NET Приложение MVC

обсуждение

Используя 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() требуется для замены команды (эти $(…) конструкция).

16
задан Gopinath 29 July 2009 в 13:51
поделиться

7 ответов

ASP.NET MVC V2 имеет функцию под названием «Области», которая позволяет вам иметь отдельные проекты, на которые ссылается основное приложение. Прочтите сообщение ScottGu .

8
ответ дан 30 November 2019 в 22:55
поделиться

Один инструмент, который может вас заинтересовать, называется ILMerge

Это это инструмент, который позволит вам объединить несколько сборок .Net в одну DLL. Его можно использовать для объединения результатов нескольких ваших проектов в одну DLL для развертывания.

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

2
ответ дан 30 November 2019 в 22:55
поделиться

Проблема решается простым созданием нескольких проектов MVC и объединением вывода в конце простым копированием и вставкой :)

вот структура, которой мы следовали:

  • MyApp. Web.Shell (содержит только темы, CSS, js и изображения, необходимые для веб-приложения)
  • MyApp.Web.Home
  • MyApp.Web.UserManagement
  • MyApp.Web.DeviceManagement
  • MyApp.Web. ContentManagement
  • ..... etc ...

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

Если вам нужна помощь в реализации аналогичного решения, свяжитесь со мной по текст ссылки

3
ответ дан 30 November 2019 в 22:55
поделиться

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

0
ответ дан 30 November 2019 в 22:55
поделиться

Одним из способов решения этой проблемы в моей предыдущей работе было создание главного приложения «контроллера». Это приложение было развернуто и стало общедоступным. Его задача заключалась в том, чтобы прочитать входящий URL-адрес и на основе набора правил сопоставления в файлах конфигурации сопоставить этот URL-адрес с другими приложениями MVC, работающими на том же сервере. Это дало нам множество вариантов, например, возможность запускать вспомогательные приложения на разных серверах в ферме, если мы хотели выполнить грубую балансировку нагрузки. Вам необходимо управлять такими вещами, как аутентификация в нескольких приложениях (если вы используете аутентификацию).

Это в основном дает вам возможность иметь столько разных приложений MVC, сколько вам нужно, работающих на серверах, все с одним и тем же фронт-контроллером. (по существу)

0
ответ дан 30 November 2019 в 22:55
поделиться

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

Таким образом, во время компиляции у вас будет только одна dll ...

0
ответ дан 30 November 2019 в 22:55
поделиться

Перейдите по этой ссылке, чтобы решить вашу проблему.

Прохождение занимает всего 10 минут.

Пошаговое руководство: организация приложения ASP.NET MVC по логическим областям

1
ответ дан 30 November 2019 в 22:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: