Smart Business Web Clients mit Silverlight 4 & WCF RIA Services Markus Unterauer Software Architect...

Post on 05-Apr-2015

108 views 0 download

Transcript of Smart Business Web Clients mit Silverlight 4 & WCF RIA Services Markus Unterauer Software Architect...

Smart Business Web Clientsmit Silverlight 4 & WCF RIA Services

Markus UnterauerSoftware ArchitectCubido Business Solutionshttp://www.cubido.at/

Max KnorTechnical Evangelist

Microsoft Österreichhttp://www.knor.net/blog/

Quellcode der Demoapplikation aufhttp://bigdays10.codeplex.com/

Demoszenario „Helfen-helfen“• Hilfsorganisationen (Organisation) können Hilfseinsätze

posten (Demand)

• Bei jeden Einsatz fallen unterschiedliche Tätigkeiten an (DemandDetails)

• Benutzer (UserDetail) können sich für Tätigkeiten bei Einsätzen registrieren (Mission)

• Für erfolgreiche Einsätze gibt es Punkte (BonusAccount), die dann gegen kleine Geschenke eingetauscht werden können (BonusItem)

Helfen-helfen - Architektur

Backend Client(Silverlight 4 / RIA)

Web Frontend(ASP.NET / AJAX / MVC)

Anwendungs-Server

Web Server

(Web) Service

HTTP/HTML

TDS

D A LB LU I

Helfen-helfen – Teil des Datenmodells

Silverlight vs. ASP.NET vs. WPFfür Business Apps

• Effizientes Arbeiten mit Daten im Mittelpunkt• Einfaches Deployment und Update auf mehreren

Plattformen

Anwender & IT fordern

• Schnelle Reaktion des UI (Datenprüfung, Daten-Lookup, …)• Näher an Excel (z.B. Editieren direkt im DataGrid)• Mächtige Controls (DropTarget, Webcam, RichTextBox, …)• Auto-Update, Out-Of-Browser Modus

Silverlight 4 bietet

Ziele von WCF RIA Services

• Arbeiten mit asynchronen Webservices ist mühsam und unintuitiv

• Vor allem für datenzentrierte Applikationen

Einfachere Entwicklung von Rich-Internet-Apps

• Fertige Module für Datenzugriff, Validierung, Sicherheit, …

ASP.NET Produktivität für Silverlight RIA-Clients

Agenda• Zielsetzung

• Architektur der WCF RIA Services

• Erste Schritte mit WCF RIA Services

• Business Application Beispiel– Einfache Listendarstellung– Blättern, Sortieren, Filtern– Formularansicht– Speichern & Validierung– Contextmenü, Clipboard, DropTarget

ApplicationBrowser Rich Internet Application

DB

Service

Other Applications

Client und Server – Eine Einheit?!• Client als Erweiterung des Servers• Applikation als Gesamtheit aus Client + Server

Data Access Layer

AppLogic

Services

HTMLPresentati

onLogic

Network

Windows Communication Foundation

Programming Model

Service Model

Data Contract

Channel Model

RIAServices

Core Services

Service Contract Service Behavior

WorkflowServices

Formats(Atom, JSON, XML,…)

Transports(HTTP, TCP,…)

Protocols(SOAP, HTTP, OData,…)

Web Http Services

DataServices

demo

Erste Schritte mit WCF RIA Services

Client Projekt

Applikationsarchitektur

Server Projekt

DomainService

Data Acces

s Layer (DAL)

Entities

Applikation

ViewsDomainContex

t

EntitiesBuild,

reflect & code-gen

demo

WCF RIA Services, DataGrid, Visual Studio Data Sources

Einfache Listendarstellung

Einfache Listendarstellung

• „Data Sources“ – Fenster– Drag & Drop für gebundene Listen

• Domain Data Source– Kapselt Servicemethoden & Entitäten

• DataGrid

Zusammenfassung

demo

DataGrid, DataPager

Blättern, Sortieren, Filtern

Blättern, Sortieren, Filtern

• Busy Indicator– System.Windows.Controls.Toolkit.dll– IsBusy gebunden auf DomainDataSource.DomainContext.IsLoading

• Data Pager– System.Windows.Controls.Toolkit.dll– Rückgabe muss sortiert sein! (OrderBy(..) am Server)– „Echtes“ Paging --> in der Datenbank, nicht In-Memory

• Filterung– FilterDescriptors Collection der DomainDataSource

Zusammenfassung

demo

Formularansicht

Formularansicht

• DataGrid Template Column– Button für Navigation zur Detailseite

• Silverlight Seitennavigation– Alles hinter „#“: Lokal für Silverlight– NavigationService.Navigate( "http://...#/

DetailsView?ID=1234")– NavigationContext.QueryString

• „Data Sources“ Fenster auch für Formulare

Zusammenfassung

demo

Speichern und Validierung

Speichern und Validierung

• DomainDataSource– Lokales Changetracking– SubmitChanges()

• Validierung– DataAnnotation Attribute in

domainservice.metadata.cs– Client & Server Validierung (gemeinsamer Code)– Required, ReadOnly, StringLength,

RegularExpression, …

Zusammenfassung

demo

Drag&Drop, COM Interop,Contextmenü, Clipboard

Contextmenü, Clipboard, DropTarget

• Contextmenü– MouseRightButtonDown Event: e.Handled = true– MouseRightButtonUp Event– Contextmenü muss selbst umgesetzt werden

• Clipboard– SetText(…), GetText(…)– Erster Aufruf: Freigabedialog für Benutzer

– DropTarget (für FileInfo[])– UIElement.AllowDrop = true– DragEnter, DragOver, Drop Events

Zusammenfassung

Ziel erreicht?

Viele UI-Controls für effiziente Business-Apps

Einfachere Entwicklung: Client und Server als Einheit

ASP.NET Produktivität für Silverlight RIA-Clients

Fragen?

www.cubido.at

www.codefest.at

Die nächsten Vorträge

Track 1: Security war gestern, Protection ist heute!

Track 2: A Lap around SharePoint 2010

Track 3: Visual Studio 2010 Ultimate & Team Foundation Server – Teil 1

Track 4: CSS Layouts und ASP.NET 4

Track 5: Alles auf einen Blick: die integrierte ERP- und BI-Lösung auf Knopfdruck