Remoting: Это правильный путь? - PullRequest
0 голосов
/ 31 августа 2018

Я написал клиент-серверное приложение на C #. Серверное приложение представляет собой службу Windows и в основном используется для чтения данных с пользовательского устройства. Клиентское приложение представляет собой форму Windows, пользовательский интерфейс отображает только состояние сервера и отправляет ему команду (для примера: GoOnline для подключения к устройству, GoOffline и т. Д.).

Для обмена данными между приложениями я использовал .NET Remoting; Таким образом, у нас есть библиотека, на которую ссылаются как в приложении, так и когда пользователь отправляет команду через форму Windows (клиент), она запускает событие, которое будет замечено на сервере. Обмен данными между приложениями работает, но я думаю, что это сложно написать таким образом. Есть ли у вас какие-либо предложения о том, как достичь моей цели с помощью простого и удобного кода? Я думаю, что лучший способ (но я не знаю, возможно ли это сделать ...) - создать ссылку на один и тот же объект внутри приложения и читать / записывать непосредственно состояние переменных.

В основном:

// Remote Object (Library)

bool goOnline;
public bool GoOnline
{
    get { return goOnline; }
    set { goOnline = value; }
}


// --------------------------------------


// Client side

if (... conditions ...)
    RemoteObj.GoOnline = true;


// --------------------------------------


//Server side

System.Timers.Timer tmrScheduler = new System.Timers.Timer();

tmrScheduler.AutoReset = true;
tmrScheduler.Enabled = true;
tmrScheduler.Interval = 1000;
tmrScheduler.Elapsed += tmrScheduler_Elapsed;


private void tmrScheduler_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
{
    if (RemoteObj.GoOnline)
    {
        // Start communication with device
        // When device is ONLINE, RemoteObj.GoOnline = false and send to client connection OK
    }
}

Можно ли читать свойства "напрямую" без использования событий со стороны обоих приложений? Другая идея или предложение?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...