frage zu c# in groesseren projekten
-
hoi!
mir wurde gesagt dass c# bei grösseren projekten/komplexer oberfläche sehr langsam wird was den bildaufbau(die gui) betrifft! hat jemand erfahrungen damit gemacht? ich will naemlich c# fuer meine diplomarbeit benutzen... jetzt weis ich nicht ob ich nicht doch c++ und qt hernehmen soll!
mfg --linuxuser--
-
Beschreib doch mal, wie deine GUI aussehen soll.
Generell ist das .NET-Framework nur ein Wrapper der WinAPI, d.h. die einzelnen GUI-Elemente sind nicht langsamer im Aufbau (Zeichnen) als bei anderen Windows-Programmen.
Wenn du aber z.B. ein Grafikprogramm erstellen willst, dann solltest du dir eine Komponente suchen, die die entsprechenden Operationen nativ unterstützt, anstatt mittels C# einzelne Pixel zu setzen.P.S: willst du unter Linux programmieren, dann kann ich dir leider nicht so viel dazu sagen, da ich noch nicht mit Mono (die .NET-Umsetzung für Linux) gearbeitet habe.
-
Es gibt ein Grafikprogramm Paint.Net oder so welches trotz NET sehr schnell ist.
-
Hallo,
zur aktuellen .Net Version kann ich nicht viel sagen, aber unter 1.1 bekam man schon ein müdes Lächeln, wenn man eine Exception abfangen wollte, was nämlich im Sekundenbereich dauerte ...
C# ist konzeptbedingt etwas langsamer als c++, gleiche Programmierung vorausgesetzt , aber riesig ist der Unterschied nicht.
C# würde sich aber gerade für Diplomarbeiten anbieten, da das Sprachkonzept quasi eine saubere Programmierung begünstigt, wohingegen man in c++ ganz schön wilde Sachen manchen kann - wenn man denn will.Also C# nicht gleich verwerfen und ist sicherlich für deine Diplomarbeit allemal ausreichend. Da aber gerade bei Diplomarbeiten die Effektivität eine große Rolle spielt (man hat ja nicht ewig Zeit bis zur Abgabe) würde ich Dir zu der Programmiersprache raten, mit der du hinsichtlich des zu lösenden Problems die meiste Erfahrung hast!
Gruß
Markus
-
Ich arbeite gerade an einem Projekt, welches eine sehr komplexe Oberfläche besitzt. Die Oberfläche ist komplett owner drawn, komplett dynamisch generiert (das ganze ist natürlich trotzdem sauber in Controls gekapselt) und oft werden Teile neugeneriert, um veränderte Daten anzuzeigen. Auf der Form befinden sich außerdem diverse verschachtelte Controls. Das gesamte Projekt läuft bei mir flüssig – und wir machen die gesamte Entwicklung innerhalb von virtuellen Maschinen!
=> Es mag sein, dass WinForms langsamer als native Oberflächen (WinAPI) sind. Aber offensichtlich sind sie selbst für komplexe Oberflächen locker schnell genug. Ich hätte ehrlich gesagt eher Angst gehabt, dass GDI+ das ganze zu sehr ausbremst (immerhin wird *alles* über GDI+ gemalt) aber selbst das scheint nicht der Fall zu sein).
Wo unser Projekt hingegen Probleme mit der Performance hat, ist das Einlesen und Speichern der Daten. Das ist aber auch kein Wunder, das ganze erfolgt nämlich über XML mit einem ziemlich komplexen Schema und einigen nicht gerade trivialen Transformationen und außerdem jeder Menge Reflection.
-
HMarkus schrieb:
zur aktuellen .Net Version kann ich nicht viel sagen, aber unter 1.1 bekam man schon ein müdes Lächeln, wenn man eine Exception abfangen wollte, was nämlich im Sekundenbereich dauerte ...
Dieses Problem ist zum Glück größtenteils behoben. Das Werfen der ersten Ausnahme dauert zwar immer noch merklich, weil eine Bibliothek nachgeladen wird, allerdings sind es nicht mehr mehrere Sekunden, so wie vorher.
-
Wäre für Deine Anwendung nicht WPF das Richtige? Da haste dann echte Hardwarebeschleunigigung und musst in keiner Paint-Methode "rumeiern".
-
SeboStone schrieb:
Wäre für Deine Anwendung nicht WPF das Richtige? Da haste dann echte Hardwarebeschleunigigung und musst in keiner Paint-Methode "rumeiern".
WPF stand (und steht nach wie vor, für einen Client; dann aber in Form von Silverlight) zur Debatte. Argumente dagegen waren u.a. die fehlende Verbreitung/Erprobtheit und die hohen Hardwarevoraussetzungen.
-
danke fuer die vielen antworten! ich glaub ich werd c# verwenden da das programm sowieso nur unter windows laufen soll und der arbeitsaufwand geringer ist als mir c++! da ihr doch nicht so schlechte erfahrungen mit c# gemacht habt glaub ich wird das ganze schon ^^
mfg --linuxuser--
-
ich mache sehr große Projekte mit C# und kann kein langsameres Verhalten bei größeren Projekten feststellen.