Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Bestimmern, wo VS Community neue Links anlegt
MoaByter
myCSharp.de - Member



Dabei seit:
Beiträge: 68
Herkunft: Berlin

Themenstarter:

Bestimmern, wo VS Community neue Links anlegt

beantworten | zitieren | melden

Hallo,

ein vielleicht etwas merkwürdiges Problem:
Wenn ich im VS-2017-Designer [Entwurf] ein z.B. Klick-Event anlege, packt VS den Code dazu immer an eine bestimmte Stelle (dir mir sehr unbequem ist). Kann ich das irgendwie einstellen? Unter Extras->Anpassen finde ich dazu nichts. Hat jemand 'ne Idee oder geht das gar nicht?
Danke schon mal - Moabyter
private Nachricht | Beiträge des Benutzers
Palladin007
myCSharp.de - Experte

Avatar #avatar-4140.png


Dabei seit:
Beiträge: 1.878
Herkunft: Düsseldorf

beantworten | zitieren | melden

Der EventHandler muss natürlich in der selben Klasse bleiben und da es neben der generierten Partial-Datei nur eine weitere Datei gibt, die Du bearbeiten kannst (bzw. solltest), landet der Handler eben da. Das hat auch nichts mit Visual Studio zu tun, alles andere ergibt einfach keinen Sinn.
Wenn Du das in einer anderen Klasse haben willst, muss Du den Code entweder selber aufrufen oder den EventHandler im Code selber hinzufügen.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Palladin007 am .
private Nachricht | Beiträge des Benutzers
MoaByter
myCSharp.de - Member



Dabei seit:
Beiträge: 68
Herkunft: Berlin

Themenstarter:

beantworten | zitieren | melden

Alles richtig und verständlich. nur ist diese Klasse etrwas größer und er setzt den Code in den zugeklappten Teil nach ganz unten. In diesem Bereich arbeite ich seit Eeewigkeiten nicht mehr, deswegen die Frage.
Wäre schön, wenn es einen Trick gäbe, mit dem VS überzeugt werden kann, den Code sagen wir mal in Zeile 100 zu setzen.

Im Moment schreibe ich den Code dahin, wohin ich ihn haben will, ist natürlich mehr Aufwand. Den würd'ich mir gerne ersparen.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von MoaByter am .
private Nachricht | Beiträge des Benutzers
Palladin007
myCSharp.de - Experte

Avatar #avatar-4140.png


Dabei seit:
Beiträge: 1.878
Herkunft: Düsseldorf

beantworten | zitieren | melden

Zitat
In diesem Bereich arbeite ich seit Eeewigkeiten nicht mehr, deswegen die Frage.

Mit einem ängstlichen Unterton gefragt: Wie groß ist die Klasse?
Das klingt für mich nach einem ganz gewaltigen Architektur-Chaos, Du solltest niemals in die Situation kommen, dir über sowas Gedanken machen zu müssen.
In meinem aktuellen Projekt ist die größte Datei 420 Zeilen lang - generierter Code nicht mit eingerechnet.

Aber nein, so einen Trick gibt's nicht.
Du kannst die bisherige Klasse in mehrere Partial-Klassen aufteilen, aber das Problem, dass die Klasse zu viel tut, löst Du damit nicht.
private Nachricht | Beiträge des Benutzers
MoaByter
myCSharp.de - Member



Dabei seit:
Beiträge: 68
Herkunft: Berlin

Themenstarter:

beantworten | zitieren | melden

Naja ... Das Programmm wurde vor 9 Jahren erstellt für eine kleine Sache (Excel-Tabellen-konsolidieren war nicht der Brüller).
Mittlerweile sind alle Dateien zusammen - ohne generierten Code und ohne Kommentarzeilen - vielleicht 10-, 12tsd Zeilen, wobei die Form1 mit 3,5tsd Zeilen den größten Anteil hat.
Vieles habe ich schon umgearbeitet, immer wenn was neues 'reinkommt ganz besonders, aber alles neuschreiben und die GUI neu codieren wäre 'ne Arbeit für viele Wochen. Nun, ich werd's wohl mal anpacken müssen. ...ach seufz!

