• Save
Adaptive Architecture
Upcoming SlideShare
Loading in...5
×
 

Adaptive Architecture

on

  • 469 views

A presentation outlining my current thoughts on the ideal software architecture to streamline time to market, maximize stability, and make resilient to future changes.

A presentation outlining my current thoughts on the ideal software architecture to streamline time to market, maximize stability, and make resilient to future changes.

Statistics

Views

Total Views
469
Views on SlideShare
464
Embed Views
5

Actions

Likes
0
Downloads
0
Comments
0

3 Embeds 5

http://www.slideshare.net 3
http://localhost:6763 1
http://newlook.thejustordinarygroup.com 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Adaptive Architecture Adaptive Architecture Presentation Transcript

  • 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