Top Banner
Allors for Developers
42

Allors for Developers

Jan 04, 2016

Download

Documents

giselle-turner

Allors for Developers. Overview. Problems The Allors Solution Allors Jargon Allors Platform Allors Tools Allors Application. Problems. Limitations of OO languages Failure of 1 st generation OO Design Failure of 2 nd generation OO Design Failure of Binary Components - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Allors for Developers

Allors for Developers

Page 2: Allors for Developers

Overview

• Problems• The Allors Solution• Allors Jargon• Allors Platform• Allors Tools• Allors Application

Page 3: Allors for Developers

Problems

• Limitations of OO languages• Failure of 1st generation OO Design• Failure of 2nd generation OO Design• Failure of Binary Components • (Anticipated) Failure of SOA• OR mapping insufficient and too complex

Page 4: Allors for Developers

Limitations of OO languages

• No bi-directional relations• No persistency• No (short/long) transaction management• Static/Dynamic typing

Page 5: Allors for Developers

Failure of 1st generation OO Design(White box Inheritance)

• Fragile base class• Complex hierarchies • Class reuse but no object reuse

Page 6: Allors for Developers

Failure of 2nd generation OO Design (Delegation)

• Excessieve proxying• Complex Compositions• Object reuse but no class reuse

Page 7: Allors for Developers

Failure of Binary Components

• No reuse of classes and/or objects• Duplication• Integration• Version management• Contract based fallacy• (un)Testability

Page 8: Allors for Developers

(Anticipated) Failure of SOA

• Functional programming• Stateless services• Idempotent services• See Components

Page 9: Allors for Developers

OR mapping insufficient and too complex

• Mapping overhead• Performance/Scalability• Transactions too complex

e.g. too many states• Object disconnection• No transparency• Schema versioning

Page 10: Allors for Developers

The Allors Solution

• 3rd Generation OO• Multiple Type Declarations• Object Persistence• Rolling Transactions• Disconnected Objects• Domain Driven• Subject Orientation• Test Driven

Page 11: Allors for Developers

Allors Jargon

• Domain• Relation (Association & Role)• Multiple Type• Subject• Population• Population Adapter• Allors Object• Extent

Page 12: Allors for Developers

Allors Platform

• Framework• Population Adapters• UI Support

Page 13: Allors for Developers

Framework

• Metadomain• Population• Templates

Page 14: Allors for Developers

Metadomain

Page 15: Allors for Developers

MetaTypes

Page 16: Allors for Developers

MetaExtensions

Page 17: Allors for Developers

MetaRelations

Page 18: Allors for Developers

Extent

Page 19: Allors for Developers

Population

• Core (Population,Strategy,Session & ObjectId)• Load/Save with Events• Extent & Predicate• Node• Checkout/Checkin & Conflict• Copy• Diff

Page 20: Allors for Developers

Core

Page 21: Allors for Developers

Load/Save with Events

Page 22: Allors for Developers

Extent & Predicate

Page 23: Allors for Developers

Node (Root)

Page 24: Allors for Developers

Node (non-Root)

Page 25: Allors for Developers

Checkout

Page 26: Allors for Developers

Checkin & Conflicts

Page 27: Allors for Developers

Copy (intra session)

Page 28: Allors for Developers

Copy (inter Session)

Page 29: Allors for Developers

Template• group AllorsTestTemplate;

• TemplateId() ::= <<FA2E53B4-915D-4227-8571-456FC8E04DB0>>• TemplateName() ::= <<Allors Test>>• TemplateVersion() ::= <<1.0.0.3>>• TemplateAllors() ::= <<1.0.0>>• TemplateConfiguration(domain) ::= <<• <generations>• <generation template="domain" output="$domain.name$.txt"/> • </generations>• >>

• domain(domain) ::= <<• $domain.Name$• >>

Page 30: Allors for Developers

Population Adapters

• Memory Adapter• Sql Adapter

Page 31: Allors for Developers

UI Support

• WebObject & WebObjects• WebPopulation

Page 32: Allors for Developers

WebObject(s) Overview

• Manage AllorsObject(s) across web requests• Cache Allors object(s) in either View-, Session-

or Application State.

Page 33: Allors for Developers

WebObject(s) Detail

• Inherit from System.Web.UI.Control• WebObjects implement IDataSource• Very efficient caching• Default state is ViewState

Page 34: Allors for Developers

WebPopulation

• Allows you to store and retrieve a disconnected population across web requests.

Page 35: Allors for Developers

WebObject(s) Diagram

Page 36: Allors for Developers

Allors Tools

• Upgrade• Repository & Build• Testing Tools (Winforms, Webforms, Browser)

Page 37: Allors for Developers

Upgrade

• Upgrade Notifications• Automatic Domain (Schema) upgrade• Automatic Population (Data) upgrade• Supports Test Driven Development

Page 38: Allors for Developers

Repository & Build

• Repository UI • Repository API

• Command & MSBuild Builds• Continuous Integration

Page 39: Allors for Developers

Testing Tools

• Winforms Tester• Webforms Tester• Browser Tester

Page 40: Allors for Developers

Allors Application

• Prefab Subjects• Custom Composition and Extension

Page 41: Allors for Developers

Prefab Subjects

• 1 Shared Subject(General objects, Collaboration (Wiki), …)

• Software Development Subject• Business Subjects

(Accounting, CRM, Contracts, ..)• Community Subjects

Page 42: Allors for Developers

Custom Composition & Extension

• Custom or 3rd party subjects• Extension of Subjects