RAPID RIA
DEVELOPMENT
USING .NET
TECHNOLOGIES
Augustin Šulc
Petr Hošek
Výstavní 230/24, 149 00 Praha 4, [email protected], www.baud.cz
GOA
LS
Outline
> Preliminary
> Architecture
> Data Source
> Web Server
> Client
> Rapid Development
Demo Application
Project-management tool
PRELIMIN
ARY
Rich Internet Application
Desktop-like web application
Compared to Web Applications
> Richer user interface
> Reduced communication
> Better development support
> Need for browser plugin
Compared to Desktop Applications
> Easier deployment
> No need for installation
> Worse system integration
> No direct communication
Available RIA Platforms
> Adobe Flash, Flex and AIR
> Microsoft Silverlight
> Oracle Java Applets/JavaFX
> HTML(5) + JavaScript
Microsoft Silverlight
.NET Framework & WPF subset
Microsoft Silverlight
Interactive UX
TURE
Common Architecture
Three-Layered Services Architecture
Application Layers
Separation of concerns, high cohesion & loose coupling
DATA
SOURCE
Data Store
Conventional relational database
WEB
SERVER
Domain Model
Abstracting relational schema
Domain Model
> ADO.NET Entity Framework
> LINQ to SQL
> NHibernate
Application Service Layer
Exposing domain functionality
Application Service Layer
> WCF web services
> WCF Data Services
> WCF RIA Services
WCF Web Services
Exposes functionality via operations
WCF Data Services
Exposes data via context
Data Services over Web Services
> Batching and transactions
> Automatic change tracking
> Limited client LINQ
WCF RIA Services
Exposes domain via context
RIA Services over Data Services
> Localization and validation
> Metadata propagation
> Full client LINQ
CLIE
NT
Model and Resources
Delivered via service contract
Presentation Layer
Separation of UX from business logic
Model-View-ViewModel pattern
ViewModel as mediator for View and Model
MVVM Implementations
> Prism 4
> Caliburn
> MVVM Light Toolkit, etc.
Prism 4
Guidance for Silverlight applications
Caliburn
Powerfull client framework for Silverlight
Caliburn over Prism 4
> Convention over configuration
> Focus on real cases
> Out-of-the-box functionality
Caliburn.Micro
90% of Caliburn in 10% of code
RAPID
DEVELOPMENT
Development Tools
.NET Framework, Visual Studio, Expression Blend, etc.
Frameworks & Libraries
WCF RIA Services, Caliburn, MEF, etc.
Even More Rapid!
Model-driven code generation
T4
Template-based text generation framework
T4RIA
Template for WCF RIA Services
T4RIA
Generating services, metadata and localization
Summary
> Web & desktop applications alternative
> Three layered service architecture
> Model-View-ViewModel
> Rapid development
RIA Development
Easy on .NET platform and fast with T4RIA
Questions
“Real-life application“
Card management system developed as RIA
Statistics
> 3.5 developers, 3 months
> 130k SLOC (47k generated)
> 110+ tables, 4M+ entries
> 50+ form screens
> 30+ users