We are designing a system with C/C++ back end server and C# .NET front end. We would like to provide a web interface similar to C# .NET front end. Can you please suggest the best way to do it? e.g. Whether to embed the web server in back end server itself? How to have maximum common code between in .NET and web interface to minimize the maintenance, etc. Thanks in advance!
Depending on your application's needs, it may be better to just ditch the C# client and only create a web interface. That way your clients can save money by not buying a Windows box with .NET framework - a browser is all you need. You will also be able to update your website and have all the customers benefit from your upgrades instantly.
But should you decide to build both, there are a few paths to choose. You could place your business logic very close to the back-end server. You could even write it in C++. Then have a shared communication layer, and separate presentation layers for each of your client apps (web and desktop).
Another approach is to move the business logic closer to the client. Write it in .Net and have it be part of your desktop app and website. That business app can communicate with the back-end server using some abstract strategy (soap for desktop client and direct for web server). Of course this does not really save you from writing validation code in your C++ back-end server.