RIA Services Master Class
Presenter: Kevin Grossnicklaus November 30th, 2010
Agenda • • • • • • • •
Introductions Overview of RIA Services Setting up a new RIA Services Solution Common RIA Services Tasks Break Advanced Topics Additional Resources Conclusion
Introductions • Kevin Grossnicklaus – ArchitectNow- www.architectnow.net (2009-Present) • President
– Washington University - CAIT Program (2003-Present) • Instructor
– SSE - www.SSEinc.com (1999-2009) • Chief Architect • Software Development Practice Leader
• Email:
[email protected] • Twitter: @kvgros • Blog: blog.architectnow.net
ArchitectNow • • • • • • •
Training Mentoring Framework Design and Implementation Code Reviews Project Development Short Term and Long Term Engagements As Needed Support
EXPECTATIONS
Assumed Knowledge • Basic Knowledge – C# – Silverlight/XAML – VS.NET 2010
• Optional (but useful): – XAML – Data Binding – MVVM – Entity Framework
What is RIA Services? Silverlight
Caching
Entity Framework
WCF
Security
Asynchronous Concurrency
Data Validation
LINQ
What is RIA Services? Silverlight
Entity Framework
WCF Caching Security
LINQ Concurrency
Asynchronous Data Validation
Data Access RIA Services is Data Layer Agnostic
• Entity Framework • LINQ to SQL • POCO Objects – Custom data access
Getting Started • Technologies – Visual Studio.NET 2010 – C# – Silverlight 4.0 – Entity Framework 4.0 – WCF RIA Services 4.0
• Initial Resources – www.Silverlight.net – Web Platform Installer
Data Access RIA Services is Data Layer Agnostic
• Entity Framework • LINQ to SQL • POCO Objects – Custom data access
Alternatives • Manual WCF • Services – SOAP – JSON – Other
Demo
SETTING UP A NEW RIA SOLUTION
USING RIA SERVICES
Common Scenarios • Querying Data – LoadOperation
• Adding Service Methods • Updating Data – Changesets – SubmitOperation
• Error Handling • Data Validation – Data Annotations – HasValidationErrors
• Sharing Code • Lazy Loading
RIA Entities • Tracked By Context • Notable Attributes: – INotifyPropertyChanged – EntityState – GetOriginal() – HasValidationErrors – RejectChanges – GetConflict – ValidationErrors
Troubleshooting • • • • •
Accessing Services via URL Regenerating DomainContext Verifying entities are included in service API “Not Found” Exceptions Server Side Error Tracking (OnError)
BREAK
ADVANCED TOPICS
UI Considerations • • • • •
MVVM Data Binding Self Tracking Entities Context Sharing Asynchronous Loading
Advanced Topics • • • • • • •
Dynamic Queries Rejecting Local Changes Unit Testing Transaction Support Concurrency Caching Transactions
Data Access Patterns • IRepository • SQL 2008 Database Project
Security • Windows Authentication • ASP.NET Forms Authentication • FormsAuthenticationService – UserBase – Injecting UserBase derived classes – [RequiresAuthentication]
Gotchas • • • • • •
Multiple Domain Services Method Names Domain Service Public Interfaces Generating Temporary Domain Services Returning Complex Types EF Limitations: – No Many to Many – Advanced Inheritance
• HasChanges on New Entities
FINAL THOUGHTS
Additional Resources • • • • • • • • •
http://www.Silverlight.net http://Msdn.microsoft.com http://www.silverlightshow.net/ http://www.asp.net http://channel9.msdn.com/learn/courses/Silverlight4/ http://www.microsoft.com/design/toolbox/ http://www.microsoft.com/expression/resources/BlendTraining/ http://silverlight.codeplex.com/ http://compositewpf.codeplex.com/
Additional Resources (Cont.) • • • • • • • •
http://channel9.msdn.com/Blogs/RobBagby/NET-RIA-Services-in-5-Minutes http://silverlight.net/riaservices/ http://www.silverlight.net/learn/videos/all/net-ria-services-intro/ http://www.silverlight.net/learn/videos/all/ria-services-support-visual-studio-2010/ http://channel9.msdn.com/learn/courses/Silverlight4/SL4BusinessModule2/SL4LOB_02_01_RIAServices http://www.myvbprof.com/MainSite/index.aspx#/zSL4_RIA_01 http://channel9.msdn.com/blogs/egibson/silverlight-firestarter-ria-services http://msdn.microsoft.com/en-us/library/ee707336%28v=VS.91%29.aspx
• • •
www.silverlight.net http://msdn.microsoft.com/en-us/silverlight4trainingcourse.aspx http://channel9.msdn.com/shows/silverlighttv
Additional Resources
Next Steps… • • • •
Dive in Play around Ask Questions Research What if I need help?
[email protected] Twitter: @kvgros