Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Tool for backwards compatibility for the C#/.NET API? [closed]

Tags:

I found this tool, http://sab39.netreach.com/Software/Japitools/JDK-Results/46/, which checks for backwards compatibility between different versions of APIs for Java using javadoc.

Is there an tool equivalent to this one for C#/.NET?

Here is an example of a comparison between JDK 1.5 and JDK 6 APIs using this tool: http://www.kaffe.org/~stuart/japi/htmlout/h-jdk15-jdk6

like image 611
Ovidiu Buligan Avatar asked Mar 04 '10 08:03

Ovidiu Buligan


People also ask

What is backward compatibility in C?

Backward compatible (also known as downward compatible or backward compatibility) refers to a hardware or software system that can successfully use interfaces and data from earlier versions of the system or with other systems.

How do you ensure backwards compatibility?

In other words, you should ensure that the existing functionality of the API will remain intact while the new functionality is added. An API is backward compatible if a client (a program written to consume the API) that can work with one version of the API can work the same way with future versions of the API.

Is Libstdc ++ backward compatible?

GCC libstdc++ has been backward compatible with no ABI breaks for around a decade. GNU libc for what, two decades. You don't break such fundamental ABIs on a whim. If the libstdc++ ABI had changed, it would have broken every single bit of C++ code built with GCC4 over the last decade.

Is C# backward compatible?

C# 4.0 is nearly backwards compatible with previous versions but there are a few breaking changes. For most ordinary code you won't notice these breaking changes. For the new features in C# 4 you can check out the Wikipedia article which has quite a good summary with examples.


1 Answers

  • ApiChange does take a set of "old" assemblies and a set of "new" assemblies which are diffed for potentially breaking Api changes:

    ApiChange -diff -old HelloWorldV1.dll -new HelloWorldV2.dll

  • LibCheck allows you to compare two versions of an assembly and determine the differences. The tool reports the differences as a combination of "removed" and "added" APIs:

    LibCheck -store HelloWorld.dll 1.0 -full C:\HelloWorldV1\
    LibCheck -store HelloWorld.dll 2.0 -full C:\HelloWorldV2\
    LibCheck -compare 1.0 2.0

See also "Working with LibCheck", "Highlight Public API Differences Between Assembly Revisions" and "Api Diff Between Assemblies" articles.

like image 76
linuxbuild Avatar answered Sep 28 '22 15:09

linuxbuild