SlideShare una empresa de Scribd logo
1 de 16
Building Business Centric Applications with Silverlight 3 and .NET RIA Services  Brad Abrams Product Unit manager Microsoft http://blogs.msdn.com/brada Twitter: @brada
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
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
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
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
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
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
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
Extra: ViewModel
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
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
Hello WorldFrom code-behind to ViewModel demo
Interaction Logic in Code-behind View XAML Data Model Code-Behind Event Handlers
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
question & answer
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.

Más contenido relacionado

La actualidad más candente

"Developing with the New User Interface Features in Microsoft SharePoint Serv...
"Developing with the New User Interface Features in Microsoft SharePoint Serv..."Developing with the New User Interface Features in Microsoft SharePoint Serv...
"Developing with the New User Interface Features in Microsoft SharePoint Serv...Tihomir Ignatov
 
Presentazione Sharepoint 2010
Presentazione Sharepoint 2010Presentazione Sharepoint 2010
Presentazione Sharepoint 2010Decatec
 
Spring tutorials
Spring tutorialsSpring tutorials
Spring tutorialsTIB Academy
 
Power apps portal out for public review
Power apps portal  out for public reviewPower apps portal  out for public review
Power apps portal out for public reviewConcetto Labs
 
Actively looking for an opportunity to work as a challenging Dot Net Developer
Actively looking for an opportunity to work as a challenging Dot Net DeveloperActively looking for an opportunity to work as a challenging Dot Net Developer
Actively looking for an opportunity to work as a challenging Dot Net DeveloperKarthik Reddy
 
Venkatarao_2+Years_Experiance_JAVA2
Venkatarao_2+Years_Experiance_JAVA2Venkatarao_2+Years_Experiance_JAVA2
Venkatarao_2+Years_Experiance_JAVA2pediredla venkatarao
 
4 - Silverlight y SharePoint, por Rodrigo Diaz y Mauricio Angulo
4 - Silverlight y SharePoint, por Rodrigo Diaz y Mauricio Angulo4 - Silverlight y SharePoint, por Rodrigo Diaz y Mauricio Angulo
4 - Silverlight y SharePoint, por Rodrigo Diaz y Mauricio AnguloLuis Du Solier
 
Power apps portals are now generally available
Power apps portals are now generally availablePower apps portals are now generally available
Power apps portals are now generally availableConcetto Labs
 
Ukfs Snr Dev Arch Forum Pres2 St
Ukfs Snr Dev Arch Forum Pres2 StUkfs Snr Dev Arch Forum Pres2 St
Ukfs Snr Dev Arch Forum Pres2 StAllyWick
 
Website Architecture
Website ArchitectureWebsite Architecture
Website ArchitectureMegha yadav
 
Pughazhenthi_MCA_Experience a Year in Web technologies
Pughazhenthi_MCA_Experience a Year in Web technologiesPughazhenthi_MCA_Experience a Year in Web technologies
Pughazhenthi_MCA_Experience a Year in Web technologiesPughazhenthi P
 
Front end development company
Front end development companyFront end development company
Front end development companyBrillInfosystem
 
Ukfs Snr Dev Arch Forum Pres1 Jb
Ukfs Snr Dev Arch Forum Pres1 JbUkfs Snr Dev Arch Forum Pres1 Jb
Ukfs Snr Dev Arch Forum Pres1 JbAllyWick
 

La actualidad más candente (20)

Siva_DotNet
Siva_DotNetSiva_DotNet
Siva_DotNet
 
"Developing with the New User Interface Features in Microsoft SharePoint Serv...
"Developing with the New User Interface Features in Microsoft SharePoint Serv..."Developing with the New User Interface Features in Microsoft SharePoint Serv...
"Developing with the New User Interface Features in Microsoft SharePoint Serv...
 
Sai 2years Resume
Sai 2years ResumeSai 2years Resume
Sai 2years Resume
 
Presentazione Sharepoint 2010
Presentazione Sharepoint 2010Presentazione Sharepoint 2010
Presentazione Sharepoint 2010
 
