Coder Social home page Coder Social logo

ndifference's Introduction

NDifference

Tools for public API difference reporting on .Net assemblies

What is it?

NDifference is a difference and reporting tool to allow developers to discover breaking changes in the public API of a .Net project between releases at the assembly level. It works with published assemblies via reflection and does not require the original source code.

It performs static analysis on .Net assemblies, providing built-in inspectors for the most common checks and supports loading of custom inspectors. Analysis is performed at the library, assembly and type level.

Product Inspection

The following is a list of built-in product level inspections:

  • Removed assemblies
  • Changed assemblies
  • Added assemblies

Assembly Inspection

The following is a list of built-in assembly level inspections:

  • Changed target architecture
  • Changed assembly references
  • Removed types
  • Added types
  • Obsolete types
  • Changed types

Type Inspection

The following is a list of built-in type level inspections:

  • Constant values
  • Enum values
  • Abstraction
  • Constructors
  • Derivation
  • Events
  • Fields
  • Finalizers
  • Interface implementation
  • Methods
  • Properties
  • Sealing
  • Obsolete members
  • Taxonomy

Reporting

There is a built-in reporting capability for common file formats but custom reporting is supported too.

Extensibility

Both the inspection rules and the report output are customisable.

Prior Art

The original inspiration for this project came from Microsoft's unsupported libcheck tool.

Build It

Get the source (fork or just use the download button at the top right) and run the build.cmd batch file.

CI Status

The project builds on AppVeyor: Build status.

Get Involved!

Have an idea about improving the project? Please get involved. NDifference is an open source project (of course) and we accept contributions! Contribute a patch or let us know how to improve.

Thank You's !

  • The Mono.Cecil Project for the reflection engine
  • The fine folks at xunit for their unit testing framework.
  • AppVeyor for the CI support.

ndifference's People

Contributors

deejaygraham avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.