Up until now, NPS has been a Windows-only application. But thanks to the Mono framework, this very well may change.
Mono, which is more or less a drop-in replacement for the Microsoft .NET Framework, allows .NET applications to run on all sorts of platforms – from x86 Windows to PowerPC Macs. I've known about it for a long time, but it wasn't until a few days ago that I seriously tried getting NPS to run on it. And it worked after several hours of "hacking" and rewriting code I hadn't touched since day 1.
Here is NPS running on Mono (on Windows 7 for now). The first picture is how it looked when I first got it running; the second one is how it looks at the moment. Not only does it look almost as good as it does on Windows, but it also works well – all painting functionality works great, as does file saving and even printing.
What caused most of the issues seen in the first picture? The use of the GetPrivateProfileString API call, which is used for reading .ini files. Mono doesn't like any direct API calls or P/Invokes, so I had to write my own configuration file parser, which took most of the aforementioned time. (The other issue was the use of Table layouts instead of Flow layouts for ToolStrip controls... it broke the panel moving code, making everything all jumbled together on the left.)
On the other hand, some things just don't work right... yet. The Configuration Panel and Component Manager don't render correctly, and the NPS Color Picker crashes the whole application. But oh well. In time, these issues will be fixed.
So what does this all mean? It means that there is now a decent chance that you Linux and Mac users will finally be able to enjoy NPS!
Leave a comment