Moin !
Ich habe am WE versucht meinen Formularcode durch "partial class" auf verschiedene CS Dateien aufzusplitten.
Das hat auch soweit funktioniert bis auf zwei Merkwürdigkeiten:
Mein Test bestand übrigens aus dieser zustätzlichen Code Datei:
namespace Part_test
{
partial class Form1
{
private void btnbutton1_Click(object sender, EventArgs e)
{
MessageBox.Show("Hallo Welt!");
}
}
}
Ist das so gewollt in VS2010? Mache ich etwas grundlegend falsch?
Oder anders gefragt ... Kriegt man VS dazu beim Doppelklick auf eine zusätzliche Code Datei direkt den Code anzuzeigen und nicht ein leeres Forumlar und bei Eventhandlern z.B. in die richtige Datei zu springen?
Greetz Dominik
Hallo,
Mache ich etwas grundlegend falsch?
Ja - überdenke die Architektur der Anwendung. Eine Aufteilung in mehrer partielle Klassen ist nicht sinnvoll (außer die vom Designer erzeugte).
Suche mal im Forum danach - das wurde schon einige male diskutiert.
Aus dem Grund dass es schlechter Stil ist gehe ich auf die anderen Frage nicht ein.
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
Moin !
Ohje, habe gerade auch im Web noch etwas geforscht.
Ok, ich werde es als Versuch abtun und den Code eher mit Regions strukturieren 🙂
Danke dennoch.
Greetz Dominik
Eine Aufteilung in mehrer partielle Klassen ist nicht sinnvoll (außer die vom Designer erzeugte).
Möchte ich so pauschal nicht stehen lassen. Es ist in einigen wenigen! Fällen durchaus ganz hilfreich, wenn z.b. 2 Entwickler an der gleichen Klasse arbeiten müssen(nicht toll aber kommt schon mal vor). Da ist SVN Stress vorprogrammiert. Partielle Klassen können da schon mal sinnvoll sein.
Partielle Klassen hier bitte nicht weiter diskutieren. Dazu gibt es schon genügend eigene Threads.
Hallo moelski,
auch das ist suboptimal. Suche mal nach Regions im Forum.
Zerlege die Anwendung bzw. das was die Form machen soll besser in einzelne logische Komponenten und rufe von der Form aus nur die Methoden dieser Komponenten auf. Beachte dabei [FAQ] Warum blockiert mein GUI?
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"
Hallo moelski,
also ich arbeite lieber mit partial als mit regions, daher kann ich Dir hier ein bisschen weiter helfen:
1.) Das öffnen der Dateien
öffne mit der rechten Maustaste über einem File das Contextmenü und wähle dort "Open With...". Dort kannst Du dann den "CSharp Editor" als default setzen und ab sofort öffnet sich bei einem Doppelclick immer der Editor.
2.) Events werden aus dem Designer immer in das Hauptformular eingefügt und auch dort gesucht. Man sollte ja sowieso immer aus den Events eine Methode aufrufen und diese kannst Du dann in einem anderen File unterbringen.
mfG
Thomas
Was mach vielleicht noch zu partial
/ regions
sagen sollte, um die Diskussionen darüber zusammenzufassen:
Darüber, ob man beide dazu verwenden sollte, Code zu strukturieren, existieren verschiedene Meinungen - in jedem Fall sind sie kein Ersatz für unzureichende Architektur und kein Mittel gegen daraus entstehende "Monsterklassen".
Moin !
@thomas.at:
Danke für die Infos !
in jedem Fall sind sie kein Ersatz für unzureichende Architektur und kein Mittel gegen daraus entstehende "Monsterklassen"
Gibt es denn hier im Forum (oder generell im Web) einen Artikel über Architektur Tips bzw. eine art "Guideline"?
Oder eine Liste mit Vorschägen die man bei einer (in meinem Fall WinForms) Anwendung vermeiden sollte?
Grüße Dominik
Greetz Dominik
Hallo moelski,
das was du suchst wurde mehr oder weniger alles schon mal im Forum diskutiert. Da deine Frage jedoch zu allgemein ist kann ich keinen Link posten der das alles abdeckt.
Interessant im Zusammenhang mit region, etc. sind aber Codegestaltung, Übersichtlichkeit und NoGo's? und Kommentare (und Regions) zur optischen Gliederung (z.B. Trennlininen) einsetzen: Best Practice?
mfG Gü
Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.
"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"