我的意思是:
通过我的意思沟通:
使用.Net 1.1,选项似乎是:套接字,远程处理和各种Web服务。
已经提出在套接字上使用二进制序列化DataTables的选项作为解决方案,但我对此持谨慎态度。
更新:本案例中的“服务器”是带有.Net 1.1的Windows Embedded Standard。在此阶段,我们无法向图像添加任何新组件,如IIS,ASP或MSMQ等。考虑到这一点
答案 0 :(得分:8)
由于最终您将迁移到WCF,您可能需要考虑使用BasicHttpBinding立即构建WCF服务,BasicHttpBinding支持旧的ASMX样式Web服务,即WS-BasicProfile 1.1。您可以从.NET 1.1应用程序轻松使用此服务。
您还可以考虑在WCF中使用MsmqIntegrationBinding,其中.NET 1.1应用程序将从MSMQ发布/接收消息。
您可能需要查看以下相关文章:
答案 1 :(得分:3)
WebServices(基于asmx)应该在两者之间工作而没有问题。
答案 2 :(得分:1)
套接字应该相当简单。您需要发送什么类型的数据?如果它只是简单的字符串/其他原始类型,你可以想出一个基本的xml布局,并发送它。
答案 3 :(得分:1)
我们在代码中使用远程处理和Web服务来进行通信1.1< - > 3.5。我们发现Web服务最容易从1.1移植到3.5。
答案 4 :(得分:1)
在.NET 1.1中,您无法真正拥有二进制序列化的DataTable。在1.1中,默认情况下在2.0中,当您使用BinaryFormatter序列化DataSet或DataTable时,您获得的只是存储在字节数组中的XML序列化,以及您可能期望从所有这些重复标记中获得的膨胀。
在.NET 2.0及更高版本中,您可以在DataSet或DataTable上设置RemotingFormat = SerializationFormat.Binary
以获得真正的紧凑二进制序列化,但我不认为这是.NET 1.1中的一个选项。
答案 5 :(得分:1)
信不信由你,经过一番调查后, Remoting 实际上看起来非常适合这个:
据我所知, Web服务对于1.1来说“太难”了,因为它需要ASP.NET,我们没有+通常设置过多。
套接字级别太低。
MSMQ 只是因为进入门槛高(类似于Web服务)......我们无法在Windows Embedded版本(1.1机器)中添加任何新组件,我怀疑MSMQ是不是“标准”。
答案 6 :(得分:1)
您无需使用内置序列化来序列化DataTable对象。 DataTable只是一堆列和行。您应该简单地遍历表的行,并对每个行进行序列化。
根据您的权衡,您可能希望将DataTable
复制到等效的数据传输对象中,然后二进制序列化该对象。这样的对象将由一组镜像组成,这些对象镜像DataTable
的结构。该对象将为DataTable
的每一列提供一个属性。
这样,您就可以避免序列化表元数据,并且应该可以轻松快速地进行二进制序列化。
鉴于此,我会避免Remoting。确实,该结构有点类似于WCF的结构,但它几乎都不受支持。糟糕的是,你几乎使用了最旧的.NET版本,你真的不想依赖一种过时的技术。
套接字并不漂亮,但它们很容易理解。如果你小心,你将创建相对容易维护的套接字代码,至少只要你必须坚持使用.NET 1.1。
您可能希望查看.NET 2.0中添加的新类(例如TcpClient
),并创建类似的API。这样,如果您能够将映像更新到.NET 2.0,那么您将发现利用Microsoft必须维护的代码更容易。