ADAPTIVE ARCHITECTURE  FOR DOT NET Preparing the Way Forward
Architecture Goals Streamlined development for faster time to market Facilitate adherence to standards and Best Practices  Improved consistency to simplify maintenance Enhanced stability
Architecture Stack Architecture Component Designed Component Generated Component SQLClient Table Interfaces User Process Interfaces SQL Server Oracle ODP OracleClient Enterprise Library Floating Ships Data Security Caching Exception Business Entities Data Proxy Methods Presentation Controller Web Client Windows Client Mobile Client
Define all possible relationships Consistent Naming Conventions to Support Standards <TableName>ID <TableName>Name Upfront design work in the database saves time SQL Server Oracle
Database (contd) Consistency Predictability Standards Repeatability Stability Primary Keys should be structured as Identity columns Foreign key columns should match the name of the corresponding primary key “ Name” columns facilitate decoding foreign keys Standardizing column data types simplify mapping back to DotNet data types
Database DataTypes  bit CHAR datetime int ntext NUMBER numeric nvarchar text uniqueidentifier varchar System.Boolean System.String System.DateTime System.Int32 System.String System.Double System.Double System.String System.String System.Guid System.String Database DotNet
Built on best practices in the Enterprise Library Incorporates the FloatigShip library to encompass a customization / adaption layer. Floating Ship library provides protection from future changes to the Enterprise Library.  Only this library needs to adapt to future version of the Enterprise Library not every application written ODP OracleClient Enterprise Library Floating Ships Data Security Caching Exception
Table Interfaces require a read/write property for every column in the base table Table Interfaces implemented by the corresponding Business Entity object User Process Interfaces derived from Table Interfaces User Process Interfaces define the methods and events needed to orchestrate the user interaction Separation By Interfaces Improves Stability Table Interfaces User Process Interfaces
Data Proxy methods are static methods that handle all interaction with the underlying database.  These methods are not called directly through client code Business Entities are smart objects that know how to initialize themselves, persist changed data back to the database, access related objects, and instantiate collections of themselves filtering by defined foreign keys. Business Entities Data Proxy Methods
Business Entities (contd) Business Entity objects form a central repository for encapsulating validation logic Business Entity objects form a central repository for encapsulating type conversion logic Business Entity objects shield application code from changes to the underlying data store Business Logic implemented in classes derived from the Business Entities Business Entities add Structure to a Chaotic World
Each UI component should implement both the Table Interface and the User Process interface Each UI component can leverage the rest of the architecture stack Presentation Controller should isolate the workflow from the UI layer Presentation Controller should encapsulate the business logic Presentation Controller Web Client Windows Client Mobile Client
Model View Presenter (MVP) The Model is the Business Entity object The View is the UI element such as UserControl, ServerControl, etc.  The View is responsible for displaying the Model’s data to the user The Presenter is responsible for manipulating the Model based on user events raised by the View The Presenter implements the business logic Separation of  Responsibilities Limits Scope of Change

Adaptive Architecture

  • 1.
    ADAPTIVE ARCHITECTURE FOR DOT NET Preparing the Way Forward
  • 2.
    Architecture Goals Streamlineddevelopment for faster time to market Facilitate adherence to standards and Best Practices Improved consistency to simplify maintenance Enhanced stability
  • 3.
    Architecture Stack ArchitectureComponent Designed Component Generated Component SQLClient Table Interfaces User Process Interfaces SQL Server Oracle ODP OracleClient Enterprise Library Floating Ships Data Security Caching Exception Business Entities Data Proxy Methods Presentation Controller Web Client Windows Client Mobile Client
  • 4.
    Define all possiblerelationships Consistent Naming Conventions to Support Standards <TableName>ID <TableName>Name Upfront design work in the database saves time SQL Server Oracle
  • 5.
    Database (contd) ConsistencyPredictability Standards Repeatability Stability Primary Keys should be structured as Identity columns Foreign key columns should match the name of the corresponding primary key “ Name” columns facilitate decoding foreign keys Standardizing column data types simplify mapping back to DotNet data types
  • 6.
    Database DataTypes bit CHAR datetime int ntext NUMBER numeric nvarchar text uniqueidentifier varchar System.Boolean System.String System.DateTime System.Int32 System.String System.Double System.Double System.String System.String System.Guid System.String Database DotNet
  • 7.
    Built on bestpractices in the Enterprise Library Incorporates the FloatigShip library to encompass a customization / adaption layer. Floating Ship library provides protection from future changes to the Enterprise Library. Only this library needs to adapt to future version of the Enterprise Library not every application written ODP OracleClient Enterprise Library Floating Ships Data Security Caching Exception
  • 8.
    Table Interfaces requirea read/write property for every column in the base table Table Interfaces implemented by the corresponding Business Entity object User Process Interfaces derived from Table Interfaces User Process Interfaces define the methods and events needed to orchestrate the user interaction Separation By Interfaces Improves Stability Table Interfaces User Process Interfaces
  • 9.
    Data Proxy methodsare static methods that handle all interaction with the underlying database. These methods are not called directly through client code Business Entities are smart objects that know how to initialize themselves, persist changed data back to the database, access related objects, and instantiate collections of themselves filtering by defined foreign keys. Business Entities Data Proxy Methods
  • 10.
    Business Entities (contd)Business Entity objects form a central repository for encapsulating validation logic Business Entity objects form a central repository for encapsulating type conversion logic Business Entity objects shield application code from changes to the underlying data store Business Logic implemented in classes derived from the Business Entities Business Entities add Structure to a Chaotic World
  • 11.
    Each UI componentshould implement both the Table Interface and the User Process interface Each UI component can leverage the rest of the architecture stack Presentation Controller should isolate the workflow from the UI layer Presentation Controller should encapsulate the business logic Presentation Controller Web Client Windows Client Mobile Client
  • 12.
    Model View Presenter(MVP) The Model is the Business Entity object The View is the UI element such as UserControl, ServerControl, etc. The View is responsible for displaying the Model’s data to the user The Presenter is responsible for manipulating the Model based on user events raised by the View The Presenter implements the business logic Separation of Responsibilities Limits Scope of Change