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 unconnected
Thema: Wie in das Thema Algorithmen einarbeiten?
Am im Forum: Rund um die Programmierung

Hallo BlackArtC#

Also ich als bekennender Mathe Hasser kann dir sagen das Du für dieses Problem nicht viel Mathe kenntnisse brauchst. Ich habe noch nie ein Buch über das entwickeln von Algorithmen gelesen. Trotzdem habe ich direkt erkannt (beim lesen des Wiki eintrags zum Baum) wie ich das Problem angehen würde.

Nimm dir immer erst das kleinste Problem vor. In diesem Fall das Rechteck was Du schon kennst. Und dann überleg Dir was Du brauchst um die nächsten 2 Rechtecke zu zeichnen. Diese merkst Du Dir dann in einer Liste. Danach iterierst Du über die Liste und hängst die nächsten Rechtecke dran.

Irgendwann sind die Rechtecke so klein, das es sich nicht mehr lohnt zu Zeichnen.. Das ist dann der Ausstieg.

Je mehr man sich genau an solche Probleme traut und sie mal durchspielt, desdo mehr Übung bekommt man, desdo weniger muss man darüber nachdenken.

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

Hallo,

ein bischen falsches Forum hier. Da solltest Du eher in einem Netzwerk Forum posten. Gute Router haben die Möglichkeit des Port Mirroring. Damit kannst Du den eingehenden Traffic 1:1 auf einen anderen Port spiegeln. Auswerten kann man das dann z.B. mit Wireshark.

Grüße

Thema: Daten aus einer SQL Datenbank auslesen - Welcher Connectionstring ist richtig?
Am im Forum: Datentechnologien

Vielleicht solltest Du den restlich Quellcode doch posten.. zumindest den Teil wo du versuchst mit Open() die Verbindung zu öffnen. Das ist auch die Stelle wo eine Exception fliegen sollte, wenn keine Verbindung aufgebaut werden kann.

Exceptions kannst Du mit try/catch abfangen, oder mit dem Debugger einsehen -> [Artikel] Debugger: Wie verwende ich den von Visual Studio?

Ich bin mir nicht sicher ob man die Windows Authentifizierung vom Server nicht nochmal Explizit einschalten muss.

Grüße

Thema: InvalidOperationException beim Mappen einer XML Datei auf eine C# Klasse
Am im Forum: Datentechnologien

Hallo,

machs mal andersrum. Erstelle ein Object vom Typ Config uns serialisier das.

Ich vermute das Xml würde dann etwa So aussehen:


<?xml version="1.0" encoding="utf-8" ?>
<Config>
      <High>800</High>
      <Width>1280</Width>
</Config>

Wenn Du Die Chance hast, stell dein Spiel Xml so um. Anders kommst Du an dieser Stelle wohl nur mit einer sehr komischen Object Struktur (Klasse High, Property h) oder dem Interface IXmlSerializable weiter.

edit: Jetzt wo ich deinen Code nochmal anschaue.. XDocument.Root.CreateReader wird dem XmlSerializer auch nicht das ganze Document geben. Vermutlich nur die ChildNodes von Config. Damit kann der XmlSerializer nichts anfangen. Der brauch das ganze xml.

Thema: SQLite Update aktualisiert die Datenbank nicht und das Programm friert ein
Am im Forum: Datentechnologien

Nur die hälfte? Das würde mich wundern.

Inserts und Updates sind "NonQuery´s" da sie keine Ergebnismengen zurück geben, ausser die Anzahl der geänderten Datensätze.

Du musst deinen Code Debuggen dann bekommst Du auch eine Fehlermeldung (Exception Settings: Common Runtime Exceptions -> haken setzen!). ALternativ kannst Du auch ein try & catch mit einer COnsolenausgabe machen.

Thema: Der richtige Einstieg in die Webentwicklung - Roter Faden?
Am im Forum: Web-Technologien

Puh, viele Fragen.

Leider ist der Weg nicht immer klar wo es hin geht. Aus meiner Sicht gehtst Du schon in die richtige Richtung.

Zu 1. Bootstrap kann nicht Schaden, Javascript solltest Du auf alle Fälle lernen.

Zu 2. JQuery und Angular schliessen sich ja erstmal nicht aus. Angular benutzt es sogar. Angular ist was Datenbindung angeht das beste was die Javascript Welt (imho) hervorgebracht hat, und solltest es Dir auf alle Fälle anschauen. Wenn Du gerade erst anfängst ist es vllt. sogar besser auf Angular2 + Typescript zu schauen. (Ich hasse es Untypisiert zu arbeiten..).

Zu 3. .Net Core ist auf dem Weg. Die Geschichte mit dem Windows Server wird also hoffentlich bald fallen.

