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