Your SlideShare is downloading. ×
.NET RIA Services Architecture Overview
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

.NET RIA Services Architecture Overview

3,578
views

Published on


Mostly taken from Nikhil Kothari’s excellent presentations…

Published in: Technology, Business

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
3,578
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
96
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Building Business Centric Applications with Silverlight 3 and .NET RIA Services
    Brad Abrams
    Product Unit manager
    Microsoft
    http://blogs.msdn.com/brada
    Twitter: @brada
  • 2. Vision and Goals
    Simplify RIA-style application development
    n-tier is hard, and un-natural
    Focus on data-driven apps
    Bring ASP.NET-style productivity to RIA development
    Building blocks for data, security, etc.
    Focus on scenarios
  • 3. Value Propositions
    Focus on data in an end-to-end manner
    A unified story for client and server development
    A prescriptive framework that targets key scenarios, and leads the common developer to a pit of success
  • 4. Service
    Rich Internet Application
    Browser
    Application
    DB
    Other Applications
    A Unified Story for Client and Server
    Client is an extension of the server
    A single logical application
    Presentation
    Logic
    Data Access Layer
    App
    Logic
    HTML
    Network
    Services
  • 5. A Prescriptive Pattern
    DomainService
    Stateless CRUD + App Logic
    class LibraryService
    IQueryable<Books> GetBooks()
    IQueryable<Book> SearchBooks(string)
    void AddBook(Book)
    void RequestBook(Book)
    Validation and authorization rules,
    Application workflows, …
    Data Model
    class Book
    DomainContext
    Stateful view + Bindable Data
    class LibraryContext
    EntityList<Book> Books { get }
    EntityQuery<Book> GetBooksQuery()
    EntityQuery<Book> SearchBooksQuery(string)
    void RequestBook(Book)
    class Book
    Data members + Validation
    void RequestBook()
    Data Model +
    Metadata +
    Shared Code
    Services
    Rich Internet Application
    Presentation
    Logic
    Data Access Layer
    App
    Logic
    Network
    DomainContext
    Data
    Service
    DB
    Under the covers infrastructure
  • 6. A Single Pattern that Scales and Grows
    Support for multiple presentation tiers and data access technologies
    Databases
    ADO.NET,
    ORMs (LTS, EF, …)
    .NET Clients
    Silverlight, WPF
    Standards Clients
    JavaScript
    App
    Logic
    CLR Lists/Objects
    Repository
    (nHibernate, …)
    Server Rendering
    HTML, SEO,
    Printing, …
    SOAP, XML, JSON,
    Binary
    Services
    REST/SOAP
    (Azure, …)
    Services
    WCF
    Unit Test Code
  • 7. Summary
    RIA Services focuses on writing n-tier apps by treating them as one logical application
    Still get n-tier goodness from the architecture/pattern without the plumbing getting in your way
    RIA Services provides a pattern for encapsulating application logic on the middle tier that can be useful in a variety of scenarios
    DAL-agnostic
    Multiple presentation layers
  • 8. Roadmap and Resources
    First public preview at MIX ’09
    http://code.msdn.microsoft/riaservices
    Links to bits, docs, samples, forums
    Next big release is at PDC ‘09
    Slides + sample code
    http://www.nikhilk.net
    Other blogs
    http://blogs.msdn.com/brada
  • 9. Extra: ViewModel
  • 10. Patterns for Separating UI and Logic
    MVC, MVP, ViewModel, …
    General approach
    Separate interaction logic from view
    Decouple components of app
    Motivations
    Loosely coupled building blocks
    Designer-developer workflow
    Greater degree of testability
    User Interface
    Interaction Logic
    Data Model
  • 11. ViewModel Pattern
    MVVM (Model – View – ViewModel), Presentation Model
    Basic idea
    View model encapsulates application behavior independent of view
    View is responsible for rendering and user input
    Leverage data-binding and commanding to hook up view to its view model
  • 12. Hello WorldFrom code-behind to ViewModel
    demo
  • 13. Interaction Logic in Code-behind
    View
    XAML
    Data Model
    Code-Behind
    Event Handlers
  • 14. Interaction Logic in View Model
    View
    XAML
    Code-Behind
    Property change and other event notifications
    Data-binding and commands
    View Model
    Data Model
    State + Operations + Notifications
  • 15. question & answer
  • 16. Required Slide
    © 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.
    The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.