Wpf & Iis7

tex4ever

Grünschnabel
Hi Leute,

ich bin neu auf dem Gebiet WPF, Silverlight und XAML.
Soweit ich das alles jetzt kapiert habe, basiert WPF auf XAML und Silverlight ist nur eine Erweiterung des WPF, um die Inhalte auch im Browser darstellen zu können.

Ich habe jetzt mal eine WPF Browser Anwendung geschrieben und es funktioniert alles soweit wunderbar. Nur wie kann ich das jetzt im IIS7 einbinden, so das ich über eine Domäne diese Anwendung ausführen kann?

Ich habe bereits eine Site angelegt, die MIME-Typen XBAP usw. sind auch drin. Aber jedesmal wenn ich auf die Seite gehe kommt folgende Fehlermeldung:
403 - Verboten: Zugriff verweigert.

Hmm ich glaube da fehlt noch so einiges. Habt Ihr ein Tutorial, wie ich ein WPF Projekt über IIS veröffentlichen kann? Oder könnt ihr mir sagen wie das geht?

Danke Euch
Philipp
 
Also:

  1. WPF verwendet XAML und basiert nicht darauf. XAML kann auch für andere Zwecke eingesetzt werden, da es lediglich ein Mechanismus ist, Objekte serialisiert darzustellen.
  2. Silverlight ist keine Erweiterung von WPF sondern vielmehr das Gegenteil. Der Funktionsumfang von Silverlight reicht an den der WPF nicht heran, da die Downloadgröße minimal gehalten werden muss. Zudem wird (verglichen mit einer WPF Browser-Anwendung) anstatt eines XBAP ein XAP generiert.

Zu deinem Problem: Idealerweise hast du die Anwendung via ClickOnce deployed. Zugreifen kannst du auf die Anwendung, indem du einen Aufruf á la

http://www.meinedomain.de/meineWpfAnwendung.xbap

machst. D.h. was dir fehlen könnte ist eine eingetragene Default-Seite mit dem Namen meineWpfAnwendung.xbap. Standardmäßig werden nur Seiten wie default.htm, index.htm etc. eingetragen. Dein XBAP-Manifest musst du manuell eintragen. Danach sollte die Anwendung beim Aufruf von http://www.meinedomain.de gefunden werden können. Wenn dem der Fall ist, wirst du dich sicherlich noch wegen der Rechteproblematik melden :)
 
Danke für die ausführliche Antwort.

Also sprich, das einzige was Silverlight und WPF gemeinsam haben, ist die Beschreibung des UIs mit XAML oder? Und bei WPF wahrscheinlich auch nicht zwingend, eben nur wenn eine Browser-Anwendung geschrieben wird.

Hmm...ok. Das heisst also Silverlight ist eher so eine Art Klon von Adobe Flash und mit WPF schreibt man ganz normale Anwendungen, aber eben mit der Möglichkeit, diese auch im Web darzustellen.

Ist das korrekt?

Deine Vorschläge zum Beheben meines Problems werde ich heute Abend mal durchchecken. Melde mich dann wieder.

Thx a lot
Philipp
 
Hi Leute,

ich habe das Gefühl, das ich mit der Thematik ein bißchen auf dem Holzweg bin. Vielleicht sollte ich es mal so probieren: Ich sag Euch was ich machen will und ihr sagt mir, wie ihr es machen würdet.

Also ich möchte den Browser aufmachen, eine bestimmte URL eingeben und dann will ich da eine Seite präsentiert bekommen, die nur eine Textbox anzeigt und die muss immer den Focus haben. Ich kann dann gewisse Eingaben machen und dabei kommen dann gewisse Audiostreams daher. (soll ein Blindenprojekt werden)

Wie realisiere ich das am Besten. Man muss dazu sagen, das ich eingefleischter und stark geschädigter VB6-Programmierer bin und daher das ganze gerne in VB.NET machen würde.
Dabei bietet sich die WPF Browser Application ja gerade zu an. Aber soweit wie ich das verstanden habe, kann die WPF Browser Anwneung nur über die URL deployed werden, sie muss dann downgeloaded werden und arbeitet als Client, oder?

Oder muss ich das ganze mit einer HTML Seite machen in der sich ein Silverlight-Element befindet? Aber wenn ich das so machen muss, dann kann ich keine VB-Applikation dahinterhängen, mit Zugriff auf Datenbank usw. oder?

Was schlagt Ihr vor? Ihr seid doch Kings. ;-)

LG
Philipp
 
Ein paar Fragen:

  1. Muss es browserunabhängig sein?
  2. Muss es plattformunabhängig sein?
  3. Weitere zusätzliche Einschränkungen?

Das sind mal essentielle Fragen, die unbedingt beantwortet werden müssen. Wenn das mal klar ist, dann kann man dir weiterhelfen.
 
Hi Norbert,

ich glaub ich weis worauf Du hinauswillst.
Natürlich würde ich die Fragen gerne so beantworten:
1. Ja
2. Ja
3. Nein

