Unfortunately, usually for large projects it usually takes a lot more effort. What is effective in one language may not be in another, and most importantly, what exists in one language may not be in another. For example, it took NHibernate years to migrate, and they still do it (although adding features all the time, like Linq).
Usually it is a matter of placing and porting classes one by one, optimizing where possible, changing structures where necessary. Things like generics, aliases and boxing all change in the port. Then, after you are done, there is often a lot of optimization left (of course, this is not necessary ...), maybe these are events, maybe static and extension methods, maybe something new that your new language offers / platform that the old did not.
Think of it this way, why port it to .Net? I would say that you are in one of two situations, one of which you are stuck with using .Net because of work (doh, sorry!), Or you like .Net because it gives you some advantage. In the second category, this means that you selected it in Java, so when porting you would like to take advantage of all the features that you selected .Net in the first place.
Nick craver
source share