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 david.m
Thema: Klasse T in generischer Methode instanziieren
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Warum die Methoden umständlich per Reflection in ein Dictionary packen gerade wenn die statisch sind und nicht bei der Definition.


        Dictionary<string, Func<bool>> methodMap = new();

        methodMap["true"] = static () =>
        {
            return true;
        };

        methodMap["false"] = static () =>
        {
            return false;
        };

Thema: Verbinden mit IIS Server
Am im Forum: Rund um die Programmierung

Es gibt laut Doku die Methode ServerManager.OpenRemote(String) die wohl das macht was Du willst.

Thema: Aufgabe: Flugposition protokollieren
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Du öffnest die Datei mit einen relativen Pfad und dieser muss halt nicht der sein wo die exe liegt.

Das aktuelle Verzeichnis kann mit Directory.GetCurrentDirectory Methode ermittelt werden.

Ich bin mit jetzt auch nicht ganz sicher, aber ich meine wenn das Programm aus Visual Studio gestartet wird ist das aktuelle Verzeichnis in dem die Projektdatei liegt.

Thema: 5 Minuten Blöcke & Modulo innerhalb einer Stunde
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Sollte nicht auch folgendes zum Ergebnis führen


var minute = 7; // nur z.B.

var gerundet = minute - (minute % 5); // 5 = 7 - (7 % 5)

Thema: datagridview: DataGridViewCell.Value.**get** hat null zurückgegeben.
Am im Forum: GUI: Windows-Forms

break ist aber keine Lösung. Denn was machst Du, wenn es mehr als eine Zeile ist.

Schaue dir DataGridViewRow.IsNewRow Eigenschaft an.

Thema: datagridview: DataGridViewCell.Value.**get** hat null zurückgegeben.
Am im Forum: GUI: Windows-Forms

Ich habe ewig nichts mehr mit Winforms und dem DGV gemacht.

Aber kann es sein das die NullReferenceException beim zweiten Durchlauf kommt.
Ich meine wenn die Rows durchlaufen werden sind alle dabei, auch die Zeile um eine neue zustellen dabei.

Thema: Überprüfen, ob externes Programm installiert ist
Am im Forum: Rund um die Programmierung

Was man machen könnte wäre die Ausgabe von where zu parsen.

where externesProgramm.exe

Thema: Symbole / Legende für Changelog?
Am im Forum: Smalltalk

Schaue Dir mal https://keepachangelog.com/ an.

Thema: Chat über UDP, Fehler bei Nachrichtenübertragung..
Am im Forum: Netzwerktechnologien

Auf UI Elemente darf nur auf dem UI-Thread zugriffen werden.

[FAQ] Controls von Thread aktualisieren lassen (Control.Invoke/Dispatcher.Invoke)

Thema: ASP.NET Core Web-API File download
Am im Forum: Web-Technologien

Sieht für mich wie ein Netzwerkpfad aus, also kann man https://docs.microsoft.com/de-de/dotnet/api/system.io.file.readallbytes?view=net-6.0 nehmen und braucht kein HttpClient.

Schaue Dir auch FileStreamResult an
https://docs.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.mvc.filestreamresult?view=aspnetcore-6.0 besser
https://www.aspsnippets.com/Articles/FileStreamResult-Net-Core-Example-Using-FileStreamResult-in-ASPNet-Core-MVC.aspx


Ohne eine Prüfung (Berechtigung, ...) eine Datei zurückzugeben ist vielleicht keine so gute Idee.

Thema: Location von .nuget ändern
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Sehe Dir folgende Links an:
How to manage the global packages, cache, temp folders in NuGet
nuget.config reference

Thema: HTML Mails Format
Am im Forum: Web-Technologien

Schau Dir mal folgenden Thread an Dokument mit C# und HTML

Thema: SQL-Server Discovery schlägt fehl
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Per UDP Broadcast kann man die SQL Server im lokalen Netzwerk ermitteln analog zur SqlDataSourceEnumerator, dazu siehe GitHub - mrsquish/SqlBrowserClient: A replacement for SqlDataSourceEnumerator in .Net5

Thema: Konsole+Windows Forms in .NET 5
Am im Forum: Grundlagen von C#

Du willst eine Konsolen Anwendung und darin WinForms verwenden?

Siehe dir mal Konsolenfenster und Windows-Fenster in einer .NET-5.0-App und OutputType für WPF- und WinForms-Apps auf WinExe festgelegt an.