Aber ich denke mal, das des mit .NET und Silverlight nicht so einfach sein wird; jetzt erst mal. Ich habe zwar gehört, das es unter Linux auch bald möglich sein soll, Silverlight zu betrachten, aber wer weiß schon wann das kommt und wie gut das sein wird.

Da ich ja sehr VB geschädigt bin, wäre es für mich schon einfacher, das ganze irgendwie mit .NET zu machen. Wenn Du aber sagst, das des mit .NET auf garkeinen Fall sinnvoll ist, sträube ich mich auch nicht davor, Java zu lernen.

Vielleicht kannst Du ja einfach vorschlagen, wie Du es machen würdest. ;-)
 
Ich sage ja nicht, dass .NET nicht sinnvoll ist. Eigentlich wollte ich damit nur herausfinden, ob eine WPF Browser Application das Richtige für dich ist und siehe da: Nein.

Silverlight würde gehen. Moonlight sollte für Linux ja eigentlich schon zur Verfügung stehen, müsste aber getestet werden.

Jetzt hängt es natürlich davon ab, wie komplex das ist und was genau du da wirklich machen willst. Also vielleicht kannst du dazu noch ein paar Sätze schreiben. (Hinweis: bis jetzt spricht nichts gegen Silverlight).
 
Ok, also vielleicht erst mal ein bißchen was zum Hintergrund:
Hast Du mal mit einem Screenreader eine Website angehört? Das ist grauenhaft. Es funktioniert an sich eigentlich schon ganz gut, vor allem wen man den WebFormater hernimmt, dann wird der Text gut vorgelesen. Aber: Man muss sich eben erst den ganzen Rotz anhören, bis man weis, wo man einen Link anklicken kann. Die Navigation durch eine Seite wie MSN oder so ist für einen Blinden äußerst mühsam.

Deshalb die Idee: Eine Website machen, wo nur eine Textbox drauf ist, die immer den Focus hat und die Eingaben entgegen nimmt. Dann vielleicht noch ein Media Element, wenn das benötigt wird, um ein Audiostream senden zu können. Ziel soll sein, das man zunächst (wie bei einem Telefonsystem) von einer Stimme begrüsst wird und ein Menü vorgetragen bekommt. Wenn man die Seite schon kennt, kann man die Ansage unterbrechen und auch direkt zu einem bestimmten Punkt gelangen. Beispielsweise würde man anfänglich 1 drücken um zu den News zu gelangen. Dann würden die Schlagzeilen vorgelesen werden, die man mit den Cursortasten vor und zurückblättern kann. Wenn man sich für ein Thema itneressiert, kann man tiefer reingehen und sich den ganzen Text vorlesen lassen. Man hätte, wenn man die Schlagzeile schon gekannt hätte auch den Titel direkt eingeben können und man wäre sofort dort angelangt.

Also unterm Strich ein Audiosystem mit baumartiger Struktur und Datenbank. Die einzelnen Audiofiles müssten irgendwie in einer Datenbank hinterlegt sein oder meinetwegen auf der Platte und in der DB ist nur die Struktur mit den Pfaden.

Dazwischen dann die Applikation und am Ende das Front-End -> Silverlight?, das eben die Textbox und das Media-Element anzeigt.

Und das ganze am Besten irgendwie mit VB. Wie kriege ich das hin. ;-)))
 
Das müsstest du mit ein wenig HTML und Javascript eigentlich auch hinbekommen können. Über Silverlight vermutlich ein wenig komfortabler, aber ich denke gerade das Thema Visualisierung ist in deinem Fall eher nicht gefragt. Daher eine Textbox, ein Mediaplayer und das sollte dann grundsätzlich reichen.
 
hm schon aber ich hätte da schon gerne eine Applikation dahinter, weil damit kann ich total geile Auswertungen, Vorrausberechnungen, Caching usw. machen, die ich so mit einer statischen Seite und JavaScript nicht oder nur aufwendig machen kann.

Am liebsten wär es mir so: Die VB.NET Anwendung, das ist mein Spezialgebiet, das kriege ich astrein hin. Nur die Schnittstelle zum Web, da habe ich keine Ahnung. Ich kenn mich aus mit HTML und auch ein bißchen mit JavaScript, aber das Wissen das ich da habe ich schon etwas veraltet. Ich könnte es auch mit ASP machen, aber warum mit ASP rumschlagen, wenn es mit Silverlight leichter ginge. Oder gehts überhaupt leichter? Das ist eben die Frage: Wie kriege ich meine Website mit meiner Applikation gekoppelt? Was mir an der WPF Browser Applikation gefallen hat ist, das ich das Formular und seine Events direkt miteinander gekoppelt hatte durch das XAML. Ich musste mich darum garnicht mehr kümmern. Geht das nicht auch mit Silverlight? Und wenn ja, wie gehts?
Vor allem bietet Silverlight ja auch schon einige Untersützung für das Audiostreaming an. Das ist sehr wichtig finde ich, weil ein Progressive Download kommt wegen rechtlichen Bedenken nicht in Frage.
 
Zurück