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 Campy
Thema: Dapper DateTime / Date Cast
Am im Forum: Datentechnologien

Verwendetes Datenbanksystem: Postgres

Hallo zusammen,

wir verwenden in einer Anwendung einen Postgres DB Server mit Dapper als ORM.
Ich möchte nun in einer Query die Dauer in Tagen zwischen zwei DateTime Werten erfassen.

Folgend der Teil der Query auf die ich das Problem eingrenzen konnte - ich vermute Dapper kommt mit dem ::date Cast nicht klar:


st."End"::date - st."Start"::date

Die (nicht sehr aussagekräftige) Fehlermeldung:

Fehler
System.NotSupportedException: 'The member Connection of type Npgsql.NpgsqlConnection cannot be used as a parameter value'

Ich hoffe jemand hat eine idee und kann mir weiterhelfen. Vielen Dank!

Thema: VS2022 Preview .NET MAUI iOS Simulator
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Naja ich kann den Emulator ja am MacBook bedienen - für ne Preview nicht weiter schlimm und bis zur finalen Version wird das bestimmt noch behoben
Ansonsten alles sehr flott und flüssig auch beim Debuggen.

Thema: VS2022 Preview .NET MAUI iOS Simulator
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo,

das half leider auch nicht - einen Workaround gibt es mittlerweile hier:

https://developercommunity.visualstudio.com/t/Visual-Studio-2022-1711-iOS-simulator-/1695537

Auch hilft das Deaktivieren des remote Simulator, sodass der iOS Simulator am MacBook geöffnet wird.

Thema: VS2022 Preview .NET MAUI iOS Simulator
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo zusammen,

ich habe auf meinem Windows-PC Visual Studio 2022 Preview (aktuelle Version) installiert.
Auf meinem aktuellem M1 Mac Book Pro ist die aktuelle Version von XCode 13 und Visual Studio for Mac installiert.

Laut den Anleitungen habe ich Remote-Login am Mac aktiviert.
Das Visual Studio 2022 habe ich erfolgreich mit dem Mac verbunden.

Möchte ich nun den iOS Simulatur starten bleibt er bei "Eine Verbindung mit dem Mac wird hergestellt ..." hängen.

In den Logfiles des Simulators habe ich nur folgenden Eintrag:

Zitat
Using SSH private key
Warning: Error during connecting
Renci.SshNet.Common.SshPassPhraseNullOrEmptyException: Private key is encrypted but passphrase is empty.
bei Renci.SshNet.PrivateKeyFile.Open(Stream privateKey, String passPhrase)
bei Renci.SshNet.PrivateKeyFile..ctor(String fileName, String passPhrase)
bei Xamarin.Simulator.Core.Protocol.SshNetworkClientConnection.ConnectSsh(Target target)
bei Xamarin.Simulator.Core.Protocol.SshNetworkClientConnection.ConnectAsync(Target target, MessageTypes messageTypes)
bei Xamarin.Simulator.Core.Protocol.SimulatorClient.ConnectAsync()
bei Xamarin.Simulator.Windows.App.<ConnectAsync>d__16.MoveNext()

Ich habe dazu im Internet zur die Lösung gefunden, die "id_rsa" Dateien unter AppData\Local\Xamarin\MonoTouch zu löschen.
Leider brachte das keine Lösung für das Problem.

Hat jemand von euch noch eine Idee?

Vielen Dank!

Thema: WPF Fensterposition und Größe speichern
Am im Forum: GUI: WPF und XAML

Hallo,

ich habe die Lösung nun noch gefunden. Es lag an den Telerik Controls und der Custom non-client Area von Telerik RibbonWindow.

Weitere Informationen: Link

Hatte also tatsächlich nichts mit dem Speichern und Laden der Einstellungen zu tun.

Vielen Dank!

Thema: WPF Fensterposition und Größe speichern
Am im Forum: GUI: WPF und XAML

Dann liegt das Problem woanders - ich bekomm teilweise negative Werte oder Werte mit 254 etc.
Da der Code aber schon mal funktioniert hat, bin ich von einer Änderung ausgegangen.

Vielen Dank trotzdem!

Thema: WPF Fensterposition und Größe speichern
Am im Forum: GUI: WPF und XAML

@TH69
Ich weiß, der Thread ist ewig alt - aber heutzutage mit Skalierung etc. scheint das nicht mehr wirklich zu funktionieren.

Im Detail geht es mir darum, die Position und die Größe in der Datenbank speichern zu können.

Gibt es dazu neue Best Practices?

Viele Grüße
Campy

