Laden...
markl
myCSharp.de - Member
11
Themen
78
Beiträge
Letzte Aktivität
vor 3 Jahren
Dabei seit
29.09.2016
Alter
46
Beruf
Softwarearchitekt
Website
Blog
Erstellt vor 3 Jahren

Moin,

.NET 6 kann noch COM (Component Object Model)!
Leider wird tlbexp.exe nicht mehr für .NET ≥ 5 unterstützt.

Aber vielleicht Hilfe euch das Project:
https://github.com/dspace-group/dscom

Einfach folgenden Befehl in der Console aufrufen:

dotnet tool install --global dscom

Danach könnte genau so wie bei tlbexp.exe eine tlb aus einem Assembly erzeugen:

dscom tlbexport myassembly.dll

Außedem habe wir euch ein nuget-Package zu verfügung gestellt, mit dem man "ConvertAssemblyToTypeLib" wieder bekommt:

https://www.nuget.org/packages/dSPACE.Runtime.InteropServices/

Viel Spaß und lasst mal ein Like/Star da.

Erstellt vor 6 Jahren

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

Erstellt vor 6 Jahren

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

Erstellt vor 6 Jahren

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.

Erstellt vor 6 Jahren

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.

Erstellt vor 6 Jahren

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.

Erstellt vor 6 Jahren

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.

Erstellt vor 6 Jahren

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

Erstellt vor 6 Jahren

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();
10 von 78 Beiträgen