2009-03-30 5 views
1

Nous voulons développer des addins pour Outlook, Word et Excel. A partir de maintenant, je suis au courant de 2 types de solutions. Un à aller pour le complément partagé (COM basé) et d'autres pour construire un complément basé sur VSTO. Comme je suis nouveau à ce sujet, quelle serait la meilleure option? (Ou s'il y a la 3ème voie, s'il vous plaît faites le moi savoir) Nous ciblons Office 2003 et 2007 à la fois. Et je préférerais développer ces addins en C#.Office (en particulier Outlook) addins

+0

Merci pour les réponses. On dirait qu'il ira pour Vb.Net et COM basé Addin comme je l'ai trouvé que VSTO a plus d'exigences d'installation et n'est pas non plus neutre de version. –

Répondre

2

Si vous allez développer en C#, je recommande fortement de coller avec VSTO. Cela a un cadre de développement d'ajout beaucoup plus simple, et fonctionne parfaitement avec C#.

Aller sur la route COM, en particulier avec C#, ne fait qu'ajouter une douleur supplémentaire inutile à ce stade.

+0

VSTO est vraiment génial. Mais n'oubliez pas les outils électriques VSTO ;-) http://www.microsoft.com/downloads/details.aspx?FamilyId=46B6BF86-E35D-4870-B214-4D7B72B02BF9&displaylang=fr – Gregor

3

Pas directement une réponse à votre question, mais vaut la peine d'être considérée avant de commencer le développement du complément: Comme déjà dit par Reed, lors du développement d'un complément Office utilisant VB.Net facilitera la vie que C#.

Un appel dans le modèle d'objet Office ignore généralement plusieurs paramètres facultatifs. Cependant, en C# - parce que C# n'a pas (encore) de paramètres optionnels - vous devrez spécifier chacun des paramètres optionnels. Pas assez, pour les compléments COM, vous devrez également prendre soin de placer les arguments vous-même, c'est-à-dire au lieu de passer un simple bool ou int, vous devez d'abord le convertir en un type de référence. Tout cela rend le code complètement illisible.

E.g. le code pour ouvrir un document dans Word ressemblerait qu'en C#:

object objTrue = true; 
object objFalse = false; 
object missing = Type.Missing; 
object objInputFile = strInputFile; 
Document document = WordApplication.Documents.Open(ref objInputFile, 
    ref objFalse, ref objTrue, ref objFalse, ref missing, ref missing, 
    ref missing, ref missing, ref missing, ref missing, ref missing, 
    ref objFalse, ref missing, ref missing, ref objTrue, ref missing); 

alors que le même dans VB.Net serait beaucoup plus facile à lire et à écrire:

Document document = WordApplication.Documents.Open(strInputFile) 

(Informations complémentaires: Avec C# 4.0 cela deviendra beaucoup plus simple en utilisant dynamic)

+0

Wow, c'est vraiment énervant! Bon à savoir! :-) –