[dba-VB] FYI: Microsoft embracing REST, ATOM and JSON by Open Data Protocol (OData)

Salakhetdinov Shamil mcp2004 at mail.ru
Thu May 3 08:10:02 CDT 2012


Hi Gustav at all --

Just wanted to finish my first try of oData web services consumption on positive note and applied KISS-principle by writing a tiny oData client app - and I have got some progress here in consuming sample oData (?) service from Chris Sells article:

http://services.odata.org/Northwind/Northwind.svc

You can do the same - just:

1. Create VS2010 console application project - ConsoleApplication1
2. Add Service Reference to http://services.odata.org/Northwind/Northwind.svc and call it TestService
3. Copy & paste, compile, build, and run code from P.S. of this message - and you'll get the following test output:

5. Buchanan Steven - Sales Manager
1. Davolio Nancy - Sales Representative
9. Dodsworth Anne - Sales Representative
7. King Robert - Sales Representative
3. Leverling Janet - Sales Representative
4. Peacock Margaret - Sales Representative
6. Suyama Michael - Sales Representative

Easy? Yes, it's. 

.NET 'magic' makes all the dirty work for you to parse web query ATOM result of

http://services.odata.org/Northwind/Northwind.svc/Employees
(try it in a web browser)

into the above test output.

Question to Francisco: does ObjectiveC have similar high level ATOM feeds consuming libraries and tools to generate strongly typed client APIs? (I should have I guess...)

Thank you.

-- Shamil

P.S.

using System;
using System.Linq;
using System.Data.Services.Client;

namespace ConsoleApplication1
{
    public class DataModelProxy : DataServiceContext
    {
        public DataModelProxy(Uri serviceRoot) : base(serviceRoot) {}

        public IQueryable<dynamic> EmployeesList
        {
            get { return CreateQuery<dynamic>("Employees"); }
        }

        public IQueryable<ConsoleApplication1.TestService.Employee> StronglyTypedEmployeesList
        {
            get { return CreateQuery<ConsoleApplication1.TestService.Employee>("Employees"); }
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            var proxy = new DataModelProxy(new Uri(@"http://services.odata.org/Northwind/Northwind.svc/"));

            //var employees = from e in proxy.EmployeesList select e;
            var employees = from e in proxy.StronglyTypedEmployeesList where e.Title.StartsWith("Sales") orderby e.LastName select e;

            foreach (var e in employees)
            {
                Console.WriteLine("{0}. {1} {2} - {3}", e.EmployeeID, e.LastName, e.FirstName, e.Title);
            }
        }
    }
}



Thu, 03 May 2012 08:31:02 +0200 от "Gustav Brock" <Gustav at cactus.dk>:
> Hi Shamil
> 
> Thanks! That looks like a good article - and using Northwind as example data, I noticed.
> I will have a closer look in the weekend.
> 
> /gustav
> 
> 
> >>> Salakhetdinov Shamil <mcp2004 at mail.ru> 03-05-2012 00:03 >>>
> Hi Francisco and Gustav --
> 
> Here is a link, which seems to have good information how to make and how to communicate with oData (web) services:
> 
> "Open Data Protocol by Example" by Chris Sells:
> http://msdn.microsoft.com/en-us/library/ff478141.aspx 
> 
> Thank you.
> 
> -- Shamil
> 
> 
> _______________________________________________
> dba-VB mailing list
> dba-VB at databaseadvisors.com
> http://databaseadvisors.com/mailman/listinfo/dba-vb
> http://www.databaseadvisors.com
> 
> 



More information about the dba-VB mailing list