Zurückkehren zu ASP.Net Webforms von ASP.Net MVC. Muster / Architekturen empfehlen?


12

Für viele von Ihnen klingt dies wie eine lächerliche Frage, aber ich frage , weil ich wenig oder gar keine Erfahrung mit ASP.Net Webforms habe - ich bin direkt zu ASP.Net MVC übergegangen .

Ich arbeite derzeit an einem Projekt, bei dem wir uns auf .NET 2.0 und Visual Studio 2005 beschränken.

Ich mochte die saubere Trennung von Bedenken bei der Arbeit mit ASP.Net MVC und suche etwas, um Webformulare weniger unerträglich zu machen. Gibt es empfohlene Muster oder Vorgehensweisen für Benutzer, die asp.net MVC bevorzugen, aber auf .NET 2.0 und Visual Studio 2005 nicht weiterkommen?


Vielen Dank für alle Vorschläge Jungs - wünschte, ich könnte mehr als eine Antwort auswählen.
jlnorsworthy

1
Ich hoffe, dass Ihre neue Aufgabe nur für ein bestehendes Projekt bestimmt ist und nicht von vorne anfängt. Es gibt viele grundlegende Dinge, von denen Sie abhängig geworden sind, die fehlen, wie die Verwendung von Linq für einfache Abfragen von Sammlungen. Eine große Enttäuschung wird dadurch entstehen, dass Sie sich das generierte HTML ansehen und feststellen, dass es nicht so ist, wie Sie es erwartet haben. Viel Glück und ich hoffe, dass Sie erfolgreich sind.
Chris

Antworten:


7

Ich würde Model View Presenter (MVP) empfehlen. Wir haben dies in einer kürzlich veröffentlichten WebForms-App verwendet. Dadurch haben wir die Testbarkeit verbessert und die Trennung von Bedenken erzwungen.

http://msdn.microsoft.com/en-us/magazine/cc188690.aspx ist ein großartiger Artikel von Jean Paul Boodhoo über dieses Muster. Der Code-Download ist auch gut. Möglicherweise benötigen Sie keine DTOs und Schnittstellen für DTOs.

Ein weiterer guter Artikel ist dieser auf codeproject.com: http://www.codeproject.com/KB/architecture/ModelViewPresenter.aspx

Bearbeiten: Es gibt auch ein Framework namens WebForms MVP, aber ich weiß nicht viel darüber.


Webvorms MVP sieht wirklich cool aus, aber das Projekt scheint ins Stocken geraten zu sein (letzte Veröffentlichung in 07/10). Es gibt nicht viel Dokumentation oder Tutorials zur Verfügung
jlnorsworthy

Es scheint auch .NET 3.5 SP1 zu erfordern, sodass es für Sie möglicherweise nicht allzu nützlich ist. Beispiele und Quellen können Ihnen jedoch bei der Bewertung des MVP-Musters helfen.
Ciaran

Guter Punkt, das habe ich gar nicht gemerkt. Ich werde dieses Projekt im Auge behalten, falls ich Webformulare bei einem Unternehmen mit aktueller Technologie
erstellen

4

Ich würde Ihnen empfehlen, den Seitenlebenszyklus von .net 2.0 zu verstehen

Diese Videos sind vielleicht einen Besuch wert, obwohl nicht alle kostenlos sind, aber zumindest ist dies ein guter Anfang für Sie .... Die Sache ist, dass Sie dadurch eine Vorstellung davon bekommen, was Sie später weiter erforschen können.


3

Wie Sie vielleicht bereits festgestellt haben, dass Sie einige Dinge, die Sie mit ASP.NET MVC gelernt haben, verlernen müssen (übrigens - das gleiche passiert, wenn eine ASP.NET-Person zum Erlernen von ASP.NET MVC aufbricht). Sie können MVC-Muster weiterhin in ASP.NET implementieren, aber die Trennung von Ansicht und Modell ist in ASP.NET aufgrund der Eventing- / Page-Post-Back-Architektur sehr verschwommen.

Meiner Meinung nach bezieht sich der größte Teil Ihres neuen Lernens auf den Seitenlebenszyklus und Eventing & Controls. Die üblichen Session-, Cache-, ViewState- und DB-Interaktionen bleiben unverändert.

HTH ...


2

Checkout- Front-Controller- Muster und Implementierung des Front-Controllers in Asp.Net. Tun Sie diese Dinge nur, wenn Ihr Projekt eine gute Größe haben wird. Wenn Sie dies für ein kleines Projekt tun, ist der ROI nicht gerechtfertigt.

In einem kleinen Projekt können Sie versuchen, einige Richtlinien festzulegen. Zum Beispiel - Keine Geschäftslogik, keine Sitzungsverwendung usw. im Code dahinter.

Finden Sie heraus, was in Ihren Fall am besten passt. Halten Sie auf jeden Fall die Versuchung, über Engineering zu tun.


0

In den dunklen Tagen von .NET 1.1 habe ich (wie jeder andere auch) eine Art MVC-System für eine solche Anwendung erstellt.

Eine Seite wurde erstellt, um eine Art "gefälschter" Meister zu sein. Dies hatte einige Klempnerarbeiten, um Menüs, Skripte, Stile usw. anzuzeigen.

Die "Ansichten" waren einzelne Benutzersteuerelemente.

Zu jeder Ansicht gab es eine Tabelle mit Informationen. Beispielsweise würde "Produkt" ~/Controls/Product.ascxin einen Platzhalter geladen . Die Tabelle hatte auch ein Feld, das den Typnamen der Modellklasse enthielt (als ob). Jedes Modell hat eine bekannte Schnittstelle implementiert. Diese Klasse wurde mit instantiiert Activator.CreateInstance()und zur Initialisierung aufgerufen und dann an das Steuerelement selbst übergeben (Invertierung des Steuerelements?). Das Steuerelement rief dann verschiedene Methoden auf, um Datensätze oder ähnliches abzurufen. Die Schnittstelle selbst wurde auf die üblichen CRUD-Methoden (Read / Write / List / Delete) normiert. Darunter befand sich auch eine DAL / ORM-Schicht.

Es war nicht schön, aber es hat gut funktioniert. Es war leicht zu testen und zu entwickeln, und die meisten Entwickler, die an Bord kamen, würden sich ziemlich schnell durchsetzen. Vor allem war es relativ einfach zu erstellen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.