複数のアプリケーション・プログラムが同じDLL(Dynamic Link Library)などのコンポーネントを共有することから生じるDLL HELL(地獄)と呼ぶトラブルを回避するための仕組み。Windows 2000とWindows 98 Second Edition以降が備えている。

 複数のアプリケーションが共通に必要な機能をDLLにしておけば,アプリケーションのサイズを小さくしたり,実行時のメモリー消費を少なくできるといった効果が期待できる。一方で,1つのアプリケーションのためにDLLに修正を加えると他のアプリケーションが正しく動作しなくなるという現象が起きている。特に,アプリケーション・ソフトと一緒に配布されることが多いシステム関連のDLLでこのトラブルが多い。

 このトラブルを解決するために考案されたのがサイドバイサイド共有である。実装のステップとして,DLLリダイレクトと,それをさらに発展させたサイドバイサイド・コンポーネントの2つの段階がある。

 DLLリダイレクトでは,通常はシステム・フォルダに入れるDLLなどのコンポーネントを,アプリケーション(EXEファイル)と同じフォルダに置く。これと同時にアプリケーション名に.localという拡張子を付けたファイルをアプリケーション・フォルダに作っておく。このファイルは存在すればよく中身は空でよい。アプリケーションの実行時に,OSは.localファイルを見つけると,DLLなどを同じフォルダから読み込む。このようにすることで,アプリケーション専用のDLLが使えることになる。

 しかし,この方法では同じ名前で異なるバージョンのコンポーネントを同時に実行できない場合がある。この点をさらに改善したのがサイドバイサイド・コンポーネントである。ただし,こちらはコンポーネントのコードに手直しが必要になる。