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: Mit Nuget offline arbeiten
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Ich arbeite mit meiner Entwicklungsumgebung in einer sehr restriktiven Umgebung ohne Internetzugriff.
Wie kann ich am besten Remote mit Nuget arbeiten?
Am liebsten wuerde ich mir einen Mirror von nuget.org bauen, habe aber bisher nix dafür gefunden.

Thema: Zeile von Textdatei bearbeiten und dann löschen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen


f_file.Close();
sollte vor

File.WriteAllLines(s_sqlfile, lines.Skip(1).ToArray());
stehen.
Welche Exception bekommst Du denn genau?

Thema: Veranstaltungen o. Gruppencoachings für IT/Softwareentwickler finden (per spezieller Suchmaschine)?
Am im Forum: Smalltalk

Wuerde mal bei softwerkskammer und bei Meetup schauen.

Thema: Netzwerk-Karte auswählen
Am im Forum: Netzwerktechnologien

Das Routing und damit die Auswahl des Interfaces ist Teil des Betriebssystems, nicht der Applikation. Hintergrund ist, dass die Applikation nicht fuer jeden Rechner neukompiliert werden muss und gleichzeitig mehrere Applikationen genau eine Einstellung benutzen koennen.
Route Add ist dazu der Befehl.

Thema: T4 Template - Semikolon Fehler [==> Fehler durch falsches Quoten]
Am im Forum: Rund um die Programmierung

Wahrscheinlich habe ich die Fehlermeldung übersehen - ich habe mehr auf die erste Fehlermeldung geschaut und die war ein fehlendes Semikolon.
Ich hatte halt lange nix mehr mit T4 gemacht und habe wirklich ne Stunde dran rumgedoktert - "Metaprogramming in .NET" wieder angeschaut und nicht den Fehler gefunden...

Thema: T4 Template - Semikolon Fehler [==> Fehler durch falsches Quoten]
Am im Forum: Rund um die Programmierung

Die erste Fehlermeldung lautet "Missing Semikolon" wie im Titel - Du findest keine Code-Stelle, da der Fehler in der generierten .cs Datei angezeigt wird - nicht im eigenen Code.

Thema: T4 Template - Semikolon Fehler [==> Fehler durch falsches Quoten]
Am im Forum: Rund um die Programmierung

Ja, lag an den Quotes - aber es mehr die Kombination von Kompilier- und Laufzeitfehlern, die mich bei T4 verwirrt hat.
Bei T4 "Run Custom Tool" werden ja sowohl die T4-Anweisungen kompiliert und dann anschliessend zur Generation der Klassen ausgefuehrt.
Das Problem sind mehr die komischen Fehlermeldungen.
Am Schluss habe ich halt wirklich nach jeder Zeile T4 laufen lassen.

Thema: T4 Template - Semikolon Fehler [==> Fehler durch falsches Quoten]
Am im Forum: Rund um die Programmierung

Habs jetzt - T4 ist wirklich ein bisschen tricky - aber auch sehr maechtig.

Thema: T4 Template - Semikolon Fehler [==> Fehler durch falsches Quoten]
Am im Forum: Rund um die Programmierung

Der Fehler passiert beim Pre-Compile, nicht in der generierten Klasse.

Thema: T4 Template - Semikolon Fehler [==> Fehler durch falsches Quoten]
Am im Forum: Rund um die Programmierung

Ich versuche aus einer csv-Datei mittels t4 konstante Produktdaten zu erzeugen.
Irgendwie bekomme ich immer einen Semikolon-Fehler beim Ausfuehren des Template Codes - mir ist aber ueberhaupt nicht klar, warum...


<#@ template debug="true" hostSpecific="true" #>
<#@ output extension=".cs" #>
<#@ Assembly Name="System.Core.dll" #>
<#@ Assembly Name="System.Windows.Forms.dll" #>
<#@ import namespace="System" #>
<#@ import namespace="System.IO" #>
<#@ import namespace="System.Diagnostics" #>
<#@ import namespace="System.Linq" #>
<#@ import namespace="System.Collections" #>
<#@ import namespace="System.Collections.Generic" #> 
// This is the output code from your template
// you only get syntax-highlighting here - not intellisense

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Globalization;
namespace Product{
  class ProductCache {
		private static ProductCache _instance;
        private Dictionary<string, Product> ProductId2Product=new Dictionary<string, Product>();
        
        private ProductCache()
        {				
<# 
using (var fs = File.OpenRead("productlist.csv"))
   using (var textReader = new StreamReader(fs))
   {
        textReader.ReadLine();
      while (!textReader.EndOfStream) {			
			var line = "Add("+"""+textReader.ReadLine()+"""+");";
			this.Write(line);			
		}
	}            
#>	
        }

        public static ProductCache Instance
        {
            get
            {
                if (_instance != null) return _instance;
                _instance = new ProductCache();
                return _instance;
            }
        }

		private void Add(string csvString) {
			var product=new Product(csvString);
			ProductId2Product.Add(product.ProductId, product);
		}

     }
  }
