.NET远程处理、版本控制和接口
我有一个使用2.0框架的大型.NET远程处理项目。服务器的API通过接口公开,共享类型包含在与客户端应用程序共享的程序集中 我有一些方法可以接受基类的数组,基类有许多不同的类继承自基类 例如,我有一个基类“Vehicle”,它有两个继承自它的类,分别是“Car”和“Truck” 我有一个方法IFoo.Save(列出车辆) 稍后,我添加了一个新类,该类继承自名为“Motorcycle”的“Vehicle”,并且只有服务器或客户端具有新的共享程序集,而不是两者都具有。其中一个将无法解析新类型 你觉得处理这种情况最灵活的方法是什么.NET远程处理、版本控制和接口,.net,remoting,interface,versioning,.net,Remoting,Interface,Versioning,我有一个使用2.0框架的大型.NET远程处理项目。服务器的API通过接口公开,共享类型包含在与客户端应用程序共享的程序集中 我有一些方法可以接受基类的数组,基类有许多不同的类继承自基类 例如,我有一个基类“Vehicle”,它有两个继承自它的类,分别是“Car”和“Truck” 我有一个方法IFoo.Save(列出车辆) 稍后,我添加了一个新类,该类继承自名为“Motorcycle”的“Vehicle”,并且只有服务器或客户端具有新的共享程序集,而不是两者都具有。其中一个将无法解析新类型 你觉得
编辑:这是一个Windows窗体客户端应用程序和远程处理服务器,托管在Windows服务中。这似乎更像是一个部署问题。服务器和客户端必须能够访问相同版本的共享程序集。您的策略将取决于平台-这是web还是表单
一种方法是强制客户端使用共享程序集的特定版本,并为客户端提供该程序集的交付方法。这似乎更像是一个部署问题。服务器和客户端必须能够访问相同版本的共享程序集。您的策略将取决于平台-这是web还是表单
一种方法是强制客户端使用共享程序集的特定版本,并向客户端提供该程序集的交付方法。发布更新。对于这样的事情,你总是需要把所有的东西都放在同一个版本上。也许考虑一下ClickOnce让大家都了解最新情况。 < P>发布更新。对于这样的事情,你总是需要把所有的东西都放在同一个版本上。也许考虑一下ClickOnce让每个人都跟上时代。 < P> CLIKONE是一个很好的解决方案。 或者采用与类无关的Web服务方法。传递版本控制的二进制流式字典,这些字典可以重新组合为对象。如果这很重要,请编写对象重构内容来处理向前和向后兼容性,否则只需拒绝带有“未来”版本号的数据
Web服务非常适合解耦。字典是传递一般数据的好工具。基于程序集的类版本控制非常可怕(即使在.Net最新版本中进行了序列化更改),并且会导致疯狂…ClickOnce是一个很好的解决方案 或者采用与类无关的Web服务方法。传递版本控制的二进制流式字典,这些字典可以重新组合为对象。如果这很重要,请编写对象重构内容来处理向前和向后兼容性,否则只需拒绝带有“未来”版本号的数据 Web服务非常适合解耦。字典是传递一般数据的好工具。基于程序集的类版本控制非常可怕(即使在最新版本的.Net中进行了序列化更改),并且会导致疯狂