I can’t understand why you want to switch from C # and .NET just because you don’t want the “inconvenience” of your client, requiring them to install the .NET framework.
First, .NET is included in Windows these days. In XP (current service packs), you get .NET 2.0. In Vista, you get .NET 3.0. Assuming that you are not actually using any features of .NET 3.5 and that you do not need any features from C # 3.0, the argument "inconvenience to the client" is rather controversial. They don’t need to download anything or install anything extra ... it already exists.
In case you really need .NET 3.5 and / or C # 3.0, it is not easy for you to create a pre-packaged installer for your clients (clients) who care about all this. The client has no real "inconvenience", since they still need to install your program. A single installation can provide both your program and all its dependencies in a single, seamless, transparent installation process. If you want an even simpler time for your customers, you have the option of a one-time deployment with .NET, C # and Visual Studio. This will create a simple site for your customers that will quickly and easily enable them to download and install your application, as well as update it when future updates are published. This type of deployment also ensures that any dependencies are downloaded and installed on the client system, which needs to be done only once (for all subsequent updates, only downloading and installing the latest version of the changed assemblies is required).
As already mentioned, C # and .NET have a lot to offer. Microsoft is creating an extensive .NET development ecosystem with a wealth of community resources, tools, documentation, and help. C # is a very clean, modern, promising language that offers many tools to help you and your developers solve problems as quickly as possible, simply and efficiently. Switching to C ++ means that you not only lose these useful achievements, but also inherit the nightmare of manual memory management. Switching to Java means that you are losing these useful achievements, but, as a rule, are also not useful. You can switch to other .NET languages, but then you will not solve the only problem that you talked about: your clients depend on the .NET platform.
If you already have a system developed using C #, I would say that nothing is changing. You will lose a lot and not get anything that will significantly affect your customers. Ultimately, any change is likely to have a much more significant impact on your company and your developers. You will have the cost of rewriting or converting the code, the cost of training your developers in a new language, and possibly a new development platform, the cost of finding and fixing bugs that have probably already been fixed in your current code base, and a list going on ...
You need to learn more about what .NET has to offer before you decide that this is too inconvenient for your customers. And you need to make sure that this is really an inconvenience for your customers before deciding to make such a drastic and costly change.