Thema: Optionale Verweise / Codeblöcke in öffentlichen Projekten
Am im Forum: Rund um die Programmierung

Hallo Abt,

vielen Dank für die Ausführung! Ich wollte sicher gehen, dass ich nichts übersehe.
Da das originale Repo keine Verweise zu Telerik enthält, belasse ich es bei meiner Kopie.

Grüße
Matthias

Thema: Optionale Verweise / Codeblöcke in öffentlichen Projekten
Am im Forum: Rund um die Programmierung

Hallo zusammen,

ich habe ein öffentliches Projekt auf GitHub geforked und darin Anpassungen vorgenommen.
Die Anpassungen beziehen sich auf Telerik Controls, welche ja nicht für jeden verfügbar sind da diese Geld kosten.

Somit ist es ja wenig sinnvoll, einen PR zu erstellen.

Wie geht ihr bei so etwas vor? Soll ich den Repo-Inhaber fragen ob er einen Branch startet oder es einfach bei mir public lassen?

Vielen Dank für euren Input.

Grüße
Matthias

Thema: dotnet restore spezifische Projekte ausnehmen
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Ja richtig
Hab jetzt per Zufall gefilterte Projektdateien gefunden

filtered solutions on docs.microsoft.com

Edit: ok das interessiert den restore auch nicht sorry

Thema: dotnet restore spezifische Projekte ausnehmen
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo zusammen,

wir haben eine Solution mit ca. 20 Projekten.
Bei builds kann man ja spezifische Projekte mit Konfigurationen aus- oder einbeziehen.

Gibt es sowas auch für dotnet restore?

Vielen Dank im Voraus!

Thema: PayPal und Soap/wsdl
Am im Forum: Netzwerktechnologien

Hallo,

hast du es mal mit dem Sample von GitHub probiert?

GitHub - paypal/Checkout-NET-SDK: .NET SDK for Checkout RESTful APIs

Viele Grüße!

Thema: WPF IValueConverter async Methoden-Aufrufe
Am im Forum: GUI: WPF und XAML

Hallo zusammen,

für ToolTips werden in einem unserer Projekte IValueConverter verwendet um die Daten abzurufen.
(Ich weiß jetzt nicht ob das best-practice ist aber Telerik hat das wohl so in deren Dokumentation aufgeführt)

Da ich keine async Implementation von IValueConverter gefunden habe, hat jemand von euch einen funktionierenden Ansatz wie ich
im normalen IValueConverter async Methoden aufrufe?

Über ein kurzes Beispiel würde ich mich freuen. Vielen Dank!

Thema: async Implementierung von ICommand
Am im Forum: GUI: WPF und XAML

Hallo zusammen,

kennt jemand eine getestete und async Implementierung von ICommand?
Zusätzlich soll das canExecute observed sein da wir Bedingungen wie IList.Count() > 0 darin verwenden.

Mein Problem bei allen Implementierungen ist, dass canExecute nicht dauerhaft aufgerufen wird sondern nur einmalig während der Initialisierung.

Bei meiner vorhandenen Implementierung von ICommand (RelayCommand) funktioniert es problemlos.

Vielen Dank!

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

Zitat von Abt
Mhh.. macht das sinn? Muss ich überlegen...

Wahrscheinlich nur in seltenen Fällen - ich hab hier mein Passwort gespeichert und weiß es gerade nicht.
Wollte es ändern und im PasswordManager eintragen und 2FA aktivieren.

Jetzt müsst ich mich ausloggen damit ich mein Kennwort ändern kann.

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

Wenn man auf folgender Seite auf "Passwort vergessen" klickt, landet man wieder im Kontrollzentrum.
Müsste mein Passwort aktualisieren

myCSharp.de - Login

Viele Grüße!
Matthias

Thema: Frage: Erfahrung OAuth mit Keycloak / Azure?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ok, dann glaube ich verstehe ich es richtig.

Ich kaufe Azure AD External Identities - 50000 MAU sind sogar umsonst und baue damit unser Authentifizierungssystem auf.
Hier kann ich dann auch externe Provider hinzufügen und das Branding anpassen.

Mit den .NET Klassen kann ich dann über OIDC die Anmeldung durchführen.
Anwendungsspezifische Daten und Rechte bleiben dann in unserer jeweilige Anwendung.

Vielen Dank Abt!

Thema: Frage: Erfahrung OAuth mit Keycloak / Azure?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo Abt,

das mit Azure und Auth0 war auch mein Eindruck nach 2 Tagen Research.
Darf ich noch kurz Fragen, welches Azure Produkt ich verwenden soll damit ich auch mal durch die Preisliste zum Vergleich mit Auth0 stöbern kann?

