DDD и проверка на стороне клиента

Предположим, у вас есть приложение, которое использует шаблон модели предметной области, DDD и множество других шаблонов проектирования. предположим, что у нас есть ряд решений, перечисленных ниже:

  • Solution.Model
  • Solution.Repository
  • Solution.Services
  • Solution.Presentation
  • Solution.UI.Web

Пользовательский интерфейс Layer будет Solution.UI.Web, и мы предположим, что это будет приложение ASP.NET WebForms. как обеспечить выполнение проверки на стороне клиента?

Необходимо учитывать ряд моментов:

Прежде всего, нам не нужно обращаться к серверу (-ам) приложения / базы данных, чтобы вернуть какие-либо ошибки проверки на клиент, мы могли бы, однако, реализовать и проверку на стороне сервера, но нам также понадобится проверка на стороне клиента.

Во-вторых, мы не хотим реализовывать правила проверки на уровне взаимодействия с пользователем. это потому, что если ваше приложение является WebApp, а затем вы решите создать клиент WinApp, вам придется заново реализовать правила проверки -> кошмар обслуживания.

Одним из простых подходов было бы реализовать свой логика проверки с вашими объектами ViewModel (сплющенные представления сущностей вашего домена, которые будут отправлены клиенту), а затем проверка этих объектов перед обращением к серверу (-ам) приложения / базы данных.

Другой подход, который я видел, использовал много раз в разных приложениях, просто создать коллекцию сообщений об ошибках проверки и отправить эту коллекцию клиенту. это нормально, но есть проблема. просто сводное сообщение об ошибках проверки не годится, особенно если у вас есть форма для ввода больших данных.

Теперь среда ASP.NET MVC значительно упрощает жизнь. вы можете использовать EF + DataAnnotations, а фреймворк MVC Scaffolding может сделать большую часть работы за вас. но это тот случай, если вы хотите создать приложение MVC и реализовать свою логику проверки с помощью jQuery и JavaScript.

Но что, если вам нужен более общий подход для реализации инфраструктуры проверки, которую можно использовать и использовать в различных приложениях, например WinForms и WebForms?

Просто чтобы уточнить, что я ищу, это набор шаблонов / принципов и / или методов / структур проектирования для реализации инфраструктуры проверки, которая может быть реализована в рамках вашей модели предметной области и затем применена в ваших клиентских приложениях. . И я не хочу просто возвращать коллекцию сообщений об ошибках строки о нарушенных правилах или о чем-то еще, я хочу иметь возможность обновлять свои элементы управления с привязкой к данным (TextBox, ComboBox, DateTimePicker и т. Д.) После сбоя проверки, чтобы уровень взаимодействия с пользователем был бы более интуитивным (если хотите).

Я видел некоторые реализации и фреймворки здесь и там, и я уже некоторое время использовал проверку на стороне клиента ASP.NET MVC, поэтому мой ответ не имеют какое-либо отношение к проверке MVC или JavaScript.

7
задан halfer 19 December 2018 в 21:02
поделиться