SlideShare a Scribd company logo
1 of 6
FieldWorks architecture

   Updated John Thomson,
     September 5, 2009
Basics



UI Layer (everything that presents to the user)


Domain Layer (FDO = FieldWorks Data Objects). All the logic required to keep the
data correct and consistent; “business logic”; no UI.

Persistence layer (FDO/Infrastructure/Persistence
Persistence (back ends)
    UI Layer (everything that presents to the user)


    Domain Layer (FDO = FieldWorks Data Objects). All the logic required to keep the
    data correct and consistent; “business logic”; no UI.


    Persistence layer (FDO/Infrastructure/Persistence
    Common concept of key/value data store, maps GUID to XML representation of
    FDO object.


              Alternative “back end providers” implement key/value store
              (more to come…then will thin out. Memory-only and XML file are special)

Memory-only BEP              Firebird BEP    Firebird        XML file        DB4O
(manual and unit tests)                      Client-server    BEP (data      BEP
                                             BEP             interchange)
Views and DomainDataByFlid
UI Layer (everything that presents to the user)



                                                         Views (legacy C++ code
                                                         used for most text display)
   Working directly with the domain objects
   Is the preferred approach now.

                                                  DomainDataByFlid
                                                  (access model data by object
                                                  ID/Field ID; ISilDataAccess)


 FDO objects (access model data through domain objects encapsulating business
 logic and constraints; partly generated from model, partly hand-written)

 Persistence layer (FDO/Infrastructure/Persistence
FDO object interfaces
                 ICmObject
                                          ICmObjectInternal
                                          (explicitly implemented;
                             CmObject     private to domain/FDO;
                                          flid->property adapters)
      ILexEntry (real & virtual
      properties & methods;
      accesssible to whole system)            Overrides add
                                              LexEntry props
(ILexEntry is the             LexEntry
interface by which it
is known to the                          ILexEntryInternal
world, the signature                     (functions private to
of model properties                      domain/FDO but broader
that return lexical                      than IMPL subdomain)
entries.)
FDO object interfaces
                 ICmObject
                                          ICmObjectInternal
                                          (explicitly implemented;
                             CmObject     private to domain/FDO;
                                          flid->property adapters)
      ILexEntry (real & virtual
      properties & methods;
      accesssible to whole system)            Overrides add
                                              LexEntry props
(ILexEntry is the             LexEntry
interface by which it
is known to the                          ILexEntryInternal
world, the signature                     (functions private to
of model properties                      domain/FDO but broader
that return lexical                      than IMPL subdomain)
entries.)

More Related Content

Similar to Field works architecture

Dojo Toolkit from a Flex developer's perspective
Dojo Toolkit from a Flex developer's perspectiveDojo Toolkit from a Flex developer's perspective
Dojo Toolkit from a Flex developer's perspectivecjolif
 
Dhtmlx isis viewer
Dhtmlx isis viewerDhtmlx isis viewer
Dhtmlx isis viewermylaensys
 
UNIT V DIS.pptx
UNIT V DIS.pptxUNIT V DIS.pptx
UNIT V DIS.pptxSamPrem3
 
Component Object Model (COM, DCOM, COM+)
Component Object Model (COM, DCOM, COM+)Component Object Model (COM, DCOM, COM+)
Component Object Model (COM, DCOM, COM+)Peter R. Egli
 
Roma introduction and concepts
Roma introduction and conceptsRoma introduction and concepts
Roma introduction and conceptsLuca Garulli
 
DEF CON 23 - Saif el-sherei and etienne stalmans - fuzzing
DEF CON 23 - Saif el-sherei and etienne stalmans - fuzzingDEF CON 23 - Saif el-sherei and etienne stalmans - fuzzing
DEF CON 23 - Saif el-sherei and etienne stalmans - fuzzingFelipe Prado
 
Entity Framework Today (May 2012)
Entity Framework Today (May 2012)Entity Framework Today (May 2012)
Entity Framework Today (May 2012)Julie Lerman
 
Common Object Request Broker Architecture - CORBA
Common Object Request Broker Architecture - CORBACommon Object Request Broker Architecture - CORBA
Common Object Request Broker Architecture - CORBAPeter R. Egli
 
Introduction To AMF
Introduction To AMFIntroduction To AMF
Introduction To AMFtomhensel
 
Evolution of Patterns
Evolution of PatternsEvolution of Patterns
Evolution of PatternsChris Eargle
 
Session 1 Tp1
Session 1 Tp1Session 1 Tp1
Session 1 Tp1phanleson
 
Re-implementing Thrift using MDE
Re-implementing Thrift using MDERe-implementing Thrift using MDE
Re-implementing Thrift using MDESina Madani
 
"About Firebird and Flamerobin" by Marius Popa @ eLiberatica 2007
"About Firebird and Flamerobin" by Marius Popa @ eLiberatica 2007"About Firebird and Flamerobin" by Marius Popa @ eLiberatica 2007
"About Firebird and Flamerobin" by Marius Popa @ eLiberatica 2007eLiberatica
 
Whats new in .net framework 4
Whats new in .net framework 4Whats new in .net framework 4
Whats new in .net framework 4Pramod Chavan
 

Similar to Field works architecture (20)

200910 - iPhone at OOPSLA
200910 - iPhone at OOPSLA200910 - iPhone at OOPSLA
200910 - iPhone at OOPSLA
 
Pcom xpcom
Pcom xpcomPcom xpcom
Pcom xpcom
 
5c8605.ado.net
5c8605.ado.net5c8605.ado.net
5c8605.ado.net
 
Dojo Toolkit from a Flex developer's perspective
Dojo Toolkit from a Flex developer's perspectiveDojo Toolkit from a Flex developer's perspective
Dojo Toolkit from a Flex developer's perspective
 
eZ Publish 5 in depth inspection
eZ Publish 5 in depth inspectioneZ Publish 5 in depth inspection
eZ Publish 5 in depth inspection
 
Dhtmlx isis viewer
Dhtmlx isis viewerDhtmlx isis viewer
Dhtmlx isis viewer
 
UNIT V DIS.pptx
UNIT V DIS.pptxUNIT V DIS.pptx
UNIT V DIS.pptx
 
Component Object Model (COM, DCOM, COM+)
Component Object Model (COM, DCOM, COM+)Component Object Model (COM, DCOM, COM+)
Component Object Model (COM, DCOM, COM+)
 
Roma introduction and concepts
Roma introduction and conceptsRoma introduction and concepts
Roma introduction and concepts
 
DEF CON 23 - Saif el-sherei and etienne stalmans - fuzzing
DEF CON 23 - Saif el-sherei and etienne stalmans - fuzzingDEF CON 23 - Saif el-sherei and etienne stalmans - fuzzing
DEF CON 23 - Saif el-sherei and etienne stalmans - fuzzing
 
Entity Framework Today (May 2012)
Entity Framework Today (May 2012)Entity Framework Today (May 2012)
Entity Framework Today (May 2012)
 
Common Object Request Broker Architecture - CORBA
Common Object Request Broker Architecture - CORBACommon Object Request Broker Architecture - CORBA
Common Object Request Broker Architecture - CORBA
 
Introduction To AMF
Introduction To AMFIntroduction To AMF
Introduction To AMF
 
Evolution of Patterns
Evolution of PatternsEvolution of Patterns
Evolution of Patterns
 
Session 1 Tp1
Session 1 Tp1Session 1 Tp1
Session 1 Tp1
 
Re-implementing Thrift using MDE
Re-implementing Thrift using MDERe-implementing Thrift using MDE
Re-implementing Thrift using MDE
 
201010 SPLASH Tutorial
201010 SPLASH Tutorial201010 SPLASH Tutorial
201010 SPLASH Tutorial
 
COM Introduction
COM IntroductionCOM Introduction
COM Introduction
 
"About Firebird and Flamerobin" by Marius Popa @ eLiberatica 2007
"About Firebird and Flamerobin" by Marius Popa @ eLiberatica 2007"About Firebird and Flamerobin" by Marius Popa @ eLiberatica 2007
"About Firebird and Flamerobin" by Marius Popa @ eLiberatica 2007
 
Whats new in .net framework 4
Whats new in .net framework 4Whats new in .net framework 4
Whats new in .net framework 4
 

Field works architecture

  • 1. FieldWorks architecture Updated John Thomson, September 5, 2009
  • 2. Basics UI Layer (everything that presents to the user) Domain Layer (FDO = FieldWorks Data Objects). All the logic required to keep the data correct and consistent; “business logic”; no UI. Persistence layer (FDO/Infrastructure/Persistence
  • 3. Persistence (back ends) UI Layer (everything that presents to the user) Domain Layer (FDO = FieldWorks Data Objects). All the logic required to keep the data correct and consistent; “business logic”; no UI. Persistence layer (FDO/Infrastructure/Persistence Common concept of key/value data store, maps GUID to XML representation of FDO object. Alternative “back end providers” implement key/value store (more to come…then will thin out. Memory-only and XML file are special) Memory-only BEP Firebird BEP Firebird XML file DB4O (manual and unit tests) Client-server BEP (data BEP BEP interchange)
  • 4. Views and DomainDataByFlid UI Layer (everything that presents to the user) Views (legacy C++ code used for most text display) Working directly with the domain objects Is the preferred approach now. DomainDataByFlid (access model data by object ID/Field ID; ISilDataAccess) FDO objects (access model data through domain objects encapsulating business logic and constraints; partly generated from model, partly hand-written) Persistence layer (FDO/Infrastructure/Persistence
  • 5. FDO object interfaces ICmObject ICmObjectInternal (explicitly implemented; CmObject private to domain/FDO; flid->property adapters) ILexEntry (real & virtual properties & methods; accesssible to whole system) Overrides add LexEntry props (ILexEntry is the LexEntry interface by which it is known to the ILexEntryInternal world, the signature (functions private to of model properties domain/FDO but broader that return lexical than IMPL subdomain) entries.)
  • 6. FDO object interfaces ICmObject ICmObjectInternal (explicitly implemented; CmObject private to domain/FDO; flid->property adapters) ILexEntry (real & virtual properties & methods; accesssible to whole system) Overrides add LexEntry props (ILexEntry is the LexEntry interface by which it is known to the ILexEntryInternal world, the signature (functions private to of model properties domain/FDO but broader that return lexical than IMPL subdomain) entries.)