Я привык писать настольные приложения на C # .NET.Где у меня есть хорошая маленькая папка решения, которая также находится под контролем версий.Поэтому в любое время на любом компьютере я могу проверить любую версию моего программного обеспечения, которую я хочу, запустить компилятор и получить рабочую копию моей программы.
Теперь я занимаюсь разработкой веб-сайтов, где файлы иданные намного более рассредоточены.Я использую ASP.NET, но на самом деле мой вопрос носит более общий характер и может относиться к любой структуре веб-сайта.
Я пытаюсь понять правильный рабочий процесс между разработкой моего веб-сайта, сервера управления версиями и реальным живым веб-сайтом, который увидят пользователи.Очевидно, что это может сильно варьироваться в зависимости от типа и масштаба сайта, но я рассматриваю только довольно простой сайт.Я только начинаю с этим материалом.
Диаграмма ниже показывает мою текущую идею.Все исходные файлы для сайта будут храниться на сервере Subversion, который я проверял на своем локальном компьютере.Мой локальный компьютер будет иметь локальную базу данных, которую я буду использовать для разработки сайта.Затем я опубликую тестовую версию на моем размещенном сервере, которая будет указывать на отдельную тестовую базу данных.Эта тестовая база данных может периодически заменяться копией действующей базы данных.
Если все пойдет хорошо, я опубликую бета-версию сайта, которая указывает на живые данные.Пользователи могут проверить бета-версию, чтобы оставить отзыв.Наконец, если все еще нет проблем, исходные файлы для живого сайта будут обновлены.
Имеет ли это смысл?У кого-нибудь есть комментарии о том, как это можно улучшить?Существуют ли хорошие книги или онлайн-учебники по разработке таких рабочих процессов?
Также одна вещь, в которой я действительно не уверен, это то, как управлять изменениями в реальной схеме базы данных.Я полагаю, что с каждой версией я могу создать сценарий SQL, который можно использовать для обновления баз данных Test и Live на хосте.Тем не менее, я также хотел бы иметь возможность легко настроить новую базу данных для любой версии моего сайта без необходимости запускать каждый скрипт SQL для каждой версии до нужной версии.Является ли лучшее решение для использования ORM, например, NHibernate или Subsonic, чтобы я всегда мог генерировать схему базы данных непосредственно из своего кода?