Dlls и их обновление (c #) (клиент / сервер) - PullRequest
0 голосов
/ 09 августа 2011

Я инженер-программист, я работаю в разработке на c #.

Программное обеспечение, над которым я работаю, имеет макет сервера и клиента.Сервер - это больше уровень базы данных, только он имеет прямой «доступ» к базе данных.Клиент просто отправляет запросы и получает данные в виде строк в соответствии с запросами, а не наборов данных или таблиц данных.Уровень базы данных взаимодействует с базой данных через файл dll.

пример:

Клиент запрашивает выполнение операции 144.Сервер получает номер операции и отправляет его в основную процедуру dll:

Client:
    string command = "144";
    buffer = asci.GetBytes(command);
    socket.send(buffer);

Server:
    socket.receive(buffer);
    str = asci.GetString(buffer);
    op = Int32.Parse(str);
    Dll.MainRoutine(op);

Dll main routine:
    switch (op) 
    {
       case 0: blah blah blah ; break;
       case ..........................
       case 144: i++ ; break ;
       default : ;
    }

Допустим, что программное обеспечение работает на реальном сервере.Теперь я хочу внести изменения только в клиентские и DLL-файлы (добавить функциональность).И все же я не хочу снова скомпилировать сервер.Если я добавлю новую команду на стороне клиента с именем 200 и добавлю регистр в основную процедуру dll: case 200, будет ли он работать?Или мне нужно также перекомпилировать сервер?

Client:
    string command = "200";
    buffer = asci.GetBytes(command);
    socket.send(buffer);

Server:
    socket.receive(buffer);
    str = asci.GetString(buffer);
    op = Int32.Parse(str);
    Dll.MainRoutine(op);

Dll main routine:
    switch (op) 
    {
       case 0: blah blah blah ; break;
       case ..........................
       case 144: i++ ; break ;
       case 200: i+=10 ; break ;
       default : ;
    }

Что я пытаюсь сказать, так это то, что я хочу иметь возможность добавлять функциональность только через обновления dll и клиента.Сервер всегда должен быть запущен.Это можно сделать с помощью DLL или есть другой способ?

Спасибо ...

1 Ответ

0 голосов
/ 09 августа 2011

Нет необходимости перекомпилировать сервер, если он просто передает номер команды в DLL. Для этого достаточно просто перекомпилировать DLL и развернуть ее на сервере.

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