Laden...

Forenbeiträge von JayKore Ingesamt 26 Beiträge

23.12.2009 - 17:57 Uhr

ok sorry,

ich bin nen bischen blöd. Mit graphics.FillPath kann man auch einen kompletten path transformiert füllen.

23.12.2009 - 17:43 Uhr

Hallo liebe Freunde,

ich habe ein Verständnisproblem während der Erkundung . o.g. Themas, bzw. bin mir unsicher wie ich folgendes Ziel erreichen soll. Vielleicht kann mir jemand auf die Sprünge helfen.

Ich zeichne Formen über die Objekte aus System.Drawing.Drawing2D.
Habe folgendes Beipiel:


Graphics G = Graphics.FromImage(pb.Image);
GraphicsPath P = new GraphicsPath();
            P.AddRectangle(new Rectangle(10,10,50,10));
            Point[] points = new Point[5];
            points[0] = new Point(60, 10);
            points[1] = new Point(60, 0);
            points[2] = new Point(80, 15);
            points[3] = new Point(60, 30);
            points[4] = new Point(60, 10);
P.AddPolygon(points);
G.FillPolygon(Brushes.BlueViolet, points);
G.DrawPath(new Pen(Brushes.Black), P);

Gezeichnet wird ein Pfeil, der nach rechts zeigt. Die Pfeilspitze(points) ist über fill eingefärbt. Der Pfeil ist aus 2 Formen zusammengesetzt und in einem graphicspath fetgehalten.
Ich möchte den Pfeil nun beliebig rotieren können.

  1. Ansatz:

So wie ich es aus directx kenne, versuche ich den Pfeil mit einer Matrix zu drehen



Matrix Drehung = new Matrix();
            Drehung.Rotate(5f);
            P.Transform(Drehung);

Der Pfeil ist nun gedreht, allerdings wird die untransformierte Pfeilspitze mit Farbe gefüllt. Das liegt daran, dass das point array durch die Matrixtransformation nicht geändert wird. Was fehlt mir hier ?

  1. Ansatz:

Ich kann das point array transformieren bevor es dem path als polygon hinzugefügt wird über:


            Drehung.Rotate(5f);
            P.Transform(Drehung);
            Drehung.TransformPoints(points);

Dies funktioniert. Allerdings frage ich mich hier 2 Dinge.

a) Wenn ich eine Art Animation aus der Drehung machen möchte (wie z.B. bei einem Zeichenprogramm, d.h. man dreht ein objekt auf der Bildfläche und lässt die Dragoperation bei gewünschtem Drehwinkel fallen), wird die ständige Neuberechnung der Punkte inperformant ?

b) Warum gibt es überhaupt die Möglichkeit matrix Transformationen durchzuführen, wenn es keine Möglichkeit gibt die transformierten Formen zu füllen ?

....Habe ich richtigen Weg zur Erreichung meines Ziel übersehen ?

13.06.2009 - 12:40 Uhr

Hi Rainbird,

auf wenn das mit dem ursprünglichen Thema eigentlich überhaupt nichts mehr zu tun hat 😃. Deine genannte Literatur habe ich bereits bestellt, mal sehen welchen Nutzen ich daraus ziehen kann.
Natürlich weißt auch Du, daß der Auftraggeber den Programmierer (verstanden als Viedorecorder-Aufnahmetimer-Ersteller) beauftragt, eine Software bereitzustellen, die natürlich unabhängig von Betriebssytemen und sonstigen Einflüssen funktioniert, denn aufgrund der wenigen Tasten die der Programmierer bedienen muss, kann ja nichts schiefgehen. Da ich voll hinter .net stehe, habe ich begonnen, mich strikt hier zu bewegen. Glücklicherweise haben meine client kein GUI.

Die Kernfunktionen von Mono scheinen zu funktionieren, die Windows.Forms Implementierung scheitert bereits in den Grundsätzen der Basisklassen, vielleicht ist hier GTK# besser geeignet.
Grundsätzlich lassen sich, meinen Benchmarks zur Folge mit mono sogar Performacevorteile durch geschickte AOT Kompilierung erreichen.

