IEnumerable
представляет серию объектов, по которым можно выполнить итерации (использующий foreach, например), тогда как IList
набор, к которому можно добавить или удалить из.
Обычно Вы захотите смочь изменить Порядок путем добавления или удаления OrderLines к нему, таким образом, Вы, вероятно, захотите Порядок. Строки, чтобы быть IList
.
Однако существуют некоторые проектные решения платформы, которые необходимо сделать. Например, должно быть возможно добавить тот же экземпляр OrderLine к двум различным заказам?Наверное, нет. Таким образом, учитывая, что Вы захотите смочь проверить, должен ли OrderLine быть добавлен к порядку, можно действительно хотеть появиться, свойство Lines как только IEnumerable
, и обеспечить Добавляет (OrderLine) и Удаляет методы (OrderLine), которые могут обработать ту проверку.
У меня есть личные проекты PHP на виртуальном хостинге; вот пара мыслей из того, что я делаю на одном из этих (тот, который является наиболее активным и требует хотя бы полуавтоматического способа синхронизации) :
Несколько слов о моей настройке:
Итак, как я работаю:
То, что я делал раньше:
Что я делаю сейчас:
Единственное, что здесь "особенное", которое может быть "ориентированным на Linux", - это использование rsync; быстрый поиск, похоже, указывает на наличие исполняемого файла rsync, который можно установить в Windows: http://www.itefix.no/i2/node/10650
Однако я никогда не пробовал его.
В качестве дополнения, вот как выглядит моя команда rsync:
rsync --checksum \
--ignore-times \
--human-readable \
--progress \
--itemize-changes \
--archive \
--recursive \
--update \
--verbose \
--executability \
--delay-updates \
--compress --skip-compress=gz/zip/z/rpm/deb/iso/bz2/t[gb]z/7z/mp[34]/mov/avi/ogg/jpg/jpeg/png/gif \
--exclude-from=/SOME_LOCAL_PATH/ignore-rsync.txt \
/LOCAL_PATH/ \
USER@HOST:/REMOTE_PATH/
Я использую механизм закрытых / открытых ключей, поэтому rsync не запрашивает пароль, кстати.
И, конечно же,
Что касается SVN, я бы посоветовал вам использовать выделенный хост SVN, например beanstalk, или использовать один и тот же сервер для запуска сервера SVN, чтобы оба разработчика могли работать над ним.
В последнем случае В этом случае ваш сценарий развертывания просто переместит биты в промежуточную веб-папку (доступную через beta.mysite.com), а затем другой сценарий развертывания может переместить их в действующий веб-каталог. Развертывание непосредственно на действующем сайте, очевидно, не является хорошей идеей.
Если вы решите использовать выделенный хост или хотите выполнить развертывание со своей машины на сервер, используйте rsync. Это тоже моя текущая установка. RSync выполняет дифференциальную синхронизацию (через SSH), поэтому он быстрый и был создан именно для такого рода вещей.
По мере вашего роста вы можете начать использовать инструменты сборки с модульными тестами и прочим. Остается только проблема синхронизации данных.
Я синхронизирую данные только с удаленного -> локального и использую пакетный файл DOS, который делает это через SSH, используя mysqldump . Cygwin полезен для компьютеров с Windows, но вы можете пропустить его. Сценарий импорта SQL также запускает однострочный запрос для обновления некоторых ячеек, таких как имя хоста и веб-корень, для локального развертывания.
После того, как вы настроили эту настройку, вы можете сосредоточиться только на написании кода и удаленном развертывании или локальной синхронизации и развертывании. процесс в один клик.
Один из вариантов - использовать выделенную структуру для этой задачи. Capistrano очень хорошо подходит для языков сценариев, таких как php. Он основан на Ruby, но если вы выполните поиск, вы сможете найти инструкции о том, как использовать его для развертывания приложений php.