Какие есть технологии, методики или инструменты для упрощения валидации и обработки данных на Front-end и Back-end?
Какие есть технологии, методики или инструменты для упрощения валидации и обработки данных на Front-end и Back-end в случае с ASP.NET MVC приложением?
Когда много различных параметров отправляемых с Фронта на Бэк и обратно + они периодически меняются или дополняются новыми, то легко забыть о какой-то проверке на одной из сторон или не корректно сконвертировать данные и потом долго искать, в каком это месте, AutoMapper падает, к примеру... :)
Подскажите, к то знает, какие-то Best Practice для Fullstack разработки.
Заранее, спасибо!
Один из подходов (достаточно успешный), использовать единую кодовую базу со статической типизацией.
В которой одна и таже кодовая база (модель данных например), переиспользуется как на бэке, так и на фронте.
Для этого или бэкенд на ЖС набирается (нода), или Фронтэнд (ЖС), генерируется из языка на бэкенде.
Такой подход позволяет очень быстро создавать прототип и его быстро переделывать, при этом можно сделать бесшовную связь бэкенда с фронтэндом без необходимости описывать апи.
Конечно в итоге вы получаете сильно связанный код, который по-хорошему потом все равно переписать надо, однако для прототипирования самое то.
Andrey Plax, я такое использую в Scala экосистеме (scala.js), для JS знаю что похожим образом работает Meteor, a вот для дотнета не знаком что там в этом стиле есть.
Поскольку мы в разделе ASP.NET, то буду говорить про него. Не знаю каким образом мы можем синхронизировать валидацию на фронтенде и бекенде, мне даже кажется это технически нереализуемо, но могу ошибаться. Если мы говорим о валидации в целом, то мы в первую очередь должны обеспечивать 100% валидацию на стороне сервера, потому что не хотим, чтобы была нарушена целостность данных и т.д. Тут надо руководствоваться принципом fail fast - как можно быстрее проверяем валидность данных из запроса. Чтобы привести валидацию к какому-то организованному виду можно использовать, например, библиотеку FluentValidation.
Меня интересовала не столько валидация, сколько методика или технология контроля данных и на клиенте и на сервере. Но ваш совет тоже очень полезен - Спасибо, Evgeny Maltsev!