ich möchte eine Silverlight-Anwendung schreiben,
die bestimmte serverseitige Funktionalitäten (öffnen/speichern auf der lokalen Platte, andere .exe-Anwendungen starten)
auf dem Rechner ausführen können soll.
Die Silverlight-App würde im Browser mit Doppelklick auf die xap-Datei vom Benutzer lokal gestartet.
Ich würde die serverseitige Funktionen gerne in einem kleinen in .NET geschriebenen Webserver implementieren,
der von der Silverlight-Anwendung über http-Requests ausgeführt werden kann.
Gibt es eine Möglichkeit, einen kleinen Webserver in .NET zu schreiben, um Requests von Silverlight-Clients entgegennehmen und Response schreiben zu können?
(Die Analogie wäre in der JAVA-Welt der Jetty Webserver, der OHNE INSTALLATION verwendet werden kann,
um serverseitige Funktionen (z.B. Dateizugriff) zu implementieren.)
sorry mit Silverlight habe ich bis dato keine Erfahrung gemacht, versuche aber auf jeden Fall dir etwas konstruktives zu schreiben:
einen eigenen Webserver zu schreiben ginge natürlich auch, ich weiß aber nicht ob das der einfachste Weg ist, und außerdem gibt es bereits den IIS. Was du vielleicht meinst ist einen eigenen Webservice zu schreiben, der Webmethoden veröffentlichen würde, welche dein Silverlight-Client aufrufen könnte. Dafür gibt es in Visual Studio Vorlage (Projektmappentyp Webservice / Webdienst), welche dir ein Hello-World-Webservice erzeugt, den du dan weiter ausbauen kannst. Für deine Clientanwendung kan Visual Studio eine Proxy (Webverweis) generieren, über welche sie dann mit dem Webservice kommunizieren kann.
Er instanziert ein (selbst implementiertes) „WebServer“ Objekt!
Es wäre doch ein Versuch Wert…
Man müsste den „WebServer“ evtl. erweitern, um Binaries auch übertragen zu können, aber als Grundlage wäre die auf Sockets basierende Klasse nutzbar.
hinter den von Dir erwähnten Links werden mit viel Code Webserver geschrieben.
Ich habe gehofft, dass .NET/WPF (oder WCF) mehr Unterstützung für solche Aufgaben bietet, aber jetzt vermute ich, dass der Grossteil der Arbeit von mir programmiert werden muss…
IIS ist so weit ich weiß Bestandteil von meisten Windows-Varianten außer Home-Editionen. Ich weiß leider nicht viel über dein Projekt und kann daher nicht gut beurteilen, was für Lösungsansatz am günstigsten wäre, finde aber auf jeden Fall, dass Schreiben eines eigenen Webservers vergleichsweise aufwändig wäre, selbst wenn er nur minimale Funktionalität bereitstellen würde. Was genau musst du eigentlich umsetzen?
ich möchte eine Web-Anwendung entwickeln, die auf dem lokalen Rechner läuft (ohne externem Server).
Die Web-Anwendung sollte aber ihre Bilder aus einer ZIP-Datei bekommen, und Dateien auf die lokale Platte speichern können. Ausserdem möchte ich andere .EXE-Dateien starten können.
Im Web wäre es einfach: die Bilder würde ich als Response auf ein Request aus der ZIP-Datei lesen.
Wahrscheinlich würde ich auch lokal einen Webserver benötigen, um auf die ZIP-Datei zugreifen zu können.
Oder ich könnte WCF verwenden.
Leider kann ich aber WCF nicht beurteilen, da noch nie genutzt.
Ich habe leider keine Erfahrung mit WCF. Als einfachste Lösung kommt mir vor, auf dem Zielrechner den IIS zu installieren (wie erwähnt, ist es Bestandteil z. B. von Win XP Pro usw.) Auf dem IIS dann ein Webservice aufsetzen, welche die Dateien ausliest und abspeichert.
Oder: wenn alles auf einer Kiste läuft, brauchst du eigentlich den ganzen Netzwerkkram gar nicht - warum schreibst du eigentlich nicht eine normale Windows-Anwendung?
Sorry für die späte Antwort, ich war im Urlaub und schaue gerade meine neuen Mails durch.
Leider kann ich dir bei deinem Problem nicht wirklich weiter helfen, da ich in diesem Bereich selber kaum Erfahrung habe. Ich hoffe, dass dir jemand anderes hier schon weiter helfen konnte.
IIS is leider kein gangbarer Weg, da die
meisten User mit deren Installation / Konfiguration nicht auskennen (und meist nicht die Rechte haben). Der Installationsaufwand wäre zu groß
(ich möchte ganz ohne Installation auskommen).
ich möchte die Anwendung auch im Netzt bereitstellen, dann aber ohne Funktionen, die lokalen Zugriff benötigen würden.
Aber trotzdem ist die Idee gut:
ich könnte eine WPF-App bereitstellen, deren Silverlight-Variante (der selbe Code mit ein paar #ifdef’s) im Netz stehen würde.
Ist es möglich, ein VS2010 WPF Projekt ohne größeren Aufwand in Silverlight umzuwandeln?
Leider habe ich keine Erfahrung mit Silverlight. Auf jeden Fall, selbst wenn man den Frontend unter Silverlight neu schreiben müsste, müsste möglich sein, gemeinsam genutzte Funktionalitäten in eine Assembly auszulagern, welche dann beide Frontendtypen nutzen würden.