Im Netzwerkbereich ist auch alles gut, außer daß sich die sockets bei Verbindungsstatusänderungen des remote Endpunktes völlig anders verhalten. Ob dies am Protokollstack von unix oder der mono Implementierung liegt habe ich bisher nicht eingegrenzt.

Am Ende stelle ich mir tatsächlich die Frage, wie eigentlich Microsoft in Wirklichkeit zu dem Thema mono steht.....

11.06.2009 - 00:17 Uhr

Hi Rainbird,

vielen Dank, daß Du trotz meiner Provokation selbst sachlich bleibst 😃 Ich bin mir jetzt auch nicht zu schade zuzugeben daß ich die Technik Remoting warscheinlich nicht so gut beurteilen kann wie Du. Möglicherweise liegt es auch daran, daß ich bisher an Tutorials in diesem Bereich geraten bin, die das Eigentliche vorenthalten. Vielleicht kannst Du mir ja mal was empfehlen. Mit dem Kontrollzwang hast Du auch recht 😃 Ich habe bei gewissen Dingen Angst an einen Punkt zu kommen wo der Fehler innerhalb einer Blackbox für mich unumgänglich ist, weil zu oft erlebt!
So ich habe tatsächlich aktuell ein Projekt, indem es erforderlich ist, daß die clients einmal installiert werden und niemals mehr gewartet werden können außer durch meinen remote update mechanismus. Desweiteren laufen diese Client auf linux unter mono. Wenn ich sockets benutze darf ich mich wenigstens selbstkasteien wenn was schiefgeht weil ich jeden Fehler hätte vermeiden können. Desweiteren sind an diesen Server ca. 100 clients angebunden, die sehr mitteilungsbedürftig sind. Wieviele client verpackt ein remoting server und wie kann ich unnötigen traffic vernünftig vermeiden ?
Bedenken unbegründet in diesem Bereich ?

09.06.2009 - 21:59 Uhr

