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 markl
Thema: Wo finde ich ein Beispiel eines TCP Listeners im WPF?
Am im Forum: GUI: WPF und XAML

WPF und TCP haben erstmal wenig mit einander zu tun.

Was du sucht ist ein Dispatcher:

https://docs.microsoft.com/de-de/dotnet/api/system.windows.threading.dispatcher?view=netframework-4.7.2

Thema: Welche Technologie für Webentwicklung (Frontend) stand ende 2018
Am im Forum: Web-Technologien

Ich häng mich mal gerade aus dem Fenster und gebe mal meine beschränkte Sichtweise wieder.
- Ohne dass ich die Anforderungen kenne -

Das was jetzt kommt, kann auch gaaaanz anders gesehen werden - man darf mich gerne dafür rügen ;-)
Insbesondere die Framework-Frage ist religiös.

Hier ein einfacher Entscheidungsbaum:

1.

Ihr könnt C#/.NET Framework und könnt mit WPF/WinForms UIs bauen.
Ihr habt noch wage Erinnerungen an PHP-Experimente und habt gehört, dass HTML5 und Bootstrap ganz gut sein sollen.

Ihr findet Responsive Webdesign gut https://de.wikipedia.org/wiki/Responsive_Webdesign.
Der Gedanke, dass man sich mit Progressive enhancement auf das Notwendigste konzentriert und später fancy Javascript hinzunimmt gefällt euch.https://de.wikipedia.org/wiki/Progressive_Verbesserung
Eure Website ist nicht besonder dynamisch und wenn man auf eine Button auf der Website klickt, dann darf sich die Seite auch mal neuladen.

->

.NET Core (≥2) + ASP.NET Core
serverseitiges Rendern von HTML (Razor, MVC)
Bootstrap als CSS-Framework


2.

Ihr glaubt, dass die Webseite mehr Dynamik braucht. Ihr scheut nicht davor Javascript/TypeScript zu erlernen.
Ihr findet allerdings objektorientiertes Programmieren gut. DependencyInjection mögt ihr https://de.wikipedia.org/wiki/Dependency_Injection.
Eine ordentliche Schichtenarchitektur https://de.wikipedia.org/wiki/Schichtenarchitektur findet Ihr wichtig.

->

.NET Core (≥2) + ASP.NET Core

WebAPI (RESTful)
Angular ≥7
Bootstrap, Angular Material https://material.angular.io/, oder selber bauen
PWA


3.

Ihr habt es voll drauf mit JavaScript/TypeScript. OO ist euch nicht immer wichtig. Ihr scheut nicht vor "bleeding edge"-Technologien.
Eure Entwickler brauchen keine Leitplanken. Die Gefahr von big-ball-of-techo-mutt seht Ihr nicht. Gerne baut ihr eure Microservice neu.
Die Halbwertszeit eure Anwendungen ist gering. Webpack-Config schreiben rockt.

->

.NET Core (≥2) + ASP.NET Core ... oder doch lieber node.js
WebApi (RESTful oder GraphQL)
React oder Vue
PWA



... ich finde #2 ganz gut

Thema: Eigene DLL: Fehler in PostAsync, wenn DLL von Gupta genutzt wird: "kein geschützter SSL/TLS-Kanal"
Am im Forum: Web-Technologien

OT:

Ich glaube der David Tielke (keine Ahnung ob der hier im Forum abhängt) ist ein großer Gupta-Portierungs-Fan. Der kann euch sicherlich helfen.

Thema: Programme aus einer Textfile lesen, die nicht auf dem Rechner ausgeführt werden sollen.
Am im Forum: Grundlagen von C#

Die liest eine DLL mit File.ReadAllLines ein?
Das ist Unsinn was da steht.

https://docs.microsoft.com/de-de/dotnet/api/system.io.file.readalllines?view=netframework-4.7.2

Thema: Programme aus einer Textfile lesen, die nicht auf dem Rechner ausgeführt werden sollen.
Am im Forum: Grundlagen von C#

Mit "Sicherheits-Programm" hat das nicht viel zu tun, wenn man versucht UAC nachzubauen.

