Download - Introducing WCF DATA SERVICE
![Page 1: Introducing WCF DATA SERVICE](https://reader036.vdocuments.site/reader036/viewer/2022062305/56815b38550346895dc90ddf/html5/thumbnails/1.jpg)
Introducing WCF DATA SERVICE
Dhananjay Kumar
http://dhananjaykumar.netDEBUGMODE_
![Page 2: Introducing WCF DATA SERVICE](https://reader036.vdocuments.site/reader036/viewer/2022062305/56815b38550346895dc90ddf/html5/thumbnails/2.jpg)
http://dhananjaykumar.net/
Agenda
Quick Demo and introduction of WCF REST service
Introduction to WCF Data Service
Demo Creating your first WCF Data Service
URI Options and Server side paging
Demo performing CRUD from Managed Application
Demo on consuming from WPF client
Demo on consuming from Windows 7 Phone
Q/A12/19/2010
![Page 3: Introducing WCF DATA SERVICE](https://reader036.vdocuments.site/reader036/viewer/2022062305/56815b38550346895dc90ddf/html5/thumbnails/3.jpg)
http://dhananjaykumar.net/
What is REST ?
REST is a architecture style not standard to design and create Service
REST is the Service on the Web
It uses HTTP protocol
It uses URI for resource identification (REST)
REST == REPRESENTATIONAL STATE TRANSFER
12/19/2010
![Page 4: Introducing WCF DATA SERVICE](https://reader036.vdocuments.site/reader036/viewer/2022062305/56815b38550346895dc90ddf/html5/thumbnails/4.jpg)
http://dhananjaykumar.net/
WCF Data ServiceWCF Data Service
ODATA
ADO.Net Data
Service
Project Astoria
12/19/2010
![Page 5: Introducing WCF DATA SERVICE](https://reader036.vdocuments.site/reader036/viewer/2022062305/56815b38550346895dc90ddf/html5/thumbnails/5.jpg)
http://dhananjaykumar.net/
WCF Data ServiceWCF Data Service
ODATA
ADO.Net Data
Service
Project Astoria
12/19/2010
![Page 6: Introducing WCF DATA SERVICE](https://reader036.vdocuments.site/reader036/viewer/2022062305/56815b38550346895dc90ddf/html5/thumbnails/6.jpg)
http://dhananjaykumar.net/
ODATA It is a web Protocol
It is used for updating and querying data
It uses HTTP protocol
It uses ATOM and JSON web message formats
It uses URI for resource identification (REST)
OData is released under the Open Specification Promise to allow anyone to freely interoperate with OData implementations.
12/19/2010
![Page 7: Introducing WCF DATA SERVICE](https://reader036.vdocuments.site/reader036/viewer/2022062305/56815b38550346895dc90ddf/html5/thumbnails/7.jpg)
http://dhananjaykumar.net/
ODATA Consumer and Producer
Application :SharePoint 2010, IBM Web Sphere , SSRS, SQL Azure ,
Azure table Live Services :
facebook ,Pluralsight , vanGuide , TechEd2010, NerdDinner
Browsers , ODATA Explorer , Excel 2010 , LINQPAD, SesName Odata
Browser Client Librarries : W7Phone ,
Javascript , .Net , PHP
PRODUCER CONSUMER
12/19/2010
![Page 8: Introducing WCF DATA SERVICE](https://reader036.vdocuments.site/reader036/viewer/2022062305/56815b38550346895dc90ddf/html5/thumbnails/8.jpg)
http://dhananjaykumar.net/
WCF Data Service
WCF Data Services Framework Consists of a combination of patterns and libraries that enable the creation and consumption of data services for the web.
The goal of WCF DATA Service is to facilitate the creation of Flexible data Services that are naturally integrated with the web
WCF Data Service exposes CRUD operation as REST service using ODATA protocol
12/19/2010
![Page 9: Introducing WCF DATA SERVICE](https://reader036.vdocuments.site/reader036/viewer/2022062305/56815b38550346895dc90ddf/html5/thumbnails/9.jpg)
http://dhananjaykumar.net/
HTTP Verbs
• CREATE Data in Table
HTTP POST
• RETERIVE Data from table
HTTP GET
• UPDATE Data in table
HTTP PUT
• DELETE Data in table
HTTP DELETE
12/19/2010
![Page 10: Introducing WCF DATA SERVICE](https://reader036.vdocuments.site/reader036/viewer/2022062305/56815b38550346895dc90ddf/html5/thumbnails/10.jpg)
http://dhananjaykumar.net/
Message format
Message Format
JSON ATOM JSON for AJAX clients
ATOM for any type of clients
12/19/2010
![Page 11: Introducing WCF DATA SERVICE](https://reader036.vdocuments.site/reader036/viewer/2022062305/56815b38550346895dc90ddf/html5/thumbnails/11.jpg)
http://dhananjaykumar.net/
Data Model
12/19/2010
Custom Data Model
LINQ to SQL Class
ADO.Net Entity Model
![Page 12: Introducing WCF DATA SERVICE](https://reader036.vdocuments.site/reader036/viewer/2022062305/56815b38550346895dc90ddf/html5/thumbnails/12.jpg)
http://dhananjaykumar.net/
Flow diagram
12/19/2010
![Page 13: Introducing WCF DATA SERVICE](https://reader036.vdocuments.site/reader036/viewer/2022062305/56815b38550346895dc90ddf/html5/thumbnails/13.jpg)
http://dhananjaykumar.net/
DEMO
12/19/2010
![Page 14: Introducing WCF DATA SERVICE](https://reader036.vdocuments.site/reader036/viewer/2022062305/56815b38550346895dc90ddf/html5/thumbnails/14.jpg)
http://dhananjaykumar.net/
URI options
12/19/2010
![Page 15: Introducing WCF DATA SERVICE](https://reader036.vdocuments.site/reader036/viewer/2022062305/56815b38550346895dc90ddf/html5/thumbnails/15.jpg)
http://dhananjaykumar.net/
Create Record
12/19/2010
DataServiceContext context = new DataServiceContext(new Uri("http://localhost:7003/WcfDataService1.svc/"));
Blogger blog = new Blogger { SpeakerId = 99, SpeakerBlog = "null", SpeakerName = "Mr Bill ", SpeakerTechnology = "Microsoft"
};
context.AddObject("Bloggers", blog);
context.SaveChanges();
![Page 16: Introducing WCF DATA SERVICE](https://reader036.vdocuments.site/reader036/viewer/2022062305/56815b38550346895dc90ddf/html5/thumbnails/16.jpg)
http://dhananjaykumar.net/
Retrieve Record
12/19/2010
DataServiceContext context = new DataServiceContext(new Uri("http://localhost:7003/WcfDataService1.svc/"));
SpeakersEntities entities = new SpeakersEntities(new Uri("http://localhost:7003/WcfDataService1.svc/"));
var result = from r in entities.Bloggers select r;
foreach (var r in result) { Console.WriteLine(r.SpeakerName +
r.SpeakerTechnology); }
![Page 17: Introducing WCF DATA SERVICE](https://reader036.vdocuments.site/reader036/viewer/2022062305/56815b38550346895dc90ddf/html5/thumbnails/17.jpg)
http://dhananjaykumar.net/
Update Record
12/19/2010
DataServiceContext context = new DataServiceContext(new Uri("http://localhost:7003/WcfDataService1.svc/"));
SpeakersEntities entities = new SpeakersEntities(new Uri("http://localhost:7003/WcfDataService1.svc/"));
Blogger blogtoUpdate = (from r in entities.Bloggers where r.SpeakerId == 9 select
r).FirstOrDefault();
blogtoUpdate.SpeakerTechnology = "C Sharp ";
context.AttachTo("Bloggers", blogtoUpdate);
context.UpdateObject(blogtoUpdate);
context.SaveChanges();
![Page 18: Introducing WCF DATA SERVICE](https://reader036.vdocuments.site/reader036/viewer/2022062305/56815b38550346895dc90ddf/html5/thumbnails/18.jpg)
http://dhananjaykumar.net/
Delete Record
12/19/2010
DataServiceContext context = new DataServiceContext(new Uri("http://localhost:7003/WcfDataService1.svc/"));
SpeakersEntities entities = new SpeakersEntities(new Uri("http://localhost:7003/WcfDataService1.svc/"));
Blogger blogtoUpdate = (from r in entities.Bloggers where r.SpeakerId == 99 select
r).FirstOrDefault(); context.AttachTo("Bloggers", blogtoUpdate);
context.DeleteObject(blogtoUpdate);
context.SaveChanges();
![Page 19: Introducing WCF DATA SERVICE](https://reader036.vdocuments.site/reader036/viewer/2022062305/56815b38550346895dc90ddf/html5/thumbnails/19.jpg)
http://dhananjaykumar.net/
WCF Data Service
12/19/2010
![Page 20: Introducing WCF DATA SERVICE](https://reader036.vdocuments.site/reader036/viewer/2022062305/56815b38550346895dc90ddf/html5/thumbnails/20.jpg)
http://dhananjaykumar.net/
With W7Phone
Download ODATA client library for Windows 7 Phone
Create Proxy class
Consume in Windows 7 Phone app
12/19/2010