SlideShare a Scribd company logo
1 of 18
Visual Studio 2010
        and
.NET Framework 4

Training Workshop
What’s New In ADO.NET
      Data Services 1.5
Name
Title
Organization
Email
Agenda
• Server Enhancements
  •   Row count
  •   Server-side paging
  •   Friendly feeds
  •   BLOB streams
• Client Enhancements
  • Row Count
  • WPF/SL data binding
Row Count
          /Products
                                1. No paging
                                2. Potentially lots of data

       n # of products


  /Products?$skip=10&$take=10

                                1. No idea of total
                                   # of products
        10 products
Row Count (cont.)
  /Products/$count?$skip=10&$take=10

                               1. No data

            Count


 /Products?$skip=10&$take=10&$inlinecount=allpages




        10 products +
         Inline Count
Server-Side Paging
         /Products
                            500,000
                            product records
      500,000 products




You can’t always assume the client
will do the right thing…
Server-Side Paging (cont.)
          /Products
                            500,000
                            product records
        20 products +
      link to next page


  /Products?$skiptoken=20

                            500,000
                            product records
        20 products +
      link to next page
Row Count
Server-Side Paging
Friendly Feeds

                       Title?



                        Author?




                 Atom Pub (APP)
                 Entry Document
BLOB Streams




               Base64 String
BLOB Streams (cont.)
      /Products(1)/Photo




       Photo Metadata



   /Products(1)/Photo/$value




        Photo Image
Friendly Feeds
BLOB Streams
Client Enhancements

                  Row
                 Count


  WPF
  Data                           BLOB
 Binding          Data
                 Service
                 Context


                           Server-
      Friendly
                            Side
       Feeds
                           Paging
WPF Data Binding
1. Retrieve data


                           Data Service       4. Notify context
                             Context             of the change


                           Data Service
                              Entity                     3. Modify data
                                                            within control

                                                WPF
                                             Framework
                                              Element
                   2. Bind data to control
WPF Data Binding (cont.)
1. Retrieve data


                           Data Service       4. Notify context
                             Context             of the change


                          Data Service
                           Entity List                   3. Modify data
                                                            within control


                                             WPF Items
                                              Control
                   2. Bind data to control
Client Enhancements
Summary
• Server Enhancements
  •   Row count
  •   Server-side paging
  •   Friendly feeds
  •   BLOBs
• Client Enhancements
  • WPF/SL Data Binding
Whats New In Adonet Data Services 1.5

More Related Content

Similar to Whats New In Adonet Data Services 1.5

Mike Taulty MIX10 Silverlight 4 Patterns Frameworks
Mike Taulty MIX10 Silverlight 4 Patterns FrameworksMike Taulty MIX10 Silverlight 4 Patterns Frameworks
Mike Taulty MIX10 Silverlight 4 Patterns Frameworksukdpe
 
Leveraging Microservice Architectures & Event-Driven Systems for Global APIs
Leveraging Microservice Architectures & Event-Driven Systems for Global APIsLeveraging Microservice Architectures & Event-Driven Systems for Global APIs
Leveraging Microservice Architectures & Event-Driven Systems for Global APIsconfluent
 
A great api is hard to find
A great api is hard to findA great api is hard to find
A great api is hard to findDan Diephouse
 
DASbrick: A cloud based Rich internet application for Synthetic Biology Parts...
DASbrick: A cloud based Rich internet application for Synthetic Biology Parts...DASbrick: A cloud based Rich internet application for Synthetic Biology Parts...
DASbrick: A cloud based Rich internet application for Synthetic Biology Parts...Biogeeks
 
Sap bi training with bo integrations
Sap bi training with bo integrationsSap bi training with bo integrations
Sap bi training with bo integrationspjraosapbi
 
Sap bi 7.3 Features
Sap bi 7.3 FeaturesSap bi 7.3 Features
Sap bi 7.3 FeaturesSamar Reddy
 
