Nice work. It will be great to use ASP.NET Core on a Pi with official support.
I tried .NET out on the Pi using Mono, years ago when it was relatively new but after the software floating point OS was deprecated. The weird hardware floating point CPU made it pretty much unusable. Even simple things like DateTime objects would fail to work correctly.
Similar issues were in Java IIRC but they had a special build of that. I think Sony had a fixed build of Mono but I haven't tried it. It will be good to have official .NET support outside of Win 10 IoT.
Interesting, imho Java makes no guarantees about FP portability if you don't enforce it with the strictfp keyword, you'd get 80bit on x87 and 64bit on other architectures.
Why would this cause failing tests though? Does that mean they relied on extended precision?
Not sure of the specifics. Java SE is now included with the official OS (Raspbian/NOOBS) [0]. When the Pi first launched you had to use the soft FP version of the OS or Java wouldn't work but this had a significant performance penalty. They added official support for hard FP a few years ago [1]. I believe the .NET issue was similar in that the VM (CLR i.e. JVM) didn't support the hard FP version of the OS. FP on the Pi processor is a bit weird and a non-standard implementation from what I've read.
P.S. In researching this post I noticed that one of my projects (a globe wake lamp) has been included in the latest project book (p108) [2]. First I've heard of this! This is actually an old version and there is a newer write-up on my blog [3].
I just want to emphasize the fact that not only is the .NET Micro Framework something that exists, but that it has been available since 2009 and remains so, under the items of an arguably much more agreeable license: Apache 2.0
Great work. Can't help but notice most of the contributors in this issue are Samsung Electronics employees. Interesting to see Samsung in the .net world!
You can build Tizen apps in .Net now I imagine they're working to improve compatibility across all Tizen devices. Samsung is also now a member of the .Net foundation
Assuming they implement the entirety of the .NET APIs then a developer would have to invest very little to get on their platform. One would hope anyways.
aside from frequent platform changes, and the fact that very little amount of users use Tizen, I believe C# is a much better environment for app development. C# has much better tooling around it (remember how long it took to have a stable android studio, let alone have it in the first place)
I was looking into this just yesterday to see how far away it was, so the timing is really fortunate for me.
Between this and the VS Code builds we should now have pretty solid support for developing .NET on Pi and/or Chromebook, so I'm really excited to get rolling with it, especially seeing as I have some free time this week. I'll try to write up my experiences too in case it helps anyone else.
Looking forward to an official Docker image for this. The Raspberry Pi is probably the main board we think of when people say 'ARM' - but the Pine64 and Odroid C2 are maybe better suited - being 64-bit and the Odroid having twice as much memory.
What kind of .NET runs on Windows 10 IoT though (on the RPi Model 3)??
I've encountered some NuGet packages with the prefix runtime.win7-arm., so I think .NET Core has got support for Windows 10 IOT since the very beginning.
I tried .NET out on the Pi using Mono, years ago when it was relatively new but after the software floating point OS was deprecated. The weird hardware floating point CPU made it pretty much unusable. Even simple things like DateTime objects would fail to work correctly.
Similar issues were in Java IIRC but they had a special build of that. I think Sony had a fixed build of Mono but I haven't tried it. It will be good to have official .NET support outside of Win 10 IoT.