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 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
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. ;)
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...