Ok, to balance @josecgomez.sixs statement a bit
The early days of research into the move from ABL to C# involved some review of tooling to ‘machine translate’ the code. This ended up consisting of a ‘preprocessor’ - tailored to cleaning up some ABL (macros was the big one). With the ‘cleansed’ ABL, we passed it thru a tool we purchased and extended to fit the BO services (loving called the sausage grinder in many presentations). Lastly, we did some Roslyn magic tailored to fitting the new ICE 3 framework and clean up some of the real oddities everyone shakes their head at when looking at the output of this kind of tooling. Lastly, humans with neurons firing reviewed the output and applied some optimizations we discovered along the way of the conversion that did were faster to fix manually then try to update one of the three stages and risk the migrations again. Lather rinse and repeat across 43 million lines of code and ERP 10 was born.
When looking at how we can help migrate expressions / bpm code / etc, we came up with the idea of wrapping the sausage grinder for our professional services group to use and then it was pushed out to all to use.The quality is … mixed to say the least. It was not designed for end users or anything beyond the BO Services as part of the 4 stage conversion that occurred. The coding practices for a procedural language like ABL versus an OO/Functional language like C# and LINQ make the mapping inexact at its best. As Jose mentions though it can be used to get a general feel for the delta to C# when coming from ABL. That was the intent - reduce the fear factor as looking at a foreach in ABL in C#/LINQ is not THAT drastic a difference. To that end, I think the tooling is useful. Blind obedience? I don’t trust MS designers and review them after doing something in a VS designer so I assume no one will trust 100% our tooling either.
With all the negatives, there are plenty of positive and some hilarious anecdotes as well. I just had a question pop up on a service a couple of weeks ago and went to review the code. It went thru the conversion process not needing any attention - there were many that were this way. The code was basically untouched in our version control going back to 1997. So the tool did fill a need.
Just channel your inner Scotty and make sure you are using the right tool for the job.