C#C
C#3y ago
15 replies
diedenieded

✅ Opinions on Node.js + C++ vs C# for app that accesses the win32 API

Hello all.
I'm working on an app that can control the volume of applications through a web interface, and I'm having a hard time deciding what backend stack I should use. As written in the title, I'm deciding between using Node.js to handle the web stuff and C++ via Node's C++ addons to handle the win32 stuff, or do handle both tasks in C# (and ASP.NET?). I've come up with some pros and cons for each approach.

Node + C++:
+ Plenty of win32 examples and documentation on the C++ side
+ Plenty of web examples and documentation on the Node.js side
+ About 40% of the API required for the app for win32 already implemented in C++
+ I'm familiar with JavaScript
- Complexity in Node/C++ interoperability
- Zero knowledge and experience with Node's C++ addons
- Not very good at C++

C#:
++ Less complexity (?) as win32 and web stuff are handled on the same codebase
+ Willing to learn C# if necessary
- I'm new to C#
- I have not found any documentation or code samples for win32 in C#
- Plenty of questions

Here are the questions about using C#:
- Does C# natively support win32 API / Core Audio? From the scraps of documentation and examples I've seen, it seems that you have to use some sort of wrapper to be able to use the Core Audio API. There's no point in using C# if this is the case, but I'm open to thoughts.
- If it does support it natively, please help me by linking me to some related documentation. All the Google searches I've done lead to examples that are done in C++.
- Are the terms C# and .NET interchangeable for doing Google searches?
- What is ASP.NET, and will I need it? The app is expected to serve a static page, and most of the communication will be done through WebSockets.

I'm glad to answer any additional questions you may have that are going to help me decide between the two choices, and I'm thankful for any input on this topic.
The app is also in a very early stage, so suggestions for radical changes (etc. using Python) are also welcome. Thanks in advance.
7215_thonk.png
Was this page helpful?