Weg gefunden diese zu beschleunigen bzw. zu umgehen
Kannst es ja mal mit dem HttpWebRequest versuchen. Ich denke die Binärdaten kommen Base64 Codiert und wenn die Hauptaufgabe des WS das Ausliefern der Bilder ist sollte mit dem WebRequest nicht allzuviel code nötig sein.
Wäre schön wenn du dein Problem hier nochmal in Textform und vielleicht mit etwas Code schildern könntest da nicht jeder lust hat das Video anzusehen und nicht garantiert ist das es genau so lange online und unter der gleichen URL erreichbar ist wie dein Post hier.
Das Feature kenne ich schon, nur kann man damit keine Fenster kaskadieren. Aber ist ja auch wurscht. Mit den klassichen Mitteln kann man sowas schon erreichen so lange es nur um die eigenen Fenster geht.
Das kenn ich jetzt nur von MDIs und habe das bei Windows 7 für normale Fenster so noch nicht enteckt. Aber den Rest konntest du eigentlich schon immer machen. Es gibt ja die Screen-Klasse mit der du die Bildschirmgröße herausbekommst und auch wie viele Monitore angeschlossen sind.
Da du ja alle deine Fenster kennst kannst du sie natürlich mit den normalen Location- und Size-Properties ausrichten wie du möchtest. Die schicken Animationen bekommst du dann allerdings nicht zu Gesicht.
Das wirst du selbst zeichnen müssen. Da dir die TrackBar allerdings keine Events dafür anbietet wirst du das wie in good ol' MFC machen müssen und die entsprechende Windows-Message (WM_PAINT) abfangen, Context holen und Pinseln anfangen.
Alternativ schaust du dich am besten mal auf Codeproject um oder nimmst Controls von einem Kommerziellen Anbieter (DevXPress hatte da mal ihre XtraEditors kostenlos, k.A. ob es das Angebot noch gibt). Evtl. können die das.
Darf man fragen welchen Zweck dein Programm nachher erfüllen soll (also jetzt nicht aus technischer Sicht)?
Einen Benutzer Programme starten zu lassen um sie nachher wieder zu beenden und dann jemanden per Mail darauf aufmerksam zu machen scheint mir jetzt nicht so sinnvoll außer du möchtest eine Art "Honeypot" bauen.
Die nicht erlaubten Anwendungen gar nicht erst zu installieren oder mit Gruppenrichtlinien zu Arbeiten würde in meinen Augen mehr Sinn ergeben.
Jup, so ist es. Sauberer wäre es IMHO ohnehin eine Schicht aus Stored Procedures für den Datenzugriff dazwischenzuziehen.
Selbst wenn du deine Tabellen irgendwann mal umwirfst und dich für den anderen Ansatz entscheidest bleibt im besten Fall deine Client-Anwendung davon unberührt.
Naja kommt auch daruaf an wie die aussehen. Wegen der Latenz etc. sollte das keine Probleme machen. Wenn es 1000 Integers sind sollte es ebenfalls kein Problem sein. Wenn es allerdings 1000 Bitmaps von einer Kamera sind dann siehts anders aus ;-)
Evtl. musst du auch immer gar nicht alles übertragen sonder nur ein Delta? Um wie viele Clients handelt es sich denn ca. ?
Naja du hast dein Problem auch sehr allgemein formuliert bzw. erschließt sich mir nicht ganz was du für ein Problem hast.
Es würde mich z.B. wundern wenn die Kommunikation mit der SPS durch die WCF realisiert werden könnte also denke ich das es dir darum geht die gesammelten Daten den Clients über einen Service zur Verfügung zu stellen?
Wenn das der Fall ist dann sehe ich das Problem nicht so recht. Baue einfach einen normalen Service und frag ihn vom Client aus Timer gesteuert ab.
Auf MySQL Datenbanken solltest du auch mit dem CF zugreifen können (Standard MySQL Connector für .Net) ein Beispiel brauchts da eigentlich nicht du dann ganz normal mit ADO.Net arbeiten kannst.
Mein Wissensstand dazu:
Das geht nicht da das Compact Framework bzw. Windows Mobile keine Zugriffskomponenten für eine Access Datenbank bereitstellt.
Wenn du immer eine Verbindung hast wenn auf die Datenbank zugegriffen werden muss dann könntest du das über einen Webservice machen.
Wenn du die Daten auch offline brauchst dann kannst du eine SQL Server CE Datenbank benutzen musst das dann aber irgendwie synchronisieren.
[EDIT] Wenn mehrere Benutzer gelichzeitig auf der Access DB arbeiten bist du mit dem Service aus Datenkonsistenzgründen sowieso besser dran da du gleichzeitige Zugriffe besser unter Kontrolle bekommst.
Wenn dein System es noch zulässt würde ich ohnehin über einen Wechsel auf SQL Server Express Edition, Firebird oder MySQL (eben ein echtes DBMS) nachdenken. Access Datenbanken werden auf 64 Bit Systemen nämlich nicht unterstützt
Ne andere Frage, in einem V-Server läßt sich keine VM starten, da es schon ein virtualisiertes System ist oder?
;-) Kommt darauf an mit was virtualisiert wurde aber an und für sich geht das schon (z.B. mit VMWare ESX) wobei das sehr langsam werden dürfte.
[Edit]
Zitat
Eine Datenbank kann durchaus schon mal recht umfangreich den Speicher belegen
Eine Datenbank kann sich aber auch unter Lastspitzen leicht mal ohne Ende speicher reinfressen den sie danach nicht mehr brauchen wird gibt diesen aber dann nicht mehr so schnell her. Über einige Parameter lassen sich Grenzen setzen die man einfach mal unter Last durchprobieren muss. Für SQL Server: Speicherkonfiguration SQL Server
Ja das sollte unproblematisch machbar sein so lange du nicht auf .Net 4.0 mit der neuen CLR umsteigst oder Teile deiner Anwendung auf verschiedenen CLR Versionen betreibst.
Hilfestellung gibts u.a. hier: .Net Framework 4 Migration Issues und natürlich in Foren und Blogs von Leuten die ihre Software bereits migriert haben.
Klickt der User mit der rechten Maustaste in das TreeView so soll er lediglich die Möglichkeit haben, ein "html"-Element zu erstellen (aber eben nur einmal).
Das heisst du willst zur Laufzeit validieren ob ein Element an der entsprechenden Stelle hinzugefügt werden kann. Also vergleichbar mit der XML-Completion im Visual Studio welche auch nur an dieser Stelle gültige Element anzeigt wenn eine entsprechende XSD hinterlegt wurde?
Dann könntest du sicherlich vom #Develop Code profitieren da dieser einen Xml-Editor mit code completion besitzt. Dieser ist auch in ein Plugin ausgelagert.
Wahrscheinlich insbesondere von dieser Klasse: src\AddIns\DisplayBindings\XmlEditor\Project\Src\XmlSchemaCompletionData.cs
Wenn sich die XSD ändert musst du das ganze Zeugl natürlich neu initialisieren.
Manche LCD-Fernseher strahlen wohl auch recht deftig. Hab ich bei einem Freund erlebt:
Fernseher an -> Empfang schlecht, Fernseher aus -> Empfang super wobei er da einen USB-WLan Stick hatte bei dem die Antenne schon extrem beschissen war.
Ich denke mal dass du dich mit den Grundsätzen von SQL vertraut machen solltest.
Und zwar erstmal nicht in deinem Programmcode sondern am besten (wenn du Access benutzt in Access) und beim SQL Server z.B. im SQL Server Management Studio bzw. irgendeiner anderen kompatiblem GUI deiner Wahl.
Da musst du dann nicht jedesmal neu kompilieren und bekommst auch nur die SQL-Fehler angezeigt (die du im Code erst nach dem Ausführen mit einer Exception mitgeteilt bekommst).
Wenn du kriterien wie z.B. ein DateTime (besser DateTime2)-Feld in deiner Tabelle hast dann kommst du auch nur mit dem SQL Server Agent aus und brauchst keine Trigger.
"Echtzeit" würde es mit den Triggern auch gehen ich weiß aber nicht wie es dann um die Performance bei z.B. inserts bestellt ist.
Du baust z.B. einfach einen After Insert-Trigger auf die entsprechende Tabelle und benutzt dann z.B. einen SOAP Endpoint um einen Webservice aufzurufen der dann wiederum mit der zu benachrichtigenden Anwendung kommunizieren kann.
Solltest du deinen Datenzugriff sowieso schon in Stored Procedures gekapselt haben dann brauchst du gar keine Trigger.
Nicht so schön aber sollte funktionieren:
Einen Trigger auf die zu überwachenden Tabellen bauen und bei Änderungen diese in eine Changelog-Tabelle schreiben. Diese wird von einem Agent-Job abgefragt und dann z.B. ein Webservice (oder was auch immer man vom Server erreichen kann) benachrichtigt. Danach wird die Changelog-Tabelle wieder geleert oder bereits versandte Änderungen entsprechend geflagt wenn man sie aufheben möchte.
Dieser Ansatz wäre allerdings nicht "realtime". Kommt drauf an wofür du es brauchst.
Der Notification Service arbeitet meines Wissens nach ebenfalls nicht "realtime".