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 weismat
Thema: Wie ein VSTO AddIn für Excel erstellen, das den Funktionsumfang von Excel erweitert
Am im Forum: Office-Technologien

Wenn es irgendwie geht, würde ich ExcelDNA nehmen. Das ist wirklich super gemacht und auch klasse paketiert.
Ansonsten musst Du ganz klassisch eine COM Schnittstelle implementieren. Dazu muss man eine GUID registrieren, die DLL COM sichbar machen und mit regasm.exe registrieren.
Schau Dir dazu die Vorschau zu diesem Buch an.
Bei den ganzen Excel-Geschichten ist das Deployment im Zweifel immer komplizierter als die Umsetzung.

Thema: Großen String (500KB) schnell speichern dauert ca. 1 Minute
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Erstmal solltest Du Dich mit using/dispose vom StreamWriter befassen.
Zweitens solltest Du Dich mit Anforderungen beschäftigen - warum musst Du ständig Strings abspeichern - kannst Du vielleicht mit Deltas arbeiten. Das Du sagst daß Threads keine Lösung sind, verstehe ich auch nicht. Gerade bei IO sind Threads/Tasks oft die Lösung, damit das Schreiben nicht alles blockiert.

Thema: DataBinding: Wann welche Source zum Binden verwenden? Wie Textboxen leeren?
Am im Forum: GUI: Windows-Forms

Ich würde gerade am Anfang immer PropertyChanged.Fody empfehlen, indem man das Nuget-Package einbindet.
Das umgeht einfach und elegant alle Probleme beim Implementieren von INotifyPropertyChanged.

Thema: NetworkStream.Write - Blockiert die Write-Methode irgendwann wenn der Sendepuffer voll ist?
Am im Forum: Grundlagen von C#

Bei TCP solltest Du Dich nicht auf das Protokoll alleine verlassen.
Insbesondere wenn Du ein Netzwerkproblem hast, dann weißt Du nie, was in der Applikation tatsächlich angekommen ist oder nicht, da Du nach Deinem Write irgendwann später einen Timeout bekommst.

Thema: INotifyPropertyChanged durch Klassen schleifen
Am im Forum: Grundlagen von C#

Das View Model kann man mit Reactive Extensions an Services anbinden.
Das hat den Charme, dass man mit Linq-ähnlichen Operatoren arbeiten kann und das man auch IDisposable damit elegant abbilden kann.

Thema: Verweise auf .net Dll bringt Versionsfehler - Wie mache ich das Versionsunabhängig?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Die am Anfang von .Net erdachte Lösung war der Global Assembly Cache, indem man die Versionshölle durch eine Mischung von Versionierung und mehreren gleichzeitig verfügbaren Versionen umgehen wollte. Leider hat sich das in der Praxis nicht so recht durchgesetzt.
Heute geht man eher den Weg, daß man alles in einem Rutsch mit einem Skript baut. Du könntest auch ein großes Projekt mit allen und ein kleines Projekt mit nur einem Projekt anlegen.

Thema: Build-Script für C# Anwendung
Am im Forum: Grundlagen von C#

Es gibt auch so Dinge wie Cake oder Fake, die eine eigene DSL für Build-Skripte bereitstellen. Vielleicht kannst Du Dich daran orientieren - insbesondere da der Source-Code für beide Tools auf github einsehbar ist.

Thema: SUche nach Erfahrungen mit Grpc
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo,
Hat von Euch schon jemand etwas mit grpc gemacht?
Hört sich sehr interessant an - ich benutze bisher immer Protobuf mit eigenem TCP Protokoll und will darauf umsteigen, um mehr in Richtung Standards/Cross Plattform zu gehen.

Thema: Software Patterns: Inversion of Control & Dependency Injection - Grundlegende Fragen
Am im Forum: Rund um die Programmierung

Dependencies sollte man möglichst in den Konstruktor nehmen, damit man nicht mit einer unvollständigen/inkonstistenten Instanz arbeiten kann. Insbesondere wenn man Code lange nicht mehr angefasst hat, passiert so etwas sehr leicht.

Thema: Protobuffer Response nicht eindeutig
Am im Forum: Netzwerktechnologien

