2009-08-17 4 views
2

Ich habe Werte in der Datenbank gespeichert, die Panels, Combos, Textfelder, Beschriftungen usw. beschreiben, die basierend auf dem, was der Benutzer auf einem Setup eingerichtet hat, dynamisch generiert werden Form, die hauptsächlich für die Eingabe verwendet wird, einschließlich Validierungsregeln und Datentypen, die bei der Einrichtung des Formulars angegeben werden.Rendern eines Formulars in winforms und asp.net dynamisch

Problem ist, muss ich die "Form" in Winforms und asp.net. Was wäre ein guter Ansatz dazu? Ich brauche beide Ergebnisse auf den verschiedenen Plattformen (asp.net & winforms) auf die gleiche Weise aussehen und verhalten. Ich dachte über die Verwendung von XSLT nach, bin mir aber nicht sicher, wie es auf Winforms angewendet werden kann.

Bitte um Rat.

Danke.

Antwort

1

Ich habe genau das ein paar Mal gemacht und mein Vorschlag ist es, sofort zu erkennen, dass Sie nicht in der Lage sein werden, die Schnittstelle zu single-source. Die Web- und Formular-Namespaces sind einfach zu unähnlich.

Sie können jedoch ziemlich weit gehen, wenn Ihre Daten/Business-Schichten abstrakt genug sind, um von beiden Schnittstellen verwendet werden zu können. In der Tat, wenn Sie nicht bereits eine gute Schichten an Ort und Stelle haben, ist dies der perfekte Zeitpunkt, um daran zu arbeiten.

Eine andere Sache zu bedenken - wenn es möglich ist, Ihre Formulare zu serialisieren, nachdem sie erstellt wurden (Cache als XML-Datei oder was auch immer), können Sie sehen, dass es viel schneller ist, als jedes Mal zu konstruieren. Ich habe eine Menge Laufleistung daraus, Caching "Template" -Formulare in ASP.NET beschleunigt Dinge schön.

Viel Glück!

0

Wenn Sie buchstäblich beide Winforms und Web-Versionen Ihrer App benötigen, um genau das gleiche zu sehen und sich zu verhalten, ist Ihre einzige Option, dies als ActiveX-Steuerelement zu schreiben (ja, sie sind immer noch da) auf einem Formular gehostet oder in einem Webbrowser gehostet. Ich denke, die Verwendung von Flash ist auch eine Option (natürlich keine .Net), und Silverlight ist eine Möglichkeit (Sie können eine Silverlight-Anwendung von der Web-Version auf eine Winforms-Version portieren, aber nicht in die andere Richtung - zumindest nicht einfach).

Verwandte Themen