2010-09-30 2 views
9

La technologie COM semble déjà un peu obsolète, mais toujours utilisée. Mais quelle approche est recommandée maintenant pour implémenter le même type d'interopérabilité lors de la construction d'une application .NET, en particulier dans WPF?Qu'est-ce qu'un analogue actuel de la technologie COM?

I.e. Qu'est-ce qu'un remplacement moderne d'un objet COM?

+0

COM a fourni pas mal d'options d'interopérabilité différentes ... que recherchiez-vous précisément? –

+0

@Justin Niessner Dans ce cas, rien de spécifique. C'est une question générale, juste pour mieux comprendre la tendance dans les concepts – rem

+0

Je dirais que l'analogique actuel dans le monde Windows à COM est encore COM. Il est loin d'être obsolète et reste le modèle de base des composants de Windows, Office et autres logiciels permettant l'interopérabilité la plus élevée possible. Bien sûr, il existe différentes approches telles que les services Web, SOA, WCF, etc., mais elles abordent généralement des choses légèrement différentes. Le remplacement le plus proche de COM est .NET lui-même, comme indiqué par AakashM. –

Répondre

8

.NET était vraiment destiné à remplacer COM. Le projet avait beaucoup de noms pendant qu'il était travaillé, mais il a commencé sa vie comme "COM +". Cette influence est encore évidente dans de nombreux endroits. Beaucoup de fichiers de code source de base pour le CLR commencent avec le nom "com", même si le CLR utilise (presque) aucun COM du tout. Le code d'exception Windows pour une exception gérée est 0xE0434F4D. Les 3 dernières valeurs du code sont ASCII pour "COM".

L'affirmation que WCF était un remplacement n'est pas précise. Il a remplacé .NET Remoting. COM a une très large gamme, c'est un outil d'interopérabilité générique, un peu comme le CLR permet à de nombreuses langues d'interopérer. Une de ses caractéristiques était l'interopérabilité entre différents processus et machines, peut-être la source de la déclaration. Mais c'est juste une partie de ça.

Il existe encore beaucoup d'applications COM qui n'ont pas été remplacées par .NET. Le meilleur exemple est le shell Windows, Explorer.exe. Assez difficile de faire quelque chose d'aussi simple que de créer une extension de shell de menu contextuel en C#. Et jusqu'à .NET 4.0 fortement déconseillé.

5

Quelle approche est maintenant recommandée pour mettre en œuvre le même genre de interopérabilité lors de la construction d'une application .NET , en particulier, dans WPF?

Il est ce qu'on appelle WCF

WCF est conçu conformément aux principes d'architecture orientée services de soutien informatique distribuée où les services sont consommés par les consommateurs.

+4

WCF ne serait pas un analogue actuel de DCOM? – JLWarlow

+0

Je pense que c'est un bon point. DCOM était évidemment une extension de COM. –

+0

Il convient de garder à l'esprit toute la question, qui a "quelle approche est recommandée maintenant pour mettre en œuvre le même type d'interopérabilité lors de la construction d'une application .NET". –

2

Jetez un oeil au premier paragraphe dans this wikipedia article.

WCF est le remplacement moderne de COM.

+1

. Remoting .NET et WCF sont des technologies différentes. En effet, WCF remplace l'accès à distance .NET. –

+0

@Joe, c'est vrai, j'ai seulement référencé l'article car il a une belle chronologie dans le premier paragraphe. – Carvellis

Questions connexes