Ich habe ein ASP.NET WebForms-Portal für einen Client geschrieben. Das Projekt hat sich eher entwickelt als von Anfang an richtig geplant und strukturiert. Folglich wird der gesamte Code innerhalb desselben Projekts und ohne Ebenen zusammengefügt. Der Client ist jetzt mit der Funktionalität zufrieden, daher möchte ich den Code so umgestalten, dass ich zuversichtlich bin, das Projekt freizugeben. Da es viele verschiedene Möglichkeiten zu geben scheint, die Architektur zu entwerfen, möchte ich einige Meinungen über den besten Ansatz haben.
FUNKTIONALITÄT
Über das Portal können Administratoren HTML-Vorlagen konfigurieren. Andere zugeordnete "Partner" können diese Vorlagen anzeigen, indem sie ihrer Site IFrame-Code hinzufügen. Innerhalb dieser Vorlagen können Kunden Produkte registrieren und kaufen. Mit WCF wurde eine API implementiert, mit der auch externe Unternehmen eine Schnittstelle zum System herstellen können. In einem Admin-Bereich können Administratoren verschiedene Funktionen konfigurieren und Berichte für jeden Partner anzeigen. Das System sendet Rechnungen und E-Mail-Benachrichtigungen an Kunden.
AKTUELLE ARCHITEKTUR
Derzeit wird EF4 zum Lesen / Schreiben in die Datenbank verwendet. Die EF-Objekte werden direkt in den Aspx-Dateien verwendet. Dies hat eine schnelle Entwicklung ermöglicht, während ich die Site geschrieben habe, aber es ist wahrscheinlich nicht akzeptabel, sie so zu halten, da sie die Datenbank eng mit der Benutzeroberfläche verbindet. Teilklassen der EF-Objekte wurden mit einer spezifischen Geschäftslogik versehen.
FRAGEN
Das Ziel des Refactorings besteht darin, die Site skalierbar, leicht zu warten und sicher zu machen.
Welche Art von Architektur wäre dafür am besten geeignet? Bitte beschreiben Sie, was in jeder Ebene sein sollte, ob ich das DTO / POCO / Active Record-Muster usw. verwenden soll.
Gibt es eine robuste Möglichkeit, DTOs / BOs automatisch zu generieren, sodass zukünftige Verbesserungen trotz der zusätzlichen Ebenen einfach zu implementieren sind?
Wäre es vorteilhaft, das Projekt von WebForms in MVC zu konvertieren?