Importing Java, C# and VB.NET Binaries
UModel supports the import of C# , Java and VB.NET binaries. This is extremely useful when working with binaries from a third party, or if the original source code has become unavailable. Note the following:
•To import Java binary files, a supported version of the Java Runtime Environment (JRE) or Development Kit (JDK) must be installed. Type import is supported for Java .class files or .jar class archives adhering to the Java Virtual Machine Specification. This includes Java Virtual Machines such as OpenJDK, SapMachine, Liberica JDK, and others, see Adding Custom Java Runtimes.
•To import C# or VB.NET binary files, .NET Framework, .NET Core, .NET 5, or .NET 6 must be installed, as applicable. For best results, select the any (use disassembler) option on the import dialog box. After import, any unrecognized types will be placed in the "Unknown externals" package. To prevent (or decrease the number of) unknown externals, apply the UModel profile specific to the version of your code engineering language (for example, ".NET 5 for C# 9.0") before the import. See also Applying UModel Profiles.
•The import of obfuscated binaries is not supported.
The table below lists the available approaches for importing binary types into a UModel project.
Import assembly file (.dll, .exe)
Import class file archive (.jar, .zip)
Import assembly from Global Assembly Cache (GAC)
Import class file (.class) from a package root folder
Import assembly from Visual Studio .NET References
Import class archives from class path
Import class archives from Java runtime (only for Java versions up to and including Java 8)
You can import binary files by running the Project | Import Binary Types menu command. Optionally, you can have UModel generate class and package diagrams from the imported types. For examples, see Example: Import .NET GAC Assemblies and Example: Import Java .class Files.
When importing binary files into a UModel project, you can specify various import options, including:
•You can import any referencing types, in addition to the types defined in the binary file. In addition, you can restrict importing referencing types to specific Java packages and .NET namespaces.
•You can skip type members while importing. For example, you can import classes and interfaces without their properties and methods.
•You can import types according to their accessibility modifiers (such as private or public). For example, you can import only public classes and skip private, protected, and internal classes.
For reference to all options, see Import Binary Options.