У меня есть два отдельных приложения (оба являются частью одной системы), которые совместно используют общую базу данных. Одно приложение представляет собой «шлюз», отвечающий за связь с внешним миром, а другое - клиент рабочего стола, который локальные пользователи локальной сети используют для чтения / изменения / обновления данных в локальной базе данных.
Через определенные промежутки времени приложение шлюза будет загружать новые данные в локальную базу данных из различных веб-сервисов. Аналогично, приложение-шлюз будет сканировать изменения в локальной базе данных (сделанные пользователями через клиент рабочего стола) и загружать эти изменения в соответствующие веб-службы.
В работе находятся две базы данных, одна для производственного использования и одна для тестирования / отладки. Шлюз переключается между ними, изменяя строку подключения в app.config.
При тестировании приложения-шлюза я бы хотел, чтобы оно работало только для чтения; то есть он сможет загружать новые данные в базу данных (тест / отладка), но он не сможет загружать любые изменения обратно в веб-службу.
Способ, которым я сейчас это делаю, заключается в использовании директивы #IF DEBUG в тех местах, где приложение будет загружать данные следующим образом:
public void DetectAndUploadChanges()
{
Uploader Up = new Uploader();
Up.DetectChanges();
#IF !DEBUG
Up.UploadChanges();
#END IF
}
Этот метод основан на том, что я не забывал использовать директиву отладки везде, где код может загрузить какие-либо изменения.
Есть ли лучший / альтернативный способ сделать это?