Wie viel Code musst Du für eine Socket-Implementierung schreiben und wie viel für eine Remoting Implementierung? (Denk mal genau nach und dann sag' nochmal mit Socket bekommt man was schneller hin)
Wenn es sein muss, kannst Du bei Remoting einen TCP-Server mit einer Zeile Code haben. Bitteschön:
>>

?
😃 So eine Antwort hatte ich eigentlich auch erwartet, weil ich ja gern mal provoziere.
Im Übrigen, kann ich einen Server auch in einer Zeile mit einem erdachten "SocketHelper" erstellen. Mal ganz ehrlich überzeuge mich. Ich möchte einen Remoting Server über den ich remote objekte aller angeschlossenen clients sowie des servers abrufen kann. Ich möchte callbacks wenn asynchron abgearbeitete remote Aufrufe beendet sind, parallel aber schon andere abarbeiten (egal ob auf einem angeschlossenen client oder server). Ich möchte außerdem, daß ich auf das byte genau zählen kann was übertragen wurde oder eine Möglichkeit wann es passiert, und ich möchte eine perfekte, absturzsichere Kommunikation und Verbindungswiederaufnahme zwischen den angeschlossenen Systemen. Ich möchte individuell auf Verbindungsabbrüche zwischen den teilnehmern reagieren können.

04.06.2009 - 22:38 Uhr

BinaryFormatter BinFormatter = new BinaryFormatter();
                MemoryStream ObjStream = new MemoryStream();
                BinFormatter.Serialize(ObjStream,_pointarray , null);                              
                byte[] data = ObjStream.ToArray();
04.06.2009 - 22:31 Uhr

..oder quick and dirty, die länge von tostring()

04.06.2009 - 22:30 Uhr

Wenn ich es richtig verstehe möchtest Du einen Server, der belibig viele connections hält. Jede in einem Thread. Ich hab mal was um diese sockets drumrum programmiert, was tatsächlich die meisten Aufgaben händelt.
Wenn Du nur das multithreading zeugs haben willst, schau mal in der klasse qdnetserver.
Schau mal unter: http://www.codeproject.com/KB/IP/qdnet.aspx

04.06.2009 - 22:25 Uhr

ich hab es wohl total falsch verstanden, da ich dachte, ich könnte objecte, die vom typ MarshalByRefObject abgeleitet sind, als ganzes über die leitung schicken, aber ist anders gedacht, oder?

ich könnte eine klasse anlegen, die von MarshalByRefObject ableiten. dann erzeuge ich auf server und client seite eine instance. und ändere an der instance dann ein feld oder werfe einen event. dieser wird dann auf der client seite empfangen und kann dort bearbeitet werden, oder?

Ich persönlich sehe Remoting als reines Rumgekasper mit intransparenten Verhaltensweisen. Es erscheint mir für viele Aufgaben zu kompliziert zu ein. Dein Ansatz ein ganzes Objekt zu übertragen ist mir daher auch sehr symphatisch. Dafür bräuchtest Du auch nicht den remoting overhead. das bekommst Du mit Sockets einfacher hin.

07.03.2009 - 19:39 Uhr

@FZelle: Ich habe bei IBM angefragt, und leider feststellen müssen, daß die COM Objekte unter notes 6.5.5 nicht funktionieren. Das ganze Notes Thema ist meiner Meinung nach von vorn bis hinten dreck!

05.03.2009 - 19:41 Uhr

Hi,

mich würde es auch interessieren. Ich hab das Spielchen schonmal unter Notes 6.5.5 durchgemacht. Ich konnte nichtmal eine Session aufbauen, mit der selben Meldung.
Aber das klappt ja wohl in notes 7 besser was ?

04.03.2009 - 20:42 Uhr

Hi haargel,

Meiner Meinung nach ist der Umstieg von Fatclient auf Webanwendungen ziemlich groß. ASP.NET zwingt die Ereignis -und Reaktionslogik einer windows anwendung in die Standardwebtechnologie ala HTML/Javascript, die allerdings völlig anders abläuft.
Ich glaube fest daran, daß der Einstieg in ASP.NET über den Umweg PHP einfacher ist. Wenn Du mal einfache Tutorials in PHP machst, und Dir dann anschliessend mal die Frage stellt wie Du in Standard PHP (unter 5.0) Ereignisse so wie in einer windows app behandeln kannst, wird Dir einiges Klar...

04.03.2009 - 20:13 Uhr

Hi,

weil ich in einem kleinen Team bin, habe ich es einfach. Mein Tool ist Papier und Bleistift. Das Wichtige ist nicht das Werkzeug, sondern was man damit macht, denke ich. Wenn mein sein Problem zu 100% versteht, ist das Konzept zu 90% fertig.
Ich bin streng zur objektorientierung "erzogen", deswegen zeichne ich alle teilnehmenden Gegenstände auf und überlege wie Sie miteinander sprechen. Dies hat mich bisher immer vor Deinem, mir auch bekanntem Tetris Effekt beschützt 😃

In großen Teams ist UML warscheinlich gut zur Aufgabenverteilung geeignet, denke ich mal so...

04.03.2009 - 19:58 Uhr

Hallo MaXeM,

Dein Thema ist interessant, und zwar weil es sehr umstritten ist.
Jetzt kommt meine recht krasse Meinung zu diesem Thema.
SOA ist nur ein Wort. Wie Du ja sagst, sollen wiederverwendbare Komponenten geschaffen werden, die "Geschäftslogik repräsentieren", also Realweltgegenstände.
Vielleicht ist SOA das Wort, welches die BWLler mit Ihrem unangenehmen Einfluß auf die IT, nun endlich 15 Jahre nach Erfindung der objektorientierten Denkweise/Programmierung verstanden haben. Kurzum , wiederverwendbare Komponenten sind ein alter Hut.
Immer werden die "SOA" Anwendungen mit WebServices in Verbindung gebracht. Deswegen sind wohl XML-WebServices hier das Zentrum.
Diese sind toll, um z.B. kostenpflichtige Funktionen im Netz für andere anzubieten, oder seinen Webshop an irgendwelche Marktplätze anzubinden, vor allem wenn es um Schnittstellen zwischen verschiedenen Systemen geht (XML) Aber Ihre Eignung zur Modellierung von "Geschäftslogik" stelle ich im Grundsatz in Frage. Wenn Du z.B. eine ASP.NET Webanwendung baust, kannst Du auch alles wiederverwendbar halten und schön kompilieren. Dann ist Deine Anwendung bestimmt 100mal so schnell und 100 mal so gut wartbar....und Du kommst 30 mal schneller zum Verkauf.

...So bitte zeige auch mir einer mal den Sinn von SOA...

27.02.2009 - 10:31 Uhr

Hi,

habe Deinen Testsender mal probiert. Ich kann den Fehler nicht nachstellen.
Mich würde mal interessieren, wie Dein Server aussieht. Ganz besonders wie Du aus dem Stream liest, synchron oder asynchron ? . Wenn asynchron, wie gewährleistest du, daß das letzte Paket, welches möglicherweise kleiner ist gelesen wird ?

26.02.2009 - 22:26 Uhr

auch wenn Dir dass jetzt nicht weiterhilft:

Du machst alles richtig, denke ich ohne es jetzt nachgestellt zu haben.
Die exception signalisiert meiner Meinung nach, dass Dein Rst tcp rst paket schon vor den letzten Daten ankommt. So als ob es in den Fifo Buffer sequentiell priosiert herein geschrieben wird, bzw in einem anderen thread läuft.Ich würde jetzt mal ein thread.sleep für eine sekunde vor dem schliessen der client connection einbauen. Wenn das hilft spräche es nicht gerade für die Socket Typen von .net!

26.02.2009 - 22:00 Uhr

Hallo,

ich hab da mal ne Frage.
Ich parse das DNS Protokoll via winpcap/libpcap.
Ist auch alles wunderbar, allerdings finde ich den Inhalt der DNS Answers merkwürdig.
Die "trenn"-Punkte in Domainnames werden bytemäßig, mir unklarerweise scheinbar auf gut dünken enkodiert und haben ständig andere bytewerte.
Das RFC Sourcebook : RFCLink gibt mir keine Hinweise. Encoding ist meinem Test zur Folge kein Grund. Was ist denn nun mit den nervigen Punkten ?

06.02.2009 - 18:49 Uhr

Hi Barbara,

Sind denn die aufgestellten Internetteilnehmer, die Dein Programm ausführen betriebssystemmäßig vergleichbar mit Deinem 127.0.0.1 ?
Unter Umständen wird Dein Plaintext in unterschiedlichen Encodings interpretiert ?
Falls Du es noch nicht hast, probiers vielleicht mal mit klarer Angabe von z.B. UTF8..
p.s. damit hab ich schon echt Geschichten erlebt, die sonst aus der Mythen- und Sagenwelt bekannt sind 😃

06.02.2009 - 06:50 Uhr

Hi Ares,

weil ich auch Probleme mit dem remoting wasserkopf hatte habe ich mal eine socket library geschrieben, die sehr einfach Deine Anforderungen löst.
Schau mal unter: http://www.codeproject.com/KB/IP/qdnet.aspx

05.02.2009 - 20:23 Uhr

Hi,

lass es damit, das einzige was Du davon hast sind 100% CPU Last. Mach es asynchron, wie z.B. hier http://www.java2s.com/Code/CSharp/Network/AsyncTcpClient.htm.
IMHO bekommt nur so einen stabilen und gleichzeitig performanten server hin.

05.02.2009 - 20:14 Uhr

Hi,

...dann kannst Du das Projekt nicht lösen. Um wirklich an die alle MAC-Adressen aus einem Netz zu kommen gibt es nur ein paar Möglichkeiten die stabil wären, und für diesen Zweck viel zu aufwändig sind.

  1. Die clients sind alle so konfiguriert, daß Sie mit Bordmitteln die MAC "auslesen" lassen (siehe z.B. WMI)
  2. Alle Clients führen ein Programm aus was deren MAC überträgt
  3. In jedem Netz ist ein client, der ein Programm ausführt, welches alles scannt (z.B. mit Deinem Snippet oben)
  4. Du stellst eine Probe(ein Computer der den Datenverkehr mitbekommt) an einem Span/Mirror- Port eines jeden Switches auf. Hier z.B. WinPCap unter win oder libpcap unter linux.
  5. Du liest den Arp-Cache aller Router aus, wie Du schon sagst. Dies machst Du schon von außen mit snmp. für die ARP-Caches gibt es eine Norm SNMP OID, die bei namhaften Herstellern implementiert sind (z.B. Cisco,Foundry)
03.02.2009 - 19:34 Uhr

ich habe Mono mit dem fertigen Image von der DotNetPro benutzt.

Achso, cool. Werd ich mal damit testen. Je einfacher desto besser. Hauptsache das teil ist nicht zu überladen .... Danke

03.02.2009 - 19:22 Uhr

Wofür benötigst du die mac adresse denn genau? Vielleicht gibt's ja noch eine andere Lösung.

Die Adresse wäre nicht das beste wenn du eine eindeutige indentifizierung eines systems neben der ip suchst. Denn nicht alle windows clients antworten auf wmi Anfragen wenn wmi z.B deaktiviert ist. Derartige Möglichkeiten gibt's auch unter linux, aber auch nur wenn die entsprechenden services laufen und erreichbar sind, was optional ist. Du kannst also die mac nur über Umwege ermitteln, die unter Umständen nicht zur verfügung stehen.

02.02.2009 - 20:00 Uhr

Hi,

ARP ist nicht routingfähig. Der MAC Header wird bei jedem HOP über einen Router durch dessen MAC Header überschrieben. D.h. Wenn Du Hosts außerhalb Deines Netzes kontaktierst, steht im MAC Header der Datenpakete im Idealfall die MAC-Adresse des Routers über den Du gehst. Die MAC Adresse anderer Systeme kannst Du somit nicht eindeutig ermitteln. OK ich denke, Du könntest die MAC Adresse von Windows clients z.B. über WMI ermitteln, oder so...aber das hilft dir nicht was ?

31.01.2009 - 11:18 Uhr

Vielen Dank erstmal allen,

ASP.NET benötige ich aktuell nicht glücklicherweise, aber gut zu wissen welche Distro da geeignet ist. Es geht tatsächlich lediglich um "unsichtbare funktionalität" auf einem Linux client, der über ein propretiäres TCP-Protokoll kommuniziert. Linux wäre wohl die beste Wahl (haupsache kein 64bit kernel -> gut zu wissen) um auf extrem abgespeckter client hardware mit boot von SD-Karte, zu laufen. Ich bin mal gespannt, wie ich das Image vernünftig drauf bekomme....Nochmal vielen dank 😃

29.01.2009 - 23:34 Uhr

Hallo,

was habt Ihr für Erfahrungen mit MONO gemacht? Ich hab jetzt ein Projekt, indem ich wohl linux als client system nutzen sollte. Allerdings als client und ich möchte meine .net libraries nutzten.

Also, was rockt ? Was nervt in mono ?

In Punkto Installation von Mono -> welche distro ?
portabilität -> worauf muss ich achten, außer den Infos, die mir diese mono migrations testtool bietet
Gibt's bereiche, die unter linux bugbehaftet sind, ich denke so an z.B. threads oder so...

Wie sieht's aus ?