2009-08-20 2 views
0

Also hier bin ich, zum ersten Mal Windows-Entwickler (Java Swing, iPhone, Flash/Flex gemacht) und ich bin verwirrt von welcher Technologie Microsoft will ich für in Browser reichen Anwendungen verwenden. Die Anwendung, die ich entwerfe, ist ein Datei-Uploader, der Drag & Drop aus dem Dateisystem unterstützt, scheint einfach, ich habe dies bereits in Java implementiert und ich dachte, es wäre noch einfacher mit Microsoft-Tools, aber welche Deployment-Plattform zu verwenden ...Was ist Microsofts Roadmap für Browser-Anwendungen? Silverlight, ClickOnce, ActiveX, dlls

Silverlight: Ideal für Video, leichte Anwendungen, Tonnen von Steuerelementen und Widgets, läuft im Browser, es ist wie Flash, super. Kein Drag-and-Drop Dateisystemzugriff, boo.

Clickonce: Sie können mit allen Glocken und Trillerpfeifen eine vollwertiges Windows-Anwendung bereitstellen, aber es wird nicht innerhalb den Browser läuft sogar für einen Web-only-Einsatz, öffnet es in einem neuen Fenster, boo.

In Browser-DLLs: Diese funktionieren genau wie die alten ActiveX-Anwendungen, was großartig ist, aber die einzige Möglichkeit für einen Benutzer besteht darin, die Site als vertrauenswürdige Site über das Sicherheitsfenster hinzuzufügen und ihre .Net-Sicherheit mit caspol zu modifizieren Dies ist keine akzeptable Bereitstellungsstrategie. Sie sollten den Benutzer nur wie bei einer Java-Anwendung zur Vertrauensstellung auffordern können.

ActiveX: Kann fast alles, was eine vollwertige Windows-Anwendung, einschließlich vollständigen Dateisystemzugriffs, innerhalb eines Browsers ausführen kann, genial. Aus irgendeinem Grund ist dies eine veraltete Technologie, über die niemand mehr spricht oder die sie nicht mehr benutzt. Es scheint, als ob man ActiveX-cab/ocx-Dateien nur aus wirklich alten VS-Versionen (2003) oder VB6 erzeugen kann.

Also ist was ich will nur unerreichbar? Kann ich in einer App, die innerhalb des Browsers ausgeführt wird, keinen vollständigen Dateisystemzugriff mit Drag & Drop haben, ohne dass der Benutzer durch die Rahmen springen muss, um ihn auszuführen? Ich versuche einen guten Grund für die Probleme zu finden, die ich meinen Mitarbeitern erklären möchte.

+0

Sie können ActiveX von jeder Version von Visual Studio generieren - es ist kein veraltetes Szenario - Sie müssen nur C++ (und entweder MFC oder ATL) dafür verwenden. Nun, theoretisch kann man es in C# oder VB machen, aber es wird wahrscheinlich mehr Ärger geben, als es wert ist. –

+0

Wie würdest du es theoretisch in C# machen? – Shizam

+0

Und wenn in C++ getan wie Sie es bereitstellen? – Shizam

Antwort

7

Klingt wie Sie wollen ein WPF Browser Application (XBAPs). Diese Apps werden im Browser ausgeführt, unterstützen jedoch .NET Framework und WPF vollständig (und möglicherweise sogar vollständige Vertrauensstellung, sofern sie vom Benutzer gewährt werden). Das einzige, was wirklich davon ablenkt, ist, dass sie nur unter Windows (klar) und nur innerhalb von IE7/FireFox (mit einem Plugin) laufen.

Seitliche Anmerkung: Silverlight 3-Anwendungen können tatsächlich vom Desktop aus ausgeführt werden, ohne dass ein Browserfenster benötigt wird.

+0

Interessant, ich denke, der Grund, warum ich das vorher nicht untersucht habe, ist, dass unsere Anwendung mit .Net 2.0 kompatibel sein muss, aber wenn ich dieses Vertrauen/Installationsproblem nicht lösen kann, kann ich vielleicht die Spezifikation auf .Net 3.0 ändern. Bei einem XBAP ähnelt die Trust-Anfrage also einer Java-Trust-Anfrage, sie fordert den Benutzer einfach auf? Ich werde das untersuchen. – Shizam

+0

@Shizam: Ja, ich glaube Vertrauen funktioniert so. Standardmäßig laufen XBAPs jedoch im "Teilvertrauensmodus" (wenn ich mich richtig erinnere). Definitiv etwas, in das es sich lohnt hineinzuschauen. Wenn .NET 4.0 kurz vor der Veröffentlichung steht, denke ich, dass du zustimmst, dass du nicht noch .NET .NET 2.0 sein solltest.;) – Noldorin

+0

Beim Lesen des Doco auf XBAP sagt es immer "vom IE gestartet", das klingt wie die ClickOnce-Bereitstellungsstrategie, läuft ein XBAP im Browser oder wird es "gestartet" und in einem neuen Fenster geöffnet? Mehr graben. – Shizam

1

Warum sollten Sie sich auf Microsoft-Technologien beschränken? Ich bin ein großer Microsoft/.NET-Fan, aber ich glaube auch daran, das richtige Tool für den Job zu verwenden. Wenn Java funktioniert, dann benutze es. Wenn Flash funktioniert, dann benutze es.

+1

Ich baute unseren Java-Uploader und es funktioniert super 100% der Zeit für alle außer Windows-Benutzer, IE-Benutzer besonders. Es stellt sich heraus, dass nicht jeder Windows-Benutzer Java installiert hat, also müssen sie es installieren, was ein kleiner Schmerz ist, aber zumindest ist es nachweisbar. Das schlimmere Problem sind Benutzer, die eine neuere Version von Java installiert haben, aber aus welchen Gründen auch immer, es ist ein korruptes Problem, das häufig auftritt. Deinstallation und Neuinstallation sogar der exakt gleichen Version von Java wird das Problem beheben. Diese Probleme und dass Java den nativen Dateibrowser nicht benutzt, hat uns zu .Net gedrängt. – Shizam

+1

Ah, ok. Nun, da ich ein .NET-Programmierer bin, wusste ich nichts über diese Probleme. Aber danke, dass du deine Position erklärt hast. :) –

+2

Minus eins zu Java. Die Updater-Komponente fordert zu oft auf und legt sogar etwas in die Taskleiste. Bringt mich zurück zu '98;) –