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
Codedatei auslagern und einbinden?
Little Tester
myCSharp.de - Member



Dabei seit:
Beiträge: 120

Themenstarter:

Codedatei auslagern und einbinden?

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
Stefan.Haegele
myCSharp.de - Member

Avatar #avatar-3068.jpg


Dabei seit:
Beiträge: 457
Herkunft: Untermeitingen

beantworten | zitieren | melden

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
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Stefan.Haegele am .
private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 4.355

beantworten | zitieren | melden

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).
private Nachricht | Beiträge des Benutzers
Little Tester
myCSharp.de - Member



Dabei seit:
Beiträge: 120

Themenstarter:

beantworten | zitieren | melden

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.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Little Tester am .
IDE: Visual Studio 2022
Sofern nicht anders genannt basieren meine Projekte auf C# und .net 6
private Nachricht | Beiträge des Benutzers
T-Virus
myCSharp.de - Member



Dabei seit:
Beiträge: 1.977
Herkunft: Nordhausen, Nörten-Hardenberg

beantworten | zitieren | melden

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
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von T-Virus am .
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.
private Nachricht | Beiträge des Benutzers
Little Tester
myCSharp.de - Member



Dabei seit:
Beiträge: 120

Themenstarter:

beantworten | zitieren | melden

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.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Little Tester am .
IDE: Visual Studio 2022
Sofern nicht anders genannt basieren meine Projekte auf C# und .net 6
private Nachricht | Beiträge des Benutzers
M.L.
myCSharp.de - Member



Dabei seit:
Beiträge: 291

beantworten | zitieren | melden

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 ;-)
private Nachricht | Beiträge des Benutzers
JimStark
myCSharp.de - Member

Avatar #dOpLzh7hN1az1g0eGRc0.jpg


Dabei seit:
Beiträge: 306

beantworten | zitieren | melden

Zitat von Little Tester
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.
private Nachricht | Beiträge des Benutzers