Außerdem gibt es kommerzielle Lösungen um den User mit sowas zu "nerven" (z.B. The Palo Alto Networks Traps https://www.paloaltonetworks.com/documentation/traps).

Ich hoffe, dass dies nur ein Experiment von dir ist um C#/.net zu lernen.

Daher hier zwei Anhaltspunkte:


        string registry_key = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall";
            using (Microsoft.Win32.RegistryKey key = Registry.LocalMachine.OpenSubKey(registry_key))
            {
                foreach (string subkey_name in key.GetSubKeyNames())
                {
                    using (RegistryKey subkey = key.OpenSubKey(subkey_name))
                    {
                        Console.WriteLine(subkey.GetValue("InstallSource"));
                        Console.WriteLine(subkey.GetValue("DisplayName"));
                    }
                }
            }

Siehe dazu:
https://stackoverflow.com/questions/908850/get-installed-applications-in-a-system

Oder aber mit:

How to detect lunch or closing process?

https://social.msdn.microsoft.com/Forums/vstudio/en-US/46f52ad5-2f97-4ad8-b95c-9e06705428bd/how-to-detect-lunch-or-closing-process-?forum=netfxbcl

Aber ich rate dir DRINGEND davon ab, sowas tatsächlich als ein Sicherheits-Programm in betracht zu ziehen.

Thema: TCP Remoting: Die Assembly kann nicht geladen werden
Am im Forum: Netzwerktechnologien

Nach Remoting hätte man sicherlich WCF gesagt.
Man kann aber der Meinung sein, auch wenn man das .NET Framework verwendet, dass man das jetzt auch nicht mehr sagt.
Daher z.B. WebAPI (ASP.NET (core)) oder gRPC.

Thema: ASP.NET Core 3.0 nur noch mit .NET Core, nicht mehr mit .NET Framework (Platzhalter)
Am im Forum: Szenenews

https://www.heise.de/developer/meldung/ASP-NET-Core-3-0-laeuft-nur-noch-auf-NET-Core-4206653.html

ASP.NET Core 3.0 läuft nur noch auf .NET Core

Diese Aussage hatten wir ja schon bei ASP.NET Core 2.0.
Diesmal passiert es wohl wirklich.

Thema: Ergebnisse einer Oracle-Anfrage in einer WPF-Anwendung darstellen
Am im Forum: Grundlagen von C#

Auch wenn das oben schon gesagt wurde. Nochmal verstärkt für die Nachwelt.
Auch wenn MVVM nicht gerade einfach für Anfänger aussieht, sollten man das so nicht bauen!
Auch wenn der Code erstmal das tut was er tuen soll.
Später wird sowas die Wartungshölle!
All dein Code in Window_Loaded zu packen ist etwa so wie: Beim Hausbau die Heizungsinstallation im Vorgarten installieren zu lassen - Kann man machen, ist halt *nicht wirklich gut*

Thema: Values von Properties beim Clonen auf null prüfen
Am im Forum: Grundlagen von C#

Aber das ist doch -Ansatzweise- sowas wie DeepCopy geworden.
Somit auch das was MrSparkle dir vorgeschlagen hat.

Nachtrag:
Ich hab das jetzt nicht im Compiler geprüft, aber führt

CopyValues(ref targetValue, sourceValue);

nicht zu

CopyValues<object>(ref targetValue, sourceValue);

somit zu einem falschen ...

Type t = source.GetType();

Thema: Values von Properties beim Clonen auf null prüfen
Am im Forum: Grundlagen von C#

Zitat von MrSparkle
Zitat von markl
z.B. durch Serialisierung

Serialisierung will er ja gerade selbst implementieren

@MrSparkle: Oh ja hast ja recht :-). Das man "Serialisierung" nicht selber implementiert, wurde ja schon diskutiert. Der Rest des MSDN-Artikels wird Glowhollow sicherlich weiter bringen.

Thema: Values von Properties beim Clonen auf null prüfen
Am im Forum: Grundlagen von C#

Die MSDN beschreibt dies in den Remarks von MemberwiseClone:

Dein MemberwiseClone führt ein "shallow copy" durch.

Möchtest du ein DeepCopy, dann gibt es da viele Wege (z.B. durch Serialisierung).
Siehe dazu:

https://docs.microsoft.com/en-us/dotnet/api/system.object.memberwiseclone?redirectedfrom=MSDN&view=netframework-4.7.2#remarks

Thema: Zwei unterschiedliche IP-Bereiche Zugriff ermöglich
Am im Forum: Netzwerktechnologien

Sollte das nicht mit Windows Board-Mitteln gehen?

Siehe Anhang:

