Decoding Assembly Version and Assembly File Version

Microsoft .NET framework provides an opportunity to set two different types of version numbers for each assembly.

  • Assembly Version
  • Assembly file version

Assembly version

It’s the version number that the framework uses to locate, link, and load assemblies during build and runtime. This version number is embedded whenever you add a reference to any assembly in your project. Common Language Runtime (CLR) searches for assemblies with this version number to load at runtime. However, keep in mind that this version, along with the name, public key token, and culture information, is only used if the assemblies are strong-named signed. Only file names are used for loading if assemblies are not strong-named signed.

[Read More]
Categories: dotnet  Tags: dotnet 

Demystifying .NET Decompilers

Code written in C#, VB.NET, or F# is converted into IL code, or Intermediate Language, during compilation. A DLL file is then used to store this IL code. The JIT compiler compiles the IL code contained in the DLLs to native code at runtime. The CPU then starts executing the native code directly. JIT, or just-in-time, compilation refers to the process of only compiling IL code into native code when a method is called for the first time during runtime.

[Read More]
Categories: dotnet  Tags: dotnet 

Clean code

A Github repository contains useful information on clean code practices as well as code examples. Not all of the principles outlined here must be strictly followed. These are only recommendations.


References

Github

Categories: dotnet  Tags: dotnet 

Dotnet Monitor: A Cross-Platform Diagnostic Collection

Running a.NET application in a variety of environments can make collecting diagnostic artifacts (e.g., logs, traces, and process dumps) difficult. A dotnet monitor is a tool that provides a unified way to collect these diagnostic artifacts whether you’re running on your desktop machine or in a Kubernetes cluster.

dotnet monitor exposes an HTTP API to query available processes, collect diagnostics artifacts, and check on the status of the requested artifacts

[Read More]
Categories: dotnet  Tags: dotnet 

Understanding Process Memory Usage

To understand how much memory a process is using, we can keep an eye on its various memory counters.

Private Memory: This is the amount of RAM that has been allocated to the process privately. In general, “Private memory” does not include any memory used by the process’s shared DLL files.

Virtual Memory: represents the process’s total virtual address space.

Working Set: This is the portion of “Virtual memory” that is currently resident in RAM and can be accessed without causing a page fault.

[Read More]
Categories: Memory  Tags: process memory