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: 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.

Thema: Warum stürzt Applikation mit NullReference Exception ab?
Am im Forum: Web-Technologien

Die ConnectionStrings können doch auch dynamisch in der Konfiguration hinterlegt.


string domain = ...
string connectionString = configuration.GetValue<string>($"ConnectionStrings:{domain}");
if (string.IsNullOrEmpty(connectionString))
{
    // keine Konfiguration für die Domain
}

Thema: E-Mails synchronisieren nicht zwischen Outlook auf Win10 PC und Android Handy.
Am im Forum: Office-Technologien

Für IMAP gibt es die Erweiterung IMAP IDLE.

Thema: Wie kann ich ein WPF Projekt mit einer MySQL-Datenbank verbinden?
Am im Forum: Datentechnologien

Der von Dir verwendete Provider System.Data.SqlClient ist für MS SQL Server.
Für MySQL gibt es einen eignen Provider MySql.Data.

Thema: Wie ein WinForms Ladefenster anzeigen während anderer Thread arbeitet & wieder "zurückspringen"?
Am im Forum: GUI: Windows-Forms

Ist das nicht was für IProgress<T> und Progress<T>.

https://devblogs.microsoft.com/dotnet/async-in-4-5-enabling-progress-and-cancellation-in-async-apis/

Thema: Wie kann ich einen Text in Brailleschrift darstellen?
Am im Forum: Rund um die Programmierung

Ich kenne mich mit der Brailleschrift nicht aus, es gibt aber wohl entsprechende Unicodenummern für die einzelnen Zeichen.

Also warum nicht die verwenden?

Thema: [erledigt] Das aktuelle Fenster minimieren
Am im Forum: GUI: Windows-Forms

Form.WindowState

Thema: Consolen Programm fehlerhaft bei Leerzeichen im Pfad -> Wie Nutzung ermöglichen?
Am im Forum: Grundlagen von C#

Ich verstehe es so, die Meldung kommt vom externen Programm für das kein Zugriff auf den Quellcode vorhanden ist. Und dann hilft wohl nur sich an den Entwickler des Programms zuwenden.

Thema: Consolen Programm fehlerhaft bei Leerzeichen im Pfad -> Wie Nutzung ermöglichen?
Am im Forum: Grundlagen von C#

Für den Befehl gibt es den Parameter /D, mit dem auch das Laufwerk gewechselt wird.
https://ss64.com/nt/cd.html

Thema: Gitlab-Runner (selfhost) und MSTest - seltsames Verhalten - wo einen Fehler melden?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Woher weißt Du das es nicht am öffnen des Port liegt?

Versuch mal ein Port größer 1024, kleinere dürfen nur von root geöffnet werden.

Liste der standardisierten Ports

Thema: Erste .NET 5 Preview - als Docker Image
Am im Forum: Szenenews

.NET 5.0.0 Preview 1 - March 16, 2020

https://dotnet.microsoft.com/download/dotnet-core/5.0
https://github.com/dotnet/core/blob/master/release-notes/5.0/preview/5.0.0-preview.1.md
https://www.heise.de/developer/meldung/Erste-Vorschau-auf-NET-5-0-wenig-Spektakulaeres-4684229.html

Thema: Mit Linq alle Einträge auswählen, die ein Leerzeichen haben
Am im Forum: Datentechnologien

Die genau EIN Leerzeichen haben?

Mit den verschiedenen Überladungen der String.LastIndexOf Methode.

Thema: Wie hängen .NET Core, .NET Standard & .NET Framework zusammen?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

In diesem Zuge auch interessant Umstieg auf .NET Core – migrieren oder nicht migrieren?.

Thema: [Erledigt] Shorthand-Operator für mehrfache Selects
Am im Forum: Grundlagen von C#

https://docs.microsoft.com/de-de/dotnet/api/system.linq.enumerable.select

Thema: TimeSpan.FromSeconds beachtet Punkt und Komma falsch
Am im Forum: Grundlagen von C#

Ich denke mal du verwendest eine Kultur, wo der Punkt nicht als Dezimaltrennzeichen dient, sondern als Tausendertrennzeichen.

https://docs.microsoft.com/de-de/dotnet/api/system.double.parse?view=netframework-4.8

https://docs.microsoft.com/de-de/dotnet/api/system.globalization.cultureinfo.currentculture?view=netframework-4.8

Thema: Dictionary sortieren mit mehreren (verschiedenen) Kriterien
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Macht ein ToDictionary die Sortierung nicht wieder zunichte, da ein Dictionary<TKey,TValue> keine Sortierung bietet?