Laden...

Codedatei auslagern und einbinden?

Erstellt von LittleTester vor 2 Jahren Letzter Beitrag vor 2 Jahren 644 Views
L
LittleTester Themenstarter:in
158 Beiträge seit 2019
vor 2 Jahren
Codedatei auslagern und einbinden?

Ich würde gerne meinen Code etwas aufräumen und sortierter halten.
Ich dachte ich mache einfach eine eigene *.cs-Datei in das Projekt, aber so einfach scheint das nicht zu laufen. Jedenfalls wird in der neuen *.cs-Datei nichts erkannt was in der Form1.cs steht. Wie integriere ich die *.cs-Datei ordentlich in mein Projekt oder wonach muss ich suchen?

IDE: Visual Studio 2022
Sofern nicht anders genannt basieren meine Projekte auf C# und .net 6

463 Beiträge seit 2009
vor 2 Jahren

Ich weiß jetzt nicht genau ob du gerade wirklich frägst wie man eine Datei einem Projekt hinzufügt - oder ich ich deine Frage komplett falsch verstanden habe.

Sollte es wirklich darum gehen einem Projekt eine Datei hinzuzufügen:

  • Rechte Maustaste über dem Ordner wo du die Datei im Projekt hinzufügen möchtest
  • Hinzufügen - Klasse
  • Filenamen eingeben
  • Hinzufügen

erledigt - aber dies kann doch nicht wirklich deine Frage gewesen sein, oder? Ansonsten muss natürlich der **namespace **und die Klassennamen passen.

Stefan

4.938 Beiträge seit 2008
vor 2 Jahren

Du suchst wohl das Schlüsselwort partial ?
Das ist aber selten eine gute Idee, den Formklassen-Code auf mehrere Dateien aufzuteilen - besser ist es, nicht formbasierten Code (z.B. Logik, IO, Utiltiy) daraus in eigene Klassen auszulagern (und dann diese Methoden aufzurufen).

L
LittleTester Themenstarter:in
158 Beiträge seit 2019
vor 2 Jahren

Also wie ich die *.cs-Datei erstelle weis ich. Deswegen habe ich nicht nachgefragt.

Ich versuche genauer zu erklären, was ich vor habe.

Mein Systeminventory ist in mehrere Bereiche unterteilt. Hardware, System, Monitor, Software Allgemein und Software Lizenzkontrolle.
Nun könnte ich das alles in der Form.cs abarbeiten und habe am Ende über 1000 Zeilen Code in einer Datei. Ob das mit der kommenden Version besser wird, die komplett anders aufgezogen werden soll wird sich zeigen. Der Plan besteht nun darin für all die einzelnen Bereiche eine eigene *.cs-Datei anzulegen, also beispielsweise hardware.cs, system.cs und so weiter.

Nur mit Datei erstellen und loslegen ist es scheinbar nicht getan. Irgendwie muss ich der Datei noch sagen, dass die Form1.cs die Hauptdatei ist, in der sich u.A. alle Deklarationen, Initialisierungen oder vielleicht auch mal Methoden oder Klassen befinden, also sowas wie


bool isOnline = false;
string hardwareComputerName;

Ich denke dann wirkt alles etwas aufgeräumter und übersichtlicher.

IDE: Visual Studio 2022
Sofern nicht anders genannt basieren meine Projekte auf C# und .net 6

T
2.221 Beiträge seit 2008
vor 2 Jahren

Klingt ermal nach dem kompletten fehlen einer Software Architektur.
Scheinbar habt ihr euren Code nur in der Form.cs umgesetzt ohne grundlegende Konzepte der OOP sowie der Modularisierung zu beachten, was ihr jetzt im Nachgang angeht.
Es wäre besser hier die UI Daten zu abstrahieren, damit man diese an andere Klassen durchreichen kann (Viewmodel).
Den Code dann in entsprechende Klassen aufzuteilen ist dann nur noch Tipparbeit.

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.

L
LittleTester Themenstarter:in
158 Beiträge seit 2019
vor 2 Jahren

Nicht "ihr", sondern "du". Ich bastel da alleine in meinem Kämmerlein und bis auf euch und den Rest des Internets habe ich auch niemanden der mir da hilft.

Und ja, mir ging es erstmal darum was funktionierendes zu haben. Das war mir extrem wichtig. Habt ihr sicher auch gemerkt. Das hatten wir (also ich und die Community) ja im letzten halben Jahr erfolgreich hinbekommen. Dafür nochmal Danke an dieser Stelle. Ich bin damit echt schon total glücklich und macht mir die Arbeit angenehmer. Jetzt habe ich den Kopf frei mich darauf zu konzentrieren das Projekt komplett neu und professioneller anzugehen.

Ich migriere das bestehende Projekt auch nicht, sondern habe es komplett neu auf Basis von VS 2022 und .net 6 begonnen. Bislang gibt es nur die GUI. Jetzt sollen Aspekte, wie ihr sie mir schon lange vorgeschlagen habt, mir aber noch zu kompliziert waren, mit einbezogen werden, beispielsweise ASP.NET Core, Rest-API und so. Auch das Web-Backend will ich anders machen und auf Grundlage von Symfony und Bootstrap arbeiten. Jetzt ist es mir auch egal, ob es länger dauert bis ich die neuen Techniken gelernt und (hoffentlich) verstanden habe denn ich habe bereits was mit dem ich arbeiten kann.

Ich habe auch auf Udemy einige Kurse zu den Themen gekauft, die ich durcharbeiten möchte.

IDE: Visual Studio 2022
Sofern nicht anders genannt basieren meine Projekte auf C# und .net 6

M
368 Beiträge seit 2006
vor 2 Jahren

Kurzgefasst sollte man die Teile der Software, die sich selten (oder gar nicht) ändern, zusammenfügen und die sich schneller ändernden Teile auslagern (Stichworte z.B.: Modulithen, Macroservices, Microservices). Beim konkreten Projekt könnte man die 'alten' Ideen als Vorlage für ein neues Produkt verwenden (unter Benutzung einer Architektur...)

Goalkicker.com // DNC Magazine for .NET Developers // .NET Blogs zum Folgen
Software is like cathedrals: first we build them, then we pray 😉

309 Beiträge seit 2020
vor 2 Jahren

Ich habe auch auf Udemy einige Kurse zu den Themen gekauft, die ich durcharbeiten möchte.

Da brauchst du eigentlich nicht mal Geld ausgeben: C# with CSharpFritz - Windows Forms and the MVP Design Pattern for Unit Testing - YouTube
Ob das die richtige "Architektur" für deine Anwendung ist sei mal dahingestellt.
Allerdings sieht man bei dem Beispiel gut, wie einfach man eine WinForms-Anwendung aufteilen und testbar machen kann.