SAP BI with BO from LCC Infotech,Hyderabad
SAP BI with BO from LCC Infotech,HyderabadSAP BI with BO from LCC Infotech,Hyderabad
SAP BI with BO from LCC Infotech,Hyderabadlccinfotech
 
Windows Azure架构探析
Windows Azure架构探析Windows Azure架构探析
Windows Azure架构探析George Ang
 
Data Integration with server side Mashups
Data Integration with server side MashupsData Integration with server side Mashups
Data Integration with server side Mashupsjbrendel
 
Sp2010 high availlability
Sp2010 high availlabilitySp2010 high availlability
Sp2010 high availlabilitySamuel Zürcher
 
(ATS3-DEV05) Coding up Pipeline Pilot Components
(ATS3-DEV05) Coding up Pipeline Pilot Components(ATS3-DEV05) Coding up Pipeline Pilot Components
(ATS3-DEV05) Coding up Pipeline Pilot ComponentsBIOVIA
 
What’s new in IBM BPM 8.5.7 CF2016.06 - CF2017.03
What’s new in IBM BPM 8.5.7 CF2016.06 - CF2017.03What’s new in IBM BPM 8.5.7 CF2016.06 - CF2017.03
What’s new in IBM BPM 8.5.7 CF2016.06 - CF2017.03Dennis Parrott
 
Effective SharePoint Scalability & Management. To BLOB or not to BLOB, that’s...
Effective SharePoint Scalability & Management. To BLOB or not to BLOB, that’s...Effective SharePoint Scalability & Management. To BLOB or not to BLOB, that’s...
Effective SharePoint Scalability & Management. To BLOB or not to BLOB, that’s...garthluke
 
10 Principals for Effective Event-Driven Microservices with Apache Kafka
10 Principals for Effective Event-Driven Microservices with Apache Kafka10 Principals for Effective Event-Driven Microservices with Apache Kafka
10 Principals for Effective Event-Driven Microservices with Apache KafkaBen Stopford
 
SharePoint Performance Optimization In 10 Steps for the IT Professional
SharePoint Performance Optimization In 10 Steps for the IT ProfessionalSharePoint Performance Optimization In 10 Steps for the IT Professional
SharePoint Performance Optimization In 10 Steps for the IT ProfessionalJoel Oleson
 

Similar to Whats New In Adonet Data Services 1.5 (20)

Mike Taulty MIX10 Silverlight 4 Patterns Frameworks
Mike Taulty MIX10 Silverlight 4 Patterns FrameworksMike Taulty MIX10 Silverlight 4 Patterns Frameworks
Mike Taulty MIX10 Silverlight 4 Patterns Frameworks
 
Asp.net web forms new shiny things part 1
Asp.net web forms new shiny things   part 1Asp.net web forms new shiny things   part 1
Asp.net web forms new shiny things part 1
 
Leveraging Microservice Architectures & Event-Driven Systems for Global APIs
Leveraging Microservice Architectures & Event-Driven Systems for Global APIsLeveraging Microservice Architectures & Event-Driven Systems for Global APIs
Leveraging Microservice Architectures & Event-Driven Systems for Global APIs
 
A great api is hard to find
A great api is hard to findA great api is hard to find
A great api is hard to find
 
DASbrick: A cloud based Rich internet application for Synthetic Biology Parts...
DASbrick: A cloud based Rich internet application for Synthetic Biology Parts...DASbrick: A cloud based Rich internet application for Synthetic Biology Parts...
DASbrick: A cloud based Rich internet application for Synthetic Biology Parts...
 
Sap bi training with bo integrations
Sap bi training with bo integrationsSap bi training with bo integrations
Sap bi training with bo integrations
 
Sap bi 7.3 Features
Sap bi 7.3 FeaturesSap bi 7.3 Features
Sap bi 7.3 Features
 
