A .NET keretrendszer lényegében a Microsoft válasza a Sun Java virtuális gépre. Néhány .NET technológia eredetileg a Microsoft Java verziójának fejlesztése során jött létre. Amikor 1998-ban a Microsoft elhatározta, hogy nem használja tovább a Sun Java technológiáját, a már létező Microsoft J++ (Java++) terméket a .NET projekt alapjaként használták. A .NET Common Language Runtime (CLR) kódja egyesek szerint a Colusa Software OmniVM termékéből származik, amit a Microsoft 1996. március 12-én vásárolt meg.
A J# (ejtsd: dzséj sárp, más néven Visual J#) a Microsoft által kifejlesztett eszköz, amellyel a Java-t használó programozók .NET alatt tudnak alkalmazásokat készíteni. Aki esetleg programozott J++-ban annak ismerős lehet a rendszer, hiszen a J# a J++ utódja. Ennek megfelelően a J++-ban megírt programok nagy része lefordítható .NET-es környezetben is a J# segítségével. Éppen ezért a J# a Sun Java specifikációjának egy teljes körű megvalósítása (ahogy a Sun féle Java is az). Egy helyes Java program, helyes J# program is (többé kevésbé ... lásd később).
Gyakorlatilag nem egy új programozási nyelvről beszélünk a J#-al kapcsolatban, hanem egy fejlesztő eszközről, amit főleg azoknak a Java programozóknak ajánlható, akik alkalmazásukat .NET Framework alá szeretnék írni, viszont nem akarnak egy új nyelvet (C#) megtanulni. Viszont mivel számos .NET Framework funkcionalitás le van tiltva a J#-ot használóknak, a J# azok számára lehet hasznos, akik csak egy adott projektre szeretnék használni ezt a platform-t. Hosszabb távra a C# lehet inkább a megoldás.
Különbségek: