Как и почему я настраиваю машину для сборки C #? [закрыто]

#sec {
  visibility: hidden;
  padding: 0;
  margin: 0;
  height: 1;
}
<form method="POST" action="www.google.com">
  NAME
  <input type='text' name='name' />
  <br /> EMAIL
  <input type='text' name='email' />
  <br /> MESSAGE
  <textarea name='message' /></textarea>
  <br />
  <input type='text' name='security' id='sec' placeholder="Do not enter anything here" />
  <input type='submit' formaction="" />
</form>

** Здесь только пользователь, который нажимает кнопку отправки, может отправить форму. использование автоматической отправки просто перенаправляет бота на google.com. **

* Также ввод «безопасность» является полем ввода, которое скрыто для пользователей и видимым для определенных ботов, обычно известных как HoneyPot Captcha. На стороне сервера вы можете просто пропустить все запросы с заполненным полем «безопасность». Не каждый бот может быть обманут таким образом, и именно здесь вступает в игру атрибут formaction *

144
задан Jonik 3 May 2010 в 23:12
поделиться

8 ответов

Обновление: Jenkins является самой актуальной версией Гудзона. Все должны использовать Jenkins теперь. Я буду обновлять ссылки соответственно.

Гудзон свободен и чрезвычайно легок настроить и будет легко работать на VM.

Частично из старого моего сообщения:

Мы используем его для [1 142]

  • , Развертываются, службы Windows
  • Развертывают веб-сервисы
  • Выполнение MSTests & отобразите столько же информации, сколько любые тесты junit
  • Отслеживают низкие, медицинские, высокие задачи
  • , trendgraph предупреждения и ошибки

Вот являются некоторыми созданными в материале .NET тот Гудзон поддержки

кроме того, бог запрещает Вам, используют визуальный безопасный источник, это поддерживает это также . Я рекомендовал бы смотреть на [1 112] статья Redsolo о создании проектов .NET с помощью Гудзона

вопросы

  • Q: В каких инструментах/лицензиях я буду нуждаться? Прямо сейчас мы используем Visual Studio и Умный блок для создания, и По необходимости для управления исходным кодом. Я буду нуждаться в чем-то еще или являюсь там эквивалентом задания крона для выполнения автоматизированных сценариев?

  • А: я просто установил Visual Studio на новой копии VM выполнение нового, исправленного, установки Windows Server ОС. Таким образом, Вам были бы нужны лицензии для обработки этого. Гудзон будет устанавливать себя как сервис окон и работать на порте 8080, и Вы настроите, как часто Вы хотите, чтобы он просканировал Ваш репозиторий кода для обновленного кода, или можно сказать ему создавать в определенное время. Все настраивающиеся через браузер.

  • Q: , Что, точно, это получит меня кроме признака поврежденной сборки? Я должен настроить тестовые проекты в этом решении (sln файл), который будет выполнен этими сценариями, таким образом, мне можно было протестировать конкретные функции? У нас есть, в данный момент, два таких теста, потому что у нас не было времени (или откровенно говоря, опыт) для создания хороших модульных тестов.

    А: Вы получите электронное письмо на первом разе, когда сборка перестала работать или становится нестабильной. Сборка нестабильна, если модульный тест перестал работать, или это может быть отмечено нестабильное через любое количество критериев, которые Вы устанавливаете. Когда модульный тест или сбои сборки, которые Вы будете посланы по электронной почте и это скажет Вам, где, почему и как это перестало работать. С моей конфигурацией мы добираемся:

    • список всех фиксаций начиная с последней рабочей сборки
    • примечания фиксации тех фиксаций
    • список файлов, измененных в фиксациях
    • консольный вывод от самой сборки, показывая ошибку или тестовый отказ
  • Q: , В каких аппаратных средствах я буду нуждаться для этого?

    А: А VM будет достаточен

  • Q: , Как только сборка была закончена и протестирована, действительно ли это - обычная практика, чтобы поднять ту сборку на FTP-сайте или иметь некоторый другой путь к внутреннему доступу? Идея состоит в том, что эта машина делает сборку, и все мы переходим к ней, но можем сделать сборки отладки, если мы имеем к.

    А: Гудзон может сделать то, что Вы хотите с ним, который включает ID'ing он через хеш md5, загружая его, копируя его, архивируя его, и т.д. Это делает это автоматически и предоставляет Вам длительную историю артефактов сборки.

  • Q: , Как часто мы должны сделать этот вид сборки?

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

  • Q: , Как пространством управляют? Если мы делаем ночные сборки, мы должны иметь в наличии все старые сборки или начать угробить их приблизительно после недели или так?

    А: Это ваше дело, после того, как так долго я перемещаю наши артефакты сборки в длительное хранение или удаляю их, но все данные, которые хранятся в текстовых файлах / XML-файлы, которые я имею в наличии, это позволяет мне сохранить журнал изменений, графики тенденции, и т.д. на сервере с verrrry мало занимавшего места. Также можно установить Гудзон до, только сохраняют артефакты от запаздывания # сборок

  • Q: там что-либо еще, что я не вижу здесь?

    А: нет, Пойдите, получают Гудзон прямо сейчас, Вы привычка быть разочарованным!

