2010-03-03 19 views
6

Ich habe eine Windows Form ausführbare Datei in .NET 3.5, die eine DLL verwendet, um mit einer Maschine zu kommunizieren, die Kontrollen durchsucht. Ich werde schließlich von einer ausführbaren Datei zu einem Webformular wechseln müssen, das dasselbe tun kann. Das wird Monate dauern, aber ich wollte jetzt mit den Recherchen beginnen, da ich das noch nicht getan habe. Ich werde ActiveX verwenden müssen, um mit dem Gerät über ein Webformular zu kommunizieren. Das habe ich auch noch nicht gemacht.von Windows Form Webformular

Ich möchte die Funktionalität meiner bestehenden ausführbare Datei halten, ohne dass die meisten es neu zu schreiben, obwohl verstehe ich, dass einige davon müssen neu geschrieben werden. Ich habe ActiveX erforscht und wie man es benutzt, aber ich wollte wissen, ob jemand eine ähnliche Situation hatte. Was hast du gemacht, um eine exe in ein Webprogramm zu konvertieren? Gibt es da draußen gute, spezifische Quellen, die ich übersehen habe und die mir für diese Situation in die richtige Richtung weisen können? Gibt es einen Rat, den Sie aus Ihren Erfahrungen geben können, der mir helfen kann, Fehler zu reduzieren? Die Firma, für die ich arbeite, hat hier niemanden, der das schon einmal getan hat, also muss ich mir alles beibringen, was ich dafür brauche.

Vielen Dank im Voraus. Diese

+0

Können Sie erklären, warum es ein Webformular sein muss? Ist es ein Problem der Bereitstellung/Buzzword-Compliance/Cross-Platformness? –

+0

Dies ist keine einfache Frage, die beantwortet werden kann, ohne die Feinheiten des Programms zu kennen, das Sie bereits geschrieben haben. Trotzdem hoffe ich wirklich, dass Ihr Code gut durchdacht ist, da es sich anhört, als ob das Management diese Anforderung nach dem Abschluss des ursprünglichen Projekts auf Sie übertragen würde, anstatt am Anfang, wenn es am nützlichsten gewesen wäre, es zu wissen. –

+0

Dies wird wahrscheinlich nicht gut funktionieren, es sei denn, Sie können die Check-Scan-Maschine an Ihren Webserver anschließen. Wenn nicht, beginnen Sie, das Sicherheitsmodell von Javascript und Internet Explorer zu studieren. –

Antwort

5

ist, wo die Trennung von Bedenken und n-tier-Design durchscheinen. Hoffentlich ist Ihre UI-Ebene lose mit Ihrem Domänenmodell verbunden. Wenn dies der Fall ist, können Sie eine zweite IE-Ebene für das Web codieren. Und müssen Ihr Domain-Modell überhaupt nicht ändern. Dann können Sie für jedes Szenario kompilieren.

* Hinweis - In der Praxis musste ich meine Geschäftsdomäne immer erweitern, um einige Probleme mit der zweiten UI zu berücksichtigen, aber diese Änderungen waren in der Regel geringfügig und wiesen auf Stellen hin, an denen ich ohnehin zu eng gekoppelt war.


Eine weitere Option, die Sie in Erwägung ziehen können, ist das Erstellen einer Web-Services-Schicht über Ihrem Geschäftsdomänencode. Und dann codieren Sie eine Webanwendung, die über diese Webservice-Aufrufe mit Ihrem Domänenmodell kommuniziert. Dies kann Auswirkungen auf die Leistung haben und wäre nicht meine bevorzugte Methode, dies zu erreichen. Obwohl Sie es möglicherweise überschaubarer finden, wenn Sie nicht eine gut entworfene Anwendung haben, mit zu beginnen.

0

Normalerweise WinForms webforms Umwandlung ist durchaus möglich, obwohl in der Regel ein langsamer Entwicklungsprozess. Selbst wenn Sie den saubersten Domain-Layer der Welt haben, bedeutet die Tatsache, dass Objekte auf Ihrer Webseite jedes Mal weggeworfen werden, dass ein Web-Domain-Layer normalerweise sehr unterschiedlich zu einem Desktop-Domain-Layer geschrieben wird.

in Ihrem Fall jedoch das Gerät - Server-Kommunikation wird besonders schwierig.

Haben Sie sich xbap? Es ist im Grunde eine Möglichkeit, WPF-Anwendungen auf einer Webseite bereitzustellen. Es erfordert Ihre Kunden die richtige Version von .NET installiert haben, aber es wird der einfachste Weg für Sie sein, besonders wenn man bedenkt, dass Sie WinForms in WPF hosten kann ...

+0

Ich werde in xbap schauen, aber ich glaube nicht, dass ich es in unserer bestehenden Umgebung verwenden darf. – Aaron

1

„Ich habe die Funktionalität behalten möchten von meiner vorhandenen ausführbaren Datei, ohne die meisten davon neu schreiben zu müssen "

Im Allgemeinen, wenn Sie so viel Logik wie möglich in eine eigene Assembly/DLL extrahieren, können Sie das von jedem gewünschten UI-Framework wiederverwenden. Stellen Sie nur sicher, dass Sie dort nichts UI-spezifisches tun (das Auswerfen von Dialogfeldern usw.).

0

Sie können einen Blick auf Silverlight nehmen 4,

http://silverlight.net/getstarted/silverlight-4-beta/

Es enthält viele Funktionen, ASP, dass.NET Web Forms hat nicht.

Wenn Ihr Team etwas wie ActiveX akzeptieren kann, warum nicht Silverlight 4? Der einzige Nachteil ist, dass SL4 noch in der Beta ist.