Laden...

Forenbeiträge von david.m Ingesamt 155 Beiträge

19.07.2024 - 16:14 Uhr

Neben dem Connect Timeout für den Verbindungsaufbau gibt es noch den Command Timeout für die Queries.

29.11.2023 - 20:08 Uhr

Es muss die Handled-Eigenschaft auf true gesetzt werden.

Siehe auch Beispiel.

19.08.2023 - 19:43 Uhr

.NET Framework 2.0 und 3.x (Runtime 2.0) sind schon länger wie Du festgestellt hast nicht im Standard installiert.

Aber die Runtime 4.0 (Framework 4.x, aktuell 4.8) ist, meine ich in Standard installiert.  
Wenn man als Zielframework 4.7 wählt, sollte das immer passen.

Oder setzt auf .NET 6 oder 7 und liefert die Runtime mit.

09.08.2023 - 16:54 Uhr

Es wurde Version 4.20.2 veröffentlicht, wenn ich das richtig sehe wurde es damit wieder entfernt

31.07.2023 - 14:10 Uhr

Server und App sollen eins sein! Der Server soll im Bauch der App laufen.

Warum dann überhaupt den (Http)Service in der App?
Der ist den dem Fall überhaupt doch nicht notwendig.

Im allgemeinen läuft ein Service im Internet/Intranet und der Client konsumiert diesen dann.

25.06.2023 - 19:00 Uhr

Ich wollte 2-FA einrichten, erhalte aber nach Eingabe des Bestätigungscode nur eine Fehlermeldung.

Der Response POST https://mycsharp.de/konto/multi-faktor-login/aktivieren gibt einen 500er zurück.

date: Sun, 25 Jun 2023 16:54:23 GMT

01.06.2023 - 12:50 Uhr

Die Dateien mit FileShare.None öffnen.

24.05.2023 - 17:37 Uhr

Welche .NET Version kommt denn zum Einsatz?

Wenn ich die Ausgabe von @Abt richtig sehe, kommt dort 8.0 zum Einsatz.

21.04.2023 - 12:52 Uhr

Mal vom DECLARE  und SET  der sendungsnummer abgesehen, das Leerzeichen vor ID bei COUNT(` ID `).

31.01.2023 - 19:21 Uhr

Mit .NET 7 ist für System.Text.Json Type Hierarchies hinzugekommen.

Das könnte ggf. passen, für Json.NET gibt es meine ich so etwas ähnliches.

03.01.2023 - 09:24 Uhr

Du kannst doch ffmpeg mit in Deinem Container-Image auf nehmen.

10.12.2022 - 16:25 Uhr

Und zwischen den Aufrufen könnte sich ja auch der Wert geändert.
Bei der Prüfung nicht null, aber dann bei der Zuweisung.