SAP BI with BO from LCC Infotech,Hyderabad
SAP BI with BO from LCC Infotech,HyderabadSAP BI with BO from LCC Infotech,Hyderabad
SAP BI with BO from LCC Infotech,Hyderabad
 
Windows Azure架构探析
Windows Azure架构探析Windows Azure架构探析
Windows Azure架构探析
 
Data Integration with server side Mashups
Data Integration with server side MashupsData Integration with server side Mashups
Data Integration with server side Mashups
 
Sp2010 high availlability
Sp2010 high availlabilitySp2010 high availlability
Sp2010 high availlability
 
(ATS3-DEV05) Coding up Pipeline Pilot Components
(ATS3-DEV05) Coding up Pipeline Pilot Components(ATS3-DEV05) Coding up Pipeline Pilot Components
(ATS3-DEV05) Coding up Pipeline Pilot Components
 
What’s new in IBM BPM 8.5.7 CF2016.06 - CF2017.03
What’s new in IBM BPM 8.5.7 CF2016.06 - CF2017.03What’s new in IBM BPM 8.5.7 CF2016.06 - CF2017.03
What’s new in IBM BPM 8.5.7 CF2016.06 - CF2017.03
 
Producing an OData feed in 10 minutes
Producing an OData feed in 10 minutesProducing an OData feed in 10 minutes
Producing an OData feed in 10 minutes
 
SFA CISLINK
SFA CISLINKSFA CISLINK
SFA CISLINK
 
Microsoft Dynamics GP 2013 - Mejoras
Microsoft Dynamics GP 2013 - MejorasMicrosoft Dynamics GP 2013 - Mejoras
Microsoft Dynamics GP 2013 - Mejoras
 
PDC Highlights
PDC HighlightsPDC Highlights
PDC Highlights
 
Effective SharePoint Scalability & Management. To BLOB or not to BLOB, that’s...
Effective SharePoint Scalability & Management. To BLOB or not to BLOB, that’s...Effective SharePoint Scalability & Management. To BLOB or not to BLOB, that’s...
Effective SharePoint Scalability & Management. To BLOB or not to BLOB, that’s...
 
10 Principals for Effective Event-Driven Microservices with Apache Kafka
10 Principals for Effective Event-Driven Microservices with Apache Kafka10 Principals for Effective Event-Driven Microservices with Apache Kafka
10 Principals for Effective Event-Driven Microservices with Apache Kafka
 
SharePoint Performance Optimization In 10 Steps for the IT Professional
SharePoint Performance Optimization In 10 Steps for the IT ProfessionalSharePoint Performance Optimization In 10 Steps for the IT Professional
SharePoint Performance Optimization In 10 Steps for the IT Professional
 

Recently uploaded

SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 

Recently uploaded (20)

SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 

Whats New In Adonet Data Services 1.5

  • 1. Visual Studio 2010 and .NET Framework 4 Training Workshop
  • 2. What’s New In ADO.NET Data Services 1.5 Name Title Organization Email
  • 3. Agenda • Server Enhancements • Row count • Server-side paging • Friendly feeds • BLOB streams • Client Enhancements • Row Count • WPF/SL data binding
  • 4. Row Count /Products 1. No paging 2. Potentially lots of data n # of products /Products?$skip=10&$take=10 1. No idea of total # of products 10 products
  • 5. Row Count (cont.) /Products/$count?$skip=10&$take=10 1. No data Count /Products?$skip=10&$take=10&$inlinecount=allpages 10 products + Inline Count
  • 6. Server-Side Paging /Products 500,000 product records 500,000 products You can’t always assume the client will do the right thing…
  • 7. Server-Side Paging (cont.) /Products 500,000 product records 20 products + link to next page /Products?$skiptoken=20 500,000 product records 20 products + link to next page
  • 9. Friendly Feeds Title? Author? Atom Pub (APP) Entry Document
  • 10. BLOB Streams Base64 String
  • 11. BLOB Streams (cont.) /Products(1)/Photo Photo Metadata /Products(1)/Photo/$value Photo Image
  • 13. Client Enhancements Row Count WPF Data BLOB Binding Data Service Context Server- Friendly Side Feeds Paging
  • 14. WPF Data Binding 1. Retrieve data Data Service 4. Notify context Context of the change Data Service Entity 3. Modify data within control WPF Framework Element 2. Bind data to control
  • 15. WPF Data Binding (cont.) 1. Retrieve data Data Service 4. Notify context Context of the change Data Service Entity List 3. Modify data within control WPF Items Control 2. Bind data to control
  • 17. Summary • Server Enhancements • Row count • Server-side paging • Friendly feeds • BLOBs • Client Enhancements • WPF/SL Data Binding

