Вышла новая версия
Rsdn.Framework.Data. Впрочем, это уже не совсем RFD. Вторая версия полностью переработана, включая само название библиотеки
Новое название –
Business Logic Toolkit (
BLToolkit) призвано более точно отразить расширенные возможности библиотеки и её назначение.
Ниже приведён неполный список возможностей библиотеки:
Класс DbManager – высокоуровневая, независимая от провайдера данных обёртка над ADO.NET, дополняющая её такими методами как ExecuteObject, ExecuteList, ExecuteDictionary и многими другими.
Класс DataAccessor – базовый класс для реализации слоя доступа к данным (DAL), предлагающий набор базовых CRUDL операций плюс генератор вызова сохранённых процедур на основе сигнатуры абстрактных методов.
Универсальный маппер (BLToolkit.Mapper) – расширяемый набор классов, позволяющий отображать друг в друга, помимо классического отображения данных из БД в объекты, практически любые другие структуры данных. Стандартный набор мапперов включает поддержку следующих структур данных: DataReader, DataRow (DataRowView, DataTable, DataSet), IDictionary, IList, бизнес объекты.
EditableObjects – базовые классы для построения иерархий бизнес объектов, способных уведомлять потребителей об изменении своего внутреннего состояния и поддерживающих методы AcceptChanges, RejectChanges и флаг IsDirty.
Validation – набор классов и атрибутов для реализации простого в использовании механизма валидации бизнес объектов, основанного на применении атрибутов.
ObjectBinder – компонент для баиндинга бизнес объектов. Кроме него в namespace BLToolkit.ComponentModel входят классы, предлагающие базовую реализацию интерфейсов ITypedList, IBindingList.
TypeAccessor – создание объектов и быстрый доступ к полям и свойствам классов в обход технологии Reflection. Ранее эта возможность была частично реализована в классе MapDescriptor. Теперь доступ к классу и сам маппинг разделены. Кроме прочего класс TypeAccessor используется для создания экземпляров объектов сгенерированных классов.
EmitHelper – emit с человеческим лицом. Обёртка над ILGenerator, предлагающая типизированные версии метода ILGenerator.Emit.
TypeBuilder – расширяемый генератор классов.
Исходные коды проекты доступны
здесь.