Vielen Dank im Voraus!

Thema: Frage: Erfahrung OAuth mit Keycloak / Azure?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo zusammen,

wir haben für eine Software von uns eine zentrale WebApi die aus einer WPF Anwendung, einem Outlook AddIn (Angular) und von MobileApps aus aufgerufen wird.
Wir wollen die Authentifizierung in Zukunft ohne dem Speichern von Kennwörtern in ConfigFiles schaffen, mit MFA / 2FA absichern und Integrationen für Teams / PowerBI etc. anbieten.

Der Standard dafür ist ja OAuth2 / OpenID Connect, korrigiert mich falls ich falsche liegen sollte.

Da wir noch mehrere Anwendungen haben, und auch Kunden mehrere der Anwendungen nutzen (und dafür verschiedene Accounts haben),
wollen wir dies vereinheitlichen und eine eigene Benutzer-Registry aufbauen (bin mir nicht sicher, ob Registry der richtige Ausdruck ist).

Bis jetzt habe ich viel über zwei Produkte gelesen:
- KeyCoak
- Azure external identities

Wobei ich nach Möglichkeit eher zu Azure tendiere als dies selber aufzusetzen.
Gibt es Erfahrungen von jemanden von Euch zu den oder zu einem Produkt?

Ich habe gelesen, dass das Forum auch Azure Identities verwendet, jedoch weiß ich nicht ob dies die Benutzerverwaltung beinhaltet.

Super wäre natürlich, wenn man den LoginDialog unserem CI anpassen könnte und auch externe Provider aktivieren kann (geht bei KeyCloak).

Vielen Dank im Voraus für die Mühe!

Thema: Duplikate / Data Quality (Adressen, etc)
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Das bei den Artikeln war eher auf Duplikate bezogen.
Wenn der selbe Artikel nur mit unterschiedlicher Schreibweise bzw. Abkürzungen angelegt wurde.
Duplikate können natürlich auch bei den anderen Stammdaten auftreten.

Das mit der Adressvalidierung der Deutschen Post schaue ich mir an - hört sich sehr interessant an!

Thema: Duplikate / Data Quality (Adressen, etc)
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Verwendetes Datenbanksystem: PostgreSQL

Hallo zusammen,

habt ihr Empfehlungen (kostenlos / kommerziell) für einen Data Quality Dienst?
Folgende Daten sollten geprüft / angereicht werden:

- Adressen (Kunden, Lieferanten, Personen, etc.)
- Artikel usw.

Super wäre es wenn die Integration über eine Web Api möglich ware.

Vielen Dank im Voraus!

Thema: Installer mit Updater
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo,

schau dir doch mal AdvancedInstaller an.

Thema: Bewertung SW-Architektur "High-Performance" - Echtzeitaktualisierung
Am im Forum: Rund um die Programmierung

Ich mache das auch immer so mit SignalR, entweder nur ID in und dann GET oder wie FZelle bereits gesagt hat einen Payload mitschicken.
Performancetechnisch funktioniert das bei uns auch mit 100en verbundenen Clients super - auch wenns da nicht 100e Einträge sind.

Thema: SMTP + Anhänge in Container (Alpine)
Am im Forum: Rund um die Programmierung

Danke Abt, ich konnte das Projekt auch erfolgreich und ohne Probleme unter WSL debuggen.
Da es auch dort ohne Probleme lief, haben wir uns weiter auf die Suche gemacht =>

Es lag wohl am Zusammenspiel von Docker Port-Mappings des Relay Containers und der OpnSense Firewall die eingesetzt wird.
Eigentlich befinden sich die SMTP-Container und der Relay Container im gleichen Netzwerk - durch das PortMapping hat das Docker anscheinend anders geroutet und so lag die OpnSense dazwischen. Komisch und fragwürdig bleibt nur, wieso dies erst beim überschreiten der MTU Size geblockt hat.

Thema: SMTP + Anhänge in Container (Alpine)
Am im Forum: Rund um die Programmierung

Zitat von Abt
Campy, naja; die Fehlermeldung zeigt einen Socket-Fehler beim Ressounrcezugriff.
Wenn Du keine Attachments verlinkst, wird eben das Zeug auch nicht ausgeführt; ergo ist der Bug wohl egal, wenn Du keine Attachments hast.

Ja das stimmt, jedoch funktioniert ein Teil (alle sind PDFs die vom gleichen Generator generiert wurden).
Zitat von Abt
Kannst Du mal bisschen mehr Infos geben wie zB: wo liegen die Ressourcen? Worin unterscheiden sich Ressourcen, die funktionieren und die nicht funktionieren?
Ansonsten einfach mal MailKit Source ziehen und selbst debuggen; das is ja das schöne an Open Source.

