Moin, ich würde gerne ein Projekt in C# schreiben, was ich vorher in ähnlichen Formen nur in C programmiert habe. C# ist etwas neu für mich, habe mich aber schon einigermaßen in die Materie eingelesen bzw. Übungsprogramme erstellt. Im Prinzip soll es eine Form mit mehreren Buttons und Textfeldern geben. In C würde ich aus Gründen der Übersichtlichkeit eine C-Datei mit allen Buttpn-klick Funktionen ersellen, und in jeweils eine andere Datei einzelne Funktionen, die von der Eventfunktion aufgerufen werden. So erstelle ich mir immer mehrere Dateien, die relativ kurz sind, dafür behalte ich durch ihre eindeutige Benennung aber die Übersicht. Wie würde man am besten in C# arbeiten? Da ja die Steuerelemente nur in der Klasse bekannt sind, kann ich (und soll man ja auch) nicht so einfach aus einer anderen Klasse darauf zugreifen. Würdet ihr die eigentlichen Methoden in eine eigene Klasse schreiben? Standardmäßig wurde für die Form die Klasse "partial class Form1" erstellt. D.h. ich könnte auch einfach in mehreren Dateien diese Klasse erweitern, oder? Ich wäre über ein paar Tipps über die übliche Vorgehensweise sehr dankbar ;-)
Schlumpf schrieb: > ich würde gerne ein Projekt in C# schreiben, was ich vorher in ähnlichen > Formen nur in C programmiert habe. Mal ehrlich, Du kannst C, also kannst Du hochdeutsch. Warum willst Du nun hessischen Dialekt lernen, den keine Sau versteht und ein eingefleischter C,C++ Programmierer niemals nachvollziehen kann. C# ist und bleibt M$ Müll. Bleib bei C und denke mal an die "signal and slot" Technik. Biblioteken dazu: boost oder Qt Gibt bestimmt noch mehr. Gruß Martin
C ist nicht gleich C. Wenn das ein Windows Programm sein soll dann geht das mit Visual C++, MFC, aber mit C# ist das halt nicht zu machen, weil es nicht dafür geeignet ist.
Deine Fragen sind etwas allgemein gehalten. Wie immer kann man leicht "es kommt darauf an" als Antwort geben. Worauf läuft deine Software? Ein paar mehr Details wären interessant.
@Sunny wofür ist C# nicht geeignet? Für ein Windows Programm?
Sunny schrieb: > C ist nicht gleich C. > Wenn das ein Windows Programm sein soll dann geht das mit Visual C++, > MFC, aber mit C# ist das halt nicht zu machen, weil es nicht dafür > geeignet ist. Das ist nun wirklich falsch. Würde behaupten, C# eignet sich eigentlich nur für Windows, oder will man wirklich unter Linux .NET proggen, wenn's besser geht?!
Schlumpfine schrieb: > oder will man wirklich unter Linux .NET proggen, wenn's > besser geht?! dieses Geschwür von M$ bleibt uns Gott sei Dank erspart. Gruß Martin
Also das Programm läuft ja wie gesagt unter Windows. Es stellt eine Schnittstelle zu einer SPS dar, die auch auf dem PC läuft. Es geht hauptsächlich darum, dem Bediener ein schönes Fenster zu gestalten, wo er Eingaben machen kann. Die Eingaben werden dann über Bibliotheken an die SPS weitergeleitet. Ich bin auch nicht auf C# fixiert, es kann genauso auch C++ sein. Habe aber halt bisher nur C programmiert und auch nicht in Visual Studio. Ob es in C mit Windows-Forms dann gut geht, weiß ich nicht. Wenn C++ für meine Anwendung geeigneter wäre, würde ich ggf. auch das nehmen. Zur Plattform: Ist es nicht eigentlich einfacher ein C#-Programm unter Linux laufen zu lassen, als ein C++-Programm? Da gibt es doch Mono.... Aber das brauche ich momentan nicht ;-)
Martin K. (modin) schwafelte > C# ist und bleibt M$ Müll. Bleib bei C > dieses Geschwür von M$ bleibt uns Gott sei Dank erspart. Ah, ein Ideologe. Lass mich raten, ein eingefleischter Linuxer und MS Hasser versucht gerade seine Ideologie auf andere zu übertragen. Kann auch nicht anders sein. Typische Verhaltensweise der immer gleichen Clientel.
Schlumpf schrieb: > Ich bin auch nicht auf C# fixiert, Dann lass es sein. Schau Dir mal das Qt Demo an. Wenn Du in C oder C++ fit bist, behaupte ich, dass Du Null Probleme haben wirst, eine wunderschöne Oberfläche in Qt zu designen. Geht schnell, ist einfach und lässt sich wunderbar mit C Sourcen verbinden. Schlumpf schrieb: > Zur Plattform: Ist es nicht eigentlich einfacher ein C#-Programm unter > Linux laufen zu lassen, als ein C++-Programm? Da gibt es doch Mono.... Verkartel Dich da mal nicht. Gruß Martin
Komischerweise hat C# aber mehr von Java und VB als von C oder C++. Es ging wohl wirklich nur um einfachere Windows-Programmierung. Na ob das gelungen ist?
Schlumpfine schrieb: >... > > Das ist nun wirklich falsch. Würde behaupten, C# eignet sich eigentlich > nur für Windows, oder will man wirklich unter Linux .NET proggen, wenn's > besser geht?! So ähnlich hab ich es auch letztens bei einem Vortrag im Fach Programmieren formuliert, ohne dass der Dozent widersprochen hätte. Man kann zwar C# Programme auch für Linux und sogar Mac zum laufen bringen allerdings macht es selten Sinn. Mono gibt es zwar, aber wie gesagt macht es selten Sinn. Ich würde es eher als Notfallösung sehen. Wenn dir kompatibilität mit anderen Systemen wichtig ist, rate ich von C# ab. Wenn es eh ein Win Programm sein soll, kannst du mit WinForms relativ schnell ein brauchbares GUI zusammenklicken, aber es wundert mich, dass du das nicht beim erstellen der Übungsprogramme gemerkt hast.
Karl (Gast) schrieb: > Man > kann zwar C# Programme auch für Linux und sogar Mac zum laufen bringen > allerdings macht es selten Sinn. Mit welcher Begründung denn? > Mono gibt es zwar, Und nicht erst seit gestern. > aber wie gesagt macht es selten Sinn. Ich würde es > eher als Notfallösung sehen. Warum?
Hallo, ich findes wieder mal genial wie hier versucht wird dem Thread-Ersteller zu helfen! Anstatt eine Antwort zugeben, wird erstmal auf C# und M$ geschimpft. Um die Frage zu beantworten: Im Normalfall trent man die Darstellung von der Anwendungslogik. Bei sehr kleinen Programmen "schmeist" man auch mal die Anwendungsloik mit in die Form-Klasse mit rein. Was man auf jedenfall nicht mach ist von einer anderen Klasse aus auf die Steuerelemente durchzugreifen. Hier gehört eine Methode von der Form-Klasse dazwischen. Grüße, Warhawk
Bauteilefummler schrieb: > Mit welcher Begründung denn? .net zu benutzen ist bei einem Win system verständlich, weil die sowieso inzwischen alle .net haben. Bei einem Linux System muss man (in Form von Mono) die Virtuelle Maschine aber zusätzlich installieren, diesen Nachteil würde ich nur in Ausnahmesituation in kauf nehmen. Ist doch sinnvoller gleich etwas passendes zu nehmen.
C# eignet sich hervoragend zur Windowsanwendungs Entwicklung! Wenn du noch nicht wirklich weißt, wie du dabei vorgehen sollst, empfehle ich dir einfach mal mit dem Visual C# Windows Forms Desinger zu arbeiten. Da bist du alle mal schneller. Falls du aber doch Interesse hast zu wissen, wie man das selbst macht. Schau dir einfach den Code an, den er produziert. Martin K. schrieb: > Warum willst Du nun hessischen Dialekt lernen, den keine Sau versteht > und ein eingefleischter C,C++ Programmierer niemals nachvollziehen kann. > > C# ist und bleibt M$ Müll. Typisch. Keine Ahnung von C# haben, aber kritisieren. Das scheint in unserer Gesellschaft schon Mode zu sein. Wer C# wirklich kennt, weiß es zu schätzen. Ich mag C, allerdings verstehe ich nicht, weshalb die meisten Linuxfanatiker immer noch bei jedem sch*** C verwenden müssen. Ist das vielleicht die Ursache dafür, dass Linux immer noch so unnötig unhandlich ist? Es vergeht kein Tag in Linux, ohne dass die Konsole verwendet werden muss. Zum Thema Mono: Ich weiß nicht, warum Mono so verpöhnt ist. Es läuft eigentlich sehr gut und man hat dazu eine recht gute IDE (Monodevelop) mit ein paar Macken.
Christopher C. schrieb: > Ich weiß nicht, warum Mono so verpöhnt ist. Es läuft eigentlich sehr gut > und man hat dazu eine recht gute IDE (Monodevelop) mit ein paar Macken. Wie oben geschrieben, mir misfällt die Grundidee .net unter Linux zu benutzen. Ich finde es super, dass sich leute gefunden haben, dies möglich zu machen aber ich würde es nur nutzen, wenn ich beispielsweise ein komplettes Programm in C# habe und es nun unerwartet unter Linux brauche. Ich muss Mono allerdings zugestehen, dass damit 2 Programme entwickelt wurden, die für sich sprechen: Sims 3 und Unity3D
Okay, dieser Thread scheint für mich leider keinen großen Sinn mehr zu ergeben. Ich probiere einfach in C# weiter herum, un werde irgendwie schon den Fehler finden, den ich in einem anderem Thread heute gepostet habe. Trotzdem danke an diejenigen, die helfen wollten.
Karl (Gast) schrieb: > .net zu benutzen ist bei einem Win system verständlich, weil die sowieso > inzwischen alle .net haben. > Bei einem Linux System muss man (in Form von Mono) die Virtuelle > Maschine aber zusätzlich installieren, diesen Nachteil würde ich nur in > Ausnahmesituation in kauf nehmen. Ist doch sinnvoller gleich etwas > passendes zu nehmen. Ob man das Framework nun extra installiert oder nicht spielt doch überhaupt keine Rolle mehr heutzutage. Das kostet dich ein kurzes Online-Update aus dem Repositories (bei Linux) und wird genauso gehandhabt wie die sonstige Pflege und Wartung der Installationen. Bei Anwenderprogrammen wird genauso das Update gezogen nach der Erstinstallation und die SW am laufen gehalten. Irgendwelche Laufzeitbibliotheken wird man immer mal nachinstallieren müsen. Unter Win gibt es default auch kein QT. Na und?! Dann wird es eben installiert. Spielt überhaupt keine Rolle. Oder nimm ein Lazarus. Das muss auch extra installiert werden. OpenOffice fällt auch nicht vom Himmel. Man hat es halt zu installieren wenn man entsprechende Dateien sich auch nur anschauen oder gar bearbeiten möchte. Warum soll man sich die ganzen dirty Pitfalls im Zeigerhandling bei C++ freiwillig antun, wenn man mit C# das gleiche erreichen kann? .NET hat eine wunderbare Garbage-Collection, die einem einen Großteil an eigenen Programmierfehlern schon mal erspart und zudem sehr schöne kostenfreie IDE mit den Express Versionen und C# ist die ideale Programmiersprache dafür mit nun mehr 10-jährigem bestehen und stetiger Weiterentwicklung seitens MS. Was will man eigentlich noch mehr???
Christopher C. schrieb: > Typisch. Keine Ahnung von C# haben, aber kritisieren. Das scheint in > unserer Gesellschaft schon Mode zu sein. Sorry, da hast Du mich gewaltig missverstanden. Ich kenne diese Sprache. Ich wollte aber kein Buchautor werden.D.h mir sind die ganzen Aufrufe viel zu lang. Ich liebe meine kurzen Befehle und garantiere Dir, Dich geschwindigkeitsmäßig auf jeder Platform zu schlagen. Gruß Martin
Martin K. schrieb: > Ich liebe meine kurzen Befehle und garantiere Dir, Dich > geschwindigkeitsmäßig auf jeder Platform zu schlagen. Die Du erst einmal mühsam zusammen schreiben musstest. Ich kenne das, ich hab mir selbst ein Framework für C geschrieben. Wobei C# schon längst ein ausgereiftes und extrem umfangreiches besitzt. Also warum denn schon wieder das Rad neu erfinden?
> Ich liebe meine kurzen Befehle und garantiere Dir, Dich > geschwindigkeitsmäßig auf jeder Platform zu schlagen. Ok, Christopher, nimmst du die Herausforderung an? Ich werde hier um punkt 19:30 eine Aufgabe veröffentlichen. Es wird ein kleines Spiel mit grafischer Oberfläche sein. Zeitaufwand: etwa 1h Schwierigkeitsgrad: mittel bis niedrig Christopher nimmt Visual Studio .NET mit C#. Martin, für welche Entwicklungsumgebung / Framework entscheidest du dich?
Christopher C. schrieb: > Die Du erst einmal mühsam zusammen schreiben musstest. Selbst wenn. Kennst Du Qt? Eine sehr umfangreiche Bibliotek, aber nicht so überladen, wie das M$ Zeug's. Ausserdem sehr Platform-freundlich. Gruß Martin
@ Thomas (Gast) Aber sonst habt ihr wohl nix besseres zu tun oder?! Leute, Leute
Thomas schrieb: > Martin, für welche Entwicklungsumgebung / Framework entscheidest du > dich? Qt-Creator und was alles dazu gehört. Gruß Martin
Mensch was soll denn das? Weißt du was, ich glaub dir sogar. Gegen einen C-Guru hab ich keine Chance. Allerdings glaube ich, dass du gegen einen C#-Guru in Sachen Anwendungsentwicklung verlieren wirst. Es ist doch allgemein bekannt, dass C für die Betriebsystementwicklung gemacht worden ist. Also warum Low-Level, wenn man es nicht braucht? Damit man dann Speicherleks und weitere Dinge produzieren kann?
Bauteilefummler schrieb: > Aber sonst habt ihr wohl nix besseres zu tun oder?! Nein, fummle Du weiter an Deinen Bauteilen herum. Verbringe Dein weiteres Leben in der Anonymität und lass uns hier in Ruhe. Gruß Martin
Hochkomplexe Büro- und Verwaltungssoftware mit Zugriff auf Datenbanken, etc. will keiner mit C schreiben. Dafür sind solche Highlevelsprachen wie C# oder Java da.
Martin K. (modin) schrieb: Bauteilefummler schrieb: >> Aber sonst habt ihr wohl nix besseres zu tun oder?! > Nein, fummle Du weiter an Deinen Bauteilen herum. Danke der Anmerkung, da bin ich auch gerade dran. > Verbringe Dein weiteres Leben in der Anonymität und lass uns hier in > Ruhe. Solches Geschwafel wie das deine lässt man lieber nicht unkommentiert hier durchgehen, sonst nehmen sich andere daran noch ein schlechtes Beispiel, verstehst?! Aber du wirst mit der Zeit vielleicht auch noch etwas schlauer werden.
Christopher C. schrieb: > Mensch was soll denn das? Weißt du was, ich glaub dir sogar. Gegen einen > C-Guru hab ich keine Chance. Allerdings glaube ich, dass du gegen einen > C#-Guru in Sachen Anwendungsentwicklung verlieren wirst. Da gebe ich Dir vollkommen Recht. Aber in der Effizienz werde wohl ich gewinnen. Ich habe selbst schon zwei identische Programme geschrieben. (.NET und Qt) Schlumpf schrieb: > Im Prinzip soll es eine Form mit mehreren Buttons und Textfeldern geben. > In C würde ich aus Gründen der Übersichtlichkeit eine C-Datei mit allen > Buttpn-klick Funktionen ersellen, Ich will Dich ja nicht überreden, sondern nur darauf hinweisen, dass es durchaus bessere Alternativen gibt. Christopher C. schrieb: > Hochkomplexe Büro- und Verwaltungssoftware mit Zugriff auf Datenbanken, > etc. will keiner mit C schreiben. Dafür sind solche Highlevelsprachen > wie C# oder Java da. Davon habe ich nie gesprochen. Gruß Martin
Schlumpf schrieb: > Wie würde man am besten in C# arbeiten? Da ja die Steuerelemente nur in > der Klasse bekannt sind, kann ich (und soll man ja auch) nicht so > einfach aus einer anderen Klasse darauf zugreifen. Würdet ihr die > eigentlichen Methoden in eine eigene Klasse schreiben? Standardmäßig > wurde für die Form die Klasse "partial class Form1" erstellt. D.h. ich > könnte auch einfach in mehreren Dateien diese Klasse erweitern, oder? > > Ich wäre über ein paar Tipps über die übliche Vorgehensweise sehr > dankbar ;-)
So langsam glaube ich, dass Thomas hier einen Krieg anzetteln will :). Martin K. schrieb: > Christopher C. schrieb: >> Mensch was soll denn das? Weißt du was, ich glaub dir sogar. Gegen einen >> C-Guru hab ich keine Chance. Allerdings glaube ich, dass du gegen einen >> C#-Guru in Sachen Anwendungsentwicklung verlieren wirst. > > Da gebe ich Dir vollkommen Recht. Aber in der Effizienz werde wohl ich > gewinnen. Ich habe selbst schon zwei identische Programme geschrieben. > (.NET und Qt) Keine Frage. Martin K. schrieb: > Christopher C. schrieb: >> Hochkomplexe Büro- und Verwaltungssoftware mit Zugriff auf Datenbanken, >> etc. will keiner mit C schreiben. Dafür sind solche Highlevelsprachen >> wie C# oder Java da. > > Davon habe ich nie gesprochen. Damit wollte ich nur ausdrücken, dass solche Sprachen durchaus ihre Existensberechtigung haben.
Die .Net Sprachen sind klasse um mal schnell eine schöne GUI zu zaubern, Qt dauert da doch ein wenig länger. Ausserdem muss man sich doch im Zeitalter der Mehrkern CPU's nichtmehr die Mühe machen extrem geschwindigkeitsoptimierten Code zu schreiben. Jetzt gleich einen Wettbewerb draus zu machen finde ich schon etwas übertrieben.
> Jetzt gleich einen Wettbewerb draus zu machen finde ich schon etwas > übertrieben. Hey, das ist jetzt die einmalige Chance ein für alle mal zu klären welches die bessere Programmiersprache ist: C# oder C++. Qt oder .NET. Überleg noch nur einmal wie viel unnötige Diskussion uns dadurch in Zukunft erspart bleibt. Nie wieder Flamewars zu diesem Thema, keine C# / C++ Trolle mehr! Nee, das muss man ja nicht erst nehmen, ist aber doch ne nette Knobelaufgabe für nen Sonntag Abend. Im Fernsehn kommt eh nichts, außer Johnny Cash vielleicht.
> Hey, das ist jetzt die einmalige Chance ein für alle mal zu klären > welches die bessere Programmiersprache ist: C# oder C++. Qt oder .NET. Dann sieh zu, dass du deine Hausaufgabe mal fein selber löst. Dann weißte auch bescheid. ;)
Aber eines muss Dir lassen, is ne coole Aufgabe. Ich glaub die mach ich mal demnächst ;).
> Ich glaub die mach ich mal demnächst ;).
Prima, dann stell das Ergebnis doch mal hier rein.
Hat jemand Lust eine ASCI Version zu bauen? ;)
Nutzer wie Martin K. sollte man ganz schnell sperren. Insbesondere nach seinem ersten Kommentar hier im Thread. Wer absichtlich so einen Müll verzapft, nur um irgendeine fanatische Programmiersprachen-Affinität auszuleben schadet der Community immens. Einsteiger, wie der TO werden dadurch bestenfalls verwirrt. Ist es so schwer eine objektive Meinung bezüglich Programmiersprachen und Frameworks zu vertreten? Echt traurig...
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.