我抬头看了WCF,我无法弄清楚它是什么.我找到了这个页面,它似乎是一个应用程序允许其他应用程序调用函数的方式.加载DLL和调用函数的类型,但使用TCP而不是加载DLL但强制用户运行应用程序.
我仍然对此感到困惑.有人可以解释它的用途吗?
看起来如果我运行两个可以托管相同服务的应用程序,只有第一个将运行其余的将获得错误?我可以调用函数,但是有内存限制吗?我可以在堆栈或堆上分配时将byte []作为params传递吗?我无法传递文件句柄吗?(我想不出一个原因).
我可以将3个应用程序作为客户端并且相当容易吗 就像我打开app1并打开图像一样.我可以打开app2和3并让它们对当前加载的图像执行不同的操作吗?(app 1)编辑,2)在内存映像中导出为不同类型(动画gif,avi,png等)3)不同的编辑工具或应用程序,以查看它在运行时的外观
@ acidzombie24,反驳你对Ryan回答的评论:
WCF 不是远程函数调用 - 根本不是.恰恰相反!
WCF是基于消息的通信系统 - 您的客户端将具有与服务器具有相同方法的代理.当您在客户端代理上调用此类函数时,WCF运行时所执行的操作是将这些方法参数,方法名称和一些标头包装到序列化消息中,然后将其发送到服务器.
在客户端和服务器之间没有像远程协议或数据库连接一直打开的常量连接.客户端打包消息并将其发送出去.客户端和服务器之间的传输媒体甚至可以是SMTP(电子邮件)!
一旦服务器收到消息,WCF运行时将实例化服务类的实例以处理该请求.将调用该服务类的适当方法,传入参数,服务完成其工作,并生成响应.然后,响应以相同的方式返回 - 通过传输介质的序列化消息 - 返回给客户端.
WCF是一种通用的,基于消息的通信系统,使您能够创建分布式系统 - 你有一大堆的服务在你的服务器上,它提供了代表客户执行特定的功能,当他们打电话的地方.WCF就像Web服务 - 只是远不止于此.它也是消息队列(使用Microsoft的MSMQ产品),网络/ TCP通信等等.它比以前的任何通信API都更具可扩展性.