Wegen GUI-Programmierung zu C# wechseln?



  • µ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.


  • Administrator

    @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.


  • Administrator

    PRIEST schrieb:

    hö? Das müsste doch auch einfach so funktionieren? WPF und Managed C++. Oder gefällt dir das nicht 😃

    1. Was ich bisher von C++/CLI (Managed C++ ist veraltet) gesehen habe, gefällt mir nicht wirklich.
    2. Die Programmlogik wird später dann wahrscheinlich auch mit GUIs auf Linux und MacOSX ausgestattet. Daher möchte ich gerne ein standardisiertes ABI, damit ich ohne Probleme aus anderen Programmiersprachen die Logik einbinden kann.
    3. Ich überlege mir sogar, die ganze Programmlogik in C zu schreiben. In erster Linie wird es nämlich eine Datenbankanbindung sein und die Datenlogik wird dann von der Datenbank gemacht. Das ist einer der Bereiche, welcher noch erst in der Grobplanung vorliegt 😉

    Grüssli





  • Dravere schrieb:

    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. 🙂

    Mir kommt das sehr wüsst vor. Wenn würde ich dann an deiner Stelle auf PInvoke und die C-Schnittstelle verzichten und auf C++/CLI setzen (was weitgehend C++ kompatibel ist, aber wenigstens auch eine saubere .Net Schnittstelle liefern kann).

    Dravere schrieb:

    P/Invoke ist, denke ich, auch noch einer der grossen Vorteile von C# .Net.

    Genau das P/Invoke sehe ich persönlich als krank an. Ist aber wohl auch Geschmackssache (Ich würde persönlich beim .Net Framework auch eher komplett auf C# setzen).



  • PRIEST schrieb:

    hö? Das müsste doch auch einfach so funktionieren? WPF und Managed C++. Oder gefällt dir das nicht 😃

    WPF lässt sich nur sehr mühsam mit C++/CLI (und vermutlich Managed C++) verwenden, und auch nur wenn man gewisse Abstriche macht. Zumal der WPF Designer (Auch wenn er ohnehin nicht sehr gut ist) auch nur C# und VB.Net unterstützt.


  • Administrator

    asc schrieb:

    Mir kommt das sehr wüsst vor. Wenn würde ich dann an deiner Stelle auf PInvoke und die C-Schnittstelle verzichten und auf C++/CLI setzen (was weitgehend C++ kompatibel ist, aber wenigstens auch eine saubere .Net Schnittstelle liefern kann).

    Naja, ob C++/CLI auch noch mit dem neuen C++ Standard kompatibel sein wird? Mir ist dieses C++/CLI Zeug irgendwie ein zu grosses Gefrickel. Hat meiner Meinung nach viel zu viele Unbekannte. P/Invoke hat vielleicht eine lästige Syntax, aber dagegen helfen enstprechende Codegeneratoren. Ansonsten sehe ich keine Nachteile von P/Invoke.
    Zudem will ich die C Schnittstelle, weil ich eben eine standardisierte Schnittstelle möchte. So bin ich völlig frei, in welcher Sprache ich später die Anbindung machen möchte: Java, Python, C, Objective-C oder sonst irgendwas.

    Aber naja, das Projekt ist ja erst noch in der groben Planung und in diesem Thread geht es um anderes 😉

    Grüssli



  • Danke für alle die geantwortet haben!

    Ich konnte echt was aus diesem Thread mitnehmen 😉



  • Also man kann auch sehr gut in C++ GUIs entwickeln, gibt sogar einige Plattformübergreifende Lösungen wie Qt, GTKmm oder wxWidgets.
    Gibt also keinen Grund hierfür C# zu verwenden, wenn man sich nicht mit .net und der Sprache selbst beschäftigen will.



  • phlox81 schrieb:

    Gibt also keinen Grund hierfür C# zu verwenden, wenn man sich nicht mit .net und der Sprache selbst beschäftigen will.

    Es gibt keinen Grund C++ zu verwenden wenn man sich nicht mit der Sprache selbst beschäftigen will. 🕶



  • C# forever schrieb:

    phlox81 schrieb:

    Gibt also keinen Grund hierfür C# zu verwenden, wenn man sich nicht mit .net und der Sprache selbst beschäftigen will.

    Es gibt keinen Grund C++ zu verwenden wenn man sich nicht mit der Sprache selbst beschäftigen will. 🕶

    Der Threadersteller hat ja gerade betont das er bereits C++ kann.


Anmelden zum Antworten