Плюсы и минусы доступных платформ проекта Visual Studio 2008 c ++? - PullRequest
0 голосов
/ 07 мая 2009

При выборе между:

  • АТЛ
  • Windows Forms
  • MFC
  • Win32

В частности, приложение будет:

  • для полностью домашнего использования.
  • Большинству пользователей не хватает базовых знаний о Windows / PC. (рассмотрим простой интерфейс)
  • используется для автоматизированного тестирования, которое включает в себя:
    - получение большого количества данных с внешнего оборудования (можно выбрать VXI, USB или Ethernet)
    - очень тяжело на графике - скорее всего, directX
  • Срок службы приложения составит 10+ лет (с учетом будущих платформ Windows и т. Д.)
  • Пользователи будут находиться в очень удаленных местах и ​​в автономном режиме во время тестирования, но могут каждый вечер подключаться к сети для синхронизации отчетов (отдельное приложение, используемое для синхронизации баз данных) - подумайте о проблемах с обновлением программы?
  • Скорость программы добавляет ценность - это означает, что чем быстрее мы можем получать и отображать данные, тем больше тестов можно выполнить. Нет никаких узких мест, кроме программы, просто чуть-чуть быстрее = чуть-чуть продуктивнее.

Опять же, C ++, а не C #.

Спасибо, Джефф

Ответы [ 4 ]

3 голосов
/ 07 мая 2009

Если вы не против привязать себя к VC ++, я бы выбрал ATL + WTL. Он очень легкий и все же добавляет некоторую абстракцию в сырой Win32. Думаю, с MFC все в порядке, хотя мне это не очень нравится, но это лучше задокументировано, чем WTL.

Что касается Windows Forms, я бы держался подальше от этого, особенно если вы знаете, что собираетесь использовать C ++.

2 голосов
/ 07 мая 2009

Держитесь подальше от МФЦ. Конечно, он часто используется, но это отличный пример неидиоматического использования C ++. В частности, он реализует свою собственную систему RTTI и реализует части STL.

ATL не очень многофункциональный, но есть хорошее расширение под названием WTL . Это не совсем хороший C ++, но гораздо лучше, чем MFC. Если вас не интересуют GTK, Qt и т. П. (Предположительно, потому что вы хотите, чтобы инфраструктура была тонкой, чтобы можно было легко интегрировать с DirectX и т. Д.), WTL, вероятно, является лучшим вариантом для вас.

1 голос
/ 08 мая 2009

У меня большой опыт работы с WTL и MFC, и я бы больше не выбрал WTL вместо MFC. MFC не так уж плох, как только вы узнаете, какие части игнорировать (doc / view, CArchive, контейнеры, ...) MFC предоставляет вам гораздо более широкий выбор элементов управления пользовательского интерфейса, которые никогда не будут соответствовать WTL, и есть гораздо больше помощь доступна для МФЦ. С WTL вы в значительной степени одиноки (не считая списка рассылки WTL и примера кода на viksoe.dk).

При этом, если вы все равно будете выполнять тяжелую работу в DirectX, инструментарий пользовательского интерфейса не будет иметь большого значения. И MFC, и WTL подойдут для нескольких форм и диалогов; win32 - это слишком много работы без добавленной стоимости по сравнению с MFC или WTL, а Windows Forms из C ++ - лаконичный и медленный. Кроме того, Windows Forms уже устарела, по крайней мере, MFC больше не изменится:)

1 голос
/ 07 мая 2009

Я не считаю C ++ Windows Forms допустимой комбинацией. По крайней мере, это не в моей установке VS 2008.

Так что это оставляет нас с ATL, MFC и Win32. Все старые, но Win32 самый старый, поэтому я бы это исключил.

Существует большая внешняя поддержка MFC (CodeProject.com и т. Д.), Она довольно хорошо документирована, и есть много людей с опытом работы с MFC. Посмотрите на количество тем на этом сайте для ATL против MFC. У MFC на порядок больше постов.

MFC, похоже, встречается гораздо чаще, чем ATL. ИМО, MFC был бы подходящим вариантом (учитывая ограниченный выбор).

...