Существует много предложений здесь, так простите мне, если это было уже отправлено.
первая вещь, которую я сделал бы, делают упорядочивание двух процессов шага. Первый шаг пасовал бы назад GUID при входе IP-адреса. Второй шаг получил бы GUID и сравнил бы его с IP-адресами, которые были зарегистрированы. В сочетании с блокированием IP-адресов, которые массово рассылают сайт (IE: быстрее, чем человек может нажать обновление), эта техника могла остановить спаммеров от успешного создания покупок, таким образом, решив 1 & 3.
второй объект проблематичен, но я сохранил бы под управлением список IP-адресов Вашего обычного пользователя и трафика дросселя для любых вновь прибывших. Это могло оставить в первый раз посетителей и набрать пользователей (из-за изменения IP-адресов) в холоде, но я думаю, что это просто делает лучшее из плохой ситуации путем предоставления предпочтения для повторения бизнеса... и пользователей удаленного доступа, хорошо сомнительно, "победили" ли они, даже если не было никаких спаммеров так или иначе.
Спасибо всем за ваши ответы, но, проведя небольшое исследование, я нашел несколько идей, как сделать это немного по-другому:
«В этом каталоге ресурсов у нас есть такие вещи, как build.bat и buildpatch.bat . Цель состоит в том, чтобы люди могли получить материал из системы управления версиями и набрать BUILD и быть где-нибудь полезным. ОЧЕНЬ комфортно иметь возможность надежно и просто построить всю систему ».
Из этого я вижу, что он (очевидно) по-прежнему использует .sln и .csproj для хранения своих файлов для VS - и может строить через VS, если необходимо, - но фактически делает свою сборку через файлы Nant .build, выполняемые через .bat.
В этом посте (также от Скотта Хансельмана) показано, как выполнять внешние инструменты (такие как MSBuild или файл .bat) из Visual Studio. Итак, я создал файл build.bat, который выглядит так:
@echo off
echo Building %1 solution from build.bat
echo Directory: %~p1
C:\Windows\Microsoft.NET\Framework\v3.5\MSBuild.exe %~f1 %2
(я получил модификаторы параметров фанки ~ p и ~ f из здесь ;% ~ f1 расширяет MySolution.sln до полностью квалифицированного путь к sln); -)
Затем я настроил диалоговое окно Visual Studio «Внешние инструменты» так, чтобы: - команда "build.bat" - аргументы: «$ (SolutionFileName) / v: m» - начальный каталог - "& (SolutionDir)"
И затем я добавил кнопку на панель инструментов для его выполнения. Я могу пойти дальше и сопоставить клавишу F5 для запуска этой сборки, а не стандартную сборку Visual Studio.
В любом случае, это всего лишь некоторые идеи (по общему признанию, чужой мозг!), Но это дает мне больше информации о сборках и о том, как они может быть сделано. Есть некоторые ограничения (например, ошибки не отображаются в окне списка ошибок), но я уверен, что это можно преодолеть, если потребуется.
Я собираюсь попробовать и посмотреть, чего я могу достичь только на MSBuild, а затем попробуйте подключиться к Hudson и посмотреть, что готовит! : -)
Между прочим, если кто-то все еще читает этот момент и имеет мнение о том, является ли материал, который я представил в моем собственном ответе, хорошим / плохим / правильным / неправильным / излишним / устаревшим / некорректным / чем угодно , пожалуйста, поделитесь своим мнением.
Хороший, Пит.
Мы используем msbuild для автоматизированных сборок, и вы можете просто указать msbuild на свой файл решения без каких-либо изменений.
Также, чтобы уточнить, мы также используем сервер автоматической сборки (Hudson с. Net), который использует msbuild для автоматизации процесса.
Скорее вам следует взглянуть на CruiseControl.NET чем развертывание собственной автоматизированной сборки и процесса CI. Он делает подобное намного проще и может делать дополнительные вещи, такие как запуск до тестирования или инструменты покрытия кода, или что-то еще как часть процесса сборки.
Чем отличается опыт разработки Visual Studio?
Обычно ничего. Фактически, если вы все делаете правильно, это должно быть прозрачно; ваша IDE не должна заботиться о том, какой менеджер сборки вы используете. Вот почему такие решения, как CruiseControl.NET и Hudson, хороши.
Если мы создаем наши собственные файлы MSBuild .proj, означает ли это, что у нас больше нет файлов .csproj? Как проекты теперь выглядят в VS?
Структура вашего решения осталась прежней. В Visual Studio решения и проекты выполняют двойную функцию как руководство по организации проекта / упаковке и как удобство IDE. Ваш менеджер сборки проанализирует это, чтобы понять, что необходимо построить.
Доступно несколько хороших инструментов автоматической и непрерывной сборки, основанных на MSBuild. Ваши файлы проекта C # уже ЯВЛЯЮТСЯ файлами MSBuild - так что на самом деле, начиная с VS2005, вы использовали MSBuild на своей локальной рабочей станции для создания своей сборки - вы просто могли не знать об этом: -)
Помимо CruiseControl.NET (упомянутого JP), на который определенно стоит обратить внимание, я бы также порекомендовал еще два продукта:
FinalBuilder Server , который кажется почти неизвестным подавляющему большинству разработчиков (но определенно заслуживает большего внимания! Отличный инструмент). У них также есть автономная настольная версия FinalBuilder
, если она вам может понадобиться. Это не бесплатно, но за 100 долларов за одного пользователя (и 450 долларов за 5) это ' на самом деле небольшие расходы
TeamCity от JetBrains - также хорошо известного своим продуктом Resharper в мире .NET - который предлагает бесплатную версию Pro для команд до 20 пользователей / планов сборки и гораздо более дорогую Корпоративная версия, если вы выросли :-)
По сравнению с CruiseControl.NET, оба предлагают приятный дружественный графический интерфейс для настройки ваших сборок, а также для их мониторинга.
И, как я уже упоминал, оба построены поверх существующего проекта и файловой структуры решения, поэтому не нужно ничего там менять.
Вы действительно не ошибетесь с непрерывной интеграцией! Я больше не мог без немедленных отзывов о сборке ......
Marc
и гораздо более дорогая версия Enterprise, если вы выросли :-)По сравнению с CruiseControl.NET, оба предлагают приятный дружественный графический интерфейс для настройки ваших сборок и их мониторинга.
И, как я уже упоминал, - и то, и другое основано на существующем проекте и файловой структуре решения, поэтому нет необходимости вообще ничего менять.
Вы действительно не ошибетесь с непрерывной интеграцией! Я больше не мог без немедленных отзывов о сборке ......
Marc
и гораздо более дорогая версия Enterprise, если вы выросли :-)По сравнению с CruiseControl.NET, оба предлагают приятный, дружественный графический интерфейс для настройки ваших сборок, а также для их мониторинга.
И, как я уже упоминал, - и то, и другое основано на существующем проекте и файловой структуре решения, поэтому нет необходимости вообще ничего менять.
Вы действительно не ошибетесь с непрерывной интеграцией! Я больше не мог без немедленных отзывов о сборке ......
Marc
не ошибетесь с непрерывной интеграцией! Я больше не мог без немедленных отзывов о сборке ......Marc
не ошибетесь с непрерывной интеграцией! Я больше не мог без немедленных отзывов о сборке ......Marc
Мы используем TeamCity на работе; мы начали с CruiseControl.NET, но переключились, когда другой разработчик указал мне, что в противном случае я буду поддерживать сборку cc навсегда. ;) Серьезно, TeamCity очень легко изучить и использовать.
Я задавал похожие вопросы, когда впервые услышал о непрерывной интеграции. Приходится ли вам вручную переписывать (и поддерживать) все решения и проекты? Вам нужно изучить команды MSBuild? Короткий ответ - нет.
Как упоминал г-н Харви, вы можете просто вызвать MSBuild для созданного VS решения или файла проекта, и он построит его для вас. TeamCity сделает это автоматически.
Если вам нужна большая гибкость, я бы рекомендовал NAnt . Я работал над написанием сценариев MSBuild вручную, и это разочарование. NAnt имеет более чистый синтаксис и (для меня) проще в использовании и чтении. Мы используем NAnt для причудливых вещей и (опять же) вызываем MSBuild из NAnt, когда хотим создать проект или решение. TeamCity поддерживает NAnt.
Подводя итог, для нас в Visual Studio ничего не изменилось. Мы по-прежнему создаем и поддерживаем наши проекты и решения таким же образом. Когда мы проверяем их в системе контроля версий (TFS), TeamCity автоматически выбирает их, создает решения и запускает наши (NUnit) тесты. У нас также есть настройки развертывания одним щелчком мыши (в TeamCity с использованием NAnt).
Когда мы проверяем их в системе контроля версий (TFS), TeamCity автоматически выбирает их, создает решения и запускает наши (NUnit) тесты. У нас также есть настройки развертывания одним щелчком мыши (в TeamCity с использованием NAnt). Когда мы проверяем их в системе контроля версий (TFS), TeamCity автоматически выбирает их, создает решения и запускает наши (NUnit) тесты. У нас также есть настройки развертывания одним щелчком мыши (в TeamCity с использованием NAnt).