Since the release of dot42 we have seen great interest from the community. Our approach to writing Android applications in C# without requiring the Mono run-time was received positively.
There are a few fundamental problems with the design of dot42 though. Its primary function is converting compiled C# code (IL) to byte code that runs on Android (DEX). Maintaining and developing this kind of code requires highly specialized knowledge of both byte formats and compiler construction skills. But there are more downsides to the IL-to-DEX approach. I will discuss them and tell you how we plan to move forward.
TallComponents

Convert Byte Code vs Convert Source Code
Finding and fixing bugs
A bug in the byte converter often results in the VM throwing the infamous java.lang.VerifyError. This exception is 'thrown when the VM notices that an attempt is made to load a class which does not pass the class verification phase'. Finding the bug is like going through a patient's poo to infer what was wrong with his meal. A typical example is that our DEX runs fine inside the Dalvik but crashes inside ART. If you convert at source level, the Java compiler takes care of correct byte layout.Experiment with conversion code
When working on the conversion of a particular C# language to Java, you can easily experiment with C# and Java source code before you add the technique to the conversion code. Working on a proof of concept is much harder with byte code.
Write vs Use a compiler
Compilers for different virtual machine models or CPU architectures use different optimizations. IL generated by the C# compiler targets the stack based CLR. The Dalvik VM on the other hand, uses a register based machine model. If we convert from IL, the C# compiler has already thrown away information that could have been valuable for the Java compiler. By converting C# to Java we allow the Java compiler to generate the most efficient Java byte code or DEX.
Roslyn
Now that Microsoft provides an open-source C# compiler with rich code analysis APIs through "Roslyn", we have a powerful instrument available to convert C# to Java.
Transparency
Finally, for the dot42 developer, the conversion of C# to Java will make the process much more transparent and debuggable. She will be able to take dot42's output and open it in Eclipse or Android Studio.Moving forward
We will release the dot42 compiler tools under the GPLv2 license. Note that GPL does not propagate to the output of GPL software. You will be able to build closed source Android applications with dot42 (including commercial). The run-time code is already licensed under Apache License 2.0: https://github.com/dot42/api. You will no longer need a Professional license to develop commercial applications with dot42. The next update of dot42 will not require activation.
Anyone can fork the dot42 project and build further on the IL to DEX approach. From now on, we will invest in replacing the IL to DEX cross compiler with a C# to Java converter. This effort will be sponsored by TallComponents. The code will also be released under the GPLv2 license. Any run-time code will be licensed under Apache License 2.0.
We are currently preparing the source code for release (removing 3rd party references, removing obfuscation, adding build instructions, etc.). We will let you know as soon as the source code is available on GitHub.
We are currently preparing the source code for release (removing 3rd party references, removing obfuscation, adding build instructions, etc.). We will let you know as soon as the source code is available on GitHub.