Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
[MigrationDate (2013, 8, 17, 19, 50)]
public class MyMigration : Migration
{
public override void Up ()
{
Create.Table ("GnsTags")
.WithColumn ("EntryKind").AsEnum ("Merchandise", "Advertisement").NotNullable ()
.WithColumn ("EntityId").AsUInt32 ().NotNullable ()
.WithColumn ("Tag").AsString ().NotNullable ();
Create.Column ("IsDeleted").OnTable ("GnsGoods").AsBoolean ().NotNullable ();
}
public override void Down ()
{
//Тут код отката в том же стиле
}
}
Поддерживает несколько движков БД. Из минусов могу назвать только тот факт, что миграции всё же приходится писать вручную.Вообще, все предлагаемые структуры VCS преследуют одну цель: избежать ситуации, когда ветка разработки не стабильно, а совершенно необходимо что-то быстро «пофиксить» или «допилить» и выложиться.
Юнит тесты могут хоть 2 часа работать
Во первых, про плохой тест объясните отвалившемуся браузеру, или БД, или неожиданно долгому коннекту, прерванному по таймауту.
Про публикацию служб. Для доставки бинарников на сервер подходит тот же MSDeploy. Если в проекте уже используется MSDeploy для публикации web-приложений, то одной командой sync в MSDeploy можно скопировать все бинарники сервиса на целевой сервер. Шаред-папка и FTP это уже не модно :)На целевой машине может не быть IIS
— Параметры в TeamCity. Учите людей плохому. Кучу аргументов через /P указывать в TeamCity не надо — работать будет, но будут warnings. Специально для этого есть Build Parameters, они прозрачно транслируются в MSBuild скриптМожет у нас разные настройки TeamCity, я не видел ворнингов, хотя последние большие сборки у меня публиковались с помощью кастомного мсбилда, в который передается только конфигурация и никаких параметров нет.
Я больше склоняюсь к использованию PowerShell и конкретно psake. Это императивные скрипты, а не декларативный XML как в MSBuild, их не надо компилировать, можно легко править и можно отдать поддержку этих скриптов админам (от них сейчас знание PowerShell стали требовать).Никто же не мешает использовать и то и другое или что-то одно по вкусу. Главное, чтобы работало и было просто поддерживать. например, поэтому я чаще всего не пишу отдельные таски, чтобы не тащить за собой бинарники.
Версионирование продукта
На мой взгляд удобнее всего использовать msbuild и проставлять значение с помощью CI-сервера:
Continuous Integration для самых маленьких