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:
- Should the GUI be separated from the application logic?
- If it is different, how should logic and GUI dialogue? Is TCP / IP Sockets a Good Option? What are the other possibilities?
- Is it good to have a GUI in any language compared to C ++? If yes - which language?
- Is this a browser based GUI?
- 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?
-
The GUIs can be separated from the application logic is?
Yes, definitely ....
-
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.
-
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).
-
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.
-
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
Post a Comment