.NET umsteigen ja oder nein?



  • hallo,
    überall ist nur noch von .NET die rede, ich würde es auch gerne erlernen, aber lohnt sich wirklich der umstieg von der winapi zu .NET? ich würde am liebsten bei C++ bleiben und nicht C# erlernen, aber dennoch .NET benutzen, geht das, das ich C++ mit .NET benutze? welche version von .NET sollte ich dann benutzen, die 1.1er oder die 2.0er? Ab wann sind "generics" verfügbar?

    danke!
    mfg



  • Hallo,

    also wenn du mit .Net programmieren willst, hast du mehrere Möglichkeiten:
    - C++
    - Managed C++
    - C#
    - VB.net

    WinAPI wird über kurz oder lang verschwinden, aber dazu gibts es bereits mehrere Threads. Einfach mal suchen....



  • - C++

    Und wie?



  • C++/CLI könnte was für dich sein. Dazu brauchst du afaik mindestens das .NET Framework 2.0.



  • Nein, um C++ im .NET-Framwork zu programmieren, reicht VisualC++2002. Da aber der Compiler prinzipiel von VisualC++ 6.0 ist, nur mit der zusätzlichen (!) Eigenschaft, auch .NET zu können, ist 2002 einfach nicht zu empfehlen.

    D.h. also: entweder VisualC++2003 kaufen oder das kostenlose VisualC++ Toolkit 2003 runter laden. Denn die 2003er Compiler sind sehr zu empfehlen und man kann auch .NET damit coden.

    VisualC++ 2003:
    http://msdn.microsoft.com/visualc/

    Kostenloses Toolkit:
    http://msdn.microsoft.com/visualc/vctoolkit2003/

    Ab VisualC++2005 (ist noch Beta) wird die Syntax von ManagedC++ lesbarer, da sich zu viele Coder bei MS beschwert haben. MS hat entsprechend reagiert und die zweite Spezifikation bei der ECMA eingereicht, so das C++ für .NET für den Menschen besser lesbar wird.

    Die neue ManagedC++ Spezifikation heißt aber laut ECMA und ISO offiziell C++/CLI 2.0. Folglich lautet es: mit C++/CLI kann man für .NET coden. Wer sofort loslegen will, kann 2003er Versionen benutzen (C++/CLI 1.0), wer auf die schönere Syntax von C++/CLI 2.0 setzen will, muß 2005er Versionen benutzen.



  • Kann mal jemand für mich Entwicklungsumgebung, Sprachen und .NET als Technologie trennen? Was heißt unmanaged C++? Ist das nicht einfach der selbe alte Code unter einer anderen IDE? Und was muss man tun damit stinknormaler VC 6.0 Code der ohne MFC und das ganze Zeug auskommt, "managed" wird? Wo liegt überhaupt der Vorteil darin das tu tun, statt sich einfach über einen besseren C++ Compiler zu freuen?



  • Artchi schrieb:

    Da aber der Compiler prinzipiel von VisualC++ 6.0 ist, nur mit der zusätzlichen (!) Eigenschaft, auch .NET zu können, ist 2002 einfach nicht zu empfehlen.

    Er kann auch C++ ein bisschen besser, kann besser optimieren, und hat einige andere kleine Features.

    Zur Frage:
    der Umstieg WinAPI zu .NET ist logisch und sollte gemacht werden.
    Allerdings ist eben die Frage ob man sich an Windows binden will (wenn man vorher winapi gemacht hat, ist das sehr wahrscheinlich - denn immerhin ist .NET portabler als die Winapi).
    uU will man aber den Umstieg so machen, dass man Linux und Mac auch gleich unterstützt, dann wäre wxWidgets oder auch Qt zu erwägen (sofern man C++ programmieren will).

    Alternativ gibt es noch Java, was .NET ja nicht so unähnlich ist.

    Aber dazu gab es schon genug Threads...

    @asdrubael:
    Visual Studio ist eine IDE, mehr nicht.
    Sie hat Compiler, zB cl für C++, csc für C#,...
    Diese Compiler kann man unabhängig von der IDE verwenden (zB csc im SharpDevelop)
    managed C++ oder wie es jetzt heißt C++/CLI ist eine neue Sprache, folglich wird man mit alten Compilern da nicht weit kommen. Fazit: VC++6 ist nicht .NET fähig.

    Allerdings braucht man auch kein VS um .NET programme zu erstellen...



  • C++/CLI könnte was für dich sein. Dazu brauchst du afaik mindestens das .NET Framework 2.0.

    Nein, um C++ im .NET-Framwork zu programmieren, reicht VisualC++2002.

    Nein! Zum Brotbacken brauchst du einen Backofen.

    Was ist das denn für eine Art? Einfach erstmal "Nein" rufen und dann irgendwas total zusammenhangsloses schreiben.

    Natürlich ist beides richtig. Für C++/CLI braucht man das .NET Framework 2.0, um das .NET Framework zu verwenden reicht aber VC++2002 (managed C++).



  • ok danke, ihr habt mir echt weitergeholfen 🙂 ich werde mir vs .net kaufen und mit dem .NET 2.0 framework arbeiten



  • Dann muss ich dich enttäuschen. Das gibt's noch nicht zum Kaufen. Du kannst dir aber bei der MSDN ne beta kostenlos ziehen...



  • Worin besteht eigentlich konkret der Unterschied zwischen "managed C++" und normalem C++ (also nach dem ISO Standard von 1998)? Ist "managed C++" normales C++ mit ein paar Erweiterungen?

    PS: Ich weis ich könnte mir einfach beide anschauen, aber vielleicht ist ja einer so nett mir die groben Unterschiede zu sagen.



  • Hallo,

    managed C++ bietet z. B. aus anderen Sprachen bekannte Features, wie z. B. Garbage Collection. Außerdem bist du eben in der Lage, sämtliche .Net Features zu nutzen und kannst recht simpel Fenster und son Zeuchs erstellen. Ferner ist es ohne weiteres Möglich, Bibliotheken und Funktionen die in C# oder VB.Net erstellt wurden, in Managed C++ einzubinden.

    Genauere Infos gibts hier:
    http://www.calsky.com/lexikon/de/txt/c/c_/c_plusplus_cli.php



  • Danke CarstenJ. Ich hab auch ein wenig auf google gesucht und hab http://msdn.microsoft.com/visualc/default.aspx?pull=/library/en-us/dnvs05/html/TransGuide.asp gefunden.

    Kommt es mir nur so vor oder hat MS in der v1 versucht hat ISO C++ schlecht dar zu stellen indem MS möglichst viele neue Keywords mit __ hinzuzufügt hat (und diese mit ISO C++ begründet). In v2 ein paar Schwächen von ISO C++ ausgebessert hat aber vor allem viele neue Sprachkonstrukte für bereits Existirendes (oder mit Template und co machbares) hinzugefügt hat?



  • Irgendwer schrieb:

    Worin besteht eigentlich konkret der Unterschied zwischen "managed C++" und normalem C++ (also nach dem ISO Standard von 1998)? Ist "managed C++" normales C++ mit ein paar Erweiterungen?

    Managed C++ ist doch AFAIK ein verkrüppeltes C++ um es in die .NET Runtime einbinden zu können. Die .NET VM wurde eben nicht auf C++ ausgelegt, sondern auf C#, da C++ aber mehr Sprachfeatures bietet und dotNET andere Programmierweisen mit sich bringt, wurde da eben rumgewurschtelt.

    Managed C++ hat AFAIK keine Templates, aber dafür Garbage Collection.



  • Managed C++ ist doch AFAIK ein verkrüppeltes C++ um es in die .NET Runtime einbinden zu können. Die .NET VM wurde eben nicht auf C++ ausgelegt, sondern auf C#, da C++ aber mehr Sprachfeatures bietet und dotNET andere Programmierweisen mit sich bringt, wurde da eben rumgewurschtelt.

    Managed C++ hat AFAIK keine Templates, aber dafür Garbage Collection.

    Das wäre mir neu. Also AFAIK ist Managed C++ C++, mit ein paar zusätzen. Da schreibt man dann ein hässliches __... vor class und hat dann eine Klasse, die von .NET verwendet werden kann. Solche Klassen können keine Templates sein, aber die normalen Klassen bleiben normale C++-Klassen mit Templates und allem drum und dran.



  • @kingruedi: Der "Gag" an managed C++ ist, dass du managed Code und unmanaged Code mischen kannst. Der managed Code ist natürlich mit gewissen (notwendigen) Einschränkungen verbunden.
    Wer's mag...


Anmelden zum Antworten