Я интересно, что предпочтительная архитектура будет в следующей ситуации:Preferred архитектура для запуска отдельного процесса
Я обязан иметь приложения .NET, который будет выполнять пакетную загрузку нескольких файлов данных одновременно в SQL Server. Это будет вызвано из приложения WPF, которое позволит пользователю выбирать файлы и таблицы назначения, а также сообщать о каждом прогрессе для каждой загрузки (включая сообщения об ошибках). У меня нет абсолютно никакой проблемы с написанием кода для любого из этого. Однако существует требование, что пользователь может полностью закрыть приложение WPF и продолжить процесс загрузки. Кроме того, если пользователь перезапускает приложение WPF с одного и того же компьютера, он должен иметь возможность получить дескриптор существующих загрузок и сообщить о статусе, как если бы программа никогда не закрывалась.
Мой вопрос: каковы способы достижения этого и который будет казаться наиболее стандартным/подходящим?
Я рассматривал просто не закрытие приложения WPF, а скрытие всех окон, но это кажется обманом. Было бы лучше создать службу WCF на сервере, где происходит загрузка, и просто загрузить файл? Я не думаю, что могу это сделать и сообщить о прогрессе% и т. Д. Что можно сказать о локально функционирующей службе Windows, могу ли я добиться аналогичного эффекта? Должен ли я думать о MemoryMappedFiles?
Цените все свои мысли.
В настоящее время я разработал решение для аналогичной проблемы; у нас был веб-интерфейс, которому пришлось выполнять трудоемкую задачу. Я закончил тем, что веб-интерфейс написал запрос в базу данных MsSQL (которая уже была в любом случае), и у вас есть опрос службы Windows для новых запросов и обрабатывает их каждые 5 секунд. –