Dll并更新它们(c#)(客户端/服务器)

时间:2011-08-09 11:45:12

标签: c# dll client

我是一名软件工程师,我从事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主例程:案例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 :(得分:0)

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