Danke erstmal für deine Hilfe, viel Erfolg bei deinen Arbeiten - Moabyter
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von MoaByter am .
private Nachricht | Beiträge des Benutzers
Palladin007
myCSharp.de - Experte

Avatar #avatar-4140.png


Dabei seit:
Beiträge: 1.878
Herkunft: Düsseldorf

beantworten | zitieren | melden

Deshalb sollte man immer möglichst zeitnah refaktorisieren
Eigentlich gibt's bei so gut wie jedem neuen Anpassung etwas, was nicht zum vorherigen Aufbau passt und das sollte man nach Möglichkeit auch direkt mit gerade ziehen.
Machst Du es immer sofort, ist es wenig Arbeit, jetzt hast Du natürlich die A-Karte
private Nachricht | Beiträge des Benutzers
MoaByter
myCSharp.de - Member



Dabei seit:
Beiträge: 68
Herkunft: Berlin

Themenstarter:

beantworten | zitieren | melden

Damals wusste ich es nicht besser. mit dem Erstellen des Programms - was wie gesagt für etwas ganz kleines, tabellarisches gedacht war - habe ich C# gelernt. Davor konnte ich nur etwas javascript, hatte alles im Browser laufen.

Ich habe im Designer knapp 200 Events, und ich muss viel in die GUI schreiben, da habe ich schon Probleme mit Klassen, für jede Datei (~60) eine und ein paar zusätzliche. Ich bearbeite Texte, die ich zugesendet bekomme, erweitere sie mit Daten von anderen Webseiten (alles legal und angemeldet) und lade diese dann ins BackOffice hoch. Das sind schon einiege Themenbereiche. Ich müsste mir also erstmal Gedanken machen, wie ich das Ganze strukturiere.

Nun, das Programm kenne ich in- und auswendig, da ist das nicht so schlimm, dafür ist's schön schnell. Nachteile sind die bekannten.
Zum Teil ist noch Original-Code drin, an dem es nichts zu verbesern gibt - jedenfalls nichts nennenswertes.

Alles nicht so ganz einfach, aber ich bin und bleibe dran - gezwungenermaßen.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von MoaByter am .
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16.306

beantworten | zitieren | melden

Man muss halt auch sagen, dass der Designer eigentlich nur für Einsteiger gedacht ist und entsprechend die Features auch nur rudimentär sind (in fast allen IDEs ist das so).
Fortgeschrittene / Profis erstellen zu 90% die Events manuell - ohne Doppelklick-Designer; entsprechend gibts das Problem nur in gewissen Situationen.
private Nachricht | Beiträge des Benutzers
MoaByter
myCSharp.de - Member



Dabei seit:
Beiträge: 68
Herkunft: Berlin

Themenstarter:

beantworten | zitieren | melden

Ach, ich arbeite ganz gerne damit. Mittlerweile kenne ich auch 'nen Haufen seiner Schwächen. Ich hatte es mal geübt, alles manuell zu erstellen, aber für's hübsch aussehen ist er doch 'ne gute Hilfe.
Die Frage nach dem Positionieren der event-codes war ja auch nur 'ne Frage, die Antwort hatte ich schon befürchtet. nun gut, mach' ich' eben händisch.

Jetzt mal 'ne andere Frage: Hier gibt's doch 'ne Liste der Compiler-Fehler-Meldungen (CSxxxx), ich finde die aber nicht. Wo könnte ich Erfolg haben?
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16.306

beantworten | zitieren | melden

"Syntaxfehler" in der Suche eingeben.

[Hinweis] Syntaxfehler selbst lösen (Compilerfehlermeldungen)
private Nachricht | Beiträge des Benutzers
MoaByter
myCSharp.de - Member



Dabei seit:
Beiträge: 68
Herkunft: Berlin

Themenstarter:

beantworten | zitieren | melden

