Wegen GUI-Programmierung zu C# wechseln?
-
Hallo,
Ich programmiere derzeit C++, habe bereits das ein oder andere Spiel mit Hilfe von SFML geschrieben.
Nun möchte ich jedoch allgemeinere GUI-Programme schreiben, mit Buttons, Textfeldern etc.
Ich habe gehört, dass in C# die GUI Programmierung um einiges leichter fällt, als in C oder C++, sollte ich mir daher, bloss für die GUI Programmierung C# aneignen?
Was denkt ihr, ist das schnell gelernt?
PS: Bitte empfiehlt mir kein Java
-
Hallo
Wenn du c++ kannst, wird der Umstieg nicht besonders schwer und C# in Kombination mit WPF macht richtig Spaß.
chrische
-
Mit geeignetem GUI-Designer sind GUIs auch in C++ recht schnell zusammen geklickt. Aber fuer C++ Programmierer ist C# relativ schnell gelernt, und 'ne Sprache mehr koennen schadet sicher nicht. Also probier einfach mal beides aus und bleib bei dem, was dir mehr liegt
(Ausserdem kommts natuerlich drauf an, was du machen willst. Fuer die Anwendungsprogrammierung auf Windows-Systemen ist C# eine gute Wahl, fuer Plattformunabhaengigen und/oder performanten Code ist C++ besser)
-
Mit C#/WPF limitierst du dich auf Windows. Mit immer populäreren alternativen Systemen wie Mac OS X, Linux und mobilen Systemen wie Android und iPhone solltest du dir überlegen, ob dieser Schritt sinnvoll ist.
-
rüdiger schrieb:
Mit C#/WPF limitierst du dich auf Windows. Mit immer populäreren alternativen Systemen wie Mac OS X, Linux und mobilen Systemen wie Android und iPhone solltest du dir überlegen, ob dieser Schritt sinnvoll ist.
Das dürfte MS auch schon bemerkt haben. Neulich hat mir ein junger Freund aus einer EDV-Schule erzählt, dass seine Schule sich für das nächste Jahr in einem Programmier-Fach zwischen C++ und WPF entscheiden will. Auf meine Frage, warum da Datteln mit Flamingos verglichen werden, hat er mir verraten, dass seine Schule von Microsoft gesponsort wird. Cool, oder?
-
Und? Andere werden von SUN oder Redhat gesponsert. Jeder wird irgendwie "gesponsert". Solange die Schule nicht von MS mit dem Messer dazu gezwungen wurde, hat die Schule doch das Sponsering zu ihren Vorteil freiwillig angenommen. Wenn es nicht MS sponsert, würde es jemand anderes tun.
Wenn man kein Sponsering sehen will, darf man sowieso nur ISO oder DIN Technik erwarten: alles was nicht normiert ist, fällt weg. Also kein Java, kein PHP, kein Python usw. Weil immer eine Abhängigkeit bestehen könnte.
-
Artchi schrieb:
Und? Andere werden von SUN oder Redhat gesponsert. Jeder wird irgendwie "gesponsert". Solange die Schule nicht von MS mit dem Messer dazu gezwungen wurde, hat die Schule doch das Sponsering zu ihren Vorteil freiwillig angenommen. Wenn es nicht MS sponsert, würde es jemand anderes tun.
Wenn man kein Sponsering sehen will, darf man sowieso nur ISO oder DIN Technik erwarten: alles was nicht normiert ist, fällt weg. Also kein Java, kein PHP, kein Python usw. Weil immer eine Abhängigkeit bestehen könnte.
IMHO sollte eine Schule Tools einsetzen, die jedem frei Verfügbar sind und bei einer I.T. Schule auch speziell Tools, dessen Code ebenfalls frei Verfügbar ist. Vor allem sollte aber eine Schule nicht nur eine Spezielle Sprache oder Bibliotheken forcieren. Grade bei Microsoft Tools muss man alle paar Jahre immer neu umlernen. Ich sehe viele Lehrer, die nicht mit Office 2007 umgehen können oder mit Windows Vista. Wer weiß, wie lange MS .NET, C# oder die WPF unterstützen wird.
Außerdem gibt es viele gute (und IMHO auch bessere) Alternativen als C#. Z.B. Java oder Python (mit Qt oder GTK).
-
@DEvent: An HTLs sollen Leute ausgebildet werden die direkt nach der HTL ins Berufsleben einsteigen können. D.h. dort muss jetzt C#/.NET oder Java gelehrt werden, damit möglichst viele einen guten Job (= gute Reputation für die Schule weil Ausbildungsziel erreicht) erhalten. Um so Dinge wie "das Wissen soll auch auf andere Technologien anwendbar sein, oder später aktuell sein" kümmern sich Universitäten.
MfG SideWinder
-
Artchi schrieb:
Und? Andere werden von SUN oder Redhat gesponsert.
Ich kann mich noch genau erinnern, dass ich nur wegen meiner Schule einmal eine Windows-Raubkopie zuhause verwendet habe. Erst später ist mir aufgefallen, wie verrückt das eigentlich ist. Ein Schüler (an einer staatlichen Schule!) darf unter keinen Umständen zur Kriminalität verleitet werden. Und die Tendenz geht in Europa eben dahin, solche Lächerlichkeiten als kriminell aufzufassen. Damals hat Windows btw noch mehr als EUR 30 gekostet, für das Geld waren einige gute Bücher drin.
SUN oder Redhat sind nicht so sehr für ihre Plattformabhängingkeiten bekannt oder für "XYZ can win as long as services / protocols are commodities".
Artchi schrieb:
Also kein Java, kein PHP, kein Python usw.
Klar. Und WPF ist genauso leicht zu portieren wie zB CPython. Was willst du denn noch mehr, als den Quelltext?
SideWinder schrieb:
"Um so Dinge wie "das Wissen soll auch auf andere Technologien anwendbar sein, oder später aktuell sein" kümmern sich Universitäten. "
Ich hab mich vor ca. 5 fünf Jahren mit .NET befasst. Rat mal, wie viel ich heute davon habe...
-
µngbd schrieb:
Ich kann mich noch genau erinnern, dass ich nur wegen meiner Schule einmal eine Windows-Raubkopie zuhause verwendet habe.
Normalerweise (und das gilt auch heute noch) kann man eher davon ausgehen das ein Windowssystem vorhanden ist, als ein Linuxsystem. Zumal einige mit letzteren auch überfordert wären (gerade falls doch mal etwas nicht läuft).
µngbd schrieb:
Damals hat Windows btw noch mehr als EUR 30 gekostet,...
Und war und ist in der Regel auf Fertigsystemen auch vorinstalliert.
Eine Schule kann nicht noch Extrakurse anbieten, damit erst einmal die gesamten Grundkenntnisse vorhanden sind. Und sie verlässt sich verständlicherweise lieber auf die eher zutreffende Variante (was auch heute noch in 90% der Fälle im Clientbereich Windows sein wird).
µngbd schrieb:
Klar. Und WPF ist genauso leicht zu portieren wie zB CPython. Was willst du denn noch mehr, als den Quelltext?
Grundsätzlich sollte die Sprache erst einmal gänzlich egal sein wenn es um Programmierung geht. Wobei ich dir insoweit recht gebe, das es sinnvoller wäre in der Schule auf etwas einzugehen das man recht einfach auf jeden PC zum laufen bekommt (und WPF setzt schon gewisse Voraussetzungen an das System), wie z.B. C++, Java und Co.
µngbd schrieb:
Ich hab mich vor ca. 5 fünf Jahren mit .NET befasst. Rat mal, wie viel ich heute davon habe...
Das liegt dann aber an deiner Berufswahl oder deinem Hobby. Es gibt einige Softwarefirmen die inzwischen komplett oder zumindest in Teilen auf .Net aufsetzen. Wobei ich auch hier sagen muss das die Sprache und die Bibliotheken zum erlernen der Programmierung eh zweitrangig sind (Viel schlimmer finde ich die Ansicht von einigen Lehrern, das die Auswahl und Positionierung von Bildern und Buttons als wichtig in einer Aufgabe hervorgehoben werden - das hat nicht viel mit dem Erlernen der Programmiergrundlagen zu tun).
-
[quote="asc"]
µngbd schrieb:
IEine Schule kann nicht noch Extrakurse anbieten, damit erst einmal die gesamten Grundkenntnisse vorhanden sind. Und sie verlässt sich verständlicherweise lieber auf die eher zutreffende Variante (was auch heute noch in 90% der Fälle im Clientbereich Windows sein wird).
Inzwischen haben weder Linux noch MacOS viel Unterschied mit Windows. Ich bin mir sicher fast niemand würde den Unterschied merken, wenn auf allen Schulen nur noch Linux mit Gnome oder KDE laufen würde. Man müsste aber Microsoft den Rücken kehren (also OpenOffice.org anstatt MS Office und Java, C++, Python oder was anderes anstatt C# lehren), was aufgrund der marktbeherrschenden Stellung wohl nicht einfach ist.
-
asc schrieb:
Viel schlimmer finde ich die Ansicht von einigen Lehrern, das die Auswahl und Positionierung von Bildern und Buttons als wichtig in einer Aufgabe hervorgehoben werden - das hat nicht viel mit dem Erlernen der Programmiergrundlagen zu tun.
So schlimm find ich das eigentlich nicht, wenn der auch Wert auf Usability legt (solang auch ordentliches Programmieren beigebracht wird)
-
asc schrieb:
Grundsätzlich sollte die Sprache erst einmal gänzlich egal sein wenn es um Programmierung geht. Wobei ich dir insoweit recht gebe, das es sinnvoller wäre in der Schule auf etwas einzugehen das man recht einfach auf jeden PC zum laufen bekommt (und WPF setzt schon gewisse Voraussetzungen an das System), wie z.B. C++, Java und Co.
C# und Java sind einfacher zu lernen als C++
-
sc schrieb:
C# und Java sind einfacher zu lernen als C++
Das stimmt, aber grade bei C++ finde ich lernt man sehr viel da man sich hier auch mit dem Speichermanagment, etc. beschäftigen muß. Im Endeffekt ist das aber jedem selbst seine Entscheidung bzw. die des Arbeitgebers.
-
DEvent schrieb:
Inzwischen haben weder Linux noch MacOS viel Unterschied mit Windows.
Wenn du ein laufendes System vorfindest, UND die Benutzer mit der Programmauswahl klar kommen, ja. Diese zwei Bedingungen sind aber in der Regel (gerade bei Jüngeren) nicht gegeben. Und ich hatte bislang fast nie das Glück das ein 0815 PC sofort mit Linux in allen Bereichen klar kommt (zumindest deutlich seltener als mit Windows) - und ja, ich weiß das Linux, gerade wenn man reinen Officebereich betrachtet, durchaus mit Windows vergleichbar ist.
Und was MacOS angeht: Wenn du viel Geld hast, trifft deine Aussage (Software die sowohl auf Windows als auch MacOS verfügbar ist, ist nur selten Preislich identisch - und sehr häufig gilt dies zum Nachteil von MacOS). Ich habe MacOS aktiv im Einsatz, bevor eine Frage kommt...
-
sc schrieb:
C# und Java sind einfacher zu lernen als C++
Dem habe ich auch niemals wiedersprochen. Wobei man anderseits bei C++ auch eher mal zeigen kann was hinter den Kolissen passiert. Nur war im Beispiel WPF kontra C++, und dort ist das Problem das die WPF massiv höhere Anforderungen als ein C++ Compiler erfordert.
-
@Samyboy,
Ich persönlich habe vor etwas mehr als einem Jahr mit der C# Programmierung angefangen. Ich habe nach einer Sprache gesucht, welche gut für Business Anwendungen ist. GUIs können deutlich angenehmer mit C# erstellt werden und die Datenanbindung ist meistens deutlich leichter (bzw. eigentlich ist das .Net zu verdanken). Also falls du auf Windows entwickeln willst, dann kann ich C# nur empfehlen. Es ist auch wirklich relativ schnell als C++ Programmierer erlernt.Ich persönlich bin nun inzwischen soweit, dass ich ein Projekt plane, welches intern auf C++ setzt, eine C Schnittstelle anbietet, welche dann über P/Invoke in ein C# Programm eingebunden wird, damit das GUI per WPF gemacht werden kann. Wobei der endgültige Entscheid dazu noch nicht gemacht wurde.
P/Invoke ist, denke ich, auch noch einer der grossen Vorteile von C# .Net.
Grüssli
-
hö? Das müsste doch auch einfach so funktionieren? WPF und Managed C++. Oder gefällt dir das nicht
-
PRIEST schrieb:
WPF und Managed C++
Besser: WPF und C#
-
Managed C++ ist doch eine Missgeburt, Bäh.