In der Spezifikation für Protobufer gibt es keinen klassischen Header.
Warum man noch gzip dazu braucht, verstehe ich auch nicht - das würde nur Sinn machen, wenn man sehr viele Strings hat.
Die Referenz zu Protobuffer findest Du unter Protocol Buffers.

Thema: Wie verarbeite ich grosse Log-Dateien möglichst Leistungsoptimiert?
Am im Forum: Rund um die Programmierung

Mit Patterns meint Abt Patterns of Parallel Programming.
Mit Parallel.For /Parallel.ForEach kommst Du einfach zum Ziel. Bei mir gibt es in manchen Programmen sogar pragmas für testen/debuggen, wo ich je nach Szenario parallel oder mit einem Thread arbeite, da man kaum Code umstellen musst.

Thema: Gebundene Werte aus ViewModel werden nicht aktualisiert
Am im Forum: GUI: WPF und XAML

Ich würde Dir Fody/PorpertyChanged empfehlen. Das implementiert Dir das automatisch im Hintergrund und hält den Code kompakt.

Thema: Assemblies und Versionen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Das Schreiben auf den Streams macht Sinn bei Files.
Hier geht es um Network-Streams - da würde ich immer mit byte-Arrays arbeiten, insbesondere wenn man mehr macht, arbeitet man dann schnell mit mehreren Threads und dann sollte man die Klassen sowenig koppeln wie nötig.

Thema: Assemblies und Versionen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen


        public byte[] ToProtobuf()
        {
            using (var memoryStream = new MemoryStream()) {
               Serializer.Serialize(memoryStream, this);
               return memoryStream.ToArray();
            }
        }

public static MeineKlasse FromBytes(byte[] bytes)
        {
            using (var memoryStream = new MemoryStream(bytes)) {
               var result = Serializer.Deserialize<MeineKlasse >(memoryStream);
               return result;
             }
        }

Angepasst an Abts berechtigten Hinweis...

Thema: Auf Windows geschriebenes Programm auf Mac laufen lassen bzw. weiter entwickeln?
Am im Forum: Rund um die Programmierung

Ich benutze Parallels. Das schafft beinahe die Illusion, dass Visual Studio unter Mac läuft.
Auf jeden Fall solltest Du ausreichend Speicherkapazität kaufen, da Du dann locker 25 GB für Windows 10 und Visual Studio brauchst. Wenn Du dann noch XCode für OS X Entwicklung brauchst, bist Du schnell bei 40 GB nur für die Entwicklungsumgebung.

Thema: Assemblies und Versionen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Bei mir besteht ein Protokoll immer aus einem Kopf und der eigentlichen Nachricht.
Der Kopf enthält Länge, Nachrichtentyp und Versionsnummer.
Die eigentliche Nachricht ist dann in der abstrakten Basisklasse ein Byte Array. Jede Nachricht selbst muss dann eine ToByte Methode implementieren und hat eine statische Factory-Methode FromBytes.
Hilft Dir das?

Thema: Assemblies und Versionen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Bei der Serialisierung setzt MS selber auf Bond.
Protobuf-Net finde ich etwas einfacher, weil man kein Schema braucht und auch keinen zusätzlichen Precompile, sondern rein mit Code Annotations analog dem Binary Formatter arbeitet.

Thema: Assemblies und Versionen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ich würde Dir dringend empfehlen, etwas anderes als Binary Formatter zu nehmen.
Ich persönlich benutze Protocol-Buffer via protobuf-net.
Binary Formatter ist langsam - auch ein zusätzliches Feld wirft ihn aus der Bahn....

Thema: WPF Datagrid - Erste Datenreihe fixieren
Am im Forum: GUI: WPF und XAML

Das geht in die richtige Richtung - nur ist das leider schon 8 Jahre alt.
Mir ging es vor allem darum, dass ich nichts einfaches übersehen habe,.
Da ich das zurzeit nur an einer Stelle brauche, werde ich das erstmal mit 2 Grids in einem CustomControl lösen.

Thema: WPF Datagrid - Erste Datenreihe fixieren
Am im Forum: GUI: WPF und XAML

