Laden...

Einsteigerfragen: Erstes Windows Formsprogramm

Erstellt von Datensalat vor 2 Jahren Letzter Beitrag vor 2 Jahren 655 Views
D
Datensalat Themenstarter:in
8 Beiträge seit 2022
vor 2 Jahren
Einsteigerfragen: Erstes Windows Formsprogramm

Hallo,
Ich habe früher schon Windows Forms unter VBA programmiert. Jetzt möchte ich auf C# umsteigen, um das zu lernen.

Jetzt sind einige Fragen aufgekommen, auf die ihr sicher Antworten habt:

  • Bei Microsoft habe ich ein Beispiel gefunden, wo steht dass man als Projekt NICHT "Windows Forms App (.NET Framework)", sondern "Windows Forms App" erstellen soll.
    Ich brauche aber das Serial Port Control - und das habe ich nur bei "Windows Forms App (.NET Framework)" gefunden.
    Hat ein "Windows Forms App (.NET Framework)"-Projekt Nachteile?
  • Die Serial Port Komponente ist in der partial class frmMain als private definiert. Muss ich dann meine Methoden die diese Komponente benutzt, innerhalb von frmMain definieren?
  • In welche Datei schreibt man seinen eigenen Code / Klassen? Program.cs - Innerhalb namespace WindowsFormsApp1? Alles innerhalb partial class frmMain?
  • In einem Consolen-Projekt gibt es beim Serial Control(?) die Liste der Ports. In WinForms finde ich die nicht. Gibt es einen Ersatz / eine Möglichkeit da ranzukommen?
    Danke für eure Hilfe.
4.939 Beiträge seit 2008
vor 2 Jahren

Hallo,

in dem anderen Beitrag hatte ich dir den Link auch schon auf das neue .NET 6 gegeben (d.h. nimm "Windows Forms App" als Projekt) [".NET Framework" bezieht sich auf die früheren .NET-Versionen 1.x - 4.x).
Dort dann über den PaketManager NuGet das Paket System.IO.Ports einbinden (installieren).
Es kann aber sein, daß diese Komponente dann nicht direkt über die ToolBox (im Designer) verfügbar ist.
Aber es ist sowieso besser, diese Komponente in einer eigenen Klasse zu kapseln (anstatt in einer Form-Klasse), da diese entsprechend [Artikel] Drei-Schichten-Architektur zur Datenzugriffsschicht gehört.

Suche dir am besten mal ein (neueres) WinForms-Tutorial oder Beispielprojekt (z.B. auf github), um zu sehen, wie man die Aufteilung am besten macht.
In meinen eigenen Artikel Kommunikation von 2 Forms gibt es ganz unten auch ein Beispielprojekt zum Herunterladen (zwar noch mit .NET Framework entwickelt, sollte jedoch SourceCode-kompatibel mit dem aktuellen .NET 6 sein).

Deine letzte Frage verstehe ich nicht so ganz. Die Liste der Ports gibt es über die Methode GetPortNames() (egal in welchem Projekt).

190 Beiträge seit 2012
vor 2 Jahren
  • Wer lesen kann, ist klar im Vorteil
  • Meistens sitzt der Fehler vorm Monitor
  • "Geht nicht" ist keine Fehlermeldung!
  • "Ich kann programmieren" != "Ich habe den Code bei Google gefunden"

GidF

D
Datensalat Themenstarter:in
8 Beiträge seit 2022
vor 2 Jahren

Vielen Dank euch beiden!
Das mit NuGet war mir völlig neu 😲.
Ja, habe ich ja auch bemerkt, dass es besser ist den Serial Port in einer eigenen Klasse zu haben.
Jetzt habe ich wieder einiges durchzuarbeiten...

D
Datensalat Themenstarter:in
8 Beiträge seit 2022
vor 2 Jahren

...und jetzt habe ich nochmal Fragen:
Ich habe zuhause Win7 und VS2019, in der Arbeit Win10 und VS2020(?)...

  • Habe jetzt (zuhause) ein neues Win.Forms App Projekt aufgemacht und er fragt, ob ich .Net Core 3.1 oder .NET 5.0 (aktuell) will. Was ist für mich besser?
  • Ich habe schon im falschen .Net- Projekt das Haupt-Form-Fenster mit Controls gefüllt. Wie bekomme ich das ins neue, "leere Projekt"? Kann ich einfach die *.cs-Dateien reinkopieren / überschreiben?
16.834 Beiträge seit 2008
vor 2 Jahren

Du wirst nicht drum herum kommen, Dich mit der Dokumentation von .NET beschäftigen zu müssen.
Es ist nicht ganz so fair, wenn Du hier dutzende Fragen auflistest in der Hoffnung, dass jemand für Dich das Zeug aus der Doku zitiert.
Bisschen Eigenständigkeit wär schon cool 😉

Was ist für mich besser?

Woher sollen wir das wissen...? Das kannst nur Du Dir beantworten.
Aber schon nach scharfer Überlegung: warum .NET 3.1 wenn .NET 6 das aktuelle ist, wo ist der Sinn dieses Vergleichs?
.NET 3.1 ist auch bald aus dem Support. .NET and .NET Core official support policy

Kann ich einfach die *.cs-Dateien reinkopieren / überschreiben?

Wieso probierst Du es nicht einfach aus?

D
Datensalat Themenstarter:in
8 Beiträge seit 2022
vor 2 Jahren

Vielen Dank nochmals.
Ok, ich nerv' euch nicht weiter...

16.834 Beiträge seit 2008
vor 2 Jahren

Ist nicht notwendig zickig zu reagieren, wenn Du einfach nur auf die Doku verwiesen wirst.
Keiner hier hat Dir den Kopf abgerissen oder Dich verwiesen.

Ist halt die harte Realität von Software Entwicklung, dass man viel (Doku) lesen muss.

D
Datensalat Themenstarter:in
8 Beiträge seit 2022
vor 2 Jahren

Oh, entschuldigung, so war das wirklich nicht so gemeint.
Nein, das war selbstkritisch gedacht.
War mir nicht bewusst, dass man das so auffassen könnte.
Und ja ich werde mir die verfügbaren Dokus in Ruhe anschauen.
Schöne Ostern noch.

M
368 Beiträge seit 2006
vor 2 Jahren

Weiterhin bedeutet eine neuere .NET Runtime 5+ auch ein verändertes Verhalten bei z.B. Strings und Unicode: Behavior changes when comparing strings on .NET 5+

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