2012-11-27 4 views
2

Je dois développer un service Windows en .NET/C#. Le service doit être accessible à partir d'une application VB6.Windows Service écrit en .NET accessible à partir de VB6

Ma première idée était d'héberger un service WCF dans un service Windows, mais l'application VB6 a besoin d'un wrapper pour que le service puisse le consommer. Ce n'est pas une option.

Maintenant, je pense à utiliser des prises, mais est-ce la meilleure approche? Si non, quel serait le meilleur design?

Je voudrais savoir quelles sont mes options, et quels sont les avantages et les inconvénients de ces options?

Tout conseil est très apprécié

+1

Oui, prises, serait l'une des options limitées puisque vous ne pouvez pas utiliser la solution optimale. –

+0

Pourquoi n'est-il pas possible d'écrire un assembly .NET accessible par COM que l'application VB6 référence et traite de la communication avec le service .NET? J'ai utilisé cette approche exacte et cela fonctionne très bien. – tcarvin

+0

Dans l'application VB6, ils utilisent déjà des services et ils les appellent en utilisant WinSocket. Ils veulent maintenir une façon uniforme d'appeler les services qu'ils utilisent. – DirkV

Répondre

2

Vous pouvez host your WCF services as COM+ applications. Une fois que vous avez un service WCF hébergé dans COM +, vous pouvez générer une bibliothèque de types à partir de l'application COM +, puis la référencer dans votre code VB6. Notez que vous devez avoir l'environnement d'exécution .NET sur la machine sur laquelle le service WCF est hébergé (mais pas sur les machines sur lesquelles vous installez un proxy COM + si vous utilisez des appels distribués).

+0

C'est une très belle option! Cependant, au lieu d'utiliser COM +, l'équipe VB6 a besoin d'utiliser Winsocket ... – DirkV

+0

@DirkV Vous posez alors une question à laquelle vous n'avez qu'une seule réponse, et qui est localisée pour vous? Pourquoi l'équipe VB6 nécessite-t-elle Winsocket? Ce n'était pas une exigence de la question telle qu'elle a été posée. – casperOne

+0

Vous avez absolument raison! Ils m'ont donné l'exigence après avoir suggéré votre solution ... Mais je suis toujours reconnaissant pour votre contribution ;-) – DirkV

Questions connexes