Access & SharePoint
Access & SharePointAccess & SharePoint
Access & SharePoint
 
Code vauch
Code vauchCode vauch
Code vauch
 
Spring tutorials
Spring tutorialsSpring tutorials
Spring tutorials
 
Power apps portal out for public review
Power apps portal  out for public reviewPower apps portal  out for public review
Power apps portal out for public review
 
Angular vs React : A Detailed Comparision
Angular vs React : A Detailed ComparisionAngular vs React : A Detailed Comparision
Angular vs React : A Detailed Comparision
 
MVC Web Application
MVC Web Application MVC Web Application
MVC Web Application
 
Actively looking for an opportunity to work as a challenging Dot Net Developer
Actively looking for an opportunity to work as a challenging Dot Net DeveloperActively looking for an opportunity to work as a challenging Dot Net Developer
Actively looking for an opportunity to work as a challenging Dot Net Developer
 
Venkatarao_2+Years_Experiance_JAVA2
Venkatarao_2+Years_Experiance_JAVA2Venkatarao_2+Years_Experiance_JAVA2
Venkatarao_2+Years_Experiance_JAVA2
 
Project portfolio
Project portfolioProject portfolio
Project portfolio
 
4 - Silverlight y SharePoint, por Rodrigo Diaz y Mauricio Angulo
4 - Silverlight y SharePoint, por Rodrigo Diaz y Mauricio Angulo4 - Silverlight y SharePoint, por Rodrigo Diaz y Mauricio Angulo
4 - Silverlight y SharePoint, por Rodrigo Diaz y Mauricio Angulo
 
Power apps portals are now generally available
Power apps portals are now generally availablePower apps portals are now generally available
Power apps portals are now generally available
 
Ukfs Snr Dev Arch Forum Pres2 St
Ukfs Snr Dev Arch Forum Pres2 StUkfs Snr Dev Arch Forum Pres2 St
Ukfs Snr Dev Arch Forum Pres2 St
 
Website Architecture
Website ArchitectureWebsite Architecture
Website Architecture
 
Pughazhenthi_MCA_Experience a Year in Web technologies
Pughazhenthi_MCA_Experience a Year in Web technologiesPughazhenthi_MCA_Experience a Year in Web technologies
Pughazhenthi_MCA_Experience a Year in Web technologies
 
Front end development company
Front end development companyFront end development company
Front end development company
 
Ukfs Snr Dev Arch Forum Pres1 Jb
Ukfs Snr Dev Arch Forum Pres1 JbUkfs Snr Dev Arch Forum Pres1 Jb
Ukfs Snr Dev Arch Forum Pres1 Jb
 

Destacado

Words That Sell Paicr9.08
Words That Sell Paicr9.08Words That Sell Paicr9.08
Words That Sell Paicr9.08damackey
 
Deloqueescapaznuestrocerebro
DeloqueescapaznuestrocerebroDeloqueescapaznuestrocerebro
DeloqueescapaznuestrocerebroMiguel Angel
 
Ultra Score Presentation
Ultra Score PresentationUltra Score Presentation
Ultra Score PresentationMark Bustamonte
 
Krokuskriebels Terugkomdag | KMSKB
Krokuskriebels Terugkomdag | KMSKBKrokuskriebels Terugkomdag | KMSKB
Krokuskriebels Terugkomdag | KMSKBFARO
 
Farm Business Planning Workshop: Dr. Ozair Chaudhry
Farm Business Planning Workshop:  Dr. Ozair ChaudhryFarm Business Planning Workshop:  Dr. Ozair Chaudhry
Farm Business Planning Workshop: Dr. Ozair ChaudhryDr. Ozair Chaudhry
 
Zuiddag bij FARO
Zuiddag bij FAROZuiddag bij FARO
Zuiddag bij FAROFARO
 
20081126 Hands On Presentatie Bram
20081126 Hands On Presentatie Bram20081126 Hands On Presentatie Bram
20081126 Hands On Presentatie BramFARO
 

Destacado (8)

