IssueRaiser

Make it easy to use C# for Windows plugins

The primary language for Windows plugins is C++, since we don't want to force developers to take on the managed language overhead if they don't want to, but we should support C# since it's widely used in modern Windows development. There are at least two levels to this: - Minimal: Get loading and calling into a C# DLL working (it [currently doesn't](https://github.com/google/flutter-desktop-embedding/issues/531#issuecomment-654443486)), and make a plugin template option that has that pre-configured. In this model, all the actual channel logic (extracting arguments, building responses, etc) still has to be written in C++, which is not ideal. - Complete: Implement all the high-level channel constructs again in C#, and have the C code be a simple passthrough to C#. In this model, developers should never need to modify non-C# code.

Posted by stuartmorgan-g on Aug 31, 2020, 4:51 PM

Tags

Related issues

Raise real-world problems, find people facing the same issue, and discuss solutions.3,000 issues0 comments

support (Software)

Make it easy to use C# for Windows plugins

stuartmorgan-gAug 31, 2020, 4:51 PM

The primary language for Windows plugins is C++, since we don't want to force developers to take on the managed language overhead if they don't want to, but we should support C# since it's widely used in modern Windows development. There are at least two levels to this: - Minimal: Get loading and calling into a C# DLL working (it [currently doesn't](https://github.com/google/flutter-desktop-embedding/issues/531#issuecomment-654443486)), and make a plugin template option that has that pre-configured. In this model, all the actual channel logic (extracting arguments, building responses, etc) still has to be written in C++, which is not ideal. - Complete: Implement all the high-level channel constructs again in C#, and have the C code be a simple passthrough to C#. In this model, developers should never need to modify non-C# code.

Comments (0)

No comments yet. Start the discussion.

Comment on this issue