Я стараюсь дать ответы на ваши вопросы:
1) Хорошая структура программы
Это действительно зависит от того, что важнее всего - стоимость разработки, простота развертывания / обновления, ремонтопригодность, требования к целевой машине. Трудно дать вам хороший ответ, потому что тема очень большая. Я предлагаю это как хорошее место, чтобы начать читать:
Разработка программного обеспечения
(2) Передовая практика разработки пользовательского интерфейса
Это действительно зависит от того, какую технологию вы собираетесь использовать. Если вы работаете в Windows, у вас есть несколько вариантов:
а) Win32 API программирование
Это самое сложное и включает в себя написание кода для вызова таких функций, как «CreateWindow», для одновременного создания вашего пользовательского интерфейса.
b) ATL - Активная библиотека шаблонов
Это немного проще, чем (1), но использует действительно хардкорный C ++ - вам нужно знать о шаблонах, множественном наследовании, некоторых шаблонах, и вы все равно будете изучать Win32.
c) Microsoft Foundation Classes (MFC)
Если у вас есть Visual C ++ или Visual Studio, вы можете создать проект MFC, который имеет диалоговые редакторы и структуру пользовательского интерфейса, чтобы упростить создание многофункциональных пользовательских интерфейсов. Microsoft Outlook написан на MFC.
г) Использовать C # .net
Если у вас есть Visual Studio, я бы порекомендовал вам создать свой пользовательский интерфейс в Visual C # с помощью инструмента Forms Designer, поскольку создать гибкий и отзывчивый пользовательский интерфейс довольно просто. Вы все еще можете делать всю свою бизнес-логику в C ++ и ссылаться на нее из C #. Это также новейшая из всех этих опций.
3) ActiveX
Для всех опций (a), (b), (c), (d) вы можете создать элемент управления ActiveX, чтобы ваша программа могла повторно использоваться. Вы также можете создать элемент управления ActiveX в Visual Basic.
Надеюсь, это поможет!
Джеймс