Základem pro vývoj aplikační logiky je Domain driven design. Umožňuje soustředit se na business podstatu problému a ne na její technologickou implementaci. CodePlant poskytuje pro implementaci doménového přístupu sadu business komponent (abstrakcí):
- Entity pro datovou reprezentaci.
- Operace jako základ procesní logiky.
- Workflow procesy.
- Agent / Service pattern pro víceúrovňovou komunikaci mezi komponentami aplikace.
Entita
Entita reprezentuje datovou abstrakci. Může obsahovat jednoduchá aplikační pravidla typicky zaměřené na integritní omezení entity. Je jednoznačně identifikovaná svým klíčem a má vlastnosti, které můžou být validovány v okamžiku přiřazení hodnoty. Podporovány jsou vztahy na další entity a varianty dědičnosti. Umí se serializovat a deserializovat pro potřeby integrace a datových přenosů.
Operace
Operace reprezentují základní jednotku procesní logiky. Pracují nad daty jedné nebo více entity, provádí potřebné transformace, kalkulace a následné persistenci změněných a vytvořených entit. Reprezentují základní transakční jednotku s podporou vnořování. Můžou obsahovat jednoduchá data, reprezentující parametry operace.
Procesy (workflow)
Workflow proces je dlouhotrvající sada akcí nebo činností, která můžou následovat v definovaném pořadí. Služby workflow v průběhu průchodu workflow procesu poskytují notifikace jednotlivým účastníkům v definovaných rolích.
Podpora workflow procesu je realizována pomocí integrace platformy Windows Workflow Foundation.
Agent-Service Pattern
Entity i operace jsou implementovány s důrazem na rozdělení částí použitých v prostředí klienta (agent) a serveru (service). Veřejné metody, které jsou používány na klientovi, se interně rozhodují dle aktuální konfigurace aplikační topologie, zda se má daná metoda vykonat v procesu klienta (2vrstvá topologie), nebo dojde k serializaci parametrů metody a provedení akce v procesu serveru (3- vrstvá topologie). Service je bezstavový a zapouzdřuje hranice fyzické transakce.
Služby vrstvy aplikační logiky
Pro efektivní využití business komponent poskytuje CodePlant sadu služeb:
- O-R mapping.
- Persistence a materializace entit s podporu dědičnosti a vztahů.
- Objektový dotazovací jazyk.
- Mobilní business objekty, transparentní přenos mezi aplikačními vrstvami.