Achja ... "Sytaxfehler"! Das Wort habe ich gesucht. Altzheimer? Das Alter dazu hätte ich...
Bedankt und ich werde mal weiter machen. Eine Frage kommt vielleicht noch - "SetAppartmentStaste" bei Tasks. CS1061. mal sehen, ob ich was finde.

Bis denne, gehabt euch wohl und viel Erfolg bei allem, was ihr tut & treibt - Moabyter
private Nachricht | Beiträge des Benutzers
Palladin007
myCSharp.de - Experte

Avatar #avatar-4140.png


Dabei seit:
Beiträge: 1.878
Herkunft: Düsseldorf

beantworten | zitieren | melden

Zitat von MoaByter
Nun, das Programm kenne ich in- und auswendig, da ist das nicht so schlimm
Ist das Projekt privat? Wenn nein: Bring das als Argument.
Bisher alle Projekte dieser Art, die ich kennen lernen "durfte", sind durch viele Hände gekommen und die "Einarbeitung", die ich bekommen habe, fand in 10 Minuten statt, gefolgt von einem "Ich weiß es doch auch nicht" und einem "Du machst das schon". Und hin und wieder kamen dann auch Feature-Requests, die bei der aktuellen Struktur nicht umsetzbar waren und ich saß dann in der Sch****. Oder die vielen Seiteneffekt-Bugs, mit denen ich nie im Leben gerechnet habe, weil ich mir so Zusammenhänge kaum vorstellen konnte

Jedes Refactoring ist extrem viel Arbeit und nicht nur deshalb auch ein extrem hohes Risiko.
Dass Du das Projekt so gut kennst, ist ein wirklich gewaltiger Vorteil für jedes Refactoring und für mich ein perfektes Argument, lieber jetzt damit anzufangen.
Zitat von MoaByter
Ich müsste mir also erstmal Gedanken machen, wie ich das Ganze strukturiere.
So fängt normalerweise jedes Projekt an und wird auch permanent so weiterentwickelt. ^^
Du hast jetzt - optimistisch formuliert - die glückliche Situation, deine alten Fehler zu sehen und daraus zu lernen.
Und Du hast die Möglichkeit, neu gelerntes einfließen zu lassen, da sind vielen Entwicklern bei alten Projekten die Hände gebunden, die müssen dann halt damit leben.

Zitat von Abt
Man muss halt auch sagen, dass der Designer eigentlich nur für Einsteiger gedacht ist und entsprechend die Features auch nur rudimentär sind (in fast allen IDEs ist das so).
Fortgeschrittene / Profis erstellen zu 90% die Events manuell - ohne Doppelklick-Designer; entsprechend gibts das Problem nur in gewissen Situationen.
In WinForms würde ich das so nicht unterschreiben, das finde ich ohne Designer kaum nutzbar.
private Nachricht | Beiträge des Benutzers
Palladin007
myCSharp.de - Experte

Avatar #avatar-4140.png


Dabei seit:
Beiträge: 1.878
Herkunft: Düsseldorf

beantworten | zitieren | melden

Zitat
Jetzt mal 'ne andere Frage: Hier gibt's doch 'ne Liste der Compiler-Fehler-Meldungen (CSxxxx), ich finde die aber nicht. Wo könnte ich Erfolg haben?

Such online danach, Du landest sehr wahrscheinlich auf der Doku-Seite von Microsoft und links davon die Liste der anderen Codes.
Es gibt aber noch mehr als nur "CS", z.B. auch viele Analyzer-Meldungen.
Zitat
Eine Frage kommt vielleicht noch - "SetAppartmentStaste" bei Tasks. CS1061. mal sehen, ob ich was finde.

Die Methode gibt's bei Tasks auch nicht, nur bei Threads.
Und selber setzen muss man das auch nur sehr selten.
Außerdem sind Tasks bzw. das async/await-Feature nichts, was man so "on the fly" lernen sollte, dafür solltest Du dir Zeit nehmen, um es wirklich zu verstehen.
private Nachricht | Beiträge des Benutzers
MoaByter
myCSharp.de - Member



Dabei seit:
Beiträge: 68
Herkunft: Berlin

Themenstarter:

beantworten | zitieren | melden

Ja, mehr oder weniger privat, als is' nur fürt mich.
Beispiel: RennInfo-Texte in 'ner word-Datei. Die öffne ich in meinem Programm, das speichert sie als *.html und ruft sie auf. Der Text wird dann passend umgewandelt, automatisch in Absätze unterteilt und "bereinigt". dann nur noch der Klick auf "Senden" und ich kann ander Dineg tun. Für sowas brauche ich 2 oder 3 Minuten mit allem drum und dran, bekomme aber 'ne halbe Stunde bezahlt. That's why! Und es gibt mehrere Bereiche, in denen ich arbeite. -> Anhang

Ich habe mir schon Gedanken gemacht, wie ich es aufbaue. Nur bin ich erst vor Kurzem auf das 3-Schichten-Modell gestoßen. Am Anfang war ich eher stolz, dass das Programm recht gut läuft, was es ja auch tut. Nur die Vielzahl der erweiterungen brachte mir dann die Probleme.

Alte Fehler - hihihi - naja, da hat's reichlich. Ich studiere mal wieder das Handbuch, dicke Schwarte von Galileo-Computing. Die Microsoft-Seiten sind nicht immer hilfreich, weil ich oft nur die Hälfte verstehe oder die Tipps nicht anpassen kann.

Das Programm ändern kann ich sowieso nicht. Ich muss es tatsächlich neu schreiben, denn es muss ja weiter funktionieren - is' mein Minijob. Da brauche ich es mehrmals täglich.

Ja, is' WinForms, kerin WPF. Mit dem kam ich nicht klar, müsste ich mal wieder versuchen.
private Nachricht | Beiträge des Benutzers
MoaByter
myCSharp.de - Member



Dabei seit:
Beiträge: 68
Herkunft: Berlin

Themenstarter:

beantworten | zitieren | melden

ah. der Anhang...
Attachments
private Nachricht | Beiträge des Benutzers
MoaByter
myCSharp.de - Member



Dabei seit:
Beiträge: 68
Herkunft: Berlin

Themenstarter:

beantworten | zitieren | melden

An den Tasks bin ich schon 'ne ganze Weile, nach Deleagten/Invoke und Threads sind die jetzt dran, die sollen ja viel einfacher sein. Ist so schwer auch nicht - bis auf die Stolpersteine: SetApp... z.B., denn diese Fehlermeldung bekomme ich. Dazu werde ich 'nen neuen Thread aufmachen, muss nur schauen, wie ich den Code einbringe. Da heißt's zwar Thraeds, aber ist halt in eine(r/m) Task.
Attachments
private Nachricht | Beiträge des Benutzers
Palladin007
myCSharp.de - Experte

Avatar #avatar-4140.png


Dabei seit:
Beiträge: 1.878
Herkunft: Düsseldorf

beantworten | zitieren | melden

Zitat
Die Microsoft-Seiten sind nicht immer hilfreich, weil ich oft nur die Hälfte verstehe oder die Tipps nicht anpassen kann.
Dann solltest Du dich bemühen, die andere Hälfte zu verstehen.
Oder Du fragst hier um Hilfe.
Zitat
Ja, is' WinForms, kerin WPF. Mit dem kam ich nicht klar, müsste ich mal wieder versuchen.
Ob WPF für deinen Umfang besser geeignet ist, kann ich nicht beurteilen, da der gute Umgang in einigen Punkten schon schwieriger ist.
Ich würde sagen: Ja, auf jeden Fall, aber ich muss auch nicht mehr die anfängliche Hürde nehmen.
So oder so wirst Du da aber nicht drum herum kommen, da WPF viele Themen groß gemacht hat, die noch heute viel genutzt werden - z.B. MVVM.
Also selbst wenn WPF in den nächsten Jahren schlagartig vom Markt verschwinden würde - die Erfahrungen waren es wert.
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16.306

beantworten | zitieren | melden

WPF wird ganz ganz locker einige Entwickler noch bis in die Rente begleiten.
private Nachricht | Beiträge des Benutzers
MoaByter
myCSharp.de - Member



Dabei seit:
Beiträge: 68
Herkunft: Berlin

Themenstarter:

beantworten | zitieren | melden

MVVM - ja, davon hab' ich schon gelesen. Da bin ich noch am Grübeln, wie ich das umsetze. Aktuell ist mein Programm vor allem schnell, was nach Möglichkeit so bleiben sollte. Da ist allein schon Invoke ein Hindernis: "dgv.Invoke..." - und das 50-150 mal - dauert.

Ich frag' doch, wenn ich nicht weiter weiß. Bin doch da! :-))

Vieles finde ich schon auch selbst im Web. Das hat den Vorteil, dass ich auch zu anderen Themen Ideen finde, die sind bei mir schon eingeflossen.
Die genannten Konzepte sind für mich durchaus ein Thema, meist hakt's an den Ideen und Entscheidungen für's Umsetzen.
Es ist schade, dass ich in meinem Bekanntenkreis keine Programmierer habe, zwei Admins zwar, aber die können's nicht (richtig).
Der Rest sind Lehrer und ein Elektromeister. Elektriker war mein Job bis vor etwa 15 Jehren.
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16.306

beantworten | zitieren | melden

Mikro-Optimierungen sind in 99,9% der Fälle unnötig, wird falsch angegangen oder am Ende kontraproduktiv. Ich rate mal ins Blaue, dass Du bzw. die App in Deiner Situation weit von weg bist/ist.
Du wirst mehr profitieren, wenn Du Code hast, den Du verstehst, umsetzen und warten kannst.

Zu denken, dass Dich ein Software Pattern langsam machen könnte, ist der falsche Weg.
private Nachricht | Beiträge des Benutzers
MoaByter
myCSharp.de - Member



Dabei seit:
Beiträge: 68
Herkunft: Berlin

Themenstarter:

beantworten | zitieren | melden

Tut's schon, bin Rentner. Seit 1. Januar. :-))
private Nachricht | Beiträge des Benutzers
MoaByter
myCSharp.de - Member



Dabei seit:
Beiträge: 68
Herkunft: Berlin

Themenstarter:

beantworten | zitieren | melden

Die Laufzeit ist allerdings nicht wirklich ein Problem - auch wenn ich mit daran denke.

Nun, den Code, den ich einsetze/schreibe, verstehe ich auch, was beim Delegaten zuerst wirklich ein Problem war. Aber Threading und Tasks sind doch recht einfach. Mir fehlt wohl eher der Überblick über die Möglichkeiten, denn oft genug gibt's mehrere Wege, eine Aufgabe zu lösen.
private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 4.587

beantworten | zitieren | melden

Hallo,
Zitat von MoaByter
Mittlerweile sind alle Dateien zusammen - ohne generierten Code und ohne Kommentarzeilen - vielleicht 10-, 12tsd Zeilen, wobei die Form1 mit 3,5tsd Zeilen den größten Anteil hat.
Verwendest du denn UserControls (auf deutsch: Benutzersteuerelemente) für deine einzelnen Teile der Form (z.B. jedes Tab als eigenes UserControl, evtl. auch, entsprechend deines Screenshots, einzelne Tab-Teile, wie "Informationen" oder "Codewandler")? Dadurch verlagerst du den Code auf mehrere Klassen (jedes UserControl hat eine eigene Code- und Designerdatei) und hast nicht mehr eine riesige Form-Codedatei. Du mußt jedoch dann vernünftige Schnittstellen (Methoden, Eigenschaften, Ereignisse) für diese UserControls anbieten, wenn es Interaktionen zwischen den UserControls bzw. der Form gibt.
private Nachricht | Beiträge des Benutzers