Laden...

Umstellung von Windows Forms auf ASP.NET / AJAX

Erstellt von ThomasR vor 12 Jahren Letzter Beitrag vor 12 Jahren 1.644 Views
T
ThomasR Themenstarter:in
93 Beiträge seit 2007
vor 12 Jahren
Umstellung von Windows Forms auf ASP.NET / AJAX

Hallo,

ich bin relativ fit in C# und WindowsForms, jedoch ein kompletter Neuling in Webtechniken.

Ich würde gerne ein bestehendes recht komplexes Projekt auf eine Weboberfläche umstellen. Es geht um eine Software zur Bedienung von Industrieanlagen. Der Traum wäre es, dass dies in Zukunft über Webbrowser von beliebigen Geräten bedient werden kann.

Die bisherige Anwendung ist recht sauber in Model und View getrennt. Es wäre natürlich schön wenn die Modellklassen größtenteils 1:1 beibehalten werden könnten. Ich habe mal ein wenig gegoogelt, bin aber nicht sicher ob soetwas mit ASP.NET und AJAX realisierbar ist.

Die Windows-Form Oberfläche ist halt wirklich sehr dynamisch, es werden dort zur Laufzeit Forms erstellt, (per Plugin-Mechanismus generierte User)Controls darauf platziert, per Drag und Drop verschoben und und und...

Anhand der "Hallo Welt" Beispiele, die man so im Internet findet, wird mir nicht wirklich klar, ob und wie soetwas in ASP.NET machbar ist.
Da die Oberfläche zur Entwurfszeit praktisch noch leer ist, wäre der zugrundeliegende html-Code ja mehr oder weniger leer und müsste zur Laufzeit irgendwie generiert werden...?!?

Kann sich jemand vorstellen worum es geht und hat vielleicht einen Tipp ob das möglich ist bzw. ein Hinweis wie ich da rangehen könnte?

Grüße
Thomas

16.842 Beiträge seit 2008
vor 12 Jahren

Hallo,

aufgrund Deiner Erfahrung mit Windows Forms würde man Dir wahrscheinlich am ehesten zu ASP.NET WebForms raten, da dies ebenfalls die Event-basierte Entwicklung von Webseiten zulässt.

Aufgrund Deiner Anwendungsbeschreibung würde ich davon jedoch definitiv abraten:
Im Gegensatz zu WebForms ist ASP.NET MVC die neuere Technologie, die auch HTML 5 unterstützt und sehr viel Dynamik durch jQuery erhält. Ebenso ist der erzeugte Code Standard-treuer und damit ist die Wahrscheinlichkeit höher, dass es auf allen geforderten Clients gleich aussieht. Aktuell gibt es MVC in der Version 3.

MVC ansich ist für einen reinen Windows Forms Entwickler zu aller erst nicht sehr einfach zu verstehen, da es quasi keine Events gibt, sondern jeder Aufruf einer Seite quasi wie der Aufruf einer Anwendung ist, und nicht das einfache Absenden eines Befehls.
MVC fördert jedoch das modulare Denken von modernen Applikationen, da UI und Code wirklich völlig getrennt sind. Das kommt Deiner aktuellen Situation, in der Deine Modelle und Deine View bereits getrennt sind, entgegen - wie sauber das in Windows Forms auch immer gehen mag 😉

Hierzu empfehle ich Dir die Tutorials http://mvcmusicstore.codeplex.com/ und http://nerddinner.codeplex.com/ anzuschauen.
Diese arbeiten prinzipiell mal mit dem Grundgerüst und erweitern je nach Schritt die Anwendung um immer mehr Funktionen - auch das dynamsiche Hinzufügen von Controls über Javascript und das Absenden von Formularen via AJAX.

Du kannst mit Webanwendungen alles abbilden, wie Du es mit einer normalen Client-Anwendung auch kannst. Selbst Performance-hungrige Anwendungen, die das Rendern von Grafik über die Grafikkarte des Clients erfordern, sind möglich.
Einzig und allein die Tatsache, dass Webanwendungen immer asynchron laufen und jede Anfrage ein eigener Thread darstellt; darüber musst Du Dir im Klaren sein. Du solltest also immer mit Bedacht programmieren und immer im Hinterkopf haben, jeden Request modular zu handhaben und keinen Ressourcen zu teilen, die man auch nicht teilen muss!

Grüße