user interface - How to write a GUI for a large cross-platform C++ project? -


I have a large cross-platform (Linux and Windows) C ++ project, for which I want to create a GUI .

I have some very common questions about the basic principles of GUI for such a project:

  1. Should the GUI be separated from the application logic?
  2. If it is different, how should logic and GUI dialogue? Is TCP / IP Sockets a Good Option? What are the other possibilities?
  3. Is it good to have a GUI in any language compared to C ++? If yes - which language?
  4. Is this a browser based GUI?
  5. Although the main logic of the project is cross-platform, I can determine that the GUI will be only Windows-based (.NET) and this related to the related Win / Linux machine through socket or similar method But will communicate with logic. Is there a good idea to do this?

  1. The GUIs can be separated from the application logic is?

    Yes, definitely ....

  2. If this is different, then how should the argument and GUI be communicated? Is TCP / IP Sockets a Good Option? What are the other possibilities?

    ... but that is not much. Sockets will be overworked (see exception 5: see question 5) Usually you divide the sections in the GUI and backend parts. GUI classes then call backend methods.

  3. Is it good to have a GUI in a different language than C ++? If yes - which language?

    If so, then you have to integrate two languages, so I would recommend writing everything in one language. But to answer your question, you can create Python binding for your backend, for example, and write a GUI in Python (with PyGTK, PyQT or wxWidgets).

  4. Is this a good idea to have a browser-based GUI?

    It depends on how you want to apply your application, if it should be installed on each client computer, then there is no meaning of a web interface. If you want to host it centrally, you can choose the option of a web interface.

  5. Although the original logic of the project is cross-platform, I can determine that the GUI will only be Windows-based (.NET)? And through this socket or similar method, will communicate with the relevant Win / Linux machine logic. Is there a good idea to do this?

    I think it makes sense only then the backend should be safe in any way (i.e. should not be installed on user's computer) or if you have questions 4 There is a thin client-like approach. Writing Cross-Platforms The CPU is very easy to write cross-platform backend (in my opinion), so you have to cross-platform both parts. By the way, .NET-based GUIs are not just windows - Mono already supports a great subset of Windows form, for example (but unfortunately, not WPF).

Edit:

Regarding your mono question: Mono is mostly stable, but everything is still applicable Has not happened. To ensure this, you can know whether mono will not do anything or not. But I think that the fact that using mono in the production environment really means that you should consider mono as one of the least options!


Comments

Popular posts from this blog

sql - dynamically varied number of conditions in the 'where' statement using LINQ -

asp.net mvc - Dynamically Generated Ajax.BeginForm -

Debug on symbian -