在.NET中创建可以在运行时更改的服务器端代码的最佳技术或技术是什么?
由于无状态模型,当您使用Web服务时,您可以免费获得此功能,但我正在构建客户端/服务器体系结构,其中客户端通过TCP连接其会话的生命周期。
如何在不断开用户连接并重新启动服务器的情况下实施更改?显然,连接管理代码和API不会改变,否则会很快破坏。
是否使用MEF?某种影子副本?我宁愿不使用消息队列和多个进程。
答案 0 :(得分:2)
服务器端公共API
public SomeDataModel SomeGetDataMethod(...)
{
// auth
return someObject.GetData(); // GetData() methods abstracted
}
服务器端内部
public SomeObject
{
public SomeObject()
{
// spin off a background thread to check for updates
}
private void OnUpdateAvail()
{
lock(recomposeLock)
{
// recompose
}
}
public SomeDataModel GetData()
{
lock(recomposeLock)
{
// get your data
return someDataModel;
}
}
}