Genug von Konsole - GUI mit .NET?
-
Hallo ihr Leute
Habe nun 'ne ganze Weile für die Konsole Programme gemacht, und hab nun genug davon.
Von der Arbeit kenn ich die Delphi IDE, mag aber die Sprache nicht. Hab mir dann die Trial vom BDS'06 für C++ angeguggt, die ja auch die VCL hat, und erschrak wegen dem Preis und Umfang.
Drum hab ich mich dann für VS Express entschieden, und bin recht zufrieden damit, aber leider ist da ja keine MFC dabei. Will mir aber keine teure Software kaufen, da das ganze eh nur Hobby-Spielereien sind. Beim VS gibts aber WinForms, da kann ich mir ja auch ne GUI zusammenklicken, und Code in die Callbacks schreiben, wie bei der VCL. Hab mich auch mal schlau gemacht über .NET und C++/CLI. Ich dachte, durch die Nutzung der WinForms lern ich nebenbei etwas über .NET und managed Code.
Nun meine Frage, kann ich die WinForms einfach als Gerüst nutzen und meinen Code in Standard C++ reinhauen, oder ist das unschön? Weil gehen tuts ja.
Oder sollt ich gleich zu CLI wechseln? Oder gar C#?
Oder ein ganz anderes GUI Kit? (Plattformunabhängigkeit ist mir nicht wichtig, schreib die Programme nur für mich)Bin etwas verwirrt, was den aktuell und zukunftsfähig ist.
Danke schonmal im voraus für eure Hilfe
Gruss
Euer GNU
-
Graphischer Noob User schrieb:
Nun meine Frage, kann ich die WinForms einfach als Gerüst nutzen und meinen Code in Standard C++ reinhauen, oder ist das unschön? Weil gehen tuts ja.
Ich würde es nicht empfehlen Standard-C++ mit C++/CLI zu mischen (wenn es nicht nötog ist).
Es gibt für die meisten Dinge in .NET eine "bessere" Klasse, die ein unnötiges switchen von managed nach unmanaged code unnötig macht.Graphischer Noob User schrieb:
Oder sollt ich gleich zu CLI wechseln? Oder gar C#?
Wenn Du Windows-Forms machst, dann machst Du automatisch C++/CLI. C# kannst Du natürlich auch machen. Das ist für den Anfang einfacher, da man nicht Standard-C++ und C++/CLI durcheinander bringen kann.
Die mächtigere Sprache ist IMHO C++/CLI.
-
Jochen Kalmbach schrieb:
Graphischer Noob User schrieb:
Nun meine Frage, kann ich die WinForms einfach als Gerüst nutzen und meinen Code in Standard C++ reinhauen, oder ist das unschön? Weil gehen tuts ja.
Ich würde es nicht empfehlen Standard-C++ mit C++/CLI zu mischen (wenn es nicht nötog ist).
Warum? Ich möchte eigentlich weiter Standard C++ machen, nur halt ein leicht erstellbares, aktuelles GUI-Framework verwenden, ohne ne neue IDE oder nen GUI Editor installieren zu müssen. Ist das irgendwie schlechter Stil, oder warum räts du davon ab?
Jochen Kalmbach schrieb:
Es gibt für die meisten Dinge in .NET eine "bessere" Klasse, die ein unnötiges switchen von managed nach unmanaged code unnötig macht.
Hmm, also brauche ich auch die ganzen STL Sachen dann nicht mehr?
Jochen Kalmbach schrieb:
Graphischer Noob User schrieb:
Oder sollt ich gleich zu CLI wechseln? Oder gar C#?
Wenn Du Windows-Forms machst, dann machst Du automatisch C++/CLI. C# kannst Du natürlich auch machen. Das ist für den Anfang einfacher, da man nicht Standard-C++ und C++/CLI durcheinander bringen kann.
Die mächtigere Sprache ist IMHO C++/CLI.Ok, C# fällt für mich aus, nahchdem ich es mir einwenig angesehen hab.
Gibt es gute Einführungen in C++/CLI und WinForms? Und auch in die anderen Klassen von .NET und die ^Referenzen und den gc?
-
G.N.U. schrieb:
Ich möchte eigentlich weiter Standard C++ machen, nur halt ein leicht erstellbares, aktuelles GUI-Framework verwenden, ohne ne neue IDE oder nen GUI Editor installieren zu müssen. Ist das irgendwie schlechter Stil, oder warum räts du davon ab?
Du hast eigentlich nur Probleme. Auch was z.B. das Konvertieren von Strings anbelangt... es macht Dein Programm nur unötig komplex und langsamer. In .NET gibt es für die meisten Fälle ebenbürtige oder bessere Klassen.
G.N.U. schrieb:
Hmm, also brauche ich auch die ganzen STL Sachen dann nicht mehr?
STL ist ein sehr mächtiges Feature! Aber es ist nicht für den Einsatz mit managed objekten gedacht. Deswegen kommt mit dem nächsten VS das STL.NET, welches dann speziell für managed Datentypen angepasst wurde, aber gleichzig die features von STL unterstützt.
Damit wird dann wohl C++/CLI endgültig zur besten Sprache für .NET.G.N.U. schrieb:
Gibt es gute Einführungen in C++/CLI und WinForms? Und auch in die anderen Klassen von .NET und die ^Referenzen und den gc?
Da müsste ich leider auch zuerst mal suchen... Einführungen in Windows-Forms mit C# gibt es wie Sand am Meer. Das auf C++/CLI zu übertragen sollte aber leicht sein. Auch gibt es genügend Einführung zu .NET...
-
Jochen Kalmbach schrieb:
Da müsste ich leider auch zuerst mal suchen... Einführungen in Windows-Forms mit C# gibt es wie Sand am Meer. Das auf C++/CLI zu übertragen sollte aber leicht sein. Auch gibt es genügend Einführung zu .NET...
Und Einführung in die Grundlagen von managed Code, also nicht .NET Framework sondern Referenzen, GC, Syntaxunterschiede? Gibts da ein Tut oder eine Referenz zum Nachschlagen?
C++/CLI scheint nicht sehr verbreitet zu sein, die FAQ hier is ja auch noch leer.Danke für deine Hilfe bislang
-
Das liefert eine Übersicht:
http://msdn2.microsoft.com/en-us/library/xey702bw.aspxAnsonsten wirst Du Dich (leider) den C# Quellen etc annehmen müssen. Ganz so viele Unterschiede gibt es aber auch nicht, schau mal hier rein:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-158366.html und vergleiche das mit der dort angegebenen Quelle.
Wenn Du von VB Quellcode ausgehen musst und ein .item findest, ist oft ->default gemeint (oder schlicht der operator [] ).
Und wenn Du doch mal Quellcode mischen musst, findest Du in der FAQ eine kleine Hilfestellung zu gcroot .
Damit bist Du erst mal gut ausgerüstet
-
Thx
Edit:
codeproject.com
codezone.de
codegod.dehaben alle mehr oder weniger gute Anfänger-Tutorials in Englisch
und viele Codeschnipsel zum Anschauen
-
Again..
Habe also eine funktionierende Konsolen Anwendung und möchte der ein GUI aufsetzen. Da ich nach gutem Design eh GUI und Rechenwerk trennen sollte, kann ich doch ein .NET GUI machen, und die gegebenenfalls austauschen. Dann bräucht ich einfach ein Interface, dass die Rechen-Funktionen aufruft und die Strings entsprechend umwandelt, und das wär die einzige Stelle, wo Code gemischt würde.
Ich seh da nicht so ein Problem, un/managed Code zu mischen. Würd ich mit GTK+ ein GUI machen, müsst ich ja auch C/C++ mischen.Gruss