Words That Sell Paicr9.08
Words That Sell Paicr9.08Words That Sell Paicr9.08
Words That Sell Paicr9.08
 
Deloqueescapaznuestrocerebro
DeloqueescapaznuestrocerebroDeloqueescapaznuestrocerebro
Deloqueescapaznuestrocerebro
 
Ultra Score Presentation
Ultra Score PresentationUltra Score Presentation
Ultra Score Presentation
 
Misterio en el Hospital
Misterio en el HospitalMisterio en el Hospital
Misterio en el Hospital
 
Krokuskriebels Terugkomdag | KMSKB
Krokuskriebels Terugkomdag | KMSKBKrokuskriebels Terugkomdag | KMSKB
Krokuskriebels Terugkomdag | KMSKB
 
Farm Business Planning Workshop: Dr. Ozair Chaudhry
Farm Business Planning Workshop:  Dr. Ozair ChaudhryFarm Business Planning Workshop:  Dr. Ozair Chaudhry
Farm Business Planning Workshop: Dr. Ozair Chaudhry
 
Zuiddag bij FARO
Zuiddag bij FAROZuiddag bij FARO
Zuiddag bij FARO
 
20081126 Hands On Presentatie Bram
20081126 Hands On Presentatie Bram20081126 Hands On Presentatie Bram
20081126 Hands On Presentatie Bram
 

Similar a .NET RIA Services Architecture Overview

Mdd Lcds
Mdd LcdsMdd Lcds
Mdd Lcdsravinxg
 
MAX 2008: Build collaborative applications with Flex LCDS and Cairngorm
MAX 2008: Build collaborative applications with Flex LCDS and CairngormMAX 2008: Build collaborative applications with Flex LCDS and Cairngorm
MAX 2008: Build collaborative applications with Flex LCDS and CairngormXavier Agnetti
 
dotnet development company
dotnet development companydotnet development company
dotnet development companyVelmurugan J
 
dotnet training center near vadapalani
dotnet training center near vadapalanidotnet training center near vadapalani
dotnet training center near vadapalaniVelmurugan J
 
DOTNET TRAINING CENTER IN CHENNAI
DOTNET TRAINING CENTER IN CHENNAI DOTNET TRAINING CENTER IN CHENNAI
DOTNET TRAINING CENTER IN CHENNAI Velmurugan J
 
dotnet training center in chennai
dotnet training center in chennai dotnet training center in chennai
dotnet training center in chennai Velmurugan J
 
dotnet training center in vadapalani
dotnet  training center in vadapalanidotnet  training center in vadapalani
dotnet training center in vadapalaniVelmurugan J
 
dotnet development
dotnet developmentdotnet development
dotnet developmentVelmurugan J
 
dotnet development company in chennai
dotnet development company in chennai dotnet development company in chennai
dotnet development company in chennai Velmurugan J
 
dotnet training center and development
dotnet training center and development dotnet training center and development
dotnet training center and development Velmurugan J
 
Dotnet training syallbus
Dotnet  training syallbusDotnet  training syallbus
Dotnet training syallbusVelmurugan J
 
dotnet courses in chennai
dotnet courses in chennai dotnet courses in chennai
dotnet courses in chennai Velmurugan J
 
Programming is Fun with ASP.NET MVC
Programming is Fun with ASP.NET MVCProgramming is Fun with ASP.NET MVC
Programming is Fun with ASP.NET MVCIan Carnaghan
 
MVC Pattern. Flex implementation of MVC
MVC Pattern. Flex implementation of MVCMVC Pattern. Flex implementation of MVC
MVC Pattern. Flex implementation of MVCAnton Krasnoshchok
 
IRJET- Lightweight MVC Framework in PHP
IRJET- Lightweight MVC Framework in PHPIRJET- Lightweight MVC Framework in PHP
IRJET- Lightweight MVC Framework in PHPIRJET Journal
 
MVC(Model View Controller),Web,Enterprise,Mobile
MVC(Model View Controller),Web,Enterprise,MobileMVC(Model View Controller),Web,Enterprise,Mobile
MVC(Model View Controller),Web,Enterprise,Mobilenaral
 
