2009-05-19 16 views
4

Ich bin ein C-Programmierer mit viel Erfahrung im Server-Code (AIX, HPUX, einige Linux) Ich muss ein GUI-Programm für Windows schreiben (2000, XP, Vista , 7) die CAD-ähnliche Zeichnungsfunktionen und viele Dateneingabeformulare erfordert (es ist eine spezialisierte Engineering-App). Ich habe vor vielen Jahren einige Win32-Code mit Gupta SQLwindows (jetzt Centura Builder) geschrieben. Die Bosse haben verfügt, dass es "kompiliert" werden muss. Ich nehme an, dass C + SDK die Arbeit mit beträchtlichem Aufwand erledigen könnte und dass C# + Windows Forms leistungsfähiger wäre, aber ich bin etwas besorgt über die .Net-Framework-Anforderung.Windows GUI Programmierung - C + SDK oder C# + Windows Forms

Basierend auf Ihren Erfahrungen, Was würden Sie vorschlagen?

Wenn .Net, welche Version? 2.0, 3.0, 3.5 ??

+1

Sie alle danken, die geantwortet haben. Ihre Kommentare haben einen Weg nach vorne beleuchtet. Derzeit werden sowohl WPF als auch Windows Forms untersucht. Letzteres finde ich etwas klarer. Ich bin mir XAML noch nicht so sicher. Kudos an Jay Michaud für die detaillierte Antwort. – CyberFonic

Antwort

5

Ich bin nicht vertraut mit Centura Builder, so dass ich nicht sicher bin, auf welcher Abstraktionsebene Ihre Windows-Programmiererfahrung ist. Wenn Sie die native Code-Route mit C/C++ und Win32 wählen, sollten Sie eine Kopie von Programming Windows von Charles Petzold kaufen. Wenn Sie die ersten Kapitel dieses Buches lesen, können Sie entscheiden, ob Sie auch die native Code-Route verwenden möchten.

Wenn Sie das .NET Framework und C# auswählen und wenn Sie die Version 3.5-spezifischen Features (wie LINQ für den Datenbankzugriff) nicht benötigen, empfehle ich, Version 3.0 zu wählen.Es ist eine integrierte Komponente unter Windows Vista, so dass Sie die Laufzeitumgebung nicht mit Ihrem Programm-Installationsprogramm packen müssen, es sei denn, Sie müssen Windows XP unterstützen (was Sie wahrscheinlich tun, also macht nichts). Mit Version 3.0 erhalten Sie Windows Presentation Foundation (anstelle von oder zusammen mit Windows Forms zu verwenden), wodurch Sie viele grafische Funktionen ohne großen Aufwand erhalten. Ich kenne mich mit CAD nicht aus, daher weiß ich nicht, ob WPF die von Ihnen benötigten Zeichenfunktionen zur Verfügung stellen würde, aber es bietet eine großartige Plattform, auf der Sie Ihre eigenen Zeichenroutinen schreiben können.

EDIT: Ich verpasste Ihre Windows-Version Anforderungen beim ersten Lesen, insbesondere die Windows 2000-Anforderung. Ich denke, Sie müssten mit .NET Framework Version 2.0 und Windows Forms gehen. Ich muss jedoch fragen: Wäre es nicht kosteneffektiv, die Produktivität Ihrer Ingenieure zu verbessern, indem Sie ihre acht Jahre alten Maschinen auf etwas Neueres und Schnelleres aufrüsten und damit Ihre Windows 2000-Supportanforderungen loswerden?

+0

Wenn ich die Situation richtig verstehe, könnte ich XP anfordern, um die minimal unterstützte Version zu sein. Darüber hinaus scheint .Net 3.0 für XP konfigurierbar zu sein. Ich habe ein paar Apres-Bücher über Windows Forms und WPF gelesen und bin in die Beispiele gegangen. – CyberFonic

1

Wenn Sie .NET nicht wollen, ist Qt + C++ definitiv der richtige Weg; es schlägt sicherlich C und Win32. .NET erlaubt immer noch viel schnellere Entwicklung als sogar Qt. Qt hat den Vorteil, dass es schnell und einfach zu implementieren ist (keine .NET-Anforderung) und macht die Portabilität viel einfacher (wenn Sie auf Linux oder Mac portieren möchten).

0

Abhängig von den Komplexitätsanforderungen der CAD-ähnlichen Zeichnung, würde ich mit C# + Windows Forms oder noch besser C# + WPF gehen.

WPF würde die Zeichnung viel, viel sauberer machen, als es in GDI zu versuchen. Dies gilt insbesondere, wenn Sie ein 3D-Zeichnen durchführen, da Sie viele (einfache) 3D-Objekte direkt in WPF erstellen können. C# wird Ihre GUI-Programmierung viel produktiver machen, als es in C/C++ mit der Windows-API direkt (oder sogar MFC) zu machen.

persönlich ist die .NET-Anforderung meiner Meinung nach minimal, aber das ist wirklich die Kräfte auf, die in Ihrer Organisation ...

+0

WPF erfordert .NET 3.0, die WinXP oder höher erfordert, so dass WPF aus zählt (weil das OP Windows 2000-Unterstützung benötigt). – Ray

0

Wenn Code kompiliert werden müssen, als ich WTL von MFC empfehlen würde, aber es wäre viel schneller (in Bezug auf Entwicklungskosten), C# + WinForms oder WPF zu verwenden.

+0

Beachten Sie, dass WTL in keiner Weise abhängig oder in Bezug auf MFC anders als ähnliche APIs ist. Also, wenn Sie WTL auswählen, haben Sie keine Abhängigkeiten über das, was Sie mit C + Win32 API haben würden. - Sie sollten immer noch ein .NET UI Framework verwenden :) – Skrymsli

1

Wenn Sie nativen Code verwenden müssen, dann würde ich dringend RAD Studio von Codegear/Embarcadero empfehlen, es ist ein Studio-Produkt, das mit Delphi (die objektorientierte Sprache, die aus Turbo Pascal entwickelt wurde) und C++ Builder, wenn Sie bereits vertraut sind C/C++ dann wird es sehr einfach für Sie sein, es aufzuheben. Die Visual Component Library, die von beiden Sprachen gemeinsam genutzt wird, ist erweiterbar, leistungsstark und RAD.

Wenn Sie verwalteten Code verwenden können, dann ist C# mit Winforms einfach zu verwenden, WPF kann langfristig eine bessere UI-Auswahl sein, aber es hat eine steilere Lernkurve.

3

Wenn Sie die .NET-Route verwenden, müssen Sie .NET 2.0 verwenden, da .NET 3.0 und höher nur für Windows XP und höher unterstützt wird (Vista, 7, 2003, 2008).

Ich persönlich würde die .NET-Framework-Anforderung nicht schwitzen. Es ist eine einmalige Installation auf jeder Maschine, die bei Bedarf über Windows-Updates optimiert werden kann.

0

Sie können alles mit C oder C++/Win32 API tun
(Win32 Proben für die CAD-Zeichnung wie in MSDN sind ..)