Ich habe den Code auch in einer Consolen Anwendung mit Console.Write statt this.Write ausprobiert und er kompiliert - deswegen stehe ich jetzt auf dem Schlauch.

Thema: TCP-Performance Optimieren / Probleme beim zu schnellen Lesen
Am im Forum: Netzwerktechnologien

TCP garantiert eine Reihenfolge, schnelles Lesen ist nur wichtig, damit der Buffer nicht voll wird, wenn viele Daten kommen, nicht um die Reihenfolge einzuhalten.
Du hast in deinem Code eine Magic Number von 4K beim Lesen, wo irgendwo dann etwas schief läuft, da Du in 4k Blöcken liest.
Das TCP Receive Window ist mittlerweile bis zu 16 MB groß, insofern sind die 4k eher kontraproduktiv.
Dein Server Programm ist auch kompliziert, weil Du nur eine while schleife statt zwei Schleifen (eine aussen für listening/eine innere für Lesen der Message) benutzt.
Ich würde an Deiner Stelle erstmal mit einfachen Read/Write anfangen, wenn Deine Nachrichten kleiner als 16 MB sind.

Thema: Zyan - Event wird nicht beachtet
Am im Forum: Netzwerktechnologien

Kenne mich nicht mit Zyan aus, aber es geht um IPC InterProcessCommunication.
Daher sind der Client und der Server 2 seperate Einheiten.
Du willst wohl einen Push Client schreiben.
Dir fehlt im Server auf jeden Fall die Verknuepfung zwischen dem Client/Request und dem Event - wo kann ich Dir auch nicht sagen.

Thema: Performance: TCP-Daten möglichst verzögerungsfrei am Client lesen
Am im Forum: Netzwerktechnologien

Ich denke Du hast auch ein falsches Verständnis, was ein Timeout ist.
Ein Timeout ist, wenn nix kommt, nicht wie lange hinzufügen/entfernen dauert.
Ich habe gestern in einem meiner Programme auf einem echten Server (Xeon Sandybridge) über mehrere Stunden im Durchschnitt ca. 2500 Elemente/Sekunde im Schnitt in eine BlockingCollection hinzugefügt und entfernt. Nichtsdestotrotz kann es durch den GC Spitzen geben, wo Du mehrere 100 ms für einmal lesen/schreiben brauchst - bei mir lag die Spitze gestern bei 750 ms.

Thema: Performance: TCP-Daten möglichst verzögerungsfrei am Client lesen
Am im Forum: Netzwerktechnologien

Benutzt Du einen eigenen Thread nur zum Lesen, der die gelesenen Daten in einer BlockingCollection ablegt?
Ansonsten solltest Du Dich mit tcpdump/windump vertraut machen, damit Du Fehler auf TCP-Protokollebene sehen kannst - das Betriebssytem verrät nix darüber.

Thema: Wechsel von C# nach ABAP
Am im Forum: Smalltalk

Ich denke, dass es bei SAP/ABAP neben der eigentlichen Sprache viel mehr der Fokus auf der Business-Seite liegt. D.h. bei vielem geht es mehr darum, dass Du das Datenmodell und die Bildschirme/Dialoge von SAP verstehst.
Die Sprache selber ist einfacher als C#. Du solltest Dir auch ein bestimmtes Modul aussuchen, wenn Du Dich einarbeitest.

Thema: Performance: TCP-Daten möglichst verzögerungsfrei am Client lesen
Am im Forum: Netzwerktechnologien

Wenn Du Dich mehr mit TCP beschaeftigen willst, dann solltest Du DirWindows Internals anschauen - vieles hängt auch vom Treiber Deiner Netzwerkkarte ab.
TCP in den neueren Windows Versionen keine feste Puffergroesse. Wichtig ist vor allem, dass Du in separaten Threads liest, selber pufferst und verarbeitest, da der Puffer nicht sehr gross ist und ein voller Puffer zu Resends fuehrt.
Wenn es um Performance geht, dann gibt es eigene Protokolle, die UDP fuer den Transport und die Reihenfolge und auch fehlende Pakte nachschicken.

Thema: Fehlermeldung "Im Puffer ist nicht genügend Speicherplatz vorhanden"
Am im Forum: Basistechnologien und allgemeine .NET-Klassen


using (var accessor = mmf.CreateViewAccessor(0, mmf_file_work.Length*sizeof(float)))
wird wohl die noetige Anpassung sein...dann kannst Du auch auf Generics umstellen, um alle anderen nativen Typen abzubilden.

Thema: TCP Datenverlust beim Versenden über WAN
Am im Forum: Netzwerktechnologien

Ich sehe direkt zwei Probleme:

  • TCP ist ein "hoefliches" Protokoll - d.h. der Sender darf sich nicht verabschieden, bevor die Kommunikation mit dem Empfaenger beendet ist.
  • Beim Senden wird kein Flush aufgerufen - erst nach dem Flush wird 100 % etwas verschickt.

Thema: C++ DllImport 2D Array Daten nach C# 2D Array ?
Am im Forum: Rund um die Programmierung

