After seeing how fast SITCore is I decided to put it to the test with a UI that stressed the ‘old’ G400 a lot, and here’s some feedback.
Despite the usual NETMF limitations (maximum string table size, max items per assembly, …) and a new entry (string doesn’t implement IEnumerable?), a rough port does not take long, and the UI is indeed noticeably more responsive (I’m using the UD700).
I couldn’t find a lossless image format digested by TinyCLR: compressed BMP doesn’t seem to be supported, and loading uncompressed images from the SD card takes 1.4’’ each (fullscreen, much less for smaller elements of course), not to mention the space cost (1.1 MB), which can be a problem if data is stored on a less generous media. With G400 this kind of problems were easily solved by writing your own algorithms with RLP, but as I understand that’s no longer an option.
Is transparency supported somehow? With NETMF there was Bitmap.MakeTransparent, but I couldn’t find anything similar in TinyCLR, and I think that’s a mandatory feature for most UIs.
Opacity support appears to be limited in Graphics.* (I’m talking about the blending NETMF implemented in Bitmap.* drawing methods): it works with FillEllipse and FillRectangle, it throws with DrawEllipse, DrawLine, DrawRectangle and DrawString (these too weren’t available with NETMF - if I remember correctly - but it was easy to work around using DrawImage), and there’s no parameter I could think of for DrawImage (which in my opinion is the most important).
Image translucency (similar to what happens when drawing fonts) is also something that greatly improves the look of a UI, and while alpha channel was not supported by NETMF’s Bitmap, it could be efficiently coded with RLP, same as many other things.
Available managed memory is very low for a complex UI - and possibly in other contexts as well - though I gather this has already been addressed in the next release, with external RAM. I understand it comes with a small security cost, but 300 KB is really very limiting for something as powerful as the SITCore.
Similarly, available code space is a bit limited (700 KB), but I understand loading the managed application from external flash would further reduce security. Still, I think many applications could benefit from this trade-off.