Thema: MathJax in C# aufrufen
Am im Forum: Web-Technologien

Hallo johnnycc,

so sollte es funktionieren:

1. Erstelle ein .NET Projekt (.NET Core oder FF - ist egal)
2. Installiere dir über nuget Edge.js (https://www.nuget.org/packages/Edge.js/).
3. Installiere auf dem Rechner Node.js
4. im Projekt-Folder "npm init" und "npm install mathjax-node"
5. C#-Code (quick and dirty!):


       private static void Main(string[] args)
        {
            string script = @"
                return function (math, callback) {
                    var mjAPI = require('mathjax-node');

                    mjAPI.start();

                    mjAPI.typeset({
                      math: math,

                      mml: true,
                    }, function(data) {
                            callback(null, data.mml);
                        });
                } ";

            var func = Edge.Func(script);

            Console.WriteLine(func("E = mc^2").GetAwaiter().GetResult());
        }

Die Ausgabe sollte dann so aussehen:
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block" alttext="E = mc^2">
  <mi>E</mi>
  <mo≥</mo>
  <mi>m</mi>
  <msup>
    <mi>c</mi>
    <mn>2</mn>
  </msup>
</math>



Wird beim starten die node.dll nicht gefunden wurde, dann beachte dieses Issue:
https://github.com/tjanczuk/edge/issues/503

Infos zu edge.js:
https://github.com/tjanczuk/edge/tree/master#scripting-nodejs-from-clr

Infos zumathjax-node:
https://github.com/mathjax/MathJax-node

- Ich würde den JavaScript/TypeScript-Code natürlich auslagern.
- Bundle mit Webpack wäre natürlich auch ganz gut.

Thema: Microsoft Cloud Deutschland nicht mehr für Neukunden verfügbar
Am im Forum: Szenenews

https://news.microsoft.com/de-de/microsoft-cloud-2019-rechenzentren-deutschland/

... und da geht sie hin die "Deutschland-Cloud"

Thema: Code Review MVVM WPF Caliburn Project erwünscht
Am im Forum: Code-Reviews

Schon mal eine kurze Anmerkung:

obj, bin und nupkg gehören nicht ins Repo.

Thema: Eine List<T> erstellen und sofort mit Werten befüllen
Am im Forum: Grundlagen von C#

Bezüglich:


List<string> returnValue = new List<string>({ "Output Value" });

... was für ein Compiler verwendest du? Das sollte eigentlich nicht mal kompilieren

Thema: Daten erhalten von WebAPI, Berechnen und zurückschicken: Ist Threading hier sinnvoll?
Am im Forum: Grundlagen von C#

Ich glaube dieser Artikel wird dir weiterhelfen:

https://social.technet.microsoft.com/wiki/contents/articles/21177.visual-c-thread-sleep-vs-task-delay.aspx

Thema: Framework, das beim Kunden ein Produkt freischalten kann - auch ohne Internetzugang
Am im Forum: Smalltalk

Bezüglich "Product activation" gibt es eine Vielzahl von kommerziellen Lösungen.
Ich habe gut Erfahren mit codemeter gemacht (sowohl mit Hardware Dongle als auch mit SmartBind-"Software-Dongle"):

https://www.wibu.com/de.html

Thema: Angular, React oder Vue?
Am im Forum: Web-Technologien

Nächstes Jahr frage ich nach Blazor ... aber heute ist nicht der Tag ;-)

Ich würde mal gerne von euch hören, was Ihr aktuell für Meinungen und Empfehlungen aussprecht, bezügliche der allseits beliebten Frage: "Welche Library bzw. welches Framework soll es sein? Angular, React oder Vue?"

Hier das fiktive Szenario:
Eine Horde von .NET/WPF/WinForms-Entwicklern (alle sehr erfahren) will nun mehr Web machen. Der eine oder andere hat ASP.NET- bzw. ASP.NET-Core-Erfahrung.
Auch hat der eine oder andere mal Knockout, Backbone.js, jQuery, Bootstrap ... gesehen.
Wir gehen mal davon aus, dass es eine SPA werden soll/muss.

Thema: Exception:Der Prozess kann nicht auf die Datei zugreifen
Am im Forum: Grundlagen von C#

Zitat
The T:System.IO.FileStream object created by this method has a default T:System.IO.FileShare value of F:System.IO.FileShare.None; no other process or code can access the created file until the original file handle is closed.

