Как каждый достигает Нирваны Развертывания.NET?

Я разрешаю это путем изменения ListView на RecyclerView, использую RecyclerView .addOnScrollListener для синхронизации события прокрутки. И нет никаких расхождений, это идеально!

private void syncScrollEvent(RecyclerView leftList, RecyclerView rightList) {

    leftList.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            return rightList.getScrollState() != RecyclerView.SCROLL_STATE_IDLE;
        }
    });
    rightList.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            return leftList.getScrollState() != RecyclerView.SCROLL_STATE_IDLE;
        }
    });


    leftList.addOnScrollListener(new RecyclerView.OnScrollListener() {

        @Override
        public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
             if (recyclerView.getScrollState() != RecyclerView.SCROLL_STATE_IDLE) {
                 rightList.scrollBy(dx, dy);
            }
        }
    });
    rightList.addOnScrollListener(new RecyclerView.OnScrollListener() {
         @Override
        public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
            if (recyclerView.getScrollState() != RecyclerView.SCROLL_STATE_IDLE) {
                leftList.scrollBy(dx, dy);
            }
        }
    });

}
5
задан Jacob 15 June 2009 в 19:19
поделиться

5 ответов

У нас есть собственный исполняемый файл, который запускается после используемых нами сборок.

В наших проектах есть 4 файла конфигурации

web.config - development ( местный ящик)
web.integration.config - альфа-тестирование (выполняется на нашем альфа-сервере)
web.staging.config - бета-тестирование (работает на нашем бета-сервере)
web.production.config - production (работает на нашем производственном сервере)

exe просто удаляет все файлы, кроме необходимого, а затем переименовывает его в web.config ...

Мы не разрешаем не -разработчики (QA, DBA и т. д.) для манипулирования файлами конфигурации, поскольку они могут изменить производственные значения (почтовый сервер, сервер sql) и вызвать некоторые серьезные проблемы ...

Это очень хорошо работает для нас

2
ответ дан 14 December 2019 в 13:45
поделиться

I'd say do a couple of things:

First, use a staging server. Whether for engineering or non-engineering, have a location where you perform "mock deployments" of your code to the server, and where it's tested from there. This serves a good purpose of giving a distinct "production-like" environment to test from, and it allows for deployment training without causing everybody to go all freaky and shaky from fear of nuking everything on a deployment. It costs a bit more in terms of hardware, but it's probably worth it from the errors that it prevents.

Second, if your configuration files are truly complex and they're hard for non-engineers to construct, create a quick tool that will create your validation files for deployment. A simple website or even client-side app that just takes the basic deployment parameters, does some validation on them, and then saves everything in the right format can do wonders in terms of helping out some of the less-technical folks. The confidence that having a tool that validates your input can be really useful for those types of folks, and knowing that you're always going to have well-formed XML with validated results can save some engineer worry time as well.

3
ответ дан 14 December 2019 в 13:45
поделиться

Я видел, как компании используют сценарий развертывания и виртуальные машины, которые зеркалируют production, чтобы иметь сборки QA и промежуточные сборки, которые развертываются в них одним нажатием кнопки. Для этого можно использовать Powershell.

1
ответ дан 14 December 2019 в 13:45
поделиться

Мне всегда удавалось сочетать локальное хранилище настроек и хранилище на основе базы данных. Специфичные для машины настройки хранились в XML-файле на машине (это включало информацию о подключении для нашей корневой базы данных), как и любые настройки для конкретного приложения (но не для конкретного пользователя). В базе данных хранились все настройки пользователя или предприятия, включая информацию о подключении для ДРУГИХ баз данных. Другими словами, у нас была единая база данных с этой информацией, которую клиент мог затем использовать для подключения к другим базам данных. Это позволило нам централизованно поддерживать все, кроме подключения к нашей корневой базе данных.

0
ответ дан 14 December 2019 в 13:45
поделиться

Предыдущая компания, в которой мы реализовали это:

  • Разработчики создают основные файлы конфигурации для каждого приложения
  • Идентифицируют токены, специфичные для компьютера / среды, и перемещают их в отдельный файл
  • Машина CI выполняет проверку, маркирует файлы новым номером версии, запускает тесты, а затем копирует приложение в центральную общую папку, контролируемую людьми, занимающимися управлением изменениями.
  • Управление изменениями вызывает нашу элегантную панель управления развертыванием. Затем они выбирают нужное приложение, запрошенную версию и запрошенную среду. Затем они нажимают кнопку «Пуск».
  • Приложение развертывания выполняет роботизированное копирование всех файлов из поэтапного общего файлового ресурса на сервер.
  • Приложение развертывания затем запускает все дальнейшие задачи в сценарии сборки.
  • Сценарий NAnt был скопирован на каждую целевую машину, а затем запущен с помощью P / Invoke

Все было реализовано с использованием Anthill, NAnt, Robocopy и легкого пользовательского приложения, которое организовывало развертывание. Использование

Самым большим преимуществом этого является то, что у нас почти никогда не было этапа развертывания вручную. Все повторялось и тестировалось, начиная с развертывания разработчиков.

С этой целью мы старались изолировать как можно больше. Мы в основном избегали GAC и machine.configs. Со временем мы обнаружили, что это немного повысило скорость, поскольку все приложения в любом случае не обязательно хотели переходить на новые версии общих компонентов.

Все повторялось и тестировалось, начиная с развертывания разработчиков.

С этой целью мы старались изолировать как можно больше. Мы в основном избегали GAC и machine.configs. Со временем мы обнаружили, что это немного повысило скорость, поскольку все приложения в любом случае не обязательно хотели переходить на новые версии общих компонентов.

Все повторялось и тестировалось, начиная с развертывания разработчиков.

С этой целью мы старались изолировать как можно больше. Мы в основном избегали GAC и machine.configs. Со временем мы обнаружили, что это немного повысило скорость, поскольку все приложения в любом случае не обязательно хотели переходить на новые версии общих компонентов.

0
ответ дан 14 December 2019 в 13:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: