This is an old revision of the document!
This page applies to COMFILE Technology's Linux platforms, including ComfilePi, Raspberry Pi, jPC, and other Linux-based devices.
You can develop C# and VB.NET applications on Linux using Microsoft .NET.
Windows WinForms applications can also run on Linux using either ComfileTech.WinForms or Mono.
| Scenario | Recommended Option |
|---|---|
| Starting a new project | .NET 5+ (Recommended) |
| Want to continue using WinForms with modern .NET | ComfileTech.WinForms |
| Porting an existing .NET Framework application to Linux | Mono |
Modern .NET is Microsoft's current development platform and is recommended for most new projects.
Benefits include:
Supported platforms include:
For user interface development, consider one of the following frameworks:
If you prefer to continue using WinForms, consider using ComfileTech.WinForms.
If you would like a more modern WinForms-style appearance, consider jControls.
For more information:
ComfileTech.WinForms allows traditional WinForms applications to run on both Windows and Linux while using modern .NET.
This is often the easiest migration path for developers who are already familiar with WinForms and want to continue using the Visual Studio designer.
For more information:
Mono allows existing .NET Framework applications to run on Linux.
This option is useful when:
* You already have an existing .NET Framework 2.0–4.x application * You want to minimize code changes * Your team is heavily invested in WinForms
While Mono remains a practical solution for existing applications, it is generally not recommended for new projects.
For more information:
If you need a library that works with both .NET Framework 4.x and modern .NET, consider targeting .NET Standard 2.0.
This approach is particularly useful for reusable libraries such as:
* Modbus communication * GPIO access * I2C communication * Serial communication * TCP/IP communication * Other utility libraries
COMFILE Technology does not provide technical support for Visual Studio, C#, VB.NET, or Microsoft .NET technologies.
For support related to Microsoft products, please contact Microsoft directly.