I have just started (thinking about, trying & testing, ... ) a small application using a web service. But I have this dilemma weather to choose managed c# or native c++ to eventually develop it in.
I know such decisions should be planned out beforehand, but since this was just a little test, a way to learn about web services that turned into a little project I was confronted with this dilemma when I was already doing some coding.
Now, the problem is, it's a tiny tray app (monitoring ISP data usage) that doesn't use a lot of resources. Targeted at users with various Windows versions, with their various .net versions or no .net framework at all.
I started out using .net 4.0 because I was just learning about web services and with .net 4.0 it's really easy. But the problem is; .net 4.0 isn't widely supported yet. It isn't even standard in Windows 7. So I'm thinking, should I;
1) Include a full .net 4.0 framework in my setup, which would probably be bigger than the actual app itself. And loose some potential users, or annoy them by forcing them to install a 'big' .net framework. It puts a lot of people off, sadly but understandable. Especially for such a small app. (btw, I thought about developing for an earlier .net version that is more widely spread, but the problem above remains)
2) Should I rewrite the app in native c++ ? I love c++ but it is harder for working with web services I feel. C++ is native code, requires minimal dependencies. And I like that. Although I understand I still would need to include the WWS API to support older OSses which I is the idea.
So basically I just want to ask what would most of you do in a situation like this ? And perhaps guide me in the process of when it's better to choose to use native c++ or when c# is the better choice for certain types of applications.
any help/suggestions would be greatly appreciated,
You could use an MSI installer which will download and install the .NET framework only if it's not already on the users system. As the .NET 4 framework is supplied to everyone via windows update, the odds are everyone has it already. If not, the odds are that another application they've ran has required it so they would've gotten it that away.
I wouldn't factor in forcing people to download the framework as an issue at all. It's just so common for people to have it already and also so easy for them to get it.
NOTE: My code snippets are just snippets. They demonstrate an idea which can be adapted by you to solve your problem. They are not 100% complete and fully functional solutions equipped with error handling.