Здравствуйте, Аноним, Вы писали:
А>По идее так и есть, обобщенный вариант решения — нужно создать некий универсальный язык и 2 транслятора, один в код C# ( код серверного приложения ) другой в JavaScript ( код клиентского приложения ). Код трансляторов будет написан 1 раз и зафиксирован, причем трансляцию можно проводить перед компиляцией веб-приложения, тем самым не будет издержек производительности.
А>Как вариант можно взять один из уже существующих языков, например клиенский или серверный.
А> — создать утилиту которая преобразовывает метод IsValid класса из C# в соотвветсвующую функцию JavaScript, например в validatorlogin_IsValid()
А> — настроить сборку чтобы сначала запускалась утилита и генерила соответстующий js файл validators.js
А ещё лучше ознакомиться с тем, что уже достигнуто в данной области. Напрмер,
здесь.
Всё уже давным-давно украдено. Как минимум длины, ограничения на инты, и регулярные выражения присутствуют как данность.
Для более экзотических сценариев совершенно необязательно писать утилиту, которая будет уметь парсить не самый простой язык С# и придумывать для него JavaScript — аналог.
Можно взять готовое дерево выражений, и работать сразу с ним, заморачивась исключительно back-end-ом.
Тогда в коде можно будет написать что-то вроде
AddValidator((string name)=>name.ToUpper()==name, "Uppercase string required");
А относительно рутинный код будет обходить дерево и превращать его в JavaScript-аналог.