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

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von T-Virus
Thema: Windows Dienst kann nicht (mehr) installiert werden
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Direkte Suche nach LoaderExceptions liefert bei Google pasende Treffer.

Bsp:
https://social.msdn.microsoft.com/Forums/de-DE/beb88a42-6b2d-4d69-9aae-9a0a09fb4189/howto-retrieve-the-loaderexceptions-property-for-more-information-?forum=vcgeneral
how-to-retrieve-the-loaderexception-property

T-Virus

Thema: WebAPI POST CreatedAtAction Fehlermeldung
Am im Forum: Web-Technologien

Müsste im Header bei Accept nicht auch application/json stehen?
Dort ist aktuell text/plain eingetragen.
Ansonsten sieht es auf den ersten Blick korrekt aus.
Hast du auch die Default Route gesetzt bzw. wie sehen die Routing Einstellungen aus?

T-Virus

Thema: DataGridview Dynamische Farbe
Am im Forum: GUI: Windows-Forms

Und dazu auch das doppelte if, Abfrage ist die gleiche!
Dann kannst du einfach in einer Schleife in einem Rutsch beides setzen.

T-Virus

Thema: Wert aus Viewmodel an ein anderes Model/Viewmodel übergeben
Am im Forum: GUI: WPF und XAML

@Gasimodo
Ah okay, steht auch im Artikel ganz unten.
Bin halt nicht ganz fit in WPF.

T-Virus

Thema: Kommunikation WindowsService -> WPF
Am im Forum: GUI: WPF und XAML

Wie soll den die Kommunikation laufen?
Nur lokale Kommunikation oder soll dein Service auch mit einer App auf einem anderen Rechner kommunizieren?

Bei lokaler Kommunikation kann man ggf. via Pipe kommunizieren.
Bin aber nicht sicher ob das bei Windows Services erlaubt ist, hab selbst noch keinen gebaut

WCF Services kannst du auch lokal selbst hosten, da braucht es kein extra Webserver o.ä.
Je nachdem mit welcher .NET Version du arbeitest und zukünftig arbeiten willst, würde ich aber auf alternativen setzen.
Ab .NET Core/ 5+ würde ich nicht mehr mit WCF arbeiten, wird auch nicht mehr weiterentwickelt.
Wenn du aber auf Framework hängen bleiben willst, kannst du dies aber machen.

T-Virus

Thema: Wert aus Viewmodel an ein anderes Model/Viewmodel übergeben
Am im Forum: GUI: WPF und XAML

Bin jetzt kein WPF Spezi aber du implementierst das INotifyPropertyChanged nicht korrekt!
Deine ViewModel müssen dies beim setter der Properties mit dem Namen (nameof(Property)) aufrufen.
Sonst kann auch eine Änderung an den Models nicht ermittelt werden!

Ebenfalls fehlt deiner Klasse MessageViewModel ein public vor dem class.
Dadurch ist diese per default als privat markiert!
Ist auch bei deinem CustomerViewModel der Fall.

Nachtrag:
Hier noch der Artikel für die Implementierung:
[Artikel] INotifyPropertyChanged implementieren

Nachtrag 2:
Beim Binding hast du als Mode OneWay.
Müsste hier nicht TwoWay stehen?
Bin jetzt nicht sicher ob OneWay von Code oder Xaml Seite betrachtet wird.

T-Virus

Thema: Exchange 2022 Bug
Am im Forum: Smalltalk

@Abt/Papst
Der Grund für solche Kodierungen ist mir durchaus klar.
Ich programmiere z.B. TCP/UDP Server zum entfangen von Daten von GPS Boxen.
Dort sind die Daten auch unterschiedlich kodiert und teilweise nicht sauber dokumentiert.

Dort haben wir dann auch mal Varianten ähnlich wie bei diesem Bug.
Bei einigen Boxen scheint es auch ein ähnliches Problem zu geben, hier erhalten wir plötzlich bei zweistelligen Datumsangaben anstelle von 21 dann wieder 00.
Entsprechend mussten wir auch schon Boxen updaten/austauschen da diese auch schon EoL sind.

Ansonsten scheint Microsoft auch schon schnell reagiert zu haben.
Ein Fix ist wohl auch schon da
Ist also nur ein unglücklicher Fall, der aber relativ fix behoben wurde.

Golem.de: IT-News für Profis

T-Virus

Thema: ASP Core Nutzer in Xamarin nutzen
Am im Forum: Web-Technologien

Fertige Lösungen wären ggf. OAuth oder OpenID.
Wir haben hier eine eigene Api, die ebenfalls App User über eine Web Api Authentifiziert.
Dazu nutzen wir eine Eigenentwicklung, sollte man wenn möglich aber nicht machen.
Ich denke mit den beiden hast du eine gute Ausgangsbasis.

