Telerik blogs
justassembly_header

On behalf of the engineering team, I'm incredibly excited to announce a new tool we've built for .NET developers called JustAssembly!

JustAssembly is a free and open source .NET assembly diff and analysis tool. With it, you can quickly decompile .NET assemblies and perform binary code diffs against them, all within a single interface.

What's It For?

A tool like JustAssembly is useful in situations you'll likely encounter when building and shipping software. For example, JustAssembly enables you to evaluate all changes made to binaries before shipping them to customers. This lets you to check if anything was unexpectedly introduced by a hidden build step or a last-minute change. You can also get an snapshot of the changes made in a new version of a library before they're applied, giving you the opportunity to spot potential breaking changes.

Not only is JustAssembly useful, it's also incredibly powerful. You can compare assemblies on both the type metadata and the underlying IL. This means you can go beyond simply comparing changes to things like method signatures. Furthermore, it's built on top of the JustDecompile engine, which means you can compare .NET assemblies on a line-by-line basis in C# - all without needed the original source code:

After comparing the IL, JustAssembly highlights changes with different colors; additions are marked in green, modifications are marked in blue, and deletions are marked in red.

About JustDecompile

JustDecompile is our free .NET assembly browsing and decompiling tool. With it, you can browse the symbols within .NET assemblies (.dll or .exe) and decompile the assembly language to C#, Visual Basic .NET, or IL. It's an essential tool for developers wanting to understand an assembly's internals and it offers a range of features like advanced code search, dependency loading, and custom assembly lists.

Building JustAssembly from Source

JustAssembly was originally built to be used as an internal tool for our engineering teams. As it evolved over time, we realized that a tool like this would be extremely valuable to the developer community.

The source code is structured as follows:

  • Binaries: contains binary dependencies for JustAssembly
  • Core: contains C# implementation of the Difference Algorithm (Eugene Myers), difference items, and item comparers (basically, the guts of JustAssembly)
  • JustDecompileEngine: contains the submodule for JustDecompileEngine
  • Tests/JustAssembly.Tests: unit tests for the difference algorithm implementation
  • Tools: contains internal classes used to loading the marketing banner and wire-up an analytics service (if required)
  • UI: contains the C# source files and XAML used to create the JustAssembly UI

The repository has one solution file, JustAssembly.sln, which contains the source files for JustAssembly. This can be built using Visual Studio.

Next Steps

Please take a couple of minutes to download and install JustAssembly. Let us know what you think. Is it useful? Where can we improve it? What features would you like to see in the next release?


About the Author

John Bristowe

John Bristowe is a member of the Developer Relations team at Progress. He specialises in web and mobile app development.

Comments

Comments are disabled in preview mode.