Xafari Service это подход к разработке XAF-приложений, это инструмент для реализации бизнес-задач.В общем случае Xafari Service имеет следующие особенности:

- Design-Time

- Runtime

Service Space – это расширение объекта IObjectSpace, с помощью которого реализуется функциональность XS.

Рекомендации

Xafari Service рекомендуется исспользовать в следующих ситуациях:

Описание реализации

Ниже приведена диаграмма основных используемых классов

IServiceSpace

Xafari Service всегда работает в контексте объекта IObjectSpace. Чтобы это обеспечить введено понятие IServiceSpace, которое реализует расширение с логической точки зрения для IObjectSpace.

Используются следующие ограничения:

Модель классов представлена выше.

IXafariService

Объект Xafari Service является singleton.

В общем случае XS может быть использован в нескольких IServiceSpace, а также в одном IServiceSpace могут быть использованы различные XS (см. Модель классов). Поэтому Xafari Service взаимодействует с IServiceSpace через специальный объект IServiceSpaceContext.

Регистрация XS в объекте IServiceSpace производится автоматически при первом обращении к объекту XS в контексте IServiceSpace.

Для упрощения при реализации IXafariService создан базовый класс XafariServiceBase<>, который содержит базовый класс ServiceSpaceContextBase для реализации IServiceSpaceContext (см. диаграмму ниже).

Также класс XafariServiceBase<> реализует интерфейс IObjectSpaceFactory. Это позволяет без дополнительных усилий использовать XS при стандартной процедуре обновления БД.

Чтобы узнать больше о Xafari Service, обратитесь к следующим документам: