420 likes | 504 Views
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
E N D
Overview • Problems • The Allors Solution • Allors Jargon • Allors Platform • Allors Tools • Allors Application
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
Limitations of OO languages • No bi-directional relations • No persistency • No (short/long) transaction management • Static/Dynamic typing
Failure of 1st generation OO Design(White box Inheritance) • Fragile base class • Complex hierarchies • Class reuse but no object reuse
Failure of 2nd generation OO Design (Delegation) • Excessieve proxying • Complex Compositions • Object reuse but no class reuse
Failure of Binary Components • No reuse of classes and/or objects • Duplication • Integration • Version management • Contract based fallacy • (un)Testability
(Anticipated) Failure of SOA • Functionalprogramming • Stateless services • Idempotent services • SeeComponents
OR mapping insufficient and too complex • Mapping overhead • Performance/Scalability • Transactions too complex e.g. too many states • Object disconnection • No transparency • Schema versioning
The Allors Solution • 3rd Generation OO • Multiple Type Declarations • Object Persistence • Rolling Transactions • Disconnected Objects • Domain Driven • Subject Orientation • Test Driven
Allors Jargon • Domain • Relation (Association & Role) • Multiple Type • Subject • Population • Population Adapter • Allors Object • Extent
Allors Platform • Framework • Population Adapters • UI Support
Framework • Metadomain • Population • Templates
Population • Core (Population,Strategy,Session & ObjectId) • Load/Save with Events • Extent & Predicate • Node • Checkout/Checkin & Conflict • Copy • Diff
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$ • >>
Population Adapters • Memory Adapter • Sql Adapter
UI Support • WebObject & WebObjects • WebPopulation
WebObject(s) Overview • Manage AllorsObject(s) across web requests • Cache Allors object(s) in either View-, Session- or Application State.
WebObject(s) Detail • Inherit from System.Web.UI.Control • WebObjects implement IDataSource • Very efficient caching • Default state is ViewState
WebPopulation • Allows you to store and retrieve a disconnected population across web requests.
Allors Tools • Upgrade • Repository & Build • Testing Tools (Winforms, Webforms, Browser)
Upgrade • Upgrade Notifications • Automatic Domain (Schema) upgrade • Automatic Population (Data) upgrade • Supports Test Driven Development
Repository & Build • Repository UI • Repository API • Command & MSBuild Builds • Continuous Integration
Testing Tools • Winforms Tester • Webforms Tester • Browser Tester
Allors Application • Prefab Subjects • Custom Composition and Extension
Prefab Subjects • 1 Shared Subject(General objects, Collaboration (Wiki), …) • Software Development Subject • Business Subjects(Accounting, CRM, Contracts, ..) • Community Subjects
Custom Composition & Extension • Custom or 3rd party subjects • Extension of Subjects