Hey, just a quick update about the C# plugin SDK:
Every C# plugin will consist of two DLLs:
1) The C++\CLI (managed C++) assembly
2) The C# assembly
When FARR loads the C++ plugin it calls its OnInit() function which in turn uses reflection to find its required C# assembly into the memory. Then it is just a matter of passing each function call to the managed extension and converting the data back and forth from managed to unmanaged types.
When it is done, the idea is that the C# developer wouldn't be aware of the C++ plugin at all, he'll just need to add a reference to my managed C++ assembly, inherit from a certain base class and override the functions he wants to. I'll have a VERY basic (just one function) prototype working today, probably.
Right now I have most of the basic functionality built in and I believe I can do the first real C# plugin in the next days.