Hier bietet sich ggf. die Verwendung des ! (null-forgiving) operator (C# reference) an,
wenn sichergestellt ist das der Wert nicht null ist.

29.11.2022 - 21:10 Uhr

Das Thema hatten wir doch vor kurzen
Verständnisprobleme mit BindingList

23.11.2022 - 15:46 Uhr

Was macht denn new DoCompare() ?

13.10.2022 - 17:51 Uhr

Dann kannst Du doch TimeSpan nehmen.
Oder einfach ein int/long (ganze Minuten), wenn eine Genauigkeit von Minuten reichen,

29.09.2022 - 18:05 Uhr

Es wird ein public Standard ctor benötigt, oder der ctor muss gekennzeichnet werden.

Siehe auch https://learn.microsoft.com/en-us/dotnet/standard/serialization/system-text-json/immutability?pivots=dotnet-6-0

19.09.2022 - 15:00 Uhr

Du hast den Hinweis zum BinaryFormatter gelesen?

BinaryFormatter ist unsicher und kann nicht sicher gemacht werden. Weitere Informationen finden Sie im BinaryFormatter-Sicherheitshandbuch.

Deserialisierungsrisiken in der Verwendung von BinaryFormatter- und verwandten Typen

10.08.2022 - 15:07 Uhr

Mit default erfolgt eine Initialisierung mit dem Standardwert des jeweiligen Typ.
In den Fall ist aber keine Initialisierung notwendig, diese oder eine Zuweisung ist nur vor dem ersten Lesezugriff notwendig.
Mit welchen Wert eine Initialisierung ist eher fachlicher Natur und nicht technischer Natur.

Als Vorschlag was kürzer ist (ungetestet):


    // public DateTime NextBuisinessDay(DateTime date, Dictionary<DateTime, string> holidays)
    public DateOnly NextBuisinessDay(DateOnly date, Dictionary<DateOnly, string> holidays)
    {
        while (IsWeekend(date) || IsHoliday(date, holidays))
        {
            date = date.AddDays(1);
        }

        return date;
    }

03.08.2022 - 19:48 Uhr

Ist ja schon ein Unterschied ob A4, A5, A3 oder andere Papiergrößen im Drucker liegen.

Ich habe mit Drucken ewig nichts mehr zu tun gehabt. aber die Einheiten sind wohl andere mm oder 100/inch sind dort üblich.

Wie Th69 geschrieben hat kann man die Transformation angeben um die Logik für das Zeichnen nur einer Einheit machen muss.

03.08.2022 - 18:51 Uhr

PrintPageEventArgs bietet doch die Eigenschaften für die Seitengröße.
Diese musst Du entsprechende verwenden und umrechnen, für das Zeichnen der Linien.

Eine Bitmap hat eine andere DPI z.B. 96, als ein Drucker (z.B. 300 oder 600).

Siehe auch Beispiel PrintDocument.PrintPage Ereignis (System.Drawing.Printing)

03.08.2022 - 15:01 Uhr

Wenn ich das richtig sehe wird erst eine Bitmap erstellt, welche dann auf das PrintDocument gezeichnet wird.
Warum der Umweg über das Bitmap und nicht direkt auf e.Graphics zeichnen?

07.07.2022 - 18:50 Uhr

Warum extra curl für den Download starten.
Die URL ist doch vorhanden, dann kannst du doch den HttpClient nehmen.

27.06.2022 - 20:29 Uhr

Bei der Menge wird es aber schon schwierig diese komplett im Speicher (Liste) zuhalten.

Was sind das den für Objekte?
Ggf. würde sich auch eine relationale Datenbank, wie SQLite an bieten.

25.06.2022 - 10:51 Uhr

Die WebClient Klasse sollte nicht mehr verwendet werden, sondern die HttpClient Klasse.

25.06.2022 - 07:51 Uhr

Ist das eine personalisierte Version TeamViewer QuickSupport?

Download von TeamViewer für die verschiedenen Plattformen ist unter https://www.teamviewer.com/de/download/ erreichbar.

Der Download für die normale aktuelle Version vom QuickSupport ist doch immer der gleiche.
https://download.teamviewer.com/download/TeamViewerQS.exe

19.06.2022 - 20:05 Uhr

In der Liste der versendeten Nachrichten zeigen die Links der Seiten auf die der Inbox.

Lassen sich privat versendetet Nachrichten nicht löschen?

14.05.2022 - 08:22 Uhr

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;
        };

05.04.2022 - 11:11 Uhr

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

04.04.2022 - 18:51 Uhr

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.

03.04.2022 - 20:23 Uhr

Sollte nicht auch folgendes zum Ergebnis führen


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

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

31.03.2022 - 14:53 Uhr

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

Schaue dir DataGridViewRow.IsNewRow Eigenschaft an.

31.03.2022 - 13:55 Uhr

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.

27.03.2022 - 08:34 Uhr

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

where externesProgramm.exe
21.03.2022 - 20:40 Uhr

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

25.02.2022 - 12:37 Uhr

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.

30.11.2021 - 08:53 Uhr

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

11.11.2021 - 08:32 Uhr

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

03.10.2021 - 12:59 Uhr

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>

10.09.2021 - 15:43 Uhr

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_

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 .

01.07.2021 - 15:18 Uhr

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

10.05.2021 - 21:14 Uhr

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

06.05.2021 - 19:13 Uhr

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.

06.05.2021 - 17:58 Uhr

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.

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.

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.

06.05.2021 - 15:40 Uhr

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.