Porting C++ builder app to VS recomendations needed please. RRS feed

  • Question

  • Intro:

    I have an old C++ builder app that I have been trying to port to the latest version of C++ builder and it has been such a nightmare that I am looking at porting it over to VS. After playing with VS2012 a week the IDE is simply just a pleasure to work with compared to the new Embarcadero XE3.


    My app is a multi-tier c++ SCADA/Network Management MVC style app with a front end GUI that connects to a middleware server that in turn  has a bunch of other serial port device drive type clients connected to it.The middleware simple acts as a message forwarder between all the connected drivers and the gui(s). The GUI(s) connects to the middleware via TCP custom protocol and messages and is C++ Builder VCL C++ app. The middleware and drivers are all standard c++ console mode exe. I am looking to get advice on best approach to port the GUI app to visual studio. The only thing I am pretty sure of is that porting to C++ MFC based GUI is out of the question. Tried that route long time ago and it was too complicated which is what drove me to C++ builder VCL in the first place. Also I think I want it to be Winforms, not WPF due to learning curve of WPF. Any suggestions on bast way to approach this such as:

    1) Do complete GUI in C# (Win Forms)

    2) Do complete GUI in C++ (Win Forms)

    3) Do visual stuff in C# and all the back end stuff in c++ and mix them somehow.

    I like the c# and C++ mixed mode idea because it should allow me to reuse a bunch of the original c++ stuff ( network message processing and other backend stuff) while also giving me best possible performance, but after looking at this I am not sure how I would even approach this.

    Hope I have been clear enough. Any and all info on this would be much appreciated.

    Thanks in advance.


    Friday, April 26, 2013 10:15 PM

All replies

  • This is a classic, "it depends", and it depends on what you (or your team) want to do. One of the advantages of .net is that you can choose the most appropriate language to implement the solution. However, in this case appropriate depends on you. Personally I went from C++ to C# (although via VB6) and I find the freedom of c# (over C++) with its structures of C++\Java really easy to pick up. So I don't think you'd have a problem there. WinForms vs Wpf - meh, it's not such a huge leap. In fact once you go over a simple MVVM tutorial you'll see how much easier it is. Given you're using TCP message as the transport/message mechanism you can choose whatever makes sense to you. Perhaps you have a lot of unmanaged calls to make that would steer you towards keeping the C++? Either way sounds like you have lots of choices and very little to be worried about.

    Monday, April 29, 2013 12:29 PM