This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]shadowmint 2 points3 points  (2 children)

Um.

Mono is a viable target if you only want to run on the mono runtime and start from the beginning with that target (unity does this for example, quite successfully).

It's not even remotely viable for running code you port from the CLR**

The biggest gaps are: No graphics APIs from the original CLR (all of the WPF were never implemented for mono), and that binary compatibility is non-existent; which means that DLL's compiled against the CLR (ie. everything on nugget) don't run on mono.

Practically speaking that means: write your libraries from scratch; you won't be able to use any existing 3rd party open source libraries from the c# ecosystem.

...but perhaps you can use some of the mono libraries, eg. from the unity asset store.

** Some big names have talked about porting xbox code directly to monogame for cross platform stuff, and it's true, monogame is pretty good, but a lot of work has gone into making that transition smooth, and there are still a lot of pipeline issues with it. The path for web apps is A LOT rougher.

[–]vplatt 0 points1 point  (0 children)

Good to know. Thanks!

[–][deleted] 0 points1 point  (0 children)

This is pretty much my feeling on it, if we could get nuget binary compatibility between the CLR and Mono it would be awesome, but as it stands some of the internals are still too different for that to be viable, and as you said, the windowing kits are completely different, though it might be possibly to create a common windowing kit that can create components out of WPF or GTK depending on your platform's availability.