Das hilft mir nicht, da ich die erste Datenreihe und nicht eine Spalte fixieren will und auch weiterhin einen Header brauche.
Das Grid von Xceed werde ich mir mal anschauen - danke für den Hinweis.

Thema: Gateway auf C# Basis
Am im Forum: Grundlagen von C#

Was ist der Unterschied zum Proxy Pattern?

Thema: WPF Datagrid - Erste Datenreihe fixieren
Am im Forum: GUI: WPF und XAML

Ich bin auf der Suche nach einer Möglichkeit die erste Datenreihe im Datagrid immer anzuzeigen.
Gibt es da eine andere Möglichkeit als ein UserControl mit dem eigentlichen Grid zu erstellen, welches dann zweimal referenziert und einmal mit und einmal ohne Überschriften verwendet wird?

Thema: Alle Ping's auf Router sehen/auslesen
Am im Forum: Smalltalk

Some is Learning How to take down the Internet macht zurzeit gerade die Runde.
Als Privatmann bist Du sicher, weil Du regelmässig mit Routerneustart neue IPs bekommst - daher verstehe ich nicht Dein Problem.

Thema: WPF Applikation wird langsamer, je mehr Speicher sie reserviert hat
Am im Forum: GUI: WPF und XAML

Ich würde mal mit Visual Studio probieren, Dump Files anzuschauen.
Using Dump files.

Hast Du mal mit dem Code Analyser auf Deinen Code losgelassen - vielleicht bekommst Du da noch Empfehlungen Richtung IDisposable.

Thema: Zugriffsverletzung beim Schreiben an Position 0x0000000
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Wenn Du Interop/Nativen Code verwendest, dann muss alles 100 % korrekt sein.
Eine richtige Signatur beim Aufruf der Funktionen ist dabei erst der Anfang der Arbeit. Eine Zugriffsverletztung kann auch ein Fehler beim Ein/Auspacken sein.
Ich persönliche arbeite da am liebsten mit einer eigenen DLL und habe minimalistische Test-Konsolenprogramme zum einfachen Testen jeder externen Funktion.

Thema: UWP ein neues Xaml ohne Code Behind laden
Am im Forum: GUI: WPF und XAML

Interop between XAML and Visual Layer könnte für Dich interessant sein.

Thema: Wo erstellt man das Lock-Objekt beim Zugriff auf eine Methode von mehreren Threads?
Am im Forum: Grundlagen von C#

Wie schon mal gesagt, macht es meist Sinn bei der Threadsicherheit eines Dictionaries, auf das mehrere Threads parallel lesend zugreifen und nur ein Thread schreibt/ändert.

Thema: Zugriffsverletzung beim Schreiben an Position 0x0000000
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Du hast einen Bool Ptr, kein Bool.
Würde also folgende Signatur nehmen:


[DllImport("Toolbox.dll", CharSet = CharSet.Ansi, CallingConvention = CallingConvention.Cdecl)]
        private static extern int GetString([MarshalAs(UnmanagedType.LPStr)] string tag, [MarshalAs(UnmanagedType.LPStr)]string valueStr, uint valueSize, ref bool valid);

Thema: Wo erstellt man das Lock-Objekt beim Zugriff auf eine Methode von mehreren Threads?
Am im Forum: Grundlagen von C#

ReaderWriterLockSlim ist meist interessant, wenn man ein Dictionary mit mehreren lesenden Threads und einem schreibenden Thread hat. Paralleles Lesen mit mehreren Threads ist so möglich. Ein Schreiben blockiert dann alle lesenden Zugriffe.

Das Initialisieren würde ich bei der Definition der Variablen machen.


private ReaderWriterLockSlim cacheLock = new ReaderWriterLockSlim();

Thema: [Erledigt] TCP Verlust von Paketen oder falsche Reihenfolge möglich?
Am im Forum: Netzwerktechnologien

Der sendLocker dient dazu, dass man aus verschiedenen Threads heraus senden kann.
Damit ist der Server dann multithreading fähig.
Der Client hat bei mir einen Thread zum Lesen und schreibt dann auf eine BlockingCollection.
Der Consumer der BlockingCollection schreibt die Ergebnisse in verschiedene Rx Observables.