T-Virus

Thema: Exchange 2022 Bug
Am im Forum: Smalltalk

Was mich daran mehr stört ist die Art des Fehler.
Dort wird Datum und Uhrzeit als signed int32 codiert.
Dies führte aber genau ab 2022 zu einem Überlauf, was sich zwar mit uint32 für einige Jahre beheben liese, aber auch dann nicht sinnvoll gelöst wäre.
Für solche Dinge sollte man immer einen entsprechenden Timestamp Datentyp verwenden.

https://twitter.com/jroosen/status/1477120097747677184

T-Virus

Thema: Guten Rutsch und alles Gute in 2022!
Am im Forum: Ankündigungen

Danke und euch ein frohes neues
Feiert schön und hoffentlich wird das neue Jahr etwas besser.

T-Virus

Thema: Klasse für DateTime.Picker
Am im Forum: Grundlagen von C#

Und anstelle von String.Format zum bauen der Strings samt einfügen der Werte auch SqlParameter nutzen.
Sonst kannst du dir durch manipulierte Werte z.B. durch Strings einfach eine SQL Injection einfangen.
Schau dir dazu SqlParameter an!

Artikel dazu:
[Artikelserie] SQL: Parameter von Befehlen

Nachtrag:
Anbei setzt du deine Values auch alle in Hochkomma ('')
Kannst du dir mit den Sql Parametern sparen, dass kümmert sich dann um alles weitere.
Du musst dann nur die Platzhalter einfügen.

Nachtrag 2:
Pasend zu dem Hinweis von Wilfried der Artikel dazu:
[FAQ] DateTime vs. DateTimeOffset und der Umgang mit Zeiten in .NET

T-Virus

Thema: Schreiben eines Streams in ein Byte-Array mit Stream-Length
Am im Forum: Grundlagen von C#

Das Beispiel soll eigentlich nur die Nutzung von Read illustrieren.
Bei Dateien ab 2,4 GB Größe würde das Beispiel die Datei abschneiden, dass stimmt schon.
Hier kannst du gerne einen Fehler melden, falls dich das stört.

Ansonsten würde ich den Stream nie so verarbeiten.
Hier sollte man solange Read aufrufen, bis der Wert ≤ 0 geliefert wird.
Dann ist man am Ende des Streams angekommen egal wie lange dieser war.

Die Length kann man z.B. verwenden um bei kleinen Dateien ein Array zu erstellen und die Daten in einem Rutsch zu lesen oder um eine Art Progress anzuzeigen.
Dabei muss man aber beachten, dass dieser u.U. nicht immer direkt zur Verfügung steht.
Bei einer lokalen Datei ist das kein Problem, bei einem Stream z.B. über http hingegen muss erst ein Read erfolgen.

T-Virus

Thema: Sammelthema Wünsche und Bugreports myCSharp
Am im Forum: Wünsche und Kritik

Was vielleicht hilfreich wäre, wäre für einen TE ein "gelöst" Button der automatisch in den Titel einfügt, dass das Thema gelöst wurde.

T-Virus

Thema: label1.Text und +=
Am im Forum: Grundlagen von C#

Im einfachsten Fall kannst du das auch auf eine Zeile mit String.Join umschreiben.


label1.Text = String.Join('\n', System.Drawing.Printing.PrinterSettings.InstalledPrinters);

T-Virus

Thema: Codedatei auslagern und einbinden?
Am im Forum: Grundlagen von C#

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

Thema: [Artikel] myCSharp.de läuft auf .NET 6
Am im Forum: Artikel

Das ist echt toll
Mal schauen was zukünftige .NET Updates noch alles rausholen können
Gibt es hier auch ein paar Zahlene wie sich z.B. die Requests pro Sek. verbessert haben?
Diese dürften sich vermutlich auch verbessert haben ohne weiteres zutun.

T-Virus

Thema: [Artikel] myCSharp.de läuft auf .NET 6
Am im Forum: Artikel

Mich würde interessieren ob/was für Änderungen von eurer Seite gemacht wurden.
Vermutlich habt ihr auch einige Stellschrauben gedreht um da noch etwas besseres Verhalten zu bekommen.
Wenn diese Änderungen ohne euer Zutun nur durch einen Wechsel von .NET 5 auf 6 kamen, wäre das schon sehr beeindruckend.

T-Virus

Thema: Sicherheitsaspekte bei FTP
Am im Forum: Netzwerktechnologien

Zur Übertragung würde ich auch eine REST Api empfehlen.
Das ganze sollte aber dann pber Https laufen, damit die Daten/Bilder nicht einfach mitgelesen werden können.