https://msdn.microsoft.com/de-de/library/d62kzs03(v=vs.110).aspx

Thema: VS Community 2017 Offline aktivieren?
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Ja nach Lizenzmodell gibt es auch noch einen klassischen "static activation key".
Volumenlizenzversionen verwenden in diesem Fall den gleichen Key ... soviel ich weiß.

Thema: Microsoft übernimmt GitHub
Am im Forum: Szenenews

Nun ist es raus ...

https://www.heise.de/newsticker/meldung/Microsoft-kauft-GitHub-fuer-7-5-Milliarden-US-Dollar-4067633.html

Thema: Funktionen/Methoden in Konsole bzw. Forms
Am im Forum: Grundlagen von C#

Ich benutzte mal die OO-Begrifflichkeit "Methode".

Ob eine Methode static sein muss, hängt maßgeblich an der Klasse.
Ist eine Klasse statisch, dann werden die Methoden auch statisch deklariert.

Ob Console- oder Forms-App in beiden Fällen kannst du statische als auch nicht statische Methoden haben.

Nachtrag 10:48:
Auch deine Forms-App hat eine Program-Klasse.
Diese beinhaltet auch eine "static void Main"

Du solltest dir nochmal die Grundlagen C# und OO anschauen, dann wird es klar.

Thema: Microsoft übernimmt GitHub
Am im Forum: Szenenews

Wir haben das gerade beim Kaffee diskutiert.
Wenn es so kommt, dann finde ich das persönlich ne feine Sache.
Man kann gespannt sein, wie TFS/VSTS und GitHub verschmelzen.

Vielleicht bekommen wir dann auch private Git-Repos in GitHub für lau.
Auch wenn das BitBucket wohl unter druck setzen wird.

Thema: Wie ist eine Chat-App korrekt aufgebaut?
Am im Forum: Grundlagen von C#

Und weil das hier ein .NET/C#-Forum ist natürlich dies hier (als alternative zu PHP):

https://docs.microsoft.com/en-us/aspnet/core/signalr/get-started?view=aspnetcore-2.1&tabs=visual-studio

SignalR macht wirklich Spass. Und das Demo (wie so gut wie jedes zweite SingalR-Demo) ist natürlich eine Chat-Anwendung.

Thema: WinForms erzeugt WPF InvalidOperationException
Am im Forum: GUI: Windows-Forms

Fehler
Der aufrufende Thread kann nicht auf dieses Objekt zugreifen, da sich das Objekt im Besitz eines anderen Threads befindet.

Die Fehlermeldung deutet auf ein Thread-Problem hin. Irgendwas wird nicht im UI-Thread dispatched.

Thema: WinForms erzeugt WPF InvalidOperationException
Am im Forum: GUI: Windows-Forms

Schwieriger Fall.

Prüf mal folgendes:

- Läuft der Call im STA oder im MTA?
- Wird der Call nach WPF im Main-Thread dispatched (prüf den SynchronizationContext) ?
- Ist das wirklich ein COM-Problem oder kannst du den Fehler isoliert (ohne Cobol und COM) reproduzieren?
- Nutze WinDbg und die SOS-Extension um mehr vom CallStack zu sehen

Thema: Migration von .NET (mit WCF) zu .NET Core
Am im Forum: Netzwerktechnologien

@weismat: Danke für deine Rückmeldung

Bezüglich deiner Frage "Was meinst Du mit Callbacks...":

Im Fall der existierenden Anwendungen mit WCF wird teilweise duplex contract (two-way) verwendet.

Thema: Migration von .NET (mit WCF) zu .NET Core
Am im Forum: Netzwerktechnologien

Auf AMQP hab ich eigentlich nur gewartet :-)

Dies scheint in unserem Use Case mit unter auch eine sinnvolle Lösung zu sein.

Setzt einer von euch erfolgreich gRPC ein? Wie sind hier so die Erfahrungen?
Ich weiß: Inhaltlicher Sprung von MessageBus zu rein RPC

Thema: Migration von .NET (mit WCF) zu .NET Core
Am im Forum: Netzwerktechnologien

@LaTino: Danke für deine Rückmeldung

Bei NetMQ stören mich nur die Lizenzbedingungen (Angepasste LGPL v3).
Dies bedeutet immer ein erhöhter juristischer Aufwand (open source compliance).

Selber finde ich, dass zeroMQ bzw. NetMQ eine interessante Alternative ist.