Die E-Mails liegen in einer Datenbank (postgresql) als bytea (byte[]) und werden per WebApi Dienst abgeholt


        private byte[] _Attachment1;
        public virtual byte[] Attachment1
        {
            get { return _Attachment1; }
            set { _Attachment1 = value; NotifyPropertyChanged("Attachment1"); }
        }

So wird es an Mailkit übergeben:


 var body = new TextPart("plain")
                {
                    Text = email.Body
                };

                var multipart = new Multipart("mixed");
                multipart.Add(body);
                
                if (email.Attachment1 != null)
                {
                    var attachment1 = new MimePart("application", "pdf")
                    {
                        Content = new MimeContent(new MemoryStream(email.Attachment1), ContentEncoding.Default),
                        ContentDisposition = new ContentDisposition(ContentDisposition.Attachment),
                        ContentTransferEncoding = ContentEncoding.Base64,
                        FileName = email.Attachment1Name
                    };
                    multipart.Add(attachment1);
                }

                // now set the multipart/mixed as the message body
                message.Body = multipart;

Hast du einen Tipp wie ich es am besten Debuggen könnte, da der Fehler nur im Docker Container besteht obwohl alle Rahmenparameter sonst die Gleichen sind.
Führe ich die Anwendung bei mir unter Windows aus funktioniert es sofort problemlos..

Danke im Voraus!


Thema: SMTP + Anhänge in Container (Alpine)
Am im Forum: Rund um die Programmierung

Zitat von dannoe
Der Autor der Library vermutet "probably a .NET Core runtime bug on Linux". Wenn das tatäschlich so ist, dann bringen dir leider auch andere Libraries nichts, sofern diese auf der gleichen Basis aufsetzen.

Was halt komisch ist und bleibt, das Problem besteht überhaupt nicht, wenn keine Anhänge angehängt wurden, und auch nur bei einem Teil von Anhängen..

Thema: SMTP + Anhänge in Container (Alpine)
Am im Forum: Rund um die Programmierung

Ja da hast du Recht - ich habs sogar schon mit System.Net.Mail probiert gehabt (einfach mal einen Schritt zurück) aber auch da kam der gleiche Fehler

Thema: SMTP + Anhänge in Container (Alpine)
Am im Forum: Rund um die Programmierung

Habs nun mit einem aktuellen Ubuntu getestet - funktioniert ebenso nicht.