Der Dateityp selber sollte sich via Mime ermitteln lassen.
Dafür bietet .NET auch schon einige Klassen.

T-Virus

Thema: SQL Abfragen beschleunigen oder verbessern
Am im Forum: Datentechnologien

Ein erster Ansatz wäre das ganze in einer SQL Anweisung per IF NOT EXISTS zusammen zufassen.
Damit kannst du die Prüfung zusammenlegen.
Ebenfalls macht es bei der Menge an Abfragen auch Sinn diese in eine Transaktion zu kapseln bzw. mehrere Abfragen in einer Transaktion auszuführen.
Somit müsstest du anstelle von z.B. 150.000 Abfragen entweder nur eine große oder mehrere mit N Abfragen ausführen.
Dadurch sparst du schon einmal einiges an Laufzeit zwischen DB und deiner Anwendung aus!

SqlTransaction Doku

Nachtrag:
Beispiel für If Not Exists.


string sql = "IF NOT EXISTS(SELECT timeslot , [date] FROM data_" + idUser.ToString().Remove(0, 2) + " WHERE timeslot = @pTimeSlot AND [date] = @pDate)"
"INSERT INTO data_" + idUser.ToString().Remove(0, 2) +" ([date], [timeslot], ["+  dvd.ValueFieldID.ToString("D3") + "_value], [" + dvd.ValueFieldID.ToString("D3") + "_textid]) VALUES (@pDate, @pTimeSlot, @pValue, @pTextID)"
"UPDATE data_" + idUser.ToString().Remove(0, 2) + " SET [" + dvd.ValueFieldID.ToString("D3") + "_value] = @pValue, [" + dvd.ValueFieldID.ToString("D3") + "_textid] = @pTextID WHERE timeslot = @pTimeSlot AND date = @pDate"

Ebenfalls solltest du die ganzen String Operationen wenn möglich los werden.
Diese führen zu unnötig vielen Objekten, die dann erst mal weggeräumt werden müssen.

Nachtrag 2:
Ebenfalls solltest du auf die where Spalten (timeslot, date) einen Index setzen.
Dadurch dürfte schon einiges an Performance rausgeholt werden können.

Nachtrag 3:
Welchen Sinn haben die ganzen textid/value Spalten?
Das sieht nicht nach einer normalisierten Tabelle aus.
Vermutlich macht es mehr Sinn, dass du nur ein TextId, Value und eine extra ID Spalte hast.
Aber hier müsste man wissen, welchen Sinn die Spalten haben sollen.

T-Virus

Thema: PDF-Datei in PostgreSQL speichern
Am im Forum: GUI: Windows-Forms

Oid kann nicht stimmen.
Dabei handelt es sich um einen Object Identifier Typen.
Was du eher brauchst wäre bytea als Byte Array.
Entsprechend muss auch die Datenbank den Typen in der Spalte haben.
Ansonsten passt dein Code nicht zu deinem Vorhaben.

Ansonsten noch ein paar Vorschlägt.
Du kansnt du Datei auch über File.ReadAllBytes auslesen, das spart den FileStream und ein paar Zeilen.

Nutz auch bei der Verbindung/Command etc. using um diese immer frei zugeben.
Oder ruf direkt Dispose auf, was du z.B. beim Command nicht machst.

Es wäre hier auch sinnvoller Dateien nicht in der Datenbank zu speichern.
Diese blähen i.d.R. nur die Datenbank auf.
Diese sollten vielmehr im Dateisystem abgelegt werden und in der Datenbank nur Verweise via den Dateipfad enthalten.

T-Virus

Thema: Form nur beim ersten Programmstart aufrufen
Am im Forum: Rund um die Programmierung

Kannst du z.B. über einen Key in der Registry machen.
Wenn dieser nicht gesetzt ist, dann die Änderungen anzeigen und den Key setzen.
Dann wäre beim nächsten Start der Key da und du musst nichts anzeigen.

T-Virus

Thema: Projekt auf .Net 6.0 upgraden
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Von .NET Framework kansnt du nicht einfach auf .NET Core/5/6 updaten.
Du musst ein neues Projekt anlegen und deinen Code manuell übernehmen.

.NET Framework ist die alte Welt, 5+ die neue Welt.
Da es zu große technische Umbrüche gibt, kann man nur via .NET Standard Code portabel machen.
Dies funktioniert aber nur bei DLLs nicht bei Anwendungen wie Winforms.

T-Virus

Thema: Statistik in Konsole ausgeben
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

@M.L.
Würde aktuell nicht funktionieren, da es ein String Array ist
Ich würde die Daten des Unternehmen (Name und Umsatz) in einer Klasse kapseln.
Dann Wäre das Array auch einfacher aufgebaut und man braucht keine zwei Dimensionen dafür.

Hier müsstest du den Umsatz für die richtige Ermittlung erst noch von String zu int/float umwandeln.
Sonst wird es schwierig das Maximum zu ermitteln.

T-Virus

Thema: Visual Studio 2022 - Wozu die Professional kaufen?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Wenn du dir die Lizenzbedingungen durch liest für die Community Edition und du z.B. nicht die Bedingungen dafür erfüllst, dann musst du dir u.U. eine Lizenz kaufen.
Wenn es nur um Pprivate Entwicklung geht, dann reicht die Community Edition vollkommend.
Wenn du aber z.B. in einem größeren Unternehmen arbeiten würdest, dann müsstest du dir u.U. eine Lizenz kaufen.

Link:
License Terms | Microsoft Visual Studio Community 2022 - Visual Studio

T-Virus

Thema: Best Practice Sortierung
Am im Forum: Rund um die Programmierung

Wenn du einen Artikel nur noch oben schieben kannst, dann würde dein jetziger Ansatz vermutlich reichen.
Es kann aber auch den Fall geben, wenn ich einen Artikel umgekehrt nach unten verschiebe.
Dann funktioniert der Ansatz nicht mehr.

Im einfachsten Fall macht du es wie oben beschrieben.

1. Liste der Artikel einladen
2. Artikel innerhalb der Liste verschieben (Remove/Insert)
3. Per for Schleife die Sortierspalte neu befüllen mit der Laufvariable der for Schleife.

Dadurch hast du auch beide Sortierungsrichtungen abgedeckt.

T-Virus

Thema: Best Practice Sortierung
Am im Forum: Rund um die Programmierung

Wie werden den die Artikel sortiert?
Wenn es per Drag&Drop gemacht wird, kannst du beim Drop i.d.R. ein Event abonnieren.
Dort bekommst du dann den Index (Alt/Neu) aus den Event Args nehmen und die Liste der Artikel umsortieren.
Dazu musst du nur in der Artikel Liste die Einträge entfernen und per Insert an der richtigen Stelle einfügen.
Die Property kannst du dann mit einer einfachen for Schleife neu durchzählen lassen.

T-Virus

Thema: Facebook Graph API formatierter Post
Am im Forum: Web-Technologien

Wenn man deinen Post liest, dann musst du dich nicht wundern, dass du solche Antworten bekommst.
Den du sagst genau 0 darüber aus, was du bereits gemacht hast.

Wenn andere Tools dies können, dann nur weil diese ebenfalls über die Api arbeiten.
Andere Zugriffsmöglichkeiten wären vermutlich nicht erlaubt und würde Facebook sperren.
Im einfachsten Fall kannst du ja auch mal bei Facebook anfragen ob dein Fall abgedeckt wird.
Wenn manuelle Tests nichts bringen, es aber eben über den Editor bei Facebook klappt, dann muss es ja einen Weg geben.
Wäre sonst sehr komisch, dass man dies nicht erlaubt.
Hier musst du dich aber an den Hersteller, in diesem Fall Facebook, wenden und dort nachfragen.
Ansonsten kann dir keiner sagen wie die Api ohne genaue Dokumentation funktioniert.

Deinen Anwendungsfall gibt es bestimmt aber hier im Forum dürfte dieser relativ selten vorkommen.
Deshalb auch meine Antwort es direkt zu testen als auf eine Antwort zu warten.

T-Virus

Thema: Facebook Graph API formatierter Post
Am im Forum: Web-Technologien

Und was genau hast du bisher versucht?

Vermutlich werden die Texte auch nur mit entsprechenden Markup formatiert (Tags).
Sollte also eigentlich auch möglich sein, diese über die Api rein zu geben.
Im einfachsten Fall könntest du es ja auch mal probieren.
Dürfte vermutlich schneller gehen als auf eine Antwort zu warten.

T-Virus

Thema: Facebook Graph API formatierter Post
Am im Forum: Web-Technologien

Hast du den schonmal die Doku der Api dazu befragt oder erwartest du, dass dir das jemand abnimmt?
Ansonsten ist die Allumfassende Antwort ist vielleicht machbar, muss aber in der Doku stehen.

T-Virus

Thema: ASP.NET MVC Interner Webserver HTTPS
Am im Forum: Web-Technologien

Eigentlich sollte das auch mit Lets Encrypt ohne extra kosten laufen.
Zertifikate für https muss man sich heute wirklich nicht mehr kaufen.

Google sollte aber passende Treffer haben:
Google Suche nach "asp.net mvc ssl certificate"

T-Virus