Actively looking for an opportunity to work as a challenging Dot Net Developer
Actively looking for an opportunity to work as a challenging Dot Net DeveloperActively looking for an opportunity to work as a challenging Dot Net Developer
Actively looking for an opportunity to work as a challenging Dot Net DeveloperKarthik Reddy
 
Dev show september 8th 2020 power platform - not just a simple toy
Dev show september 8th 2020   power platform - not just a simple toyDev show september 8th 2020   power platform - not just a simple toy
Dev show september 8th 2020 power platform - not just a simple toyJens Schrøder
 

Similar a .NET RIA Services Architecture Overview (20)

Mdd Lcds
Mdd LcdsMdd Lcds
Mdd Lcds
 
MAX 2008: Build collaborative applications with Flex LCDS and Cairngorm
MAX 2008: Build collaborative applications with Flex LCDS and CairngormMAX 2008: Build collaborative applications with Flex LCDS and Cairngorm
MAX 2008: Build collaborative applications with Flex LCDS and Cairngorm
 
dotnet development company
dotnet development companydotnet development company
dotnet development company
 
dotnet training center near vadapalani
dotnet training center near vadapalanidotnet training center near vadapalani
dotnet training center near vadapalani
 
DOTNET TRAINING CENTER IN CHENNAI
DOTNET TRAINING CENTER IN CHENNAI DOTNET TRAINING CENTER IN CHENNAI
DOTNET TRAINING CENTER IN CHENNAI
 
dotnet training center in chennai
dotnet training center in chennai dotnet training center in chennai
dotnet training center in chennai
 
dotnet training center in vadapalani
dotnet  training center in vadapalanidotnet  training center in vadapalani
dotnet training center in vadapalani
 
dotnet development
dotnet developmentdotnet development
dotnet development
 
dotnet development company in chennai
dotnet development company in chennai dotnet development company in chennai
dotnet development company in chennai
 
dotnet syallbus
dotnet syallbus dotnet syallbus
dotnet syallbus
 
Dotnet courses
Dotnet  coursesDotnet  courses
Dotnet courses
 
dotnet training center and development
dotnet training center and development dotnet training center and development
dotnet training center and development
 
Dotnet training syallbus
Dotnet  training syallbusDotnet  training syallbus
Dotnet training syallbus
 
dotnet courses in chennai
dotnet courses in chennai dotnet courses in chennai
dotnet courses in chennai
 
Programming is Fun with ASP.NET MVC
Programming is Fun with ASP.NET MVCProgramming is Fun with ASP.NET MVC
Programming is Fun with ASP.NET MVC
 
MVC Pattern. Flex implementation of MVC
MVC Pattern. Flex implementation of MVCMVC Pattern. Flex implementation of MVC
MVC Pattern. Flex implementation of MVC
 
IRJET- Lightweight MVC Framework in PHP
IRJET- Lightweight MVC Framework in PHPIRJET- Lightweight MVC Framework in PHP
IRJET- Lightweight MVC Framework in PHP
 
MVC(Model View Controller),Web,Enterprise,Mobile
MVC(Model View Controller),Web,Enterprise,MobileMVC(Model View Controller),Web,Enterprise,Mobile
MVC(Model View Controller),Web,Enterprise,Mobile
 
Actively looking for an opportunity to work as a challenging Dot Net Developer
Actively looking for an opportunity to work as a challenging Dot Net DeveloperActively looking for an opportunity to work as a challenging Dot Net Developer
Actively looking for an opportunity to work as a challenging Dot Net Developer
 
Dev show september 8th 2020 power platform - not just a simple toy
Dev show september 8th 2020   power platform - not just a simple toyDev show september 8th 2020   power platform - not just a simple toy
Dev show september 8th 2020 power platform - not just a simple toy
 

Último

TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 

Último (20)

TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 

.NET RIA Services Architecture Overview

  • 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
  • 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
  • 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.