Can .net micro framework project upgrade to .net core?

I am a web developer. But I have taken on a legacy project (about embedded hardware) which is written in C# with .net micro framework. My boss wants me to upgrade this project to .net core 3.1.

After searching on the Internet, it seems very hard to do that because the project code use so many built-in functionalities of .net micro framework 4.1.

For example:

        TimeService.SetTimeZoneOffset(currentTimeZone * 2);
                
        GHIElectronics.NETMF.Hardware.RealTimeClock.SetTime(dt);
        Microsoft.SPOT.Hardware.Utility.SetLocalTime(dt);

this first statement calls an extern method, which is:

        /// <summary>
        /// Sets time zone of the system. Effective immediately.
        /// </summary>
        /// <param name="offsetInMinutes"></param>
        [MethodImplAttribute(MethodImplOptions.InternalCall)]
        public static extern void SetTimeZoneOffset(int offsetInMinutes);

and this extern method will call a C++ method.

I am filled with doubt about the possibility of upgrading .net micro framework to .net core.

Could you please give any comment or direction to make it?


Edit:
I used “.NET Portability Analyzer” in Visual Studio 2019. The report says that DDLs used in the legacy project are compatible with .net core.

See below:

Does it mean I can directly use these DDLs from .net micro framework? If so, will it take effect in cross-platform, e.g. Linux?

Thank you

Are you going to be using mono on Linux?

We have new product line coming that replaces the old micro framework. It will be a good idea to discuss your project with us. Can you please email or call GHI directly and we can discuss options.

@Ming.Shaw,

I think the question is more : “What hardware should I use if I need to use .NETCore ?” and “Why should I migrate my .NETMICRO project to .NETCore ?”

In our case, we had the same reflection month ago, and we decided to finally migrate to .NETCore, because of the opportunity to use more functionnalities around web services and protocols, Entity frameworks, and so on… But also changing the hard, because the constraint are far from being the same between .NETMICRO and /NETCore.

@LouisCpro have you heard the news about what is happening internally? I am not seeing your name on the list of insiders. There are new “secret” things that you may want to know about.

Thank you. After spending lots of time on searching on the Internet, I totally agree with what you said. Yes, we will switch the hardware from a very old NZP to Raspberry Pi 3 or 4. So there is only one question left to ask my boss, since the hardware will change, should we rewrite code in .net core rather than port the old code with .net micro framework to .net core?

Hi Gus,
I’m effectivley not in the insiders list I guess. I’ve been off of the embedded world for months and it is my first post for a while :wink:
Of course I’m interested in subjects around ‘secret things’, moreover if it talks about .NETCore, C# and Iot !

I keep in touch…

@Ming.Shaw,

I should say …Yes…and… No !

.NETCore manages the several I/O of the MCU using the generic .NET IOT where .NETMICRO namespace are dedicated ones. So you’ll probaly have to adapt that part.

All the treaent codes will simply be recompiled, putting some attention on specific .NETMICRO implementations that wont be present or slightly different in NETCORE (crypto, http request/response, ans so on…),

But ! You’ll have gain as I said previously, using NETCORE, with all regarding to :

  • Web Services,
  • Security,
  • OTA Update,…

Over that, it is difficult to answer your question without knowing more about the purpose of your project… The best for you would be to give a try with unit testing of your functionnalities to verify how much work it require. That what we’ve done !