RIA Services Master Class Presenter: Kevin Grossnicklaus November 30 th, 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- (2009-Present) President – Washington University - CAIT Program (2003-Present) Instructor – SSE - ( ) Chief Architect Software Development Practice Twitter: blog.architectnow.net blog.architectnow.net Blog: blog.architectnow.netblog.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 WCF Entity Framework LINQ Security Concurrency Data Validation Asynchronous Caching
What is RIA Services? WCF LINQ Security Concurrency Data Validation Asynchronous Caching Silverlight Entity Framework
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 – – 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
SETTING UP A NEW RIA SOLUTION Demo
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
Additional Resources (Cont.)
Additional Resources
Next Steps… Dive in Play around Ask Questions Research What if I need help?