2009-04-23 6 views
4

Je travaille sur un SDK. Comme je publie de nouvelles versions, je voudrais produire un rapport sur les différences dans l'API. Ce ne sont pas les différences dans le code. La majeure partie du code ne devrait pas être utilisée directement. Les classes/méthodes publiques sont ce qui m'intéresse. En outre, nous avons adopté la convention selon laquelle tout élément d'un espace de noms incluant l'implémentation ne doit pas être utilisé par un client du SDK. Donc, je cherche les différences dans les interfaces publiques, les classes et les méthodes qui ne sont pas dans un espace de noms qui inclut l'implémentation. Je veux savoir ce qui a été supprimé, ajouté et modifié entre deux versions.Je suis à la recherche d'un outil comme LibCheck pour évaluer différentes versions du même SDK

J'ai trouvé un outil de Microsoft appelé LibCheck qui est dans le bon état. J'ai quelques problèmes avec LibCheck. LibCheck ne reconnaît pas une méthode qui a été modifiée. Il signale que la méthode a été supprimée et ajoutée. Il signale parfois qu'une méthode a été supprimée et ajoutée, mais le nom et les paramètres sont tous les mêmes. Je ne sais pas ce qu'il essaie de me dire dans ces cas. Enfin, je ne me soucie pas de la disposition des rapports. Je voudrais une ventilation par espace de noms ainsi que par l'assemblée et la classe. Je suis conscient que les rapports sont le résultat d'une transformation XSLT et je pourrais les faire ressembler essentiellement de toute façon que je veux. Encore les autres problèmes couplés avec un manque général de soutien pour l'outil de Microsoft me laissent à la recherche d'une alternative.

+0

Question connexe: http://stackoverflow.com/questions/2377855/tool-for-backwards-compatibility-for-c-net-api – aponomarenko

Répondre

1

Il y a aussi http://apichange.codeplex.com qui a une diff option ing. Appelez comme ça

ApiChange -diff -old $net2dir\System.dll -new $net4dir\System.dll 

et vous devriez obtenir un rapport.

+0

C'est très proche. Je vais regarder. Merci. –

+0

Ne travaillait pas pour moi. – schauhan

2

Un outil tel que NDepend est très adapté à ce travail, et a construit des fonctionnalités de reporting diff à un niveau « API » plutôt que par exemple simplement textuelle:

Compare Builds and Code Diff

NDepend a son propre langage de requête de code CQL qui peut être utilisé pour écrire des rapports d'analyse statiques hautement personnalisés:

Code Query Language

+0

Voir plus d'explications à propos de NDepend diff ici http://www.ndepend.com/docs/code-diff-in-visual-studio –

Questions connexes