Наша команда изначально состояла в основном из разработчиков на стороне сервера с минимальным опытом работы с Javascript. В ASP.NET мы использовали для написания большого количества логики пользовательского интерфейса в программном коде или в последнее время через контроллеры в MVC.
Некоторое время назад к нашей команде присоединились 2 высококлассных разработчика на стороне клиента. Они могут делать в HTMl / CSS / Javascript практически все, что мы могли ранее делать с серверным кодом и серверными веб-элементами управления:
- Показать / скрыть элементы управления
- Сделать проверку
- Контроль AJAX освежает
Поэтому я начал думать, что, возможно, было бы эффективнее просто создать API высокого уровня на основе нашей бизнес-логики, наподобие Amazon Fulfillment API: http://docs.amazonwebservices.com/fws/latest/APIReference/ , чтобы клиент сторонние разработчики полностью переняли бы пользовательский интерфейс, в то время как разработчики на стороне сервера сосредоточились бы только на бизнес-логике.
Таким образом, для заказа системы вы должны иметь API высокого уровня, например:
OrderService.asmx
CreateOrderResponse CreateOrder(CreateOrderRequest)
AddOrderItem
AddPayment
-
SubmitPayment
-
GetOrderByID
FindOrdersByCriteria
...
Будет доступ к API через JSON / REST, поэтому его будет легко использовать из клиентского интерфейса. Мы могли бы использовать этот API как для разработки внутреннего пользовательского интерфейса, так и для сторонних разработчиков при создании собственных приложений.
С достижениями в Javascript и доступностью хороших разработчиков на стороне клиента, это хорошее время, чтобы избавиться от кода и контроллеров и просто сосредоточиться на разработке высокоуровневых API (аля Amazon), которые могут использовать разработчики на стороне клиента?