Zu 4. Puh.. MVC hat mir nie wirklich gefallen. Und es war meist grotten lahm. Vielleicht habe ich auch was falsch gemacht, aber der Drops war somit für mich gelutscht. Schau dir lieber ASP.NET + (Web Api oder Service Stack) an.

Zu 5. Bestimmt :)

Grüße

Jan

Thema: TypeScript vs JavaScript (Patterns)
Am im Forum: Web-Technologien

Aber man kann sich die Typensicherheit von Javascribt libs (wenn nicht schon auf DefinitelyTyped angeboten) selber mit Definition Files herstellen.

Thema: SignalR 3 - C# Client bringt 'Internal Server Error' während Javascript-Client funktioniert
Am im Forum: Web-Technologien

Hallo,

ich würde einmal den Fiddler dazwischen schalten, und schauen ob es einen Unterschied im Request zwischen dem Javascript client und dem .net client gibt.

Als zweites würde ich den Server im Debug starten und das Anhalten an allen Exceptions einschalten. So kommst Du vielleicht an die eigentliche Exception.

Thema: Änderungen am Quelltext werden nicht übernommen
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Und vllt auch: [FAQ] Warum blockiert mein GUI?

Thema: SQL-Abfrage liefert nur einen Datensatz
Am im Forum: Datentechnologien

Hallo,

benutz doch der einfachheit halber eine List<string> und kein Array. Dann musst Du vorher auch nicht wissen wieviele Datensätze Du hast.


var data = new List<string>();
while (reader.Read())
 {
data.Add(reader.GetValue(0).toString());
}

Oder willst Du auch über die Spalten iterieren und nicht nur über die Zeilen? Dann bräuchtest Du auch 2 Schleifen.

Gruß

Thema: [erledigt] Linq-Artikel auf Wikipedia für "Group" fehlerhaft
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ja, der Artikel scheint fehlerhaft..

ich habe glaube auch noch nie ein group by ohne into gesehen. (Obwohl ich die ()=> schreibweise bevorzuge)

also dein 2. Beispiel müsste dann so aussehen:


from e in Employees
               group e by new { e.Age,e.Department} into f
               select f

Das erste geht imho so überhaupt nicht, weil das e nach dem group schon "out of scope" ist, und in f ist schon die fertige Gruppe. Darin könnte man nur noch soetwas wie


    var groupedEmployees =
               (from e in Employees
               group e by new { e.Age,e.Department} into f
               group f by f.Count() into g
               select g).ToList();

machen.

Gruß

Thema: [gelöst] Fehler nach VS Update 1
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo,

welches VS ? 2013/2015 ?
Für 2015 ist das Update2 RC raus (Vllt eine option). Für 2013 wäre sind wir bei 5.

Wenns gar nicht zum laufen zu bringen ist, würde ich das Studio mit Update 1 neuinstallieren. Die Update Routine von Update1 hat bei mir auch murks gemacht :(

Thema: Überschreiben einer virtual Methode aus einer anderen DLL
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Für PostSharp müsste er die Assembly selber kompilieren. Ich vermute das ist nicht ganz was er will.
Mit Reflection Emit müsste das gehen. Ausprobiert habe ich es aber noch nicht.

Thema: Prüfen, ob meine Methode ausgeführt worden ist
Am im Forum: Grundlagen von C#

?

Du musst doch wissen ob Du die Methode ausgeführt hast oder nicht? Oder versteh ich Dich nicht richtig?

Thema: Auf nicht installiertem Netzwerkdrucker drucken
Am im Forum: Rund um die Programmierung

Hallo Rioma,

ZPL kannst Du ganz normal per TCP / IP an den Drucker senden, dazu muss der Drucker nicht installiert sein. Bei Zebras standardmäßig Port 9100. Mache ich auch so, funktioniert super.

Du solltest Dir nur im klarem sein das Du dann die Queue funktionalitäten des Spoolers verlierst, wenn der Drucker mal nicht zu erreichen ist.

Grüße

Thema: Etikettendesigner mit WPF entwickeln: Wo anfangen?
Am im Forum: GUI: WPF und XAML

Ich habe mir so Ding mal mit Telerik Reporting zusammengestellt.

Reports mit Designer erstellt -> den Report Processor mit dem Design und den Etiketten Daten gefüttert -> Bild -> ZPL (Druckersprache Zebra Label Drucker) -> Drucker

Die größte Herausforderung war das Bitmap performant nach ZPL zu konvertieren.

Ging super :)

Thema: Web Api Performance-Problem nach Auslagerung von dll's
Am im Forum: Web-Technologien

Hallo,

dauert das nur beim ersten mal solange? Dann könnte es tatsächlich an der Assembly liegen.

Das ist dann der Fall, wenn erst beim ersten Select die dlls des Datenzugriffs nachgeladen werden.

Thema: FTP Anzahl Dateien in Verzeichnis
Am im Forum: Rund um die Programmierung

Danke, hab ich mir schon gedacht.

Thema: FTP Anzahl Dateien in Verzeichnis
Am im Forum: Rund um die Programmierung

Hallo,

gibt es eine Möglichkeit einem FTP Server die Anzahl der Dateien in einem Verzeichnis zu entlocken ohne ein List auszuführen?

Hintergrund ist, das ich in mehreren Verzeichnissen die Anzahl der Vorhandenen Dateien anzeigen muss. Diese Verzeichnisse haben leider recht viele Dateien. Nun drückt er ja bei einem LIST alle Dateinamen über die Leitung, was dann dem entsprechend dauert.

Kennt sich jemand mit dem FTP Protokoll aus, und kann mir da auf die Sprünge helfen?

Grüße

Thema: Dll-Import funktioniert bei einer WPF-Anwendung, bei KOnsole nicht mehr
Am im Forum: Grundlagen von C#

[Hinweis] Wie poste ich richtig? punkt 2.2

Dll in Console vs Dll in WPF

Thema: TPL Dataflow Lib: Faulted TransformBlock fortführen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

So noch ein wenig mehr wühlen in Google und lesen von x Tutorials bin ich nun so verblieben das ich den TransformManyBlock für meine Bedürfnisse "missbrauche".

Ich habe mir zu diesem Zweck eine kleine Helper klasse gebaut:


 public static Func<TInput, IEnumerable<TOutput>>  BuildTransformManyFunc<TInput, TOutput>(Func<TInput, TOutput> func,Action<TInput> logAction = null)
        {
            var retfunc = new Func<TInput, IEnumerable<TOutput>>(data =>
            {
                try
                {
                    var result = func(data);
                    return new TOutput[] {result};

                }
                catch
                {
                    if (logAction != null)
                        logAction(data);

                    return new TOutput[] {};
                }

            });

            return retfunc;
        }

usage:


var step= new TransformManyBlock<string, string>(TransformBlockFuncHelper.BuildTransformManyFunc<string,string>(uri =>
            {
return uri + "Step1";
                
            }),new ExecutionDataflowBlockOptions
            {
                MaxMessagesPerTask = ExecutionDataflowBlockOptions.Unbounded,
                MaxDegreeOfParallelism = ExecutionDataflowBlockOptions.Unbounded
            });

ich denke hiermit kann ich nun leben. Die Transform Aufgaben, die mit einer Exception enden werden einfach als leeres IEnumerable zurück gegeben.

Thema: TPL Dataflow Lib: Faulted TransformBlock fortführen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Stimmt schwer nicht, aber aufwendig wenn man das öfter verwenden will.

Dann muss ich in jedem Block Exception Handling betreiben, und danach noch filtern.
Das möchte ich nicht, oder nur ungern.

Thema: TPL Dataflow Lib: Faulted TransformBlock fortführen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

@malignate

stimmt daran hatte ich auch schon gedacht, nur wird dieser dann auch durch alle Blöcke durchgeschleust, ohne das wirklich was gemacht wird.

Ich hatte mir schon gedacht das ich hier meinen eigenen TB bauen muss :(

Falls noch jemand ne Idee hat, immer raus damit :)

Danke

Thema: TPL Dataflow Lib: Faulted TransformBlock fortführen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo,

ich beschäftige mich gerade mit der TPL Dataflow Library.

Mein Szenario verlangt das wenn was schief geht (Exception) auf jeden Fall mit den nächsten zu verarbeitenden Items weitergemacht werden soll, und das Fehlerhafte Item geloggt und dann weggeworfen wird.

Nun scheint das Standard verhalten des TransformBlock zu sein bei jeder Exception in den Faulted State zu gehen, und dann seine Arbeit einzustellen. Ist es möglich diesen dazu zu bewegen (vllt im ContinueWith) das Item aus seiner Queue zu löschen und weiter zu machen?

Oder muss ich tatsächlich schon für diesen nicht unüblichen Vorgang einen eigenen Block implementieren?

Thema: String einlesen und ohne bestimmte Zeichen Wieder ausgeben
Am im Forum: Grundlagen von C#

Du gehst doch schon jedes Zeichen einzeln durch.
Wenn das Zeichen gültig ist, fügst Du es einfach einem neuen String hinzu. Dieser ist danach gefiltert.

Thema: Performanteste Datenbank für Koordinaten
Am im Forum: Datentechnologien

Zitat von T-Virus
Falls dies aber für dich eher ungünstig ist, da du z.B. für deine ID nach bestimmten Positionen über einen größeren Zeitraum suchst, dann wird dieses Konzept eher wenig hilfreich sein.

Genau so ist es.

Es geht darum für eine bekannte Id alle bekannten koordinaten zu holen. Und das möglichst Performant, ohne das einfügen der Daten zu sehr zu bremsen.
Im Moment spiele ich gerade mit mongodb ein wenig rum.

Sind übrigens keine GPS sondern RFID positionen ;) was aber nicht den unterschied macht denke ich.

Thema: Performanteste Datenbank für Koordinaten
Am im Forum: Datentechnologien

Ja stimmt die übertragung der Id ist nicht nötig, würde bei weiterer Optimierung auch rausfallen. Das fällt aber nicht wirklich ins Gewicht, weil beim 2. Ausführen das ganze in millisekunden (Zumindest ist das so schnell das keine wirkliche verzögerung feststellen konnte) geladen ist.

Und 50000 Datensätze nach nem Zeitstempel zu sortieren ist für oracle nicht wirklich das Thema, auch ohne Index. Wenn ich das sortieren weglasse ist der select genau so langsam/schnell.

Die einzige Beschleunigung die ich wirklich sehe, ist die Spalten die ich brauche mit in einen neuen Index zu nehmen (ID,Zeitstempel,X,Y,VarcharSpalte) um Oracle den schritt zu ersparen vom Index nochmals in die dazugehörige Row per RowId zu greifen und somit ein zusätzlichen Festplatten I/O erzeugt.

Die Id ist sogar 96Bit lang hatte oben nur beispielweise eine hineingeschrieben damit klar wird das hier ein Hex String (Der natürlich länger als 96 Bit ist) verwendet wird. Was ich im übrigen auch nicht für optimal halte.

Grüße und vielen Dank nochmals für die rege Beteiligung.

Thema: Performanteste Datenbank für Koordinaten
Am im Forum: Datentechnologien

@Khalid

Leider fallen partielle Indexe hier aus. Die Datensätze werden von Usern abgerufen und eventuell auch mehrmals.

Thema: Performanteste Datenbank für Koordinaten
Am im Forum: Datentechnologien

Hallo,

und Danke für die vielen Antworten.

@Sir Rufo, Stimmt zumal es sich hier um Konstanten handelt.

Aber genau wie Khalid halte ich die größe der Db nicht für das Problem. und ich denke der zusätzliche Index würde ordentlich Schub geben.

Das Problem ist hier eher die durchschnittlich 500 Datensätze (Es gibt hier auch Peaks in die eine oder andere Richtung) pro sekunde, die eingefügt werden. Diese wollen ja auch mal in den Index einsortiert werden. Und ein zusätzlicher Index kostet beim Insert halt auch Zeit. Zumal der Server der die Datenbank befüllt jetzt schon hin und wieder Backlogs aufbaut, weil er die Datensätze nicht schnell genug in die Db blasen kann.

der select sieht ungefähr so aus:


select id, x,y,varcharSpalte,datum from Tabelle where id = 'A12DFB1784F' order by datum

Den Plan habe ich unten angehängt.

Der Index ist Type "NORMAL"

MongoDb, Geospatial,Fragmentierung und partitionierter Index habe ich schonmal zum Nachforschen aufgenommen. Falls noch jemand eine Idee hat, bin ich für jede Dankbar :)

Thema: Performanteste Datenbank für Koordinaten
Am im Forum: Datentechnologien

Hallo,

ich habe hier eine Tabelle auf einer Oracle Db die Koordinaten, Zeitstempel und noch ein varchar zu einer Id (nicht unique) speichert. Diese Tabelle bekommt ca. 500 Datensätze pro Sekunde zu verarbeiten und hält die Daten ca. 20 Tage vor, was zu einem Datenvolumen von mehreren 100 GB führt. Nun liegt auf der Id natürlich ein Index und der zugriff auf diesen geht auch schnell.
Sobald ich nun aber im Select auf die Koordinaten (nicht im Index enthalten) dauert ein Select auf eine Id mit 50000 Datensätzen ca. 40 sek., da ja nun zu dem Index auch Daten ausserhalb des Index benötigt werden. Diese Daten kann sich Oracle natürlich nicht im Ram halten (weil mehrere 100GB) und müssen mühsam auf der Platte zusammengekrazt werden.

Da sich diese Tabelle schon am Rande ihrer Leistungsfähigkeit bewegt ist die Idee, einen zusätzlichen Index anzulegen der Id + die zusätzlichen Daten die ich im Select benötige enthält, eher nicht so gern gesehen.

Nun zu meiner Frage: Gibt es Datenbanken die mit dieser Art und Menge von Daten besser zu recht kommen?

Grüße