Структура на един бизнес обект
Версии
Видео презентации

Всеки бизнес обект има една или повече таблици и минимум 3 класа.

Примерна схема на таблиците към един обект


На примерната схема е показана примерният обект Client задно с обслужващите му обекти и таблици. Кореспондиращите класове имат идентични имена с таблиците. Също така се вижда, че името на Primary Key-а задължително се образува от името на обекта и ID. По този начин, ако се знае името на обекта, автоматично се знае името на класа, таблицата и primary key-а. От показаните таблици само една няма кореспондиращ клас, и тя е ClientCategory, защото тя служи за съхранение на така нареченото Multiple Property, което просто отразява факта, че един клиент има повече от една категория асоциирана с него. Тази таблица е релационна и се управлява от обекта-собственик, в случая Client, чрез характеристиката CategoryIDs, която представлява string, разделен със запетаи, от CategoryID стойности.

За всеки бизнес обект има по три класа – обект, колекция и data source. Те наследяват от трите базови класа BusinessObject, BusinessObjectCollection и BusinessObjectDataSource.

Класът BusinessObject служи за управление на един запис от съответната таблица, като конструктор по primary key или Code (тъй като и двете са уникални). Другия главен метод на този клас е Update(bool Fetch, bool FireEvent), който записва промените в базата. Класът сам решава дали това е нов или съществуващ запис и съставя необходимата заявка към базата. Във всеки бизнес обект се регистрират всички характеристики на обекта с техните типове и останали атрибути, така че обекта по всяко време знае дали дадена характеристика е задължителна или не, на кое поле в базата съответства и т.н. Има една специална характеристика – CurrentRecordReference. Тя е обикновено генериран израз на reference-а на обекта, който израз се предоставя от DataSource класа.

Колекциите, от своя страна, дават начин за работа с повече от един запис на един и същи обект – например за съставяне на списъци, показване във форми и други. Всяка колекция има няколко важни метода – конструктора – BusinessObjectCollection(string FilterString, string OrderString, int Page, int Limit, int DataMode), който позволява конструиране на колекция с даден филтър, подреждане и страница, GetNext(), която дава възможност за обхождане на колекцията в while цикъл, GetCount(), която връща текущия брой записи в колекцията и статичната GetTotalCount(string FilterString), която връща колко общо записа има в таблицата, отговарящи на дадения филтър.

Третият клас – BusinessObjectDataSource, е light-weight (евтин за конструиране) обект, който служи за предоставяне, обработка и разширяване на заявките, които даден обект ползва, за да си получи данните от базата. Една заявка в пълния си вид съдържа както всички характеристики на обекта, така и всички reference-и на характеристиките си, които са обекти (например класът Client има както Client::CityID, има и Client::CityIDReference). Тези reference-и се взимат от DataSource-овете на съответните обекти в реално време. Различават се три варианта на заявката – Full, Simple и Search. Първия вариант връща всички необходими характеристики за конструиране на формата на обекта. Обикновено тази заявка е твърде тежка за използване в списък и затова има втория вариант – Simple. На практика разработчика указва кои характеристики реално няма смисъл или е прекалено тежко да се показват в списъка и те се изключват при Simple варианта. Третия вариант, Search, е специално за използване в интерфейсния контрол ObjectPicker, който замества стандартния <select> таг в HTML.

ПРИМЕРНА СХЕМА НА КЛАСОВЕТЕ КЪМ ОБЕКТА CLIENT

 
EnglishКарта на сайта
Уеб сайт, SEO от Калипърс

Ladger