iPack to iDesk

iPack to iDesk Migration Path (Managed .NET to Embedded Linux)

Preserve your managed code investment. Modernize your platform.

1

Analyze Existing App

📄

Identify managed (.NET Compact Framework) code and native
(C/C++) code, plus their dependencies.

2

Separate Code

🧩

Split the application into two parts:

  • Managed code
  • Native code (C/C++)
3

Upgrade Managed Code

.NET → iDesk

Port managed assemblies to .NET Framework 4.8 and replace
iPack assemblies with iDesk assemblies.

4

Choose New Hardware

🖧

Select an Embedded Linux-capable hardware platform
(Toradex / F&S etc.).

5

Prepare OS with Mono

🐧

Equip the device with Embedded Linux including Mono Runtime
and required prerequisites.

6

Deploy & Test Application

🖥️

Deploy the application, run functional tests, verify UI,
performance and memory usage.

7

Port / Replace Native Code

</>

Replace or port native Windows CE code with Linux-compatible
native code and integrate via wrapper.

8

Need Help?

🤝

If you need assistance with assessment, porting, Embedded Linux setup,
or native code migration, Bee Mobile can help.

Managed Code Path

1

iPack / .NET Compact Framework

  • Your managed application
  • iPack assemblies (.NET CF)
  • 3rd party libraries (.NET CF)
3

3rd Party Libraries

  • Available for .NET 4.8
    Use directly
  • Managed only
    Often works on .NET 4.8 / Mono, test required
  • Not available for .NET 4.8
    Ask vendor, rebuild from source, or replace

Native Code Path

1

Windows CE / Windows Mobile Native Code

  • Native libraries / device-specific code
  • Windows CE / Windows Mobile APIs and drivers
2

Linux Native Code

  • Linux-compatible native libraries
  • Linux APIs and drivers
  • Board-specific integration
3

Native Wrapper Interop Layer

  • Stable C API for managed code
  • P/Invoke integration layer
  • Clear ownership rules for memory, strings, structures and callbacks

Migrated Application Running on Embedded Linux

Managed application (.NET 4.8 / iDesk) +
Native libraries (Linux) +
Mono Runtime

Modern platform. Extended lifetime. Reuse your investment.

From iPack to iDesk on Embedded Linux

This migration path is intended for customers who already have an application written for the .NET Compact Framework and want to preserve as much of their existing managed code as possible. The general idea is to move the managed part of the application to .NET Framework 4.8, replace iPack assemblies with iDesk assemblies, and run the application on Embedded Linux using Mono Runtime.

Recommended for
Applications where most of the code is written in C# or other managed .NET languages, and where native Windows CE / Windows Mobile dependencies are limited, isolated, or replaceable.

High-level migration process

  1. Analyze the existing application.
    Identify which parts are pure managed .NET Compact Framework code and which parts depend on native Windows CE, Windows Mobile, or device-specific APIs.
  2. Separate managed and native code.
    If the application contains both managed code and native C/C++ code, split the project into two logical parts: a managed application layer and a native platform-specific layer.
  3. Upgrade managed assemblies to .NET Framework 4.8.
    The managed part of the application should be ported to .NET Framework 4.8. Former iPack assemblies should be replaced by the corresponding iDesk assemblies. iDesk provides functionally similar assemblies targeting .NET Framework 4.8, with only minor differences.
  4. Review third-party dependencies.
    Third-party assemblies should also be available for .NET Framework 4.8 whenever possible. Pure managed assemblies may still work without modification, but libraries containing native code or platform-specific dependencies usually require a vendor-provided .NET Framework version, source-level porting, or replacement with an alternative library.
  5. Select new embedded hardware.
    Choose an Embedded Linux-capable device suitable for the application. Bee Mobile primarily works with Toradex and F&S boards for this type of migration scenario.
  6. Prepare the operating system.
    The target Embedded Linux image must include all required runtime components, most importantly a properly configured Mono Runtime capable of running the migrated .NET Framework 4.8 application.
  7. Deploy and test the migrated application.
    Deploy the application, validate UI behavior, test hardware integration, and verify performance and memory usage on the target device.
  8. Port or replace native code.
    Native C/C++ functionality originally written for Windows CE or Windows Mobile usually needs additional work. In many cases this means replacing Windows-specific native libraries with Linux equivalents and creating a native wrapper that the managed application can call.

Native code considerations

Native code is usually the most platform-specific part of the migration. If the original application calls native Windows CE DLLs, those DLLs cannot simply be reused on Embedded Linux. The usual solution is to replace or port the native functionality and expose it to the managed application through a clean interop layer.

  • Replace Windows CE native libraries with Linux-compatible native libraries where possible.
  • Create a native wrapper library that exposes a stable interface for the managed application.
  • Update the managed code to call the new wrapper instead of the old Windows CE-specific API.
  • Test interop behavior carefully, especially memory ownership, strings, structures, and callbacks.
Important
This migration path is usually straightforward only when the original application is mostly managed code. Applications that heavily depend on native Windows CE APIs, device drivers, or proprietary native libraries may require a deeper platform migration effort.

Pros and cons of the iDesk migration path

Advantages Challenges
Preserves a significant amount of existing managed application code. Native Windows CE / Windows Mobile code must be ported, replaced, or wrapped.
Provides a familiar programming model for teams with .NET Compact Framework experience. Requires a properly configured Embedded Linux image with Mono Runtime.
See Embedded Systems resources.
iPack assemblies can be replaced by functionally similar iDesk assemblies. Third-party dependencies must be reviewed for .NET Framework 4.8 and Mono compatibility.
Can be a practical path for extending the lifetime of existing managed applications. Hardware-specific APIs usually need redesign or replacement.

Migration support

Need a migration partner?

We can help evaluate your existing iPack application, identify reusable managed code,
plan the native-code migration, prepare Embedded Linux, and estimate the effort required
to move your application to iDesk.


View services


Contact us