Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 什么是当前的COM技术模拟?_C#_.net_Wpf_Com - Fatal编程技术网

C# 什么是当前的COM技术模拟?

C# 什么是当前的COM技术模拟?,c#,.net,wpf,com,C#,.net,Wpf,Com,COM技术似乎已经有点过时了,尽管仍在使用中。但是,在构建.NET应用程序时,特别是在WPF中,现在推荐什么方法来实现相同类型的互操作性呢 即,什么是COM对象的现代替换 现在推荐什么方法 为了实现相同的 构建.NET时的互操作性 应用程序,特别是WPF 它叫 WCF是根据面向服务的体系结构原则设计的,以支持由用户使用服务的分布式计算 请看一看中的第一段 WCF是COM的现代替代品。一般来说,.NET本身就是COM的替代品,COM对象的替代品是.NET程序集。例如,参见Don Box和Chris

COM技术似乎已经有点过时了,尽管仍在使用中。但是,在构建.NET应用程序时,特别是在WPF中,现在推荐什么方法来实现相同类型的互操作性呢

即,什么是COM对象的现代替换

现在推荐什么方法 为了实现相同的 构建.NET时的互操作性 应用程序,特别是WPF

它叫

WCF是根据面向服务的体系结构原则设计的,以支持由用户使用服务的分布式计算


请看一看中的第一段


WCF是COM的现代替代品。

一般来说,.NET本身就是COM的替代品,COM对象的替代品是.NET程序集。例如,参见Don Box和Chris Sells(谁知道他们在说什么…)

。NET非常想取代COM。这个项目在开发过程中有很多名字,但它最初的名字是“COM+”。这种影响在许多地方仍然很明显。CLR的许多核心源代码文件都以“com”开头,即使CLR(几乎)根本不使用com。托管异常的Windows异常代码为0xE0434F4D。代码的最后3个字节值是“COM”的ASCII码

WCF是替代品的说法并不准确。它取代了.NET远程处理。COM的范围非常广泛,它是一种通用的互操作工具,很像CLR允许多种语言进行互操作。它的一个特性是支持不同进程和机器之间的互操作,这可能是该语句的来源。但这只是其中的一部分


还有很多COM应用程序没有被.NET取代。最好的例子是Windows shell,Explorer.exe。很难在C#中创建上下文菜单外壳扩展这样简单的事情。直到.NET 4.0被强烈劝阻。

COM提供了很多不同的互操作性选项……具体来说,你在寻找哪一个?@Justin Niessner在本例中没有具体说明。这是一个一般性的问题,只是为了更好地理解概念中的趋势,我会说目前Windows世界对COM的模拟仍然是COM。它远远没有过时,仍然是Windows、Office和其他软件的核心组件模型,能够实现最高的互操作性。当然,有不同的方法,如Web服务、SOA、WCF等,但这些方法通常处理稍微不同的事情。与COM最接近的替代品是.NET本身,正如AakashM所说。@0xA3-我认为这是一个很好的观点,但在“现在推荐什么方法在构建.NET应用程序时实现相同类型的互操作性”的上下文中,不推荐COM。NET远程处理和WCF是不同的技术。的确,WCF取代了.NET远程处理。@乔,没错,我之所以引用这篇文章,是因为它在第一段中有一个很好的时间线。WCF不是当前DCOM的一个类似物吗?我认为这是一个很好的观点。DCOM显然是COM的一个扩展。值得记住的是整个问题,即“在构建.NET应用程序时,现在建议采用什么方法来实现相同类型的互操作性”。