OP: It really is not.
Simon: Jconsole is a side argument to what is actually the difference between java and .net. Java easily presents user information, which .net gets confused. Perhaps due to their different ideologies and goals, java is designed as a normal virtual environment that runs on any os host where .net is mainly designed with windows in mind.
.Net processes are not designed to work in an ambiguous vacuum; they run as component services or parts of iis, and they run on windows, so the virtual environment does not provide for remote monitoring, because you will get some degree of free from wmi.
Java does not work this way because java cannot make any assumptions about the underlying os or what information it will provide, and all that Java needs to do should be the same for all systems. Thus, Java provides a huge amount of data about its memory and thread activity for the user and provides an infrastructure for processing and detecting managed objects in user code (mbeans). Jconsole and jvisualvm allow you to remotely connect to the java process (locally or over a network with jmx, although jmx requires the flag to be active in the target Java process), and then they can see all this data and view all available MBeans. In addition, all this is basic functionality, and the programs are free.
.Net flat out does not have this. Itβs actually a developer for creating remote control in your application code, and there is no convenient viewer that helps users find out which control objects even exist.
In addition, java code can be trivially changed back to the original one, reconstructed into a project, and then debugged with remote breakpoints against the production system. This is possible with .net, but they certainly do not make it easy.
source share