Существует много "примитивных" шаблонных типов классов данных, которые могли появиться во многих различных программах.
Однако я никогда не видел класс или набор библиотеки, который распознает потребность объединить все эти вещи с общей логикой, требуемой для них, такие как проверка.
Классы в качестве примера ([] скобки соответствуют классам также в гипотетической библиотеке):
Адрес (улица, индекс, город, состояние/территория/область, страна)
Человек (имя, контактная информация ([Телефон] / [электронная почта] / и т.д.), [Адрес], SSN/TIN, [Кредитная карта])
Телефон (число, код страны, и т.д.)
CreditCard (тип, число, истечение, ccv) **
И я уверен, что кто-то мог придумать много других.
Я разработал свои собственные классы Телефона/Адреса/Человека/Кредитной карты, которые я использую в проектах, вместе с проверкой и логикой.
Однако я только способен к проверке американо-основанной информации. Мой класс номера телефона идеально наследовался бы основному Телефонному классу, поскольку мой на самом деле разделяет число в NPA, NXX и Станцию и проверяет его полностью со стандартами NANP.
Есть ли ряд библиотек там в сети, которая имеет всесторонний набор таких шаблонных классов данных с надлежащей проверкой?
Это включает проверку для всемирного набора данных или просто американских данных?
И для ** от CreditCard, действительно ли это способно к встречающимся Стандартам по защите данных PCI?
Я знаю, что это классы, которые многие люди, вероятно, много раз писали на многих различных языках, но есть ли какая-либо библиотека.NET это fufills эти требования?
Я предпочел бы, открывается, получают/освобождают, хотя я рассмотрел бы заплаченный сторонний набор библиотеки.
CSLA.NET может предложить то, что ищет йо-дзю. Вероятно, это немного дальше, чем вы просите, но у него есть некоторая наиболее полная документация любого фреймворка (т.е. опубликованные книги от APress). Она также бесплатна.
В частности, пространство имен CSLA.ValidationRules и классы CommonRules и CustomRules сосредоточены на проверке данных.
При запуске проекта может быть удобно иметь схему типичных реализаций различных объектов, однако фактические реализации будут специфическими, требующими специфического поведения и требований по валидации. Вероятно, именно поэтому инструменты генерации фреймворка ORM или бизнес-объектов требуют наличия входной схемы для создания классов.
Если бы существовал стандартный фреймворк классов, который был бы с открытым исходным кодом, вы бы обнаружили, что эта схема будет массивной и постоянно растущей, это затруднило бы поддержание приложения в актуальном состоянии. Каждый класс и свойства этого класса требовали бы большого количества документации со способами их использования и т.д., но это могло бы быть субъективным. Схема, в которой можно было бы выбрать то, что они хотят и как это следует проверять, чтобы использовать в фреймворке генерации ORM / Business Object, может быть хорошей идеей, и я уверен, что в настоящее время их не существует.
Вы могли бы взглянуть на конкретные существующие проекты с открытым исходным кодом и использовать их для вдохновения?
.