Smart Business Web Clients mit Silverlight 4 & WCF RIA Services Markus Unterauer Software Architect...
-
Upload
melusina-zeiset -
Category
Documents
-
view
108 -
download
0
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
Links zu Silverlight 4 und RIA
• Silverlight– SL Home: http://www.microsoft.com/silverlight/– SL 4 beta: http://www.silverlight.net/getstarted/silverlight-4-beta/– Toolkit: http://silverlight.codeplex.com/
• WCF RIA Services– http://silverlight.net/getstarted/riaservices/
• Silverlight Control Libraries– http://www.telerik.com/products/silverlight.aspx– http://www.devexpress.com/Products/NET/Controls/Silverlight/
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