Patrick Schnell Selbstständig

Wer bisher im konventionellen .NET Framework Webanwendungen entwickelt hat, landete zwangsweise entweder bei Web Forms oder bei MVC, die zumindest den Ansatz der Trennung zwischen Oberfläche und Businesslogik verfolgte. Dennoch war die Logik immer mit der Clientanwendung im Browser fest verbunden und konnte nur mit Aufwand für weitere Dienste geöffnet werden.

Seit einigen Jahren wandeln sich Webanwendungen langsam aber sicher hin zu Apps, die die Benutzer auch gerne auf ihren Smartphones und Tablets verwenden möchten. Die damit neu entstehenden Anforderungen verlangen nicht nur ein Umdenken auf Seiten der Oberfläche, sondern geben den Entwicklern auch die Möglichkeit, Web-APIs und Microservices zu implementieren – und somit die eigentliche Webanwendung von der Geschäftslogik immer weiter abzutrennen.

Wer bisher im konventionellen .NET Framework Webanwendungen entwickelt hat, landete zwangsweise entweder bei Web Forms oder bei MVC, die zumindest den Ansatz der Trennung zwischen Oberfläche und Businesslogik verfolgte. Dennoch war die Logik immer mit der Clientanwendung im Browser fest verbunden und konnte nur mit Aufwand für weitere Dienste geöffnet werden. Im Gegenzug hatte diese feste Verbindung zur Folge, dass viele clientseitig ausführbaren Aufgaben dennoch auf dem Server ausgeführt wurden und der Client recht statische Seiten erhielt. Clientseitige Logik wurde meist nur für Validierungen oder Umwandlungen verwendet.

In diesem Artikel soll nun gezeigt werden, wie diese Trennung auf Basis eines ASP.NET-Core-Web-API und des App-Frameworks Ionic 3 umgesetzt werden kann und welche Werkzeuge dabei von großer Bedeutung sind.

Trennung von Businesslogik und Webanwendung

Die Trennung von Logik und Oberfläche ist bereits seit vielen Jahren ein großes Thema in der Softwareentwicklung und wurde durch verschiedenste Pattern mehr oder minder gut umgesetzt. Die meisten Entwickler greifen auf die bekannten MVC- oder MVVM-Pattern zurück. Im Webumfeld wurde im Normalfall auf das MVC-Pattern zurückgegriffen (Abb. 1). Hierbei implementiert der Controller serverseitig die Geschäftslogik, während der Browser zur reinen Darstellung des Models dient.

Abb. 1: Schematische Darstellung des MVC-Patterns

Mit einer Architektur, die die Businesslogik strikt von einer Endanwendung trennt, ist es möglich, die Entwicklung in einfache, wartbare und kleine Bausteine aufzuteilen. Hierzu ist es notwendig, die Businesslogik als einen Dienst, in diesem Beispiel ein ASP.NET-Core-Web-API, und die Webanwendung als eine eigenständige Ap, beispielsweise auf Basis von Ionic, anzusehen. Es ist also notwendig, das Gesamtkonstrukt weiter aufzuteilen.

Es muss nun entschieden werden, welche Aufgaben in das Web-API und welche in die App ausgelagert werden sollen. Prinzipiell soll das Web-API ausschließlich das Datenmodell kennen und entsprechende CRUD-Operationen abstrahieren. Darüber hinaus sollen einzelne Methoden auf Basis des Datenmodells ebenfalls vom Web-API ausgeführt werden, wie z. B. das Ändern eines Benutzerpassworts. Für jede Entität soll demnach ein eigener Web-API-Controller angelegt werden.

Den vollständigen Artikel lesen Sie in der Ausgabe:

Windows Developer 9.17 - "Progressive Service Worker"

Alle Infos zum Heft
579808028ASP.NET Core und Ionic 3 für Apps im Web
X
- Gib Deinen Standort ein -
- or -