.NET Public Key and Assembly Signing

The CLR uses public keys for two reasons. 1) to uniquely identity the developer of the component and 2) to protect the component from tampering. Assemblies with public keys also has a digital signature. This signature provides a secure hash of the assembly manifest, which themselves contains hashes of all subordinate modules. Historically the CLRContinue reading “.NET Public Key and Assembly Signing”

.NET Assembly Loading

There are two main ways to programmatically load assemblies. You can use the assembly loader or the assembly resolver. The assembly loader uses System.Reflection.Assembly class’ LoadFrom static method. The assembly resolver uses the System.Reflection.Assembly class’ Load static method. The assembly loader loads a specified file i.e. from a file path like so: var assembly =Continue reading “.NET Assembly Loading”

.NET PE32 File Format

The file format for CLI components is a strict extension of the current Portable Executable (PE) file format. This extended PE32 format enables the operating system to recognize runtime images, accommodates code emitted as CIL or native code, and accommodates runtime metadata as an integral part of the emitted code. The following picture shows theContinue reading “.NET PE32 File Format”

.NET Garbage Collection

The CLR comes in two builds. A workstation build and a server build. As the name indicates, a workstation build is for single CPU workstations while a server build is for multi-CPU machines. No matter how many CPU’s there are on a machine, the default build is always workstation build. If you are running theContinue reading “.NET Garbage Collection”

.NET Metadata

.NET uses metadata to describe and reference the types defined by the CTS. Metadata is stored in a way that is independent of any programming language. Thus, metadata provides a common interchange mechanism for use between tools. Metadata is a collection of heaps and hyper-normalized database tables. The tables consist of types and their membersContinue reading “.NET Metadata”

.NET Just in Time Compiler and Memory Layout

The CLR executes only unmanaged machine code. The first time a method is called, the CIL for that method must be verified and compiled by the JIT compiler. If what the CIL does is not safe, a VerificationException is thrown. Some of the benefits of a JIT compiler are: Locality of reference. There is aContinue reading “.NET Just in Time Compiler and Memory Layout”

Benefits of .NET

Some of the benefits of the .NET platform is multi-language design, metadata, code access security, scalable web-services, xcopy deployment/zero impact install, and increased developer productivity. Some other benefits are: Interoperability of assemblies that are made by different programming languages that are all running on .NET. So, a C# assembly could use an assembly made withContinue reading “Benefits of .NET”

What is .NET?

.NET is a Microsoft initiated set of ECMA standardized technologies commonly referred to as the Common Language Infrastructure (CLI). The specification consists of six partitions. Partition I: Concepts and Architecture, Partition II: Metadata Definition and Semantics, Partition III: CIL Instruction Set, Partition IV: Profiles and Libraries, Partition V: Binary Formats and Partition VI: Annexes. TheContinue reading “What is .NET?”

CMPlayer macOS Release

If you have your own music collection on your mac or on a mounted drive, then CMPlayer is for you. The CMPlayer software runs on macOS as a console application. CMPlayer is a different kind of music player. It can run continually, selecting songs at random from the entire music collection, or from a searchContinue reading “CMPlayer macOS Release”