Answer:
Both are intended to simplify the development of apps by providing a system of modular, standardized components and services. The choice between them will rely on what you are seeking for.
Step-by-step explanation:
The Dalvik virtual machine is implemented by Google for the Android OS, and functions as the interpreter for Java code running on Android devices. It is a process virtual machine, whereby the underlying Linux Kernel of the Android OS spawns a new Dalvik VM instance for every process. This reduces the chances of multi-application failure if one Dalvik VM crashes.
Dalvik virtual differs from NET CLR, because it executes Dalvik byte code. The NET.CLR or Microsoft technology based solution might be the correct choice for an enterpise -grade application which requires strict security and high level data integrity, whereas a Java-based solution would be suitable when the primary requirement is cross-plataform operability.
You will choose Dalvik if you want an enterprise grade application, seek for portability and platform independence, if your application attracts high user volumes.
On the other hand, you will choose NET. CLR, if you develop web services, need highly secure application, feature-packed, intuitive application with a rich GUI.