[c#] Welche Plattform sollte ich verwenden: natives C ++ oder C #?



6 Answers

Achten Sie darauf, nicht zu früh zu optimieren. Sie erwähnen die Geschwindigkeit des Codes, aber für die meisten Windows-Benutzeroberflächenoperationen ist der Unterschied nicht bemerkbar, da sich die Hauptengpässe bei Zeichnung und Festplattenzugriff für beide Ansätze nicht unterscheiden.

Meine Empfehlung ist, dass Sie C # und WPF oder WinForms für Ihre Benutzeroberfläche verwenden. Wenn Sie Verzögerungen feststellen, verwenden Sie einen Profiler, um festzustellen, wo und dann in Erwägung ziehen, einige Geschäftslogik durch systemeigenen Code zu ersetzen, aber nur, wenn es einen Vorteil gibt.

Question

Ich möchte eine Windows-Anwendung entwickeln. Wenn ich natives C ++ und MFC für Benutzerschnittstelle verwende, wird die Anwendung sehr schnell und klein sein. Aber die Verwendung von MFC ist sehr kompliziert. Auch wenn ich C # verwende, dann wird die Anwendung langsamer als der native Code sein und es erfordert .NET Framework zu laufen. Aber die Entwicklung von GUI ist sehr einfach mit WinForm. Welche bevorzugst du?




Meiner Meinung nach sollten die Anforderungen Ihnen helfen, die Plattform zu entscheiden. Was ist wichtiger: Eine Anwendung zu haben, die leicht zu warten ist oder eine, die extrem schnell und klein sein muss?

Eine große Klasse von Anwendungen kann heutzutage mit .NET und verwaltetem Code geschrieben werden und dies ist im Allgemeinen vorteilhaft für die Entwicklung auf lange Sicht. Aus meiner Erfahrung sind .NET-Anwendungen in der Regel schnell genug für die meisten Anwendungsfälle und sie sind einfacher zu erstellen. Natives C ++ hat immer noch seinen Nutzen, aber nur, um "schneller und kleiner" zu sein, wenn "schnell genug und klein genug" ausreicht, klingt nicht genug als Begründung.




MFC ist nicht schwer zu lernen, eigentlich ist es sehr einfach.

Fast gleich C #.




Zuerst .. (obwohl ich ein hartes c ++ Coder bin) muss ich zugeben, c # ist in den meisten Fällen völlig in Ordnung, wo Geschwindigkeit und Größe betroffen sind. In einigen Fällen ist die Anwendung kleiner, weil sich der interpretierte Teil bereits auf dem Zielsystem befindet. (spamm mir das nicht an, eine App mit einer DLL ist kleiner als die App in einem. Windows kommt gerade mit der "DLL", die schon da ist.)

Zur Codierung .. Ich glaube ehrlich gesagt nicht, dass es einen signifikanten Unterschied gibt. Ich verbringe nicht viel Zeit damit, Code zu tippen. Das meiste denkt über ein Problem nach. Der Codeteil ist ziemlich klein. Ein paar Zeilen hier und da einsparen ... Blahh, das ist kein Argument für mich ... Wenn es so wäre, würde ich in APL arbeiten. Das Lernen der STL, MFC und was Sie haben, ist wahrscheinlich genauso intensiv wie das Lernen der c # -Bibliotheken. Am Ende sind sie alle gleich.

C # hat eine Sache für sich. Ein Markt. Es ist die neueste "heiße" Fähigkeit und so gibt es einen Markt dafür. Jobs sind leicht zu finden. Denken Sie daran, Java war eine "heiße" Fähigkeit vor ein paar Jahren und jetzt immer Tom Dick und Harry hat es in ihrem Lebenslauf. Das macht es schwieriger, sich zu nivellieren.

Ok .. alles, was gesagt hat .. Ich liebe C ++ .. Es gibt nichts wie schmutzig werden, wenn ich wirklich brauche. Wenn die MFC-Bibliotheken den Job nicht erledigen, schaue ich mir an, auf was sie sitzen und so weiter und so weiter. Es ist eine persische Sprache und ich glaube, es ist immer noch in der Nähe der meistbenutzten Sprache der Welt. Yah C ++, Yah !.




Mit welcher Technologie sind Sie vertrauter?

Die Informationen, die Sie angegeben haben, enthalten nichts, was bei der Entscheidung helfen würde. Ja, MFC-Apps neigen dazu, kleiner zu sein (wenn Sie die Laufzeitgröße einschließen, die auf lange Sicht keine geeignete Maßnahme darstellt), reaktionsfähiger und kostspieliger zu entwickeln. Na und?




C # -Anwendungen starten langsamer als MFC-Anwendungen, aber möglicherweise bemerken Sie keinen Geschwindigkeitsunterschied zwischen den beiden, sobald die Anwendung geladen ist.




Auch wenn ich C # verwende, dann wird die Anwendung langsamer als der native Code sein und es erfordert .NET Framework zu laufen

Eine MFC-App benötigt MFC-DLLs (und wahrscheinlich auch VC-Runtime!), So dass sie möglicherweise installiert werden müssen, oder wenn sie statisch verknüpft sind, fügen Sie die Größe der exe hinzu.




Related