Categories: Open SourceSoftware

Mono Migration Analyser tool (MoMA): Port Windows Software To Linux

The screen then shows a summary of the problems found. The test on the tool’s own binaries found no problems, as I suspected would be the case. It tested four categories, and each passed:

-All methods called exist in Mono, which means you’re not calling methods that the Mono project hasn’t implemented.

-No P/Invokes are called, which means you’re not calling directly into the operating system.

-No methods that throw NotImplementedException are called, which means you’re not calling methods that technically exist as a stub in Mono but haven’t yet been coded. (Remember, Mono is an ongoing project.)

-No methods marked with [MonoTodo] are called, which is similar in nature to the previous category.

Step 4 is pretty interesting, as long as you don’t abuse it: It lets you submit your results directly to the Mono project. Since I’m using MoMA to test itself, and since it passed with flying colours, I didn’t click the “Submit Report” button. Instead, I just clicked Next to move to Step 5, which is really just three buttons that let you download Mono and some other tools.

More Serious Work

Testing the MoMA tool itself didn’t yield much information, so I wanted to also test a bigger application. I wrote a quick little form-based application, but that didn’t yield much either; it passed with no problems. I needed a bigger application to test.

While writing my own million-line, production-quality software to use as a test in this article certainly sounds exciting, I suspect my boss wouldn’t be thrilled about the decade or so it would take to me to do so when I should be writing articles. So I decided to use the tool to analyse some existing programs written in .NET.

One such tool is Paint.NET, which is an excellent Paint tool that has evolved from a .NET version of the old die-hard Paint tool that comes with Windows to a full-featured tool that some say rivals Adobe Photoshop.

I used MoMA to process all the binaries that come with Paint.NET. In this case, the tool didn’t pass with flying colours. (That’s not a knock against Paint.NET, however, please keep reading.) For starters, the tool included several non-.NET assemblies, which were skipped. But the several other binaries were .NET assemblies; these were scanned.

This time the results were:

–All methods called exist in Mono. So far, so good.

–P/Invokes called: 157

–Methods called that throw NotImplementedException: 7

–Methods called marked with [MonoTodo]: 58

Page: 1 2 3 4

Jeff Cogswell

Recent Posts

Tesla Axes Entire Supercharger Team, Plus Senior Executives

Elon Musk dismisses two senior Tesla executives, plus the entire division that runs Tesla's Supercharger…

4 days ago

Microsoft, OpenAI Sued By More Newspaper Publishers

Eight newspaper publishers in the US allege Microsoft and OpenAI used their millions of their…

4 days ago

Binance’s Changpeng Zhao Sentenced To Four Months In Prison

US judge sentences Binance founder, Changpeng Zhao, to four months in prison for ignoring money…

4 days ago

OpenAI Hit By Austrian Complaint Over ChatGPT ‘False Data’

Rights group argues ChatGPT tendency to generate false information on individuals violates GDPR data protection…

5 days ago

EU Designates Apple’s iPad OS As DMA ‘Gatekeeper’

European Commission says Apple's iPadOS is 'gatekeeper' due to large number of businesses 'locked in'…

5 days ago

Beating the Barbarians in the Cloud

As the cloud continues to be an essential asset for all businesses, developing and maintaining…

5 days ago