147
ответ дан Community 4 May 2010 в 10:12
поделиться
  • 1
    Я просто зашел, но позвольте мне быть ясным: Удивительный ответ!! – Qqbt 3 September 2011 в 14:16

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

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

необходимо заставить машину сборки восстановить КАЖДЫЙ раз некоторые регистрации, в течение дня. С Круиз-контролем можно получить значок на панели задач, которая покраснела (и даже говорит с Вами!), когда сборка повреждается.

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

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

5
ответ дан Daniel Earwicker 4 May 2010 в 10:12
поделиться
  • Никакие лицензии не необходимы. CruiseControl.net в свободном доступе и только нужен в.NET sdk для создания.
  • сервер сборки А, даже без автоматизированных модульных тестов все еще обеспечивает управляемую среду для создания выпусков. Больше "John обычно не основывается на своей машине, но он отсутствует больной. По некоторым причинам я не могу основываться на своей машине",
  • Прямо сейчас у меня есть тот, настроенный на Виртуальной сессии ПК.
  • Да. Сборка должна быть выведена где-нибудь доступная. Сборки разработки должны иметь включенную отладку. Сборке конечных версий нужно выключить его.
  • , Как часто ваше дело. Если настроено правильно, можно создать после того, как каждая регистрация будет очень мало служебное. Это - прекрасная идея, если Вы имеете (или планирование наличия), модульные тесты на месте.
  • Сохраняют этапы и выпуски настолько же долго как требуется. Что-либо еще зависит от того, как часто Вы создаете: непрерывно? выбросить. Ежедневно? Сохраните ценность недели. Еженедельно? Сохраните двухмесячную ценность.

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

4
ответ дан Kenneth Cochran 4 May 2010 в 10:12
поделиться

Это - все о здоровье сборки. То, что это получает Вас, - то, что можно настроить любой тип вещей, Вы хотите произойти со сборками. Среди них можно запустить тесты, статический анализ и профилировщика. С проблемами имеют дело намного намного быстрее, когда Вы недавно работали над той частью приложения. Если Вы фиксируете небольшие изменения, то это почти говорит Вам, где Вы повредили его:)

Это, конечно, принимает, Вы настраиваете его для создания с каждой регистрацией (непрерывная интеграция).

Это также может помочь получить QA и Dev ближе. Поскольку можно настроить функциональные испытания для выполнения с ним, вместе с профилировщиком и чем-либо еще, что улучшает обратную связь до команды разработчиков. Это не означает функциональные тесты, запущенные с каждой регистрацией (может требовать времени), но Вы настраиваете сборки/тесты с инструментами, которые характерны для целой команды. Я автоматизировал испытания с помощью дыма, таким образом, в моем случае мы сотрудничаем еще более тесно.

3
ответ дан eglasius 4 May 2010 в 10:12
поделиться
  • 1
    Я думаю быть хорошей идеей, добавляют если перед броском... если (! (o instanceof A)), возвращают false; – ademar111190 16 June 2014 в 19:15

Просто пытаясь создать немного, на какой сказанный mjmarsh, так как он положил большое начало...

  • Visual Studio. MSBuild хорошо работает.
  • NAnt.
  • NantContrib. Это обеспечит дополнительные задачи такой как По необходимости операции.
  • CruiseControl.net . Это - снова в основном Ваша "панель инструментов сборки".

Все вышеупомянутое (сохраняют для VS) является открытым исходным кодом, таким образом, Вы не смотрите ни на какое дополнительное лицензирование.

Как упомянутый Earwicker, создайте рано, часто создавайте. Знание чего-то повредилось, и можно произвести поставляемый компонент, полезно для ловли материала вначале.

NAnt включает задачи для [1 114] nunit / nunit2 также, таким образом, можно на самом деле автоматизировать поблочное тестирование. Можно тогда применить таблицы стилей к результатам, и с помощью основы, служившей CruiseControl.net, иметь хорошие читаемые, печатаемые результаты модульного теста для каждой сборки.

