Rapid RIA Development Using .NET Technologies

54
Výstavní 230/24, 149 00 Praha 4, [email protected], www.baud.cz R APID RIA D EVELOPMENT U SING .NET T ECHNOLOGIES Augustin Šulc Petr Hošek

description

With the latest generation of .NET technologies such as Silverlight 4 and WCF RIA Service, the development of RIA applications is easier than ever. This practically focused presentation aims to show, how to use these tools and other .NET technologies to develop high quality RIA applications. Moreover, we will also show, how to effectively use automatic code generating using Text Template Transformation Toolkit (T4) to extremelly reduce the time needed for their development.

Transcript of Rapid RIA Development Using .NET Technologies

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