Top Banner

of 54

Rapid RIA Development

Apr 09, 2018

Download

Documents

gustagius
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
  • 8/8/2019 Rapid RIA Development

    1/54

    Vstavn 230/24, 149 00 Praha 4, [email protected], www.baud.cz

    RAPID RIA DEVELOPMENTUSING .NET TECHNOLOGIESAugustin ulc

    Petr Hoek

  • 8/8/2019 Rapid RIA Development

    2/54

    GOALS

  • 8/8/2019 Rapid RIA Development

    3/54

    Outline> Preliminary

    > Architecture> Data Source

    > Web Server

    > Client

    > Rapid Development

  • 8/8/2019 Rapid RIA Development

    4/54

    Demo ApplicationProject-management tool

  • 8/8/2019 Rapid RIA Development

    5/54

  • 8/8/2019 Rapid RIA Development

    6/54

    PRELIMINARY

  • 8/8/2019 Rapid RIA Development

    7/54

    Rich Internet ApplicationDesktop-like web application

  • 8/8/2019 Rapid RIA Development

    8/54

    Compared to Web Applications

    > Richer user interface> Reduced communication

    > Better development support

    > Need for browser plugin

  • 8/8/2019 Rapid RIA Development

    9/54

  • 8/8/2019 Rapid RIA Development

    10/54

    Available RIA Platforms

    > Adobe Flash, Flex and AIR> Microsoft Silverlight

    > Oracle Java Applets/JavaFX

    > HTML(5) + JavaScript

  • 8/8/2019 Rapid RIA Development

    11/54

    Microsoft Silverlight.NET Framework & WPF subset

  • 8/8/2019 Rapid RIA Development

    12/54

    Microsoft SilverlightInteractive UX

  • 8/8/2019 Rapid RIA Development

    13/54

    ARCHITECTURE

  • 8/8/2019 Rapid RIA Development

    14/54

    Common ArchitectureThree-Layered Services Architecture

  • 8/8/2019 Rapid RIA Development

    15/54

  • 8/8/2019 Rapid RIA Development

    16/54

    Application LayersSeparation of concerns, high cohesion & loose coupling

  • 8/8/2019 Rapid RIA Development

    17/54

    DATA SOURCE

  • 8/8/2019 Rapid RIA Development

    18/54

    Data StoreConventional relational database

  • 8/8/2019 Rapid RIA Development

    19/54

  • 8/8/2019 Rapid RIA Development

    20/54

    WEB SERVER

  • 8/8/2019 Rapid RIA Development

    21/54

    Domain ModelAbstracting relational schema

  • 8/8/2019 Rapid RIA Development

    22/54

    Domain Model> ADO.NET Entity Framework> LINQ to SQL

    > NHibernate

  • 8/8/2019 Rapid RIA Development

    23/54

    Application Service LayerExposing domain functionality

  • 8/8/2019 Rapid RIA Development

    24/54

    Application Service Layer> WCF web services> WCF Data Services

    > WCF RIA Services

  • 8/8/2019 Rapid RIA Development

    25/54

    WCF Web ServicesExposes functionality via operations

  • 8/8/2019 Rapid RIA Development

    26/54

    WCF Data ServicesExposes data via context

  • 8/8/2019 Rapid RIA Development

    27/54

    Data Services over Web Services> Batching and transactions> Automatic change tracking

    > Limited client LINQ

  • 8/8/2019 Rapid RIA Development

    28/54

    WCF RIA ServicesExposes domain via context

  • 8/8/2019 Rapid RIA Development

    29/54

    RIA Services over Data Services> Localization and validation> Metadata propagation

    > Full client LINQ

  • 8/8/2019 Rapid RIA Development

    30/54

  • 8/8/2019 Rapid RIA Development

    31/54

    CLIENT

  • 8/8/2019 Rapid RIA Development

    32/54

    Model and ResourcesDelivered via service contract

  • 8/8/2019 Rapid RIA Development

    33/54

    Presentation LayerSeparation of UX from business logic

  • 8/8/2019 Rapid RIA Development

    34/54

    Model-View-ViewModel patternViewModel as mediator for View and Model

  • 8/8/2019 Rapid RIA Development

    35/54

  • 8/8/2019 Rapid RIA Development

    36/54

    MVVM Implementations> Prism 4> Caliburn

    > MVVM Light Toolkit, etc.

  • 8/8/2019 Rapid RIA Development

    37/54

    Prism 4Guidance for Silverlight applications

  • 8/8/2019 Rapid RIA Development

    38/54

    CaliburnPowerfull client framework for Silverlight

  • 8/8/2019 Rapid RIA Development

    39/54

    Caliburn over Prism 4> Convention over configuration> Focus on real cases

    > Out-of-the-box functionality

  • 8/8/2019 Rapid RIA Development

    40/54

    Caliburn.Micro90% of Caliburn in 10% of code

  • 8/8/2019 Rapid RIA Development

    41/54

  • 8/8/2019 Rapid RIA Development

    42/54

    RAPID DEVELOPMENT

  • 8/8/2019 Rapid RIA Development

    43/54

    Development Tools.NET Framework, Visual Studio, Expression Blend, etc.

  • 8/8/2019 Rapid RIA Development

    44/54

    Frameworks & LibrariesWCF RIA Services, Caliburn, MEF, etc.

  • 8/8/2019 Rapid RIA Development

    45/54

    Even More Rapid!Model-driven code generation

  • 8/8/2019 Rapid RIA Development

    46/54

    T4Template-based text generation framework

  • 8/8/2019 Rapid RIA Development

    47/54

    T4RIATemplate for WCF RIA Services

  • 8/8/2019 Rapid RIA Development

    48/54

    T4RIAGenerating services, metadata and localization

  • 8/8/2019 Rapid RIA Development

    49/54

  • 8/8/2019 Rapid RIA Development

    50/54

    Summary> Web & desktop applications alternative

    > Three layered service architecture

    > Model-View-ViewModel

    > Rapid development

  • 8/8/2019 Rapid RIA Development

    51/54

    RIA DevelopmentEasy on .NET platform and fast with T4RIA

  • 8/8/2019 Rapid RIA Development

    52/54

    Questions

  • 8/8/2019 Rapid RIA Development

    53/54

    Real-life application

    Card management system developed as RIA

  • 8/8/2019 Rapid RIA Development

    54/54

    Statistics> 3.5 developers, 3 months

    > 130k SLOC (47k generated)> 110+ tables, 4M+ entries

    > 50+ form screens

    > 30+ users