Editor's Notes

  1. Estimated Time: 1 minuteThis presentation is going to cover enhancements that have been made to ADO.NET Data Services, on both the server and client APIs.
  2. Estimated Time: 2 minutesUsing ADO.NET Data Services today, you can make a request to a service for a specific entity set, such as “Products”. This provides a great level of flexibility to the consumer, but it comes with a few problems [Advance Animation]. Because there was no paging options applied to the request, the user has no idea just how much data they are about to get back. This could end up creating a network bottleneck [Advance Animation].The consumer can optionally specify paging parameters in their request for products, which removes the potential bandwidth tax [Advance Animation]. The problem with this approach is that you have no idea how many products actually exist on the server. If you wanted to provide some paging functionality in a client application, there isn’t any way to determine how many pages there are without retrieving all products.
  3. Estimated Time: 2 minutesIn ADO.NET DataServices 1,5, there is a new pseudo-selector that can be applied to a request: $count. As this example shows, it isn’t a query option (like $skip or $take) but rather a value that you specifically target, much like the $value or $links pseudo-selectors [Advance Animation]. When you target an entity-sets $count, you get back only the count of items in that set. This is nice if you already have the data and are only concerned with determining the server-side count. But if you want data as well as the count, this approach doesn’t lend itself as well to that scenario [Advance Animation].In addition to the $count pseudo-selector, there is a new query option called $inlinecount that allows you to query for data and then optionally include the count inside the response [Advance Animation]. This option is great because now you can get the data you need, paged to the size you need, and also find out how many total items exist on the server, all in a single request. This makes it much easier to develop client applications that consume a data service.
  4. Estimated Time: 2 minutesGoing back to the scenario where a customer requests an entire entity set, without specifying paging information, there are additional issues than simply not being able to retrieve count data [Advance Animation]. What if there were half a million product records on the server? The customer is now able to pull that data down without possibly even knowing what they’re doing [Advance Animation]. This solution obviously won’t scale very well, and is just an all-around poor solution. A data service can’t assume that the client will do the right thing.
  5. Estimated Time: 2 minutesIn 1.5, when a client requests an entity set that potentially contains a lot of data on the server, the service can enforce paging on the request and send back only the records it wants to give the client [Advance Animation]. This allows the consumer to continue making the same resource-centric requests they’re familiar with, but it allows to server to “guide” the client down the path of success for both ends. As part of the response content, when server-side paging is enforced, a URI will be included that points the client at the next page (if applicable). That way the RESTfulness of the service remains intact such that the connectivity of the resources doesn’t break in the name of paging [Advance Animation].If the client follows the link for a subsequent page (that was provided by the server), the service will then respond with the appropriate page of data as well as next link (if applicable). ADO.NET Data Services 1.5 will only include next links. Links for previous, first, and last pages will come in a subsequent release.
  6. Estimated Time: 2 minutesBy default, when ADO.NET Data Services exposes an instance of an entity type, it serializes the data using the Atom Publishing Protocol (Atom Pum/APP) format. Every public property on the entity type gets mapped to an element within the content of the respective entry element.While this default behavior works just fine for many situations, there are some oddities when using APP [Advance Animation]. For instance, the APP format requires that every entry include a title and an author. ADO.NET Data Services will render these elements, but never actually fill them with content. This could confuse consumers of the service that are APP aware and would expect to be provided with a title and/or author.In 1.5, ADO.NET Data Services introduces a feature called “friendly feeds” that allows you to map an entity property to an element within the APP entry. This can either be a pre-defined element such a title or author, or a custom element. The ability to map properties to custom elements allows you to add additional information to your data feeds, such as microformats (i.e. GeoRSS), that can be interpreted by understanding clients.
  7. Estimated Time: 1 minuteIf your data service exposes an entity that contains binary data, you can end up with a less than desirable situation [Advance Animation]. Because data is ultimately serialized as string content, any binary content has to be base64 serialized before being sent to the client. This expands the size of the response and requires deserialization and base64 unencoding on the client-side. In addition, whenever a request comes in for entities with data properties, that binary data must be fully loaded into memory before it could be sent to the client. This could lead to memory issues it the service was under pressure.If the consumer never even uses the binary data, you end up with wasted bandwidth, memory and processing time. You could remove the binary data from the entity that the services exposes, but then any clients that did need to use the binary data would be out of luck. You could remove the binary data from the entity and then create a service operation that returned the binary content, but that behavior isn’t exactly ideal and doesn’t follow the AtomPub semantics.
  8. Estimated Time: 2 minutesIn 1.5 of ADO.NET Data Services you are able to separate an entity with binary data into two pieces: a media resource and a media link entry. The media resource represents the actual binary data, as well as its content type. The media link entry represents the metadata and additional information that goes along with the binary data. This makes it possible to query the two individually.For instance, we could query for the photo of the product whose ID is 1 [Advance Animation], which would return to us the metadata of the photo (media link entry) without the actual image binary content. If we wanted to retrieve the media resource for the photo (the binary content) [Advance Animation] we could simply append “$value” to the request [Advance Animation]. At this point it is up to the service to determine where to actually retrieve this media resource. It could come from a database, file system, the cloud, or anywhere else. Once the resource is retrieved [Advance Animation], the service returns the binary image back to the client.
  9. Estimated Time: 1 minuteNow that we’ve seen all the enhancements made to the server-side portions of ADO.NET Data Services, what enhancements have been made to the client API? Fortunately, every server-side feature that we just discussed has corresponding support on the client as well, which makes the end-to-end experience of consuming a 1.5 data service very easy and rich.There is also one enhancement that is exclusive to the client API, WPF data binding support.
  10. Estimated Time: 2 minutesUsing the ADO.NET Data Services client API, you can create an instance of a DataServiceContext to retrieve an entity instance. Once you have the desired instance [Advance Animation], you can bind it to any FrameworkElement (or subtype) instance in a WPF application. If the bound FrameworkElement accommodates edits [Advance Animation], then you can modify the entity data via UI.This process works just fine in v1, but the problem is that once you want to save the changes made back to the Data Service you have to explicitly notify the DataServiceContext. It would be a lot nicer if the entity instance include the necessary change tracking behavior such that when you modified its contents via its bound FrameworkElement, it would automatically notify its parent DataServiceContext of its modification [Advance Animation].In 1.5, the client-side proxy classes for your Data Service entities include the proper INotifyPropertyChanged implementation that provides you with rich change tracking. In addition, because WPF data controls are aware of bound objects that implement INotifyPropertyChanged, they will automatically update themselves upon modifications to their bound entity instances. This makes the overall experience of developing a WPF application, that leverages ADO.NET Data Services, much simpler.
  11. Estimated Time: 1 minuteIn addition to just single entity instances, if you bind a list of entities to a WPF items control, any changes made to the list via UI (instance modification/deletion) will automatically notify the parent DataServiceContext.