Простым ответом было бы сделать цикл foreach на странице, где вы хотите меню, и привязать к нему коллекцию, создав HTML-теги из коллекции. Если вы хотите, чтобы он был в файле _Layout.cshtml, то в дополнение к данным меню в коллекции вам нужно было бы добавить также представление, к которому оно относится, чтобы вы могли отфильтровать то, какие элементы отображаются на какой странице. Таким образом, пример будет выглядеть примерно так:
@foreach (var item in menuItems.Where(x => x.View == "pass the view name"))
{
<div class="menuItem" name="item.Name"/>
....
}
Или если вы используете какую-то другую структуру меню, например, <li>
или treeList, используйте разные теги:)
Имя представления может быть передано ViewData["viewName"]
или ViewContext.RouteData.Values["controller"].ToString()
По мере того, как оно должно проходить текущий вид, меню находится в нем и соответственно заполняет меню.
Производство означает что-либо, что необходимо работать надежно, и последовательно.
, Является ли сценарием сборки или общедоступным веб-сервером.
, Когда другие полагаются на Ваш код, особенно люди, которые не могут понять это (т.е. даже "умные" разработчики, но возможно не в Вашей группе, но пользовании библиотекой Вы записали), тот код является производственным кодом.
Это - производство, потому что "остановки работы" и "деньги потеряны", когда производственный код перестал работать.
Когда Ваш код работает на производственной системе, которая означает, что он используется целевой аудиторией в реальной ситуации.
Производственный код, однако, не обязательно означает устойчивый, надежный, или стабильный код. The Daily WTF представляет много свидетельств в этом отношении.
Определение насколько я понимаю - то, что производственный код является любым кодом, который установлен или используем в живой, системе неиспытательного стенда. Сервер, привыкший внутренне к компании, является производственной системой, если это - живая система, используемая сотрудниками компании. Точка здесь - то, что работа кода сервера, внутреннего к компании, пишущей код, может быть производственным кодом.
Обычно, хорошее различие при рассмотрении внутреннего кода - является ли группа, поддерживающая код, отдельной от группы, использующей код. Если группы являются отдельными, разногласия - то, что код является производственным кодом. Если выполнение бизнеса зависит от кода, затем это - конечно, производственный код, даже если это разрабатывается и сохраняется внутреннее.
Любой код, который будет использоваться, он предназначил, чтобы база пользователей вписалась бы в мое определение 'производственного кода'.
, Конечно, серая область в том определении ясно определила бы, кто Ваша база пользователей.
G-человек
В простых словах "Производственный код, который жив и используем его целевой аудиторией"
Термин "производственный код" смешивает два различных понятия. Каждый - управление развертыванием, и другой жизненный цикл выпуска .
В строгом смысле слова, система работает, когда это используется в качестве части сервисной деятельности или бизнеса. Что не работает, разработка, тестирование, QA, демонстрация и подготовка системы. Производственная система сразу не подразумевает качество.
С точки зрения жизненного цикла выпуска, "производственная" сборка является сборкой, которая выпущена широкой публике или клиентам. Это - этап после предварительной альфы, альфы, беты, (завершенная функция, завершенный код, и т.д.) и предвыпускная версия. Для продуктов термоусадочной пленки, которые не могут легко развернуть обновления, достигнув производственной стадии, вероятно, подразумевает ряд тестирования и исправлений ошибок.
Править: Короткий ответ: при "пари фермы на нем", это - "производство".
Это - большой вопрос - абсолютно критическое различие, которое обычно получает всех в проблеме из-за недоразумений. Вопросом того, что является "производством", является подмножество связанного вопроса того, что является "средой".
Таким образом, часть ответа - то, что "производство" является "средой", которая является самой важной и является пользующейся наибольшим доверием как "реальная" вещь.
Таким образом, теперь мы должны определить "среду" (и затем пересмотреть "производство"). Мы все еще далеки от удовлетворительного ответа.
Мы, которых программисты используют термин "среда" постоянно для обращения к компьютерным системам, состоящим из аппаратных средств, которые выполняют программное обеспечение. То программное обеспечение является кодом, что мы записали плюс программное обеспечение, что это зависит от, который был записан другими. Мы пишем наш код и интегрируем его с другим программным обеспечением, затем мы обычно запускаем интегрированное программное обеспечение через возрастающую серию тестов (модульные тесты, интеграционные тесты, функциональные испытания, приемочные испытания, регрессионные тесты, и т.д.), пока мы наконец не запускаем интегрированное программное обеспечение полным способом, которым он был предназначен.
Конечно, не все полностью автоматизировано. Существуют обычно многочисленные люди, вовлеченные, и у них есть ручные процессы для выполнения. Мы программисты ищут способы автоматизировать как можно больше этих процессов, но всегда существуем "граница человека/машины" в системах, мы продолжаем работать. Часто, в каком-то конкретном случае существует много таких границ.
С другой стороны, не может быть никакой значительной автоматизации вообще. Например, мы говорили о "производстве" путь назад, когда у нас была комната, полная людей, выполняющих физический труд, который произвел продукт. Так, не должно быть никакой автоматизации, существующей в нашем "производстве" "среда". Существует также второй план, где включенная автоматизация не включает программное обеспечение, такой как в случае человека, выполняющего ткацкий станок для переплетения ткани.
Кроме того, не может быть продукта, так как мы адаптировали наш язык "производства" "среда" для включения поставщиков услуг продукта меньше.
Аналогично, тестирование не может включить программное обеспечение, так как мы можем тестировать non-software-driven машину (например, ткацкий станок) или даже люди (обучение и оценка).
Теперь мы затронули все ключевые элементы "среды":
intent
, быть преследуемымintent
требует intender, таким образом, должен быть a sponsor
(человек или группа, но не машина), который указывает intent
intent
преследуется через различный processes
это выполняется различным actors
actors
могут быть люди, они могут быть программным обеспечением, выполняющимся на аппаратных средствах, или они могут быть non-software-driven машинами, таким образом, там может или может не быть существующая автоматизацияТеперь мы можем правильно и полностью определить наши исходные условия.
environment
состоит из весьprocesses
и ихactors
это сотрудничает для преследования деталиintent
от имениsponsor
. Это означает программное обеспечение, выполняющееся на аппаратных средствах, которые означают non-software-driven машины, и это означает людей, выполняющих их различные обязанности. Этоintent
это, прежде всего, определяетenvironment
, неprocesses
илиactors
.
Кроме того...
Если
intent
будучи преследуемым в деталиenvironment
sponsor's
конечная цель, которая обычно включает создание aproduct
или обеспечение aservice
в обмен на деньги затем мы обращаемся к этомуenvironment
какproduction
.
Теперь мы можем пойти немного далее.
Если
intent
быть преследуемым вenvironment
проверкаprocesses
и ихactors
при подготовке кproduction
, мы называем это atest
environment
.Мы далее называем его
integration
environment
если то тестирование включает начальное объединение значительных людей или группыprocesses
и ихactors
.Если та подготовка включает "программирование" человека
actors
работать новыйprocesses
, или последующая проверка (оценка), затем мы называем это atraining
environment
.
Вооруженный с этими отличиями и определениями, мы можем теперь понять несколько общих сценариев.
environment
может быть mislabeled с именем, которое не соответствует intent
, такой как тогда, когда a training
среда используется как test
.
environment
может чрезвычайно неправильно использоваться, такой как тогда, когда integration
или training
выполнен production
.
environment
может быть искажен, такой как тогда, когда ключ processes
или actors
оставлены неопознанными (например, ручные согласования, или даже путем игнорирования людей в целом).
environment
может быть повторно определен задачу, путем перенамерения processes
и actors
к новому intent
. Очень успешная техника для некоторых организаций состоит в том, чтобы обычно "зеркально отражать" несколько наборов actors
(программное обеспечение хостинга серверов) между production
, test
, training
, и integration
после каждого выпуска.
В большинстве случаев, сингл actor
(человек или аппаратные средства), может выполнить несколько processes
который может участвовать в нескольких environments
. Например, сервер одиночного компьютера может разместить программное обеспечение, которое работает production
транзакции, также размещая другое программное обеспечение, которое работает test
или training
функции.
Обычно, единственный экземпляр actor
должен участвовать только в одном environment
за один раз. В очень редком случае, сингле actor
может быть совместно использован через environments
если intents
взаимно совместимы. Большую часть времени очень неблагоразумно делать попытку такого совместного использования потому что intents
не действительно совместимы. Идеальный пример выполняет a test
process
на сервере, который также поддерживает production
processes
, получающийся во время простоя, потому что test
вызванный весь сервер для сбоя.
Поэтому intent
из environment
должен быть истолкован с очень широкой широтой, для включения понятий, таких как доступность, надежность, производительность, аварийное восстановление, точность, точность, воспроизводимость, долговечность, и т.д. Это означает что actors
и processes
должен часто истолковываться для включения вещей как обеспечение питания, охлаждение, резервные копии и дублирование.
Наконец, обратите внимание, что ситуация может стать довольно сложной. Например, настольный компьютер (actor
) может быть определен задачу группой разработчиков (sponsor
) размещать их управление исходным кодом (process
), на который команда полагается для их основных заданий (production
). Тем не менее, штат IT видит тот же самый настольный компьютер как просто рабочая станция разработчика (development
, нет production
) и обработки это с презрением и беспечностью, когда это разрабатывает аппаратную проблему. Но разработчики производят production
код, так не они также часть production
? Перспективные вопросы.
Править: Производственное качество
Серьезная проверка (testing
) методология должна взять упакованный код от development
и выполненный это через серию tests
(интеграция, TQA, функциональный, регрессия, принятие, и т.д.), пока это не выходит другая сторона, "штампованная" для production
использовать. Однако это делает пакет production
качество, но не на самом деле production
. Пакет только становится production
когда a sponsor
на самом деле развертывает его в environment
с тем окончательным уровнем intent
.
Однако, если Ваша организация просто производит тот пакет ( product
) для потребления других затем такой выпуск стал близко к production
поскольку та организация испытает относительно этого product
, таким образом, распространено расширить термин production
применить, а не разъяснить, что это production
качество. В действительности, та организация production
среда состоит из actors
и processes
вовлеченный в его усилия по разработке/выпуску тот результат в этом product
.
Я сказал, что это могло стать довольно сложным...