Frage

    

Diese Frage bereits eine Antwort hier:

         

Ich habe als native C ++ Programmierer für letzte Jahre gearbeitet. Jetzt beginnen wir ein neues Projekt von Grund auf. Also, was ist Ihre Meinung zu C ++ \ CLI auf Verschiebung auf Kosten der plattformunabhängigen Code zu verlieren. Gibt es besondere Vorteile sind, dass eine durch Verschiebung zu C gewinnen ++ \ CLI?

War es hilfreich?

Lösung

Ich würde die folgenden, auf Grund meiner Erfahrung mit C empfehlen ++, C # und .NET:

  • Wenn Sie .NET Weg gehen wollen, verwenden Sie C #.
  • Wenn Sie nicht .NET möchten, verwenden traditionelle C ++.
  • Wenn Sie traditionelle C ++ mit .NET-Code zu überbrücken haben, verwenden Sie C ++ / CLI. Funktioniert sowohl mit .NET Aufruf C ++ Klassen und C ++ .NET-Klassen aufrufen.

sehe ich keinen Sinn in nur gehen zu C ++ / CLI, wenn Sie es nicht brauchen.

Andere Tipps

Einige Fragen zu prüfen, vor dem Einschalten:

[1] Sind Sie gut mit Windows kleben? Es gibt .NET-Klone für andere Betriebssysteme, aber die App geht nicht nur transparent ausgeführt werden. Eine Komplexität Sie vielleicht nicht benötigen.

[2] Erwägen Sie nur für die Garbage-Collection-Unterstützung zu wechseln? Wenn ja, können Sie nur einige Garbage Collector Bibliotheken C ++ verwenden. Und wenn Sie herausfinden, wie std :: shared_ptr nutzen, könnten Sie nicht das Bedürfnis verspüren, für Müllsammler. Ein Overhead Sie vielleicht nicht benötigen.

[3] Erwägen Sie C ++ / CLI wegen der Garbage Collection & allen nützlichen .NET-Klassen, die Sie nutzen können? Wenn ja, dann wechseln, warum nicht nur auf c #. C ++ / CLI ist eine Übergangstechnologie, und es ist am besten nicht Ressourcen in solchen Dingen zu investieren. c # ist schon ziemlich ausgereift und verwendbar.

Persönlich würde ich nur Stick mit C ++;).

Gibt es für Sie einen Nutzen? Sie erhalten die Möglichkeit, wahrscheinlich verlieren zu einem anderen Betriebssystem zu wechseln.

nicht die Mühe machen, wenn Sie mit NET-Anwendungen sind zu integrieren. Sicherlich nicht verwendet STL / CLR seine Leistung wirklich schrecklich ist.

Die verlockend, dass der Schalter zu kippen, die .NET-Klassenbibliotheken zu verwenden, aber es gibt Alternativen. Wenn Sie dies tun, werden Sie nicht in den Hafen der Code so leicht in der Lage sein.

Es scheint auch, dass der Anstieg von OSS steigt, könnte so jetzt ist die Zeit zu untersuchen, mit Cross-Plattform-Bibliotheken und Tools. Sie können viel leichter als ein Fenster man einen Linux-App bereitstellen (durch ein vollständig konfiguriertes O Versand!), Und Sie bekommen viel besser ROI, wenn Sie Linux-Clients bereitstellen (wie sie frei sind).

Wenn ich ein Geschäftsmann wäre, würde ich zumindest zu suchen, um die Fähigkeit zu haben, auf Linux oder Mac als nur Windows-only zu implementieren. Strategisch würde ich nicht wetten will, dass die Welt mit Microsoft in 5 Jahren geblieben ist.

Der Hauptvorteil Sie C ++ / CLI sich zu bewegen würde, ist Zugriff auf die .NET-Bibliotheken zu bekommen und den Rahmen selbst (Garbage Collection etc.). Aber soweit ich den Hauptgrund C kann sagen ++ / CLI existiert, ist die Portierung von bestehendem C ++ Code zu erleichtern im .NET Framework ausgeführt werden. Neue Projekte werden ermutigt, C # zu verwenden.

Wenn Sie vorhandenen C ++ Code verwenden, müssen mit dem .NET-Framework gemischt, dann würde es Sinn machen, C ++ / CLI zu verwenden, aber im Allgemeinen sollten Sie nur mit C # beginnen.

Wenn es etwas in .NET ist, dass das neue Projekt ausgiebig verwenden muss (vielleicht einfaches GUI-Design oder etwas), dann verwenden Sie C #. wenn nicht, dann bleiben mit native C ++. Ich glaube nicht, dass Sie nichts verlieren, indem das zu tun.

Ich mag nicht C ++ / CLI so sehr, dass ich Lenkung klar empfehlen würde, wie ich es beschreiben? hier . Einige schlagen vor, C ++ / CLI als Brücke zwischen den Standard-C ++ und C #, aber dank der Art und Weise C ++ / CLI konzipiert ist, ist es sehr mühsam, so zu verwenden (Sie müssen manuell Wrapper von normalen C ++ Code erstellen, die aus aufgerufen werden kann C #). Deshalb würde ich empfehlen SWIG stattdessen für die Anbindung Standard C ++ mit C # (obwohl zugegebenermaßen SWIG eine erhebliche Lernkurve ).

Werfen Sie einen Blick auf diese beiden Artikel:

eine kritische Übersicht über C ++ / CLI, Teil I

eine kritische Übersicht über C ++ / CLI, Teil II

  

Ich glaube, dass jetzt Sie sind   überzeugt, wie ich bin, dass C ++ / CLI   weder eine „Reihe von Erweiterungen für C ++“   (In vielerlei Hinsicht ist es eigentlich ein   Untergruppe von C ++), noch ist es im Zusammenhang mit   C ++ mehr als jede andere Sprache mit   Semikolons und geschweiften Klammern.   Außerdem C ++ / CLI ist definitiv ein   Windows-orientierte Programmiersprache;   es ist definitiv nicht eine Sprache, die ein   Solaris 10 Server oder ein Nokia Handy   Telefon wird gerne laufen. Was macht   es etwas mit C ++ zu tun?

Ein wesentlicher Nachteil von C ++ / CLR verwendet, ist die Möglichkeit, Ihre IP (Intellectual Property) zu verlieren, wenn der Code nicht suficently verdeckt wird. Im Allgemeinen bin ich mit den von anderen Mitgliedern hier gemachten Angaben. Wenn Sie portablen Code unabhängig von der MS wollen .net vm dann native C / C ++ ist der Weg zu gehen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top