我是一名软件工程师,我从事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完成还是有另一种方式?
谢谢...
答案 0 :(得分:0)
如果只是将命令编号传递给DLL,则无需重新编译服务器。仅重新编译DLL并将其部署在服务器上就足够了。