Unser Team bestand ursprünglich hauptsächlich aus serverseitigen Entwicklern mit minimalen Kenntnissen in Javascript. In ASP.NET haben wir viel UI-Logik in CodeBehind oder in jüngerer Zeit über Controller in MVC geschrieben.
Vor einiger Zeit haben sich 2 hochrangige clientseitige Entwickler unserem Team angeschlossen. Sie können in HTMl / CSS / Javascript so ziemlich alles tun, was wir bisher mit serverseitigem Code und serverseitigen Websteuerelementen tun konnten:
- Steuerelemente ein- / ausblenden
- Validierung durchführen
- Steuern Sie die AJAX-Aktualisierung
Also begann ich zu denken, dass es vielleicht effizienter wäre, nur eine API auf hoher Ebene um unsere Geschäftslogik herum zu erstellen, ähnlich wie die Amazon Fulfillment API: http://docs.amazonwebservices.com/fws/latest/APIReference/ , damit dieser Client Seitenentwickler würden die Benutzeroberfläche vollständig übernehmen, während sich serverseitige Entwickler nur auf die Geschäftslogik konzentrieren würden.
Für das Bestellsystem hätten Sie also eine API auf hoher Ebene wie:
OrderService.asmx
CreateOrderResponse CreateOrder(CreateOrderRequest)
AddOrderItem
AddPayment
-
SubmitPayment
-
GetOrderByID
FindOrdersByCriteria
...
Es würde JSON / REST-Zugriff auf die API geben, so dass es einfach wäre, von der clientseitigen Benutzeroberfläche zu konsumieren. Wir könnten diese API sowohl für die interne UI-Entwicklung als auch für Dritte verwenden, um ihre eigenen Anwendungen zu erstellen.
Ist es angesichts der Fortschritte bei Javascript und der Verfügbarkeit guter clientseitiger Entwickler ein guter Zeitpunkt, Code-Behind / Controller loszuwerden und sich nur auf die Entwicklung von APIs auf hoher Ebene (ala Amazon) zu konzentrieren, die clientseitige Entwickler nutzen können?