2009-05-07 6 views
0

Wenn zwischen der Wahl:Pro und Contra der verfügbaren Visual Studio 2008 C++ - Projektplattformen?

  • ATL
  • Windows Forms
  • MFC
  • Win32

Insbesondere wird die Anwendung sein:

  • für komplett in-house Einsatz .
  • Die meisten Benutzer fehlen grundlegende Windows/PC-Kenntnisse. (Man denke an einfache UI)
  • für automatisierte Tests verwendet, die sich bringt:
    in viele Daten von externen Geräten -bringing (kann VXI wählen, USB oder Ethernet)
    -sehr schwer auf Grafiken - wahrscheinlich directX
  • Lebensdauer der Anwendung wird 10+ Jahre sein (berücksichtigen Sie zukünftige Windows-Plattformen, etc.)
  • Benutzer werden in sehr abgelegenen Orten und offline während des Testens sein, aber können jede Nacht online sein, um Berichte zu synchronisieren (separate Anwendung für die Datenbanksynchronisierung jetzt verwendet) - in Betracht ziehen Programmupdate Herausforderungen?
  • Programmgeschwindigkeit bringt mehr Wert - je schneller wir Daten erfassen und anzeigen können, desto mehr Tests können durchgeführt werden. Es gibt keinen Engpass außer dem Programm, einfach ein bisschen schneller = jedes bisschen produktiver.

Wieder, C++ speziell - nicht C#.

Danke, Jeff

Antwort

3

Wenn Sie nichts dagegen haben, sich selbst zu VC++ binden, die ich für ATL + WTL gehen würde. Es ist sehr leicht und fügt noch etwas Abstraktion zu rohen Win32 hinzu. MFC ist auch in Ordnung, denke ich, obwohl ich es nicht wirklich mag, aber es ist besser dokumentiert als WTL.

Wie für Windows Forms, würde ich bleiben weg davon, vor allem, wenn Sie wissen, dass Sie C++ verwenden werden.

2

Bleib frei von MFC. Zugegeben, es wird viel benutzt, aber es ist ein großartiges Beispiel für nicht-idiomatische C++ Verwendung. Bemerkenswert ist, dass es sein eigenes RTTI-System implementiert und Teile von STL neu implementiert.

ATL ist nicht sehr funktionsreich, aber es gibt eine gute Erweiterung namens WTL. Es ist nicht gerade toll, C++, aber viel besser als MFC. Wenn Sie nicht an GTK, Qt und dergleichen interessiert sind (vermutlich, weil Sie möchten, dass das Framework dünn ist, um eine einfache Integration mit DirectX usw. zu ermöglichen), ist WTL wahrscheinlich die beste Option für Sie.

1

Ich glaube nicht, dass C++ Windows Forms eine gültige Kombination ist. Zumindest ist es nicht in meiner Installation von VS 2008.

So dass uns mit ATL, MFC und Win32 verlässt. Alle sind alt, aber Win32 ist das älteste, also würde ich das eliminieren.

Es gibt viele externe Unterstützung für MFC (CodeProject.com, etc.), es ist ziemlich gut dokumentiert und es gibt viele Leute da draußen mit MFC-Erfahrung. Sehen Sie sich die Anzahl der Themen auf dieser Website für ATL vs. MFC an. MFC hat eine Größenordnung von mehr Posts.

MFC scheint viel häufiger als ATL zu sein. IMO, MFC wäre der Weg zu gehen (angesichts der begrenzten Möglichkeiten).

1

Ich habe umfangreiche Erfahrung mit WTL und MFC und würde nicht mehr WTL über MFC wählen. MFC ist nicht so schlecht, sobald Sie lernen, welche Teile zu ignorieren sind (doc/view, CArchive, Container, ...) MFC gibt Ihnen eine viel größere Auswahl an UI-Steuerelementen, die von WTL nie erreicht werden, und es gibt viel mehr Hilfe für MFC verfügbar. Mit WTL bist du ziemlich alleine (abgesehen von der WTL-Mailingliste und dem Beispielcode auf viksoe.dk).

Das gesagt, wenn Sie in DirectX sowieso das schwere Heben machen, wird das UI-Toolkit nicht viel ausmachen. Sowohl MFC als auch WTL werden für einige Formulare und Dialoge ausreichen; Win32 ist zu viel Arbeit ohne Mehrwert über MFC oder WTL und Windows Forms von C++ ist ein Pita und langsam. Plus Windows Forms ist schon oldschool, zumindest MFC wird sich nicht mehr viel ändern :)