Fehler
System.IO.IOException: Connection timed out
---> System.Net.Sockets.SocketException (110): Connection timed out
at System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)
at MailKit.Net.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 count)
--- End of inner exception stack trace ---
at MailKit.Net.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 count)
at MailKit.Net.Smtp.SmtpStream.ReadAheadAsync(Boolean doAsync, CancellationToken cancellationToken)
at MailKit.Net.Smtp.SmtpStream.ReadResponseAsync(Boolean doAsync, CancellationToken cancellationToken)
at MailKit.Net.Smtp.SmtpStream.ReadResponse(CancellationToken cancellationToken)
at MailKit.Net.Smtp.SmtpClient.DataAsync(FormatOptions options, MimeMessage message, Int64 size, Boolean doAsync, CancellationToken cancellationToken, ITransferProgress progress)
at MailKit.Net.Smtp.SmtpClient.SendAsync(FormatOptions options, MimeMessage message, MailboxAddress sender, IList`1 recipients, Boolean doAsync, CancellationToken cancellationToken, ITransferProgress progress)
at MailKit.Net.Smtp.SmtpClient.Send(FormatOptions options, MimeMessage message, CancellationToken cancellationToken, ITransferProgress progress)

Der Logoutput vom Postfix Relay sieht so aus:
Fehler
Mar 18 08:21:00 postfix/smtpd[814]: connect from unknown[172.16.3.4]
Mar 18 08:21:00 postfix/smtpd[814]: B76D31A0A3F: client=unknown[172.16.3.4]
Mar 18 08:21:00 postfix/cleanup[815]: B76D31A0A3F: message-id=<ZH2CU9WQ8DU4.1MGZG2DZJZLO1@demodaten>
Mar 18 08:23:00 postfix/smtpd[630]: timeout after DATA (65713 bytes) from unknown[172.16.3.4]
Mar 18 08:23:00 postfix/smtpd[630]: disconnect from unknown[172.16.3.4] ehlo=1 mail=1 rcpt=1 data=0/1 commands=3/4

Thema: SMTP + Anhänge in Container (Alpine)
Am im Forum: Rund um die Programmierung

Hallo zusammen,

ich habe folgenden Code der in einem Docker Container (mcr.microsoft.com/dotnet/runtime:5.0-alpine3.12-amd64) zum Versenden von E-Mails ausgeführt wird:
(Ich weiß, der Code ist noch nicht optimal aber habe ihn in ein Testprojekt kopiert.


var message = new MimeMessage();
                message.From.Add(new MailboxAddress(email.SenderName.Length > 0 ? email.SenderName : Parameters["Sendername"],
                    email.SenderEmail.Length > 0 ? email.SenderEmail : Parameters["Sender"]));

                var recipients = new List<string>();
                var ccRecipients = new List<string>();
                var bccRecipients = new List<string>();

                if (!string.IsNullOrEmpty(email.Recipients))
                    recipients = new List<string>(email.Recipients.Split(";".ToCharArray()));

                if (!string.IsNullOrEmpty(email.RecipientsCC))
                    ccRecipients = new List<string>(email.RecipientsCC.Split(";".ToCharArray()));

                if (!string.IsNullOrEmpty(email.RecipientsBCC))
                    bccRecipients = new List<string>(email.RecipientsBCC.Split(";".ToCharArray()));

                if (bccRecipients != null)
                {
                    foreach (string bccRecipient in bccRecipients)
                        if (!string.IsNullOrEmpty(bccRecipient))
                            message.Bcc.Add(MailboxAddress.Parse(bccRecipient));
                }

                if (ccRecipients != null)
                {
                    foreach (string ccRecipient in ccRecipients)
                        if (!string.IsNullOrEmpty(ccRecipient))
                            message.Cc.Add(MailboxAddress.Parse(ccRecipient));
                }

                if (recipients != null)
                {
                    foreach (string Recipient in recipients)
                        if (!string.IsNullOrEmpty(Recipient))
                            message.Cc.Add(MailboxAddress.Parse(Recipient));
                }

                message.Subject = email.Subject;

                var body = new TextPart("plain")
                {
                    Text = email.Body
                };

                var multipart = new Multipart("mixed");
                multipart.Add(body);
                
                if (email.Attachment1 != null)
                {
                    var attachment1 = new MimePart("application", "pdf")
                    {
                        Content = new MimeContent(new MemoryStream(email.Attachment1), ContentEncoding.Default),
                        ContentDisposition = new ContentDisposition(ContentDisposition.Attachment),
                        ContentTransferEncoding = ContentEncoding.Base64,
                        FileName = email.Attachment1Name
                    };
                    multipart.Add(attachment1);
                }

                // now set the multipart/mixed as the message body
                message.Body = multipart;

                try
                {
                    using (var client = new SmtpClient())
                    {
                        client.Connect(server, 25, false);

                        // Note: only needed if the SMTP server requires authentication
                        if (!string.IsNullOrEmpty(username) && !string.IsNullOrEmpty(password))
                            client.Authenticate(username, password);

                        client.Send(message);
                        client.Disconnect(true);
                    }

                    _logger.LogDebug("Die E-Mail {mailid} wurde erfolgreich versendet", email.Id);
                    email.Success = true;
                }
                catch(Exception ex)
                {
                    _logger.LogError(ex, "Fehler beim Versenden der E-Mail {mailid}", email.Id);
                }
                finally
                {
                    email.RetryCount = email.RetryCount + 1;
                    _logger.LogDebug("Neuer RetryCount für E-Mail {maild} beträgt {retrycount}", email.Id, email.RetryCount);
                    email.LastTry = DateTime.Now;

                    if (emailProxy.Put(email))
                        _logger.LogDebug("Die E-Mail wurde erfolgreich aktualisiert");
                    else
                        _logger.LogError("Fehler beim Speichern der Änderungen der E-Mail");
                }

Das ganze funktioniert nun im Docker Container, solange Anhang1 nicht zwei Bilder enthält (Dateigröße gute 50kb)..
Starte ich die Anwendung unter Windows, gleicher SMTP Server und gleiche Datenbank, funktioniert es sofort.

Hat jemand eine Idee? Sollte ich mal ein Ubuntu Image probieren?

Vielen Dank!

Thema: Versionierung mit GitVersion + GitversionTask deprecated
Am im Forum: Rund um die Programmierung

Abt du hast natürlich Recht.
Es gibt noch die GitTools GitVersion mit GitTools.MSBuild Paket da funktioniert theoretisch die Versionierung auch lokal.

Wenn gewünscht kann ich davon meine Konfiguration mal posten?

Grüße
Matthias