Download - Rapid RIA Development Using .NET Technologies

Transcript
Page 1: Rapid RIA Development Using .NET Technologies

Výstavní 230/24, 149 00 Praha 4, [email protected], www.baud.cz

RAPID RIA DEVELOPMENT

USING .NET TECHNOLOGIES

Augustin Šulc

Petr Hošek

Page 2: Rapid RIA Development Using .NET Technologies

GOALS

Page 3: Rapid RIA Development Using .NET Technologies

Outline> Preliminary

> Architecture

> Data Source

> Web Server

> Client

> Rapid Development

Page 4: Rapid RIA Development Using .NET Technologies

Demo ApplicationProject-management tool

Page 5: Rapid RIA Development Using .NET Technologies
Page 6: Rapid RIA Development Using .NET Technologies

PRELIMINARY

Page 7: Rapid RIA Development Using .NET Technologies

Rich Internet ApplicationDesktop-like web application

Page 8: Rapid RIA Development Using .NET Technologies

Compared to Web Applications> Richer user interface

> Reduced communication

> Better development support

> Need for browser plugin

Page 9: Rapid RIA Development Using .NET Technologies

Compared to Desktop Applications> Easier deployment

> No need for installation

> Worse system integration

> No direct communication

Page 10: Rapid RIA Development Using .NET Technologies

Available RIA Platforms> Adobe Flash, Flex and AIR

> Microsoft Silverlight

> Oracle Java Applets/JavaFX

> HTML(5) + JavaScript

Page 11: Rapid RIA Development Using .NET Technologies

Microsoft Silverlight.NET Framework & WPF subset

Page 12: Rapid RIA Development Using .NET Technologies

Microsoft SilverlightInteractive UX

Page 13: Rapid RIA Development Using .NET Technologies

ARCHITECTURE

Page 14: Rapid RIA Development Using .NET Technologies

Common ArchitectureThree-Layered Services Architecture

Page 15: Rapid RIA Development Using .NET Technologies
Page 16: Rapid RIA Development Using .NET Technologies

Application LayersSeparation of concerns, high cohesion & loose coupling

Page 17: Rapid RIA Development Using .NET Technologies

DATA SOURCE

Page 18: Rapid RIA Development Using .NET Technologies

Data StoreConventional relational database

Page 19: Rapid RIA Development Using .NET Technologies
Page 20: Rapid RIA Development Using .NET Technologies

WEB SERVER

Page 21: Rapid RIA Development Using .NET Technologies

Domain ModelAbstracting relational schema

Page 22: Rapid RIA Development Using .NET Technologies

Domain Model> ADO.NET Entity Framework

> LINQ to SQL

> Nhibernate, etc.

Page 23: Rapid RIA Development Using .NET Technologies

Application Service LayerExposing domain functionality

Page 24: Rapid RIA Development Using .NET Technologies

Application Service Layer> WCF web services

> WCF Data Services

> WCF RIA Services

Page 25: Rapid RIA Development Using .NET Technologies

WCF Web ServicesExposes functionality via operations

Page 26: Rapid RIA Development Using .NET Technologies

WCF Data ServicesExposes data via context

Page 27: Rapid RIA Development Using .NET Technologies

Data Services over Web Services> Batching and transactions

> Automatic change tracking

> Limited client LINQ

Page 28: Rapid RIA Development Using .NET Technologies

WCF RIA ServicesExposes domain via context

Page 29: Rapid RIA Development Using .NET Technologies

RIA Services over Data Services> Metadata propagation

> Localization and validation

> Full client LINQ

Page 30: Rapid RIA Development Using .NET Technologies
Page 31: Rapid RIA Development Using .NET Technologies

CLIENT

Page 32: Rapid RIA Development Using .NET Technologies

Model and ResourcesDelivered via service contract

Page 33: Rapid RIA Development Using .NET Technologies

Presentation LayerSeparation of UX from business logic

Page 34: Rapid RIA Development Using .NET Technologies

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

Page 35: Rapid RIA Development Using .NET Technologies
Page 36: Rapid RIA Development Using .NET Technologies

MVVM Implementations> Prism 4

> Caliburn

> MVVM Light Toolkit, etc.

Page 37: Rapid RIA Development Using .NET Technologies

Prism 4Guidance for Silverlight applications

Page 38: Rapid RIA Development Using .NET Technologies

CaliburnPowerfull client framework for Silverlight

Page 39: Rapid RIA Development Using .NET Technologies

Caliburn over Prism 4> Convention over configuration

> Focus on real cases

> Out-of-the-box functionality

Page 40: Rapid RIA Development Using .NET Technologies

Caliburn.Micro90%of Caliburn in 10% of code

Page 41: Rapid RIA Development Using .NET Technologies
Page 42: Rapid RIA Development Using .NET Technologies

RAPID DEVELOPMENT

Page 43: Rapid RIA Development Using .NET Technologies

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

Page 44: Rapid RIA Development Using .NET Technologies

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

Page 45: Rapid RIA Development Using .NET Technologies

Even More Rapid!Model-driven code generation

Page 46: Rapid RIA Development Using .NET Technologies

T4Template-based text generation framework

Page 47: Rapid RIA Development Using .NET Technologies

T4RIATemplate for WCF RIA Services

Page 48: Rapid RIA Development Using .NET Technologies

T4RIAGenerating services, metadata and localization

Page 49: Rapid RIA Development Using .NET Technologies
Page 50: Rapid RIA Development Using .NET Technologies

Summary> Web & desktop applications alternative

> Three layered service architecture

> Model-View-ViewModel

> Rapid development

Page 51: Rapid RIA Development Using .NET Technologies

RIA DevelopmentEasy on .NET platform and fast with T4RIA

Page 52: Rapid RIA Development Using .NET Technologies

Questions

Page 53: Rapid RIA Development Using .NET Technologies

“Real-life application“Card management system developed as RIA

Page 54: Rapid RIA Development Using .NET Technologies

Statistics> 3.5 developers, 3 months

> 130k SLOC (47k generated)

> 110+ tables, 4M+ entries

> 50+ form screens

> 30+ users