dll和更新它们(c#)(客户端/服务器)

本文关键字:客户端 服务器 dll 更新 | 更新日期: 2023-09-27 18:04:50

我是一名软件工程师,我从事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: 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完成吗,还是有其他方法?

谢谢…

dll和更新它们(c#)(客户端/服务器)

如果只将命令号传递给DLL,则无需重新编译服务器。只需重新编译DLL并将其部署到服务器上就完全足够了。