Auf jeden Fall muss das static bei MP5 beim c# struct weg.
Probier mal:


public struct MP5 {
[MarshalAs(UnmanagedType.LPArray, SizeConst=5*12)] 
public int[,] iFelder;
}
Oder ansonsten mal Default Marshaling for Arrays anschauen und probieren....

Thema: Memorystream für IPC möglich?
Am im Forum: Rund um die Programmierung

An Deiner Stelle würde ich Dir raten, Dich entweder mit WCF oder NServiceBus oder einer anderen Middleware zu beschäftigen. Auch Sockets sind ok, da findest Du auch mittlerweile in jedem Buch Beispiele.
MemoryMappedFile sind nur dann interessant, wenn sehr viele Daten hochperformant ausgetauscht werden müssen.
Fuer die Serialisierung wuerde ich mir ProtocolBuffer anschauen - damit koennen auch der Client und der Server mit unterschiedlichen Versionen arbeiten

Thema: Pointeroperationen für Int32-Werte im CF nur an durch vier teilbare Adressen möglich: Warum?
Am im Forum: Rund um die Programmierung

Deswegen arbeitet man am besten mit Fillern/Padding. Im Zweifel ist das die saubere Lösung.
Manche Compiler machen das auch automatisch.
Du handelst Dir neben Abstürzen auch schnell Geschwindigkeitsprobleme ein.

Thema: Pointeroperationen für Int32-Werte im CF nur an durch vier teilbare Adressen möglich: Warum?
Am im Forum: Rund um die Programmierung

Das Fachwort zu dem Verhalten heisst "Data structure alignment".
Deswegen mache ich bei unsafe Code oft Filler rein oder die Reihenfolge sieht so aus, dass zuerst Zahlen und dann die einzelnen Bytes kommen.
In dem verlinkten Artikel findest Du jede Menge Info dazu. Gibt auch den Fall, dass nicht aligned das Programm langsamer macht.

Thema: Options beim TCP-Header
Am im Forum: Netzwerktechnologien

Schau mal hier:
Pcap Spoofing.
Hast Du schon mal Wireshark gearbeitet? PCabNet ermoeglich Dir den Zugriff auf die gleiche Library, die Wireshark benutzt / WinPcap.

Thema: Microsoft Press macht dicht
Am im Forum: Szenenews

Ich habe früher oft Papierbücher auf Deutsch gekauft.
Mittlerweile kaufe ich nur noch ebooks auf Englisch - der Preisunterschied ist einfach bei den aktuellen Umtauschkursen gewaltig, insbesondere wenn man Cyber-Monday etc. ausnutzt, so dass ein Original-Buch um 10 Euro kostet, während die deutschen Bücher mindestens 30 Euro kosten...
Bei MS Press hatte mit den Jahren die Qualität stark gelitten - "CLR via C#" und "Code Complete" sind absolute Klassiker, aber "CLR via C#" war z.B. recht schwach übersetzt...

Thema: StyleSheet für Excel generieren?
Am im Forum: Office-Technologien

EPPlus oder das SDK brauchen kein Excel.
Mit Deinem eigenen Stylesheet wirst Du natuerlich am schnellsten bei der Umsetzung sein - aber das SDK pder EPPLus machen die Sache etwas einfacher, beim Entwickeln, denn Excel hat ein sehr kompliziertes Objekt-Modell.

Thema: Daten mit C# an Excel übergeben und wieder einlesen
Am im Forum: Office-Technologien

Das Stichwort lautet
Excel Interop via COM.
Der Link ist das erste Ergebnis bei google - Du wirst jede Menge finden koennen und dann kannst Du gerne nochmal bei Details nachhaken.

Thema: C# und SSH: mit einem Programm einfache Befehle auf meinem Root Server ausführen
Am im Forum: Rund um die Programmierung

Es kann auch gut sein, dass root kein ssh darf - aber reboot root Zugang erfordert. Klassischerweise wuerdest Du Dich mit einem anderen User und dann "sudo reboot" nutzen.

Thema: C# und SSH: mit einem Programm einfache Befehle auf meinem Root Server ausführen
Am im Forum: Rund um die Programmierung


SshClient(host, username, password)
"Ip" - steht bei Dir IP oder eine echte Adresse in Form von xx.xx.xx.xx?
Ansonsten wuerde ich auf dem Server mal in den Logs des ssh daemons schauen...

Thema: StyleSheet für Excel generieren?
Am im Forum: Office-Technologien

Auch wenn ein Excel-File xlsx ein gezipptes XML ist, so kenne ich keine Stylesheets, die eine direkte Umwandlung ermoeglichen.
Die klassische Excel-Loesung waeren Makros.
Die Alternative waere entweder ueber COM oder eine eigene Bibliothek wie EPPlus, um aus den Dateien xlsx Dateien zu erstellen.

Thema: Marshal Struct array in IntPtr: NotSupportedException
Am im Forum: Rund um die Programmierung

Schau Dir mal Interop: Common Issues and Debugging Techniques an. Wahrscheinlich musst Du wirklich manuall jedes Feld umwandeln.