то же относится задача ndoc . Произведите Вашу документацию и доступный для каждой сборки.

можно даже использовать должностное лицо задача выполнить другие команды, например, производя использование Windows Installer InstallShield.

<час>

идея состоит в том, чтобы автоматизировать сборку как можно больше, потому что люди делают ошибки. Время потратило, впереди время, сэкономленное в будущем. Люди не должны нянчить сборку путем прохождения через процесса сборки. Определите все шаги своей сборки, создайте сценарии NAnt для каждой задачи и создайте свои сценарии NAnt один за другим, пока Вы полностью не автоматизировали свой весь процесс сборки. Это также тогда кладет все Ваши сборки на одно место, которое хорошо для целей сравнения. Что-то прерывает Сборку 426, это хорошо работало в Сборке 380? Ну, существуют результаты, готовые к тестированию - выхватывают их и тест.

5
ответ дан The Lazy DBA 4 May 2010 в 10:12
поделиться
  • 1
    См. мой ответ для возможного объяснения - " другая проблема..." – Stephen C 30 November 2011 в 07:07

У нас была большая удача со следующей комбинацией:

  1. Visual Studio (а именно, с помощью инструмента командной строки MSBuild.exe и передавая его наши файлы решения. устраняет необходимость msbuild сценариев)
  2. NAnt (как синтаксис XML / библиотека задачи лучше, чем MSBuild. Также имеет опции для операций управления P4 src)
  3. CruiseControl.net - созданный в веб-панели инструментов для контроля/запуска сборок.

CCNet создал в notifiers для отправки электронных писем, когда сборки следуют/приводят к сбою

На выравнивании: Это берет загрузку от разработчиков, делающих ручные сборки, и делает много для вынимания человеческой ошибки из уравнения. Очень трудно определить количество этого эффекта, но как только Вы делаете это, Вы никогда не будете возвращаться. Наличие повторяемого процесса, чтобы создать и выпустить программное обеспечение является главным. Я уверен, что Вы были местами, где они создают программное обеспечение вручную, и оно выходит в дикой природе, только чтобы сделать, чтобы Ваш парень сборки сказал "Ой, я, должно быть, забыл включать тот новый DLL!"

На аппаратных средствах: столь мощный, как можно добраться. Больше питания/памяти = более быстрое время изготовления. Если можно предоставить его, Вы никогда не будете сожалеть, что получили первоклассную машину сборки, неважно, как маленький группа.

На пространстве: Помогает иметь много пространства на жестком диске. Можно создать сценарии NAnt для удаления промежуточных файлов каждый раз, когда сборка запускается, таким образом, реальная проблема сохраняет истории журнала и старых установщиков приложения. У нас есть программное обеспечение, которое контролирует дисковое пространство и отправляет предупреждения. Тогда мы очищаем диск вручную. Обычно потребности, которые будут делаться каждые 3-4 месяца.

На уведомлениях о сборке: Это встроено к CCNet, но если Вы собираетесь добавить автоматизированное тестирование, поскольку дополнительный шаг тогда встраивает это в проект с самого начала. Чрезвычайно трудно поддержать пригодные тесты, как только проект становится большим. Существуют тонны информации о средах тестирования там (вероятно, тонна информации о Так также), таким образом, я задержу при именовании любых определенных инструментов.

26
ответ дан Mike Marshall 4 May 2010 в 10:12
поделиться

На моем предыдущем рабочем месте мы использовали TeamCity. Это очень легко и способно использовать. Это может использоваться бесплатно с некоторыми ограничениями. Существует также учебное руководство на Броски Десяти центов . Причина мы не использовали CruiseControl.NET, состоит в том, что у нас было много маленьких проектов, и это довольно болезненно для установки каждого в CC.NET. Я настоятельно рекомендовал бы TeamCity. Чтобы подвести итог, если Вы находитесь к открытому исходному коду тогда, CC.NET является главным папой с кривой немного высшего образования. Если Ваш бюджет позволяет Вам, определенно идут с TeamCity или проверяют бесплатную версию.

11
ответ дан Jeff 4 May 2010 в 10:12
поделиться

Как? Взглянуть на Carel Lotz блог .

Почему? Существует несколько причин, что я могу думать:

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

статья Martin Fowler о Непрерывная Интеграция остается категорическим текстом. Взгляните на него!

10
ответ дан Malice 4 May 2010 в 10:12
поделиться
Другие вопросы по тегам:

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