420 likes | 509 Views
Explore the limitations of traditional OO languages and solutions through the failures of various design generations. Discover the innovative Allors solution with its 3rd Generation OO approach, powerful jargon, platform features, and application enhancements.
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