6

Мы были магазином ColdFusion в течение 10 лет и теперь переходим к ASP.net MVC. Наша целевая структура - .net 4.0 BETA 2 с использованием VS 2010 BETA 2. Мы настроили два экземпляра Windows Server 2008 (этап и производство) и будем использовать наш существующий сервер баз данных (SQL Server 2008).Развертывание приложений ASP.NET MVC для постановки и производства с использованием SQL

Никто из нас не имеет большого опыта работы с ASP.net, хотя мы все очень довольны C# и шаблоном MVC. Сама кодировка не является проблемой; но процесс развертывания. Наша цель состоит в том, чтобы иметь возможность установки CI, которая автоматически вытащит и проверит наши приложения на этапе фиксации - тогда у вас есть возможность пометить, а затем переключить проверки на наших производственных площадках, когда веб-сайты передают QA.

В некоторых случаях у меня возникают проблемы с концепцией приложения ASP.net и его интеграцией в SVN. CF, как PHP или RoR, - это все языки сценариев и, как таковые, не требуют процесса сборки (проверка источника на производство очень проста). Но в этом случае приложения должны быть скомпилированы - вот где мы начинаем испытывать проблемы. Нужно ли нам создать другой сервер (или использовать существующий), который имеет какое-то приложение, которое вытаскивает код, компилирует его, а затем каким-то образом толкает его на живых серверах? Если да, то что считается лучшим способом для этого? Я предполагаю, что если мы закончим использование инструмента построения, такого как Nant, добавление дополнительных шагов для миграции базы данных будет тривиальным, но каков наилучший способ добиться этого?

Другой, слегка несвязанный, проблема в том, как наши дизайнеры будут работать с нашим кодом. Большинство из них находятся на компьютерах Mac, и использование VS не является большим выбором. Как они смогут легко редактировать файлы aspx, css и изображений? Наша цель - сделать это максимально прозрачным для них.

Мы сделали много покупок вокруг, и ASP.net MVC, по-видимому, является лучшим вариантом, насколько мы знакомы с языком и нашей текущей платформой. Нам просто нужно найти хороший процесс сборки, чтобы все было максимально прозрачным. Я понимаю, что на этом имеется масса ресурсов, но я хотел получить мнение людей здесь из первых рук.

ответ

2

Microsoft TFS имеет замечательное встроенное решение для построения. Это дорого, но эффективно. Кроме того, вы не можете проиграть, глядя на CruiseControl, который является бесплатным. TeamCity от JetBrains - отличный вариант. Все эти решения Continuous Build and Integration станут хорошей отправной точкой для ваших исследований.

http://msdn.microsoft.com/en-us/teamsystem/dd408382.aspx

http://www.cruisecontrol.com/

http://www.jetbrains.com/teamcity/

Даже Draco.net является хорошим фактором:

http://draconet.sourceforge.net/

+0

Я должен был упомянуть об этом, но мы посмотрели TFS и решили не идти с ним из-за стоимости. Это похоже на отличный пакет, но мы не можем оправдать его, потратив столько сил на существующую инфраструктуру (SVN, JIRA, FishEye). Спасибо за ваши ссылки, хотя :) – nlaq

+0

TeamCity работал хорошо для меня в прошлом и стоит хорошего взгляда. Надеюсь, что другие ссылки помогут вам начать. В качестве стороны убедитесь, что вы используете в вашем web.config ... это избавит вас от боли. –

0

Мы используем http://www.cruisecontrol.com/ (CC), работающие на нашем SVN/сервере сборки , Вы можете настроить CC через собственные файлы конфигурации/сценария, чтобы вытащить последний источник из SVN, а затем создать один или несколько сценариев Nant или MSBuild, которые могут выполнять вашу сборку и развертывание.

Мы записываем все наши изменения в базу данных в сценарии изменений, которые также входят в SVN. Затем у нас есть инструмент командной строки, который будет развертывать сценарии изменений для SQL Server во время развертывания веб-сайта. Все это делается в сценарии Нанта.

Таким образом, сценарий Nant каждого проекта обрабатывает развертывание сборки, развертывания веб-сайта и развертывание сценария SQL.

Сложная часть обработки откатов, если/когда что-то идет ужасно неправильно. Я бы предложил опубликовать другой вопрос по этой конкретной проблеме.