<DisableWinExeOutputInference>true</DisableWinExeOutputInference>

Thema: FileStream Verhalten bei "Read only"
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Siehe Doku https://docs.microsoft.com/de-de/dotnet/api/system.io.filestream.-ctor?view=net-5.0#System_IO_FileStream__ctor_System_String_System_IO_FileMode_

Zitat
Sie können diesen Konstruktor nicht verwenden, um schreibgeschützte Dateien zu öffnen. Stattdessen müssen Sie einen Konstruktor verwenden, der einen- FileAccess Parameter akzeptiert, dessen Wert auf festgelegt ist FileAccess.Read .

Thema: Flurl.Http, C#, PHP, MySQL und das Thema Sicherheit
Am im Forum: Web-Technologien

Ab ASP.NET Core 2.1 ist die Verwendung von Ok(...) nicht mehr notwendig.
Rückgabetypen für Controlleraktionen in der ASP.NET Core-Web-API

Thema: Verzeichnis für Extensions ändern Visual Studio Code
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Als Alternative bietet sich ggf. eine Symbolische Verknüpfung.

Thema: async Task<bool>
Am im Forum: Grundlagen von C#


if (await Management()) 

Der Operator „await“ (C#-Referenz)
[Tipp] Anfängerhinweis == true / == false

Thema: Wie gelesene Forenbereiche DB-technisch umsetzen?
Am im Forum: Datentechnologien

Zitat
Wir suchen nun eine performante Möglichkeit, die es ermöglich das gewünschte Feature umzusetzen.
Dazu habe ich einen alternativen Vorschlag gemacht.
Aber mir persönlich ist dieses Feature relativ egal, da ich es nicht brauche.

Ich kenne nicht die Post pro Zeit und was so gelesen wird pro Zeit.
Ich kann mir nur vorstellen wenn die Forenübersicht aufgerufen wird, das es schneller geht da weniger Tabellen betroffen sind.
Aber dafür müsste man es testen.

Thema: Wie gelesene Forenbereiche DB-technisch umsetzen?
Am im Forum: Datentechnologien

Zitat von Abt
dass wir bei jeder Registrierung sofort für 117.000 Themen Dateneinträge erzeugen müssen
Wenn für einen neuer User alle Themen als ungelesen gekennzeichnet sein soll, dann Ja.
Ich würde sagen bei einen neuen User ist für ihn alles als gelesen gekennzeichnet.
Und das Tracking beginnt erst mit der Registrierung.
Zitat von Abt
und gleiches bei neuem Thema für 30.000 User. Hinzu kommt, dass wir Stati erzeugen müssen, die womöglich bei vielen Usern nie wieder abgefragt werden (weil Konten inaktiv etc).
Dem könnte man entgegen wirken, das nur User berücksichtigt werden deren letzte Aktivität nicht zu lange zurück liegt.
Zitat von Abt
Ich weiß nicht, wie das schneller sein soll. Das ist ja gerade das, was wir nicht wollen: expotentielles Wachstum / Leistungsthema. Oder sehe ich das falsch?
Aber wenn ich das richtig sehe mit dem aktuellen Datenbankschema, spielt die Tabelle ForumBoardUserVisits keine Rolle um an die Informationen zu bekommen, ob alle Themen eines Boards gelesen sind.
Und anders müsste die Informationen aus mehreren Tabellen ermittelt werden, neben ForumThreadUserVisits müssten auch noch ForumPosts und ForumThreads berücksichtigt werden.
Bei meinen Vorschlag nur die eine Tabelle.


Weiterhin hat man damit auch die Möglichkeit auszuräumen, z.B. ältere Einträge aus der Tabelle löschen.
Und ich weiß nicht ob es gewünscht ist über die Jahre festzuhalten, wann was von jeden User gelesen wurde.
Ob das wirklich schneller, müsste man testen.

Thema: Wie gelesene Forenbereiche DB-technisch umsetzen?
Am im Forum: Datentechnologien

Wenn ich das richtig verstehe wird VisitedOn in ForumThreadUserVisits aktualisiert, wenn ein Thread aufgerufen.
Und das gleiche bei ForumBoardUserVisits, wenn ein Board aufgerufen wird.

Ich weiß nicht wie fix das Datenbankschema ist.
Ich hätte da einen Vorschlag.

Ist es wichtig zu wissen wann eine Thread zuletzt aufgerufen wurde oder reicht es nur zu wissen das für einen User ungelesene vorliegen.

Die Tabellen ForumThreadUserVisits und ForumBoardUserVisits werden durch ForumThreadUserUnread ersetzt.
Diese hat die Spalten UserId, ThreadId und BoardId.

Ist in der Tabelle ein Eintrag vorhanden, bedeutet es liegen ungelesene Post für einen Thread vor.

Wird ein neuer Post (oder auch neuer Thread) erstellt, wird in der Tabelle für alle User ein Eintrag erstellt, wenn noch nicht vorhanden.
Wird von einen User ein Thread aufgerufen, wird ein vorhandenen Eintrag wieder entfernt und man weiß dieser ist gelesen.

Ich greife mal das SQL Fragment von weiter oben auf


SELECT
   Id,
   BoardName,
   (SELECT COUNT(*) FROM ForumThreadUserUnread WHERE UserId = @UserId AND BoardId = Id) AS CountUnreadThread
FROM ForumBoards
JOIN (hier Permission Check)

Ich kann nicht sagen wie Performant das ist, aber nur so als Idee.

Thema: Dokument mit C# und HTML
Am im Forum: Web-Technologien

Wir verwenden für HTML E-Mails scriban. Ist zwar eine andere Syntax als Razor, aber ggf. einfacher.

Thema: IP-Adresse und DKIM in E-Mail Neuer Login
Am im Forum: Wünsche und Kritik

Die IP Adresse in der E-Mail passt jetzt.

Zum Thema DKIM, habe dort mal die Ausgabe detaillierte Fehlerursache aktiviert.
Und erhalte die Meldung Ungültig (SDID Tag hat falsches Format).
Bei anderen gibt es auch die Meldung Interner Fehler.

Thema: Wie kann ich ein JSON in ein Objekt deserialisieren?
Am im Forum: Datentechnologien

Die "Time Series (Daily)" sehen für mich wie ein Dictionary aus, wo der Key der Tag ist.


public class TimeSeries: Dictionary<string, Datum>
{
}

ggf. geht auch folgendes


public class TimeSeries: Dictionary<DateTime, Datum>
{
}

Musst mal sehen.

Thema: DB-Verbindung schlägt fehl
Am im Forum: Datentechnologien

Hilfreich finde ich immer den ConnectionStringBuilder des entsprechenden ADO.NET Provider und deren Eigenschaften, um zu sehen was der erstellt
Hier wohl SqlConnectionStringBuilder.

Thema: IP-Adresse und DKIM in E-Mail Neuer Login
Am im Forum: Wünsche und Kritik

Man erhält jetzt ja eine E-Mail die über dem Login informiert.

In dieser E-Mail steht auch eine IP-Adresse, welche nach meinen Verständnis meine öffentliche sein sollte.
Wenn ich es aber richtig sehe ist es die von einem vorgeschalteten Reverse-Proxy (Cloudflare, Inc.)?

Und DKIM Verifier in Thunderbird zeigt an das diese Ungültig (Signatur ist falsch formatiert) ist.

Thema: Wie lange wird die Komponente "Webbrowser" noch unterstützt?
Am im Forum: Rund um die Programmierung

Von Microsoft gibt es seit kurzen WebView2.

Thema: [Gelöst] Wie mache ich meine Datenbank-Implementierung unabhängig?
Am im Forum: Datentechnologien

Bei allen hat man das Problem das sich die SQL Dialekte leicht unterscheiden, unabhängig ob man nun
ODBC, OLEDB, ADO und ADO.NET verwendet.

Verwende nicht die direkten Implementierungen der ADO.NET Providern, sondern die Abtraction aus dem Namensraum System.Data.Common
Und für die Erstellung entsprechende die Methoden der Klassen DbProviderFactory und DbProviderFactories.

Thema: Wie füge ich im VSCode Referenzen auf System.Management hinzu?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Im Netzwerk einen eigenen NuGet Server z.B. mit BaGet bereitstellen oder einen lokalen Feed lokal oder einen Share einrichten.
Und die Quelle mit dotnet nuget add source hizufügen.

Thema: C# Skript zur Laufzeit laden und Methode aus Skript aufrufen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Wenn man Spaß hat, kann man auch sein eigenes System bauen.
Dazu kann man sich ja mal .Cake (C# Make) ansehen.