oData January 26_ 2010 by dffhrtcv3



               Carl Franklin and Richard Campbell
               interview experts to bring you insights
               into .NET technology and the state of
               software development. More than just
               a dry interview show, we have fun!
               Original Music! Prizes! Check out what
               you've been missing!

                           Text Transcript of Show #519
             (Transcription services provided by PWOP Productions)

                           January 26, 2010
                                Our Sponsors


                                                                                                        January 26, 2010

Geoff Maciolek:      The opinions and viewpoints                  So, this goes on for about, I don't know, half an hour,
expressed in .NET Rocks! are not necessarily those                and then people clear up because it's closing time
of its sponsors, or of Microsoft Corporation, its                 and I'm almost done. I'm sitting there. So now like
partners, or employees. .NET Rocks! is a production               most everybody is gone and we hear this, and I say
of Franklins.NET, which is solely responsible for its             music, but it's really like [unintelligible] coming from
content. Franklins.NET - Training Developers to                   the basement right below the bar and it's like...
Work Smarter.
                                                                  Richard Campbell:       Like thrash metal.
                                                                  Carl Franklin:          Screaming death thrash, yeah,
Lawrence Ryan:        Hey, Rock heads! Spit out                   exactly. So there's a band that's rehearsing in the
your Bazooka and listen up! It's time for another                 basement and it turns out they generate so much
stellar episode of .NET Rocks! the Internet audio talk            volume that it vibrates at a ridiculous amount, the
show for .NET developers, with Carl Franklin and                  floor, the bar, the whole thing and people are walking
Richard Campbell.         This is Lawrence Ryan                   around like looking around like wondering what the
announcing show #519, with guests Brad Abrams,                    hell is going on. So, the joke is that, yeah, "Our next
Bob Dimpsey, a n d Lance Olson, recorded live                     song is called Roar!" It's off our album. Roar!
Monday, January 4, 2010. .NET Rocks! is brought to
you by Franklins.NET - Training Developers to Work                Richard Campbell:       Nice.
Smarter and now offering SharePoint 2007 video
training with Sahil Malik on DVD, dnrTV style, order              Carl Franklin:            Yeah. All right, anyway, that's
your copy now at www.franklins.net. Support is also               all I got. Let's get into Better Know a Framework.
provided by Telerik, combining the best in Windows
Forms, WPF, Silverlight, a n d ASP.NET controls with              Richard Campbell:       All right.
first    class   customer      service,   online    at
www.telerik.com. And now, the man who put spot                    [Music]
remover on his dog and got sued by Steven Wright,
Carl Franklin.                                                    Carl Franklin:          Yeah, that's what music should
                                                                  sound like right there.
Carl Franklin:      Thank     you     very   much.
Welcome back to .NET Rocks! It's Carl and Richard.                Richard Campbell:       That's what you're saying.

Richard Campbell:         Yes, sir.                               Carl Franklin:        Ah well, maybe not. It's a little
                                                                  better than roar.    Well, anyway, today I'm talking
Carl Franklin:            Hey man, what's happening?              about       the       System.Windows.Media.Effects
Richard Campbell:         Not too much.
                                                                  Richard Campbell:       Oh.
Carl Franklin:       I got a little story for you. So
I'm down at Hanafin's Pub, this is the Irish pub right            Carl Franklin:            And it provides types that can
downstairs from the studio. I know it's dangerous                 be used to apply visual effects to bitmap images, and
but...                                                            probably the one that people love the best is Pixel
                                                                  Shader and Shader Effect. You know, the high level
Richard Campbell:         Yup.                                    shading language, Pixel Shader is really, really cool.
                                                                  So the Pixel Shader Class provides a managed
Carl Franklin:          S o I 'm s i t t i n g there a n d I 'm   wrapper around that HLSL pixel shader. Very cool
talking to Mr. Hanafin and we're just, you know,                  stuff. So you might or might not be doing Silverlight
there's not a whole lot of people in there but I feel the         stuff, and you may or may not be into Effects yet, that
bar vibrate and I think "Oh, that's interesting. Wow,             may be a little bit low on your priority list but I'm just
somebody's got a really powerful cell phone," and it's            telling you when you go home tonight from work, open
not stopping either and I look around there's nobody              a Visual Studio 2010, Silverlight 4.0, even Silverlight
that has got their cell phone on the bar but it's really          3.0, check out that Pixel Shader and make yourself
vibrating.                                                        some cool looking stuff. It will just make you feel
                                                                  better. It's just a feel good class.
Richard Campbell:         Okay.
                                                                  Richard Campbell:       Nice.
Carl Franklin:        So I don't know anything but it
goes on and on and on and now I'm thinking, "All                  Carl Franklin:          That's it. What have you got?
right, the dishwasher is right under the bar. That's
what's going on." The dishwasher is vibrating the bar.

Transcription by PWOP Productions, http://www.pwop.com                                                     Page 2 of 12
                                                                                                  January 26, 2010

Richard Campbell:       These things made you feel           Richard Campbell: I'm s urprise at how many folks
good, has it?                                                are still out there using the have apps that they're
                                                             taking care of that are in the old VB...
Carl Franklin:           It makes you feel so good.
You'll feel like saying "Roar."                              Carl Franklin:         Yeah.

Richard Campbell:       I hope not.                          Richard Campbell:      And it's all good.

Carl Franklin:          All right, who's talking to us,      Carl Franklin:      It's all good. Our guests today
Richard?                                                     are Bob Dimpsey, Lance Olson, and Brad Abrams.

Richard Campbell:       Michael       Clark   says, "Carl,   Bob is the Product Unit Manager for the Application
Richard and Co."                                             Server Developer Platform whose mission it is to
                                                             establish the .NET Framework as the essential
Carl Franklin:          Yeah.                                platform for building and deploying composite
                                                             applications and services. Technologies that this
Richard Campbell: "I was on vacation so only just            product unit ships are Windows Communication
got to DNR episode 491. I want to thank you for the          Foundation, Windows Workflow, Serialization for
interview with Francesco Balena."                            .NET, MS-DTC, Remoting and ASMX. He has worked
                                                             on Web Services and specifically WCF for five years
Carl Franklin:          Ah, a good one.                      at Microsoft. Previous to this, he has spent a dozen
                                                             years focused on software performance for a number
Richard Campbell: "When I was transitioning over             of key products at IBM including WebSphere, IBM's
from Mainframe COBOL back in 2000 and 2001, his              Java Virtual Machines, OS/2 and AIX. He graduated
book Programming Visual Basic 6.0 helped me over             with a BS, MS, and PhD from the University of Illinois
the hump by making sense out of the language within          in Champaign Urbana.
the IDE. Without him I would have probably relapse
back to the dark side (cue: Darth Vader breathing            Lance Olson is a Group Program Manager building
noises). My copy of his book is literally falling apart at   developer tools and runtimes for data on the SQL
the seams because I made such heavy use of it. It            Server team at Microsoft. Lance was a founding
still sits on my bookcase in a place of honor."              member of the .NET Framework team and has
                                                             contributed to Microsoft's developer offerings for more
Carl Franklin:          Yeah.                                than a decade with an emphasis on distributed
                                                             computing involving data and services. He has an
Richard Campbell: "Thanks so much for .NET                   MBA from the University of Washington and a
Rocks! I look forward to each episode."                      Bachelor's in Information Systems from Weber State
                                                             University. In 2003, Lance co-authored Network
Carl Franklin:          Wow, good.                           Programming for the .NET Framework. In his spare
                                                             time, Lance enjoys time with his family, hiking, skiing,
Richard Campbell: Thanks, Mike, and we'll send               and fly fishing.
you out a mug. And if you've got any questions,
concerns,     or    ideas,  fire    us   an   email,         Brad Abrams was a founding member of both the
dotnetrocks@franklins.net, we'll send you a mug too.         Common Language Runtime, and .NET Framework
You know, I notice that Mike did this transition in          teams at Microsoft Corporation where he is currently
2000, 2001, so he was over to Visual Basic just in           the Produce Unit Manager of the Application
time for .NET to ship.                                       Framework Team which is responsible for delivering
                                                             the developer platform that powers Rich Internet
Carl Franklin:          Yeah, that's fun.                    Application and core innovations in the .NET
                                                             Framework. Specific technologies owned by this
Richard Campbell:       Lucky.                               team include parts of Silverlight, the Managed
                                                             Extensibility Framework or MEF. Brad has been
Carl Franklin:         Well, but you know, Francesco         designing parts of the .NET Framework since 1998
really is the VB conversion guy.                             when he started his framework design career building
                                                             the BCL, the Base Class Library. Brad was also the
Richard Campbell:       He is THE guy.                       lead editor on the Common Language Specification,
                                                             the .NET Framework Design Guidelines and the
Carl Franklin:           That was a very useful show         libraries in the ECMA\ISO CLI Standard.
for a lot of people, I'm guessing.
                                                             Welcome guys.

Transcription by PWOP Productions, http://www.pwop.com                                               Page 3 of 12
                                                                                                  January 26, 2010

Lance Olson:            Yeah, hello.                          we found was that -- I'm on the data team here in the
                                                              SQL business and we've been focused on how
Carl Franklin:         Well, this is an interesting           people work with data in the context of their web
convergence of technologies here, but we're not               services and one of the things that we found was that
talking specifically about WCF or Silverlight. We're          there was a class of services where people would
talking about oData but I think we need a little              want to use datasets or collections to basically pass
background. Bob, do you want to start us off here?            amounts of data like object graphs of data back and
                                                              forth between two end points. So the kind of typical
Bob Dimpsey:            Yeah, let me give a little history    use case for this would be you have a service that
of services on .NET. Back in .NET Framework 3.0,              exposes a dataset as a return property to some
we introduced the Windows Communication                       methods and they call that and get the dataset down
Foundation or WCF, b a s i c a l l y the unified              on the client and then bind to it and manipulate the
programming model for writing services and these are          data and make some changes and send that back up
basically contract for us, ways to expose business            to the server and then merges those back into the
logic either to the web or to the enterprise. The             database. One of the things we found was that if we
basics of a WCF service itself consists of an address         took that class of services and instead of passing the
and a binding and a contract, and in general                  data as a parameter, we actually said all we're going
embraces both interoperability so you could expose a          to do is model the service, design the service to be
service and have it consume by a Web Service on               the resource that you're programming against. We
IBM or Oracle or Sun where you can expose it within           could do a bunch of interesting things. So for
your enterprise and take advantage of more                    example, paging is a common thing that people want
proprietary protocols to get higher performance. WCF          to do with data when they're returning it from services
itself, as I say, some of the valued props are the            and if we basically say instead of calling get
Unified Programming Model as well as being                    customers, we can just say there's a customer and
transport agnostic. What I mean by that is you can            you can do certain set of operations against the
plug in HTTP, you can plug in TCP MSMQ, etc, etc.             customer. We can build in semantics that apply to all
Also in coding agnostic, you can encode your                  sorts of resources like paging so we could say there's
messages either using binary or interoperable format,         a standard way to do "skip" and there's a standard
and finally host agnostic, it can run in IIS, it can run in   way to do "take," and that is the basis for what
NT Service, it can run in your own process. On top of         became data services and what we found is that for
this base stack, to expose web services we provide            the sets of services that are resource centric that's
security interoperable transactions as well as                been a really powerful thing because it allows us to
reliability. This was introduced in .NET Framework            have a uniform way to work with all sorts of different
3.0 and shouldn't be too new to listeners. A number           types of data and associated logic and even build
of years back the RESTful style of services was               standard clients and standard libraries that work with
becoming more and more popular, and REST has a                that stuff.
lot of nice fundamentals including ubiquity of exposing
to the clients in kind of a simplified way to expose          Richard Campbell: I'm sorry I just want to go
resources if you will.         WCF being a unified            clarification here. You said skip and take, this is
programming model, wanted to embrace this                     about paging sets of data?
architecture as well as the RPC-based architecture of
the SOAPful services and so in 3.5, in .NET 3.5 we            Lance Olson:           Yeah, like a catalog and you're
introduced RESTful or WCF REST if you will, often             trying to go through, you have a hundred items in the
known as Web HTTP Services. What this allows is               catalog and you're on page 2 and you're doing 10
you can map a URI to a specific service and some              items per page, you could skip the first 10 and take
query parameters along with that so that you can              the next 10.
expose services in a RESTful manner on the web.
We've enhanced this quite a bit in .NET 4.0 as well.          Richard Campbell:     Right.
Now, this is a very low level kind of a programming
model and recently both Brad and Lance's team have            Lance Olson:          And so if I was doing that with
introduced higher level programming models which              like custom service operation, I would have to define
may create in RESTful applications and end-to-end             a parameter in each operation that says where skip
application on Silverlight much easier to do. So I            and take exist.
hand it over to them to kind of talk about what they've
introduced to the WCF portfolio.                              Richard Campbell:     Right.

Carl Franklin:          Okay.                                 Lance Olson:          Whereas if I have -- with a
                                                              model-based approach I can actually define
Lance Olson:           So what my team have been              semantics for specifying skip and take and they can
working on is the thing called Data Services and what

Transcription by PWOP Productions, http://www.pwop.com                                              Page 4 of 12
                                                                                                 January 26, 2010

work against customers, orders, or whatever other           validation first on the server and the client to make
information I want to expose.                               sure that data that the user is typing in is kind of good
                                                            data. You have to do authentication because data is
Richard Campbell: Yeah, it's got to be nothing              very valuable. You want to make sure only the right
more than just saying this is the order that things go      people are seeing it. You want to be able to kind of
and here is the unit of pages.                              control that. Then there's also this called unit of work
                                                            concept where you want to be able to do a bunch of
Lance Olson:            Yeah, you can think of it more      operations on the client and be able to send those in
along the lines of defining what you want to be able to     a batch up to the server, have those kind of succeed
query so you could say I want to be able to query           or fail and get the air conditions back on the client and
customer and I'm going to write my business logic in        be able to expose those.
those terms. So instead of having a get customer by
state method, I would say I'm going to expose               Richard Campbell: All these things sound vaguely
customers, and then you could query customer by             in common with each other, guys.
state, or by zip, or by address and you can also page
over those queries. So it's a little bit different way of   Carl Franklin:         Yeah.
thinking about it. It's more resource focused than
operation focused.                                          Lance Olson:           Yes.

Richard Campbell: Right, yeah and it's really about         Bob Dimpsey:           Yes, there are similarities.
getting rid of a lot of repetitive methods.
                                                            Richard Campbell:      Does it seem somehow am I
Lance Olson:           Exactly.                             crazy?

Richard Campbell:      Okay.      Brad, I think it's your   Bob Dimpsey:           Let me try to answer that
turn.                                                       question a little bit. I think one of the things we're
                                                            introducing, and now we have rolled out at the PDC,
Brad Abrams:             Okay, great. So I guess RIA        was all of these are ways to write services. Certainly
Services was the last one to ship so we could all           the WCF SOAP-based RPC level of services has
laugh together. It's all good.                              been a way to write services for a long time. We've
                                                            provided a low level way to expose them in a RESTful
Richard Campbell:      Right.                               manner. RIA Data Services come at the problem in a
                                                            different way, and that's if you start with data one that
Brad Abrams:              So with RIA Services we took a    expose the model, if you will, out to the web or out to
little bit different approach. It's the problem we didn't   a model away to a URI which is indeed a service and
come into thinking about services. What we came into        in fact RIA Data Services are built on top of WCF so
thinking about is how do people build applications and      the underlying plumbing is the same but it's a different
how are they going to be building them in the future?       type of programming pattern. The RIA Services, on
Can we discover that there is this emerging pattern         the other hand, is a more prescriptive pattern, and if
that we're calling a RIA application pattern where          you're building a Silverlight application for instance,
people build applications that have a single app and        this would be a great place to start if you want an end-
has a meaningful component that runs on the server          to-end tightly coupled pattern for building a service-
and on the client? It's sort of a hybrid app. It's not      based client server application. So in a sense there
purely a server-based app, not a purely a client-based      are overlaps and one of the reasons why we build all
app but it's got code running in both places.               these on top of the WCF plumbing was because of
                                                            these overlaps. The power of the channel model and
Richard Campbell:      Right.                               the service model that WCF provides is a fully
                                                            extensible set of points so you can put in different
Brad Abrams:          There are lots of good reasons        transports, different formats, different protocols as
to put code in one place to the other, but the fact that    well as behaviors in the service model. All of these
you have code in both places as part of the same app        things are available or will be available in time to the
implies that you have to somehow communicate                RIA and Data Service writer which will provide the
between those and stitch that together, sort of             power of WCF with the simplicity of the higher level
unifying holes. So the place RIA Services sort of           programming models.
approach it is how can we help you kind of get rid of
the plumbing involved in those experiences where            Richard Campbell:      Okay.
you have to add a service reference, you have to
update that service reference every time you touch          Carl Franklin:         Okay.    We're waiting for that
the service which when you're building an app is very       next segue.
frequently. You have to worry about how to do

Transcription by PWOP Productions, http://www.pwop.com                                              Page 5 of 12
                                                                                               January 26, 2010

Richard Campbell: Yeah. This sounds good but it
doesn't sound easy either.                                Carl Franklin:        S o w e 're now to call it WCF
                                                          Data Services and it's using WCF, and oData is the
Brad Abrams:           Well, not easy. I mean, one of     protocol which is what you just alluded to. Do we
the things we did as Bob alluded to with RIA Services     think that a lot of people are going to know what
is we actually at the PDC we released our draft that      oData is?
was built 100% on WCF. Now RIA Services literally is
a WCF service.                                            Lance Olson:            I'll take this one. So for the
                                                          longest time we didn't have a name for it. We called it
Richard Campbell:      Right.                             the, this is a great one, the ADO.NET Data Services
                                                          Extensions and Conventions to the Atom Publishing
Brad Abrams:           And so consequently we re-         Protocol.
branded it to be WCF RIA Services to indicate the
technology change that we did. It was interesting as      Carl Franklin:         Oh, that's a mouthful.
we roll this change out to customers, some of those
customers said to me "Oh no, I don't like that. I don't   Richard Campbell:      That's awesome.
like that you're both on WCF for WCF RIA Services."
I'm like "Oh, why not? What's the problem?" "Well,        Lance Olson:           That's great, isn't it?
because WCF is complicated."
                                                          Richard Campbell:      The acronym comes out as...
Richard Campbell:      Right.
                                                          Lance Olson:            It's rules right off the tongue,
Brad Abrams:           And I'm "Oh, okay." So I've        heads roll right off. So what we found though was
totally got that under control for you because what       that there were a lot of different products and mainly
we've done is, as Bob said, we've kind of hidden all      our focus had been inside of Microsoft, but even
the plumbing associated with WCF so it's all there. If    some outside are starting to implement the protocol.
you need that power, it's there but we've made a          In fact, two of the big ones that have implemented it
bunch of meaningful default. None in terms of the         are SharePoint and then we have a client called
default web.config, but in terms of what we have by       Power Pivot that plugs into Excel, in Excel 2010. At
default with RIA Services. It takes the last four years   that point, you had SharePoint and Excel talking to
of best practices from deploying WCF Services into        each other and you really didn't have -- it wasn't clear
account.                                                  that I mean just because they were using the
                                                          ADO.NET Data Services Protocol, I won't say the
Bob Dimpsey:             Yeah. I would add that the       whole name, didn't really matter. They were just
customer feedback on RIA Services so far has been         talking to each other because that format was useful
overwhelmingly positive as far as the ease of use of      to them and that's kind of what led us to saying we
getting it up and running for an application especially   need to create a standalone way to talk about the
Silverlight application.                                  protocol because the approach we have taken with
                                                          the protocol is what we believe is a broad set of
Richard Campbell: Sure and that always has been           integration in terms of how systems work with data
the strength of the RIA Services approach. This is        and we've seen a lot of just natural uptake because it
really taking on those things that we were trying to do   allows you to. It's very simple, it's AtomPub-based
by hand and it was hard.                                  protocol, textual on top of HTTP. One of the core
                                                          design principles we had with the protocol was really
Bob Dimpsey:         Yes and I think the point is         to invent as little as possible and just use all that's
none of that goes away.                                   there already in the web between HTTP and AtomPub
                                                          and JSON.
Richard Campbell:      Right.
                                                          Richard Campbell:      Right.
Brad Abrams:          What's now allowed is that's
built on top of a very strong infrastructure so if you    Lance Olson:           And so, yeah, I think it's going
want to take your RIA Service and expose an oData         t o b e -- you know, in the last 12 months there has
endpoint, and Lance will tell us what an oData            been an indication, I think it's going to be very widely
endpoint is...                                            adapted just because it enables a new kind of
                                                          integration between systems that we haven't seen
Carl Franklin:         Right.                             before.

Brad Abrams:            That's available to you.          Carl Franklin:        This portion of .NET Rocks! is
However, you're not mandated to go do that but we're      brought to you by our friends at Telerik who bring you
not closing the door off for you either.                  the Telerik Extensions for ASP.NET MVC. The

Transcription by PWOP Productions, http://www.pwop.com                                             Page 6 of 12
                                                                                                   January 26, 2010

Extensions bring rich UIs to your MVC application.             didn't share anything with WCF. This was in kind of
These are just announced and this time they're not             the early prototypes, and we went and I met with
standard Web Forms controls tailored for MVC, but              Bob's team and spend some time working with them
native built from the ground up MVC components.                on it and we decided to actually make it a lot more
There are three important things to remember: One,             WCF-like. One of the things we did was we shared
the pure ASP.NET MVC components, two, they're                  the extensions so every data service that you create
based on jQuery, and third, and this is the best part,         using the .NET platform is a .STC service and we
they're completely open source.          Just go to            extended the same like add service reference dialog
www.telerik.com/mvc for more information and online            so that in Visual Studio you get the same experience
demos.      And make sure you thank them for                   that you'd get within the other WCF service. So in
supporting .NET Rocks!                                         those sense, and the fact that we plumbed it such that
                                                               it actually runs through the activation path over the
Now you said it's textual, is it essentially? Is XML in        WCF stack so in that sense, yes, it is absolutely a
there somewhere?                                               WCF service. There's more that we have planned to
                                                               do to more deeply to integrate it. So for example,
Lance Olson:       You can either get results back             today the service operations that you run aren't full
as AtomPub which is an XML-based format, or as                 WCF service operation and we would like them to be,
JSON depending on what your client needs are.                  and that's something that Bob and I are focused on
                                                               designing between the two teams.
Carl Franklin:          So you can use any...
                                                               Bob Dimpsey:           If you think of the WCF stack
Lance Olson:          Yeah.     I don't know if you            as first having a programming model on top and then
consider JSON to be textual as well. I mean, they are          a service model layer which is think of it as a pipeline
all ones that you could basically pull up a protocol           where you can plug in behaviors and has as much a
debugger or even just sit them in the browser and you          behavior as those already there, and then at the
can see what you're getting back.                              bottom channel model which has deserialization if you
                                                               will, and then actually deserialization is up a little
Richard Campbell:       They're       largely       human      higher but channel model has basically the encoding
readable.                                                      of the message and then sending and receiving the
                                                               message and the channels much like the TCP/IP
Lance Olson:            Right.                                 stack. The architecture of WCF Data Services or
                                                               Astoria as you affectionally call it, comes in through
Richard Campbell: Well, and this has been --                   the web HTTP programming model if you will whether
we've seen this intersection coming for a while and I          it's HTTP Services Programming Model using the
hate to admit this to you guys, but I'd pretty much            same attributes in .STC files and then when it gets to
admit it to anybody else that I still refer to it as Astoria   the service model a kind of fork does its own dispatch
because everybody knows what I'm talking about                 layer.
when I call it Astoria.
                                                               Richard Campbell:      Right.
Lance Olson:              Yes. The team never loses a
chance to point that out to me whenever they can.              Bob Dimpsey:            So in a sense it goes through
We still call it Astoria every once in a while.                its own kind of dispatch layer and then comes
                                                               together as kind of a zooming HTTP as the channel.
Richard Campbell: Well, just because in ADO.NET                So there's certainly a fork in the implementation of the
Data Services, when you plug that into a search                architecture of the code. That being said, these are
engine you can't get anything like it's search resistant.      WCF Services and as Lance notes we do want to
                                                               align these things even closer in their implementation.
Carl Franklin:          Oh well.                               We're seeing what can be done there.

Richard Campbell: But WCF Data Services is I                   Richard Campbell: And to me the key strength
guess a little bit better.                                     here would be, you know, WCF has always had that
                                                               ability to go deep so when you suddenly had to do
Carl Franklin:          Yeah.                                  encryption it was just a modification to the endpoint
                                                               like it was very much a configuration-based tuning of
Richard Campbell:       I mean, I guess the question is        your communications. So that to me was its strength.
it really WCF?                                                 It just was intimidating to get started with.

Lance Olson:          Yeah. So when we first started           Bob Dimpsey:          Yes, that's one of the things
it wasn't. We had a different extension for the service        about WCF that is definitely one of the positive things.
and we had a different implementation that really              You write your business logic one time and then you

Transcription by PWOP Productions, http://www.pwop.com                                                Page 7 of 12
                                                                                                  January 26, 2010

can expose it. What we see there that resonates             Bob Dimpsey:            Yeah, but with the Wizard I
quite a bit with the customers is they'll write             believe as you note and we are investing in this also,
something and expose it broadly over HTTP and then          the Wizard will help with that too.
they can turn around and take that exact same
service, just change a few things and config, use a         Carl Franklin:         Right. Translated into human
binary format in TCP/IP and have a much faster              terms, what exactly are you trying to do here?
enterprise ready service.                                   Getting back to oData for a minute, that's sort of just a
                                                            little bomb we drop on people but pretty widespread
Carl Franklin:        I think Richard's point was that      support coming anyway. Some of the technologies
just change a few things in config can be daunting. I       that are adapting are the SharePoint, and as you said
think that's where the WCF consultants are really           SQL Server 2008 R2, Power Pivot, Azure Table
making their earnings, their keep out there...              Storage, and even WebSphere eXtreme Scale, right.
                                                            Are there others that are not on that list that I've
Bob Dimpsey:           Yeah.                                missed?

Carl Franklin:       Because it is complex and              Brad Abrams:              Yeah. Well, there's -- let's see.
there are so many ways that you can configure.              We have clients. We've implemented a number of
                                                            different clients for it. So there's a Java client that you
Brad Abrams:           As long as we're on the subject      can get from Microsoft, there's a PHP client, and then
of the complexity of WCF, I will say that we are trying     an AJAX client, and of course the .NET client. One of
to take some of the money out of the WCF                    the ones that we're really looking forward to coming
consultants' pockets in .NET 4.0.                           up later on this Spring is a number of the different
                                                            data sources that we have in Live will be enabled
Richard Campbell:      Did you hear that, Juval?            through oData. So we're working with the Live team
                                                            to expose that.
Carl Franklin:         Yeah.
                                                            Richard Campbell: One of the things I always like
[Laughter]                                                  about Astoria where I really thought it was the
                                                            intersection point of where data access was going,
Richard Campbell:      They’re after you, man.              was that it supported speaking to SQL Server and
                                                            speaking to SQL Azure. I mean those two things
Carl Franklin:         All right, Christian, here we go.    together seem very compelling that minimal code
                                                            changes based on just a configuration change and I'd
Bob Dimpsey:             We've done a few things that       be writing my data to the Cloud rather than writing it to
you can read about on our blogs to improve the config       my local database.
simplication, make config look a little bit more like you
would expect from an ASP.NET point of view as far           Lance Olson:          That's right. One of the things
as inheritance and things like that, as well as work a      that we're seeing now, I think we're seeing this most
little bit on the tooling to make the creation of WCF       with SharePoint because with SharePoint 2010 the
Services and the config editing experience a little bit     interface for programming against an on-premise
better.                                                     install of SharePoint and a Cloud hosted install of
                                                            SharePoint is both oData, both the services API. So I
Carl Franklin:       I was just going to say are            can write that code the same way whether it's going
there good Wizards coming in UI and things like that?       on parameter, off parameter and if I can do that and
                                                            start to mix in a bunch of different servers so I can
Bob Dimpsey:              Wizards will be next. We don't    program against an on parameter, off parameter SQL
have Wizards yet, but we certainly have made some           Azure or SQL Server install or SharePoint install and
simplifications and config modifications themselves,        get consistency, coherency across the APIs that I'm
and if you look at the tooling that we ship in config       using for all of those and I can mix and match
editors you can expose all the parameters really            between servers and between their location whether
easily so you don't have to worry about hand-editing        they're hosted or local, that's a pretty powerful thing
any of the kit config anymore. It's just trying to          we believe.
understand what all those different knobs means are
still some of the difficulties.                             Richard Campbell: Yeah, absolutely, this whole
                                                            idea of just seamlessly shifting between these
Carl Franklin:         Well, and that will always be a      different things. You have Excel Pivot table, I've been
challenge I imagine.                                        looking at it because it looks like it's going to be
                                                            Microsoft's answer to Business Intelligence clients as
                                                            well. The oData thing sort of caught me by surprise
                                                            because now it can consume pretty much anything.

Transcription by PWOP Productions, http://www.pwop.com                                               Page 8 of 12
                                                                                                   January 26, 2010

                                                             do that. In fact, I found out about it on – somebody
Lance Olson:            That's right.                        sent me a YouTube video of the WebSphere guys
                                                             talking about how they had implemented it, and yeah,
Brad Abrams:            In fact, an oData client is RIA      their motivation they described in their video was kind
Services. It's going to start exposing oData hopefully       of exactly what we were looking for which was a way
with our next draft here.                                    to really open up a lot of that information and enable
                                                             systems to start interacting and integrating their data
Carl Franklin:          Wow.                                 in a way that typically is impossible today because the
                                                             application tends to style load the data today.
Richard Campbell: Right. So now I could literally
go to a Silverlight app and use Excel to get it to           Carl Franklin:          And for using WCF Data
Silverlight backend service.                                 Services, are we still able to use our WS-Star stack?

Brad Abrams:            Yup, yup. When you write that        Bob Dimpsey:              In the let's say .NET 4.0
Silverlight app, just enable oData and then, yeah, I         timeframe, if you've kind of built a bunch of WCF Data
can hit it from Excel or from any of the oData client.       Services or Astoria Services today we have to make
                                                             some modifications in order to kind of get and expose
Richard Campbell:       And off it goes.                     interoperably through WS-Star. However, given the
                                                             encapsulation of business logic, that's fairly easy.
Carl Franklin:          Is the main attraction of the        The interesting kind of dissidents between WS-Star if
Open Data Protocol that it can use both AtomPub and          you will and kind of a resource-based approach is not
JSON or does it give you anything above and beyond           really the protocol per se, but basically how you write
that? I mean, when I first heard about it I was like         your application. When you approach an application
"Okay, yet another data protocol. Don't we have              based on resource, that's quite a different way of
enough of these already, guys?" But what is it about         thinking than approaching an application based on
oData that is so attractive?                                 operations. Normally, what you see with WS-Star is
                                                             an operation-based approach, and with WCF Data
Lance Olson:            Well, I do think a big piece of it   Services it's r e s o u r c e -based approach.       Now
is really just pulling together a number of concepts         oftentimes the applications have a little bit of both.
that are already used out there. It tries to not invent a
lot of new, just really combining a lot of this existing     Carl Franklin:         Right.
stuff in a slightly noble way. But I hate to -- the two
biggest things that I see when I talk to people about it     Bob Dimpsey:          So the nice thing about getting
are: one is we've managed to align a lot of the              these all under one stack is that you can write part of
Microsoft platform behind it. Whether you're talking         the application and expose your resources and part of
about servers or clients, having a kind of one stop          your application operation base. If you start with the
place where you can, you know, ecosystem where               WCF Service, in time y o u 'll be able to take and
you can participate and be able to make your data all        expose that WCF Service within oData ahead if you
available to Excel and other clients or likewise on the      will. Depending upon how much of the oData protocol
server-side being able to consume all sorts of               that your WCF Service inherently has, you'll be able
different data, that I think is one of the most              buy into as much of the oData ecosystem as you can.
compelling pieces, and the other is that it's a pretty
simple way to get out the data. There's not a lot of         Carl Franklin:         Okay.
overhead to getting up and going. We've tried to be
really lenient in how much you can participate so that       Richard Campbell: N o w , d o e s n't Google have
the bar for getting into the game is just as simple as       something similar to this called G Data?
having an RSS feed and then if you want, if you're
able to produce more complicated feeds then you can          Lance Olson:          They do.     We've started a
get a more interesting scenario to work, but the bar to      conversation with them about these and are looking to
get in is very low.                                          engage with them on ways that we can kind of bring
                                                             the two things together.
Carl Franklin:         And is it as attractive to non-
Microsoft centric shops as well? I mean, I see we're         Richard Campbell: Yeah, because they're both
talking about the Java client and the PHP client, AJAX       sort of AtomPub subscription technology, right.
client, and on the server-side, WebSphere, I mean
that's pretty as non-Microsoft as it gets.                   Carl Franklin:         Interesting.

Lance Olson:              Yeah. I mean I think the track     Lance Olson:           You know, once again it kind of
record of course will be the best evidence there. We         goes back to that a lot of the stuff isn't stuff that we
didn't really -- I didn't go ask the WebSphere team to       really invented. It's r e a l l y kind of leveraging a

Transcription by PWOP Productions, http://www.pwop.com                                               Page 9 of 12
                                                                                                  January 26, 2010

movement that's going on out there in general which        organic thing. I don't know how it's been that we've
is related to AtomPub and HTTP.                            gotten by so long without it showing up but it does
                                                           seem to hit a sweet spot for those cases where what
Richard Campbell: Yeah, but we're trying to create         you're about is exposing and interacting with the
a standard here, right. I don't want to say ODBC           resources.
because that's like poison, but the joke that comes to
my mind is how many Microsoft in years does it take        Carl Franklin:       Speaking of that, what is the
to change the light bulb? None, that just makes the        Microsoft Open Specification Promise?
darkness standard.
                                                           Lance Olson:            Let's see.
Carl Franklin:          So that's true. I mean, the W3C
is pushing several other stacks for OpenLink Data. I       Carl Franklin:          In 10 words or less, go. Just in
mean, this isn't the only one out there.                   general.

Lance Olson:            That's right. So the first step    Lance Olson:          The intent of the OSP is we
we've done along those lines is we took the -- when        want to promise customers that we won't make, we
we announced oData, we took the specs that we had          won't assert any Microsoft necessary claims against
created and release them under the Open                    the customer that makes or uses or sells, or offers for
Specification Promise just to let people know that our     sale the spec that we describe under the OSP.
intent really is to encourage broad adaption where
right now we're doing a number of other things that        Carl Franklin:          Okay.
you'll see over the next several months coming out.
The spec as it exists today is fairly large, I think 200   Lance Olson:           So it helps them, it tells you
and something pages, and so we're in the process of        that "Hey, this spec is something we want you to be
factoring it into more consumable chunks that people       able to go use for whatever purposes you want to use
can work with that are consistent with what I was          it and we won't issue patent claims or enforce patent
saying about kind of the pay to play model where you       claims saying that you infringed on our patents or
choose the piece that you're interested in that makes      other intellectual property rights by using these
sense for your app. You don't have to implement the        specs."
whole spec. You can just implement parts and then
participate, and we're definitely open to taking oData     Richard Campbell: There have been cases, and I'll
to a standard's body and there kind of go into the         leave company names out but it's not Microsoft, but
process right now of engaging with partners and with       there have definitely been cases where sort of APIs
our reps, the different people at Microsoft that work on   have been published with fairly open rules for using
the standard's body to figure out the right timing on      them and then three years down the road the rules
when and how to do that.                                   changed and destroys somebody's business.

Bob Dimpsey:           I think you can see this oData      Carl Franklin:          Yeah.
openness as part of a push in .NET over the last
decade to make .NET itself a more open platform            Bob Dimpsey:            Uh-hmm.
both for standards and other means. WS-Star of
course was the first example of that and we still invest   Richard Campbell: So is this just a way of you
heavily in making sure that our implementations of         guys saying very clearly "Hey, if we put this under the
WS-Star are standard and interoperable with all the        OSP, it means we're not going to do this to you. It's
major players in the industry so that you can build an     wide open, do what you want."
application that communicates with WebSphere, or
Oracle, or SAP, or Sun, or WSO2, etc, etc.                 Brad Abrams:          That's right. Yeah, OSP, the
                                                           Open Specification Promise is described at
Richard Campbell: Yeah, it's just one of those             microsoft.com/interop/osp and so I don't want to, you
things where it seems so apparent that we need this        know...
and yet somehow we've just gotten by without it.
                                                           Carl Franklin:         Y e a h , w e 're   not   going   to
Lance Olson:              Yeah. You know, I'll tell you    paraphrase it here. It's just a...
like one of the biggest resource, one of the biggest
things that my team spends our resources on is really      Brad Abrams:            Paraphrase...
keeping up with the number of partner and customer
conversations around helping them integrate it into        Carl Franklin:          Yeah.
their products like it's really the responses have been
overwhelming in terms of the kind of opportunity that      Brad Abrams:            So I'd recommend people to go
we've hit upon here and it's really been kind of an        look at it, and the intent really is to encourage broad

Transcription by PWOP Productions, http://www.pwop.com                                                Page 10 of 12
                                                                                                       January 26, 2010

adaption of the specs that we put under that promise
and let people know that we want them to go do that         Lance Olson:             And so it's really just applying,
and that they can do that without a worry that they're      and I'm taking some of the goodness that's out there
going to be infringing on our rights.                       and just applying it to this domain.

Bob Dimpsey:            It's one    of   the     many       Richard Campbell:          Right.
mechanisms that Microsoft uses to kind of make .NET
more open and interoperable. You know, you've               Lance Olson:            Yeah and you get things like,
mentioned the W3C earlier and we definitely                 you know, proxies participate and all of the standard
participate in it heavily. We're also participating in      HTTP caching that you might have in an organization,
OASIS as well as WSI to work with other companies           or the firewall support and all that kind of stuff just
to kind of document and kind of sign up for                 continues to work again and it's really nice when you
interoperable protocols, and again it's not more, it's      can take your data and run it through the same
less about API and more about protocol in general.          infrastructure you've already got in place.

Carl Franklin:         Okay.                                Richard Campbell: Yeah. The transfer to a whole
                                                            other layer of data there, that's what I find interesting.
Richard Campbell: Yeah, it makes sense to the               I mean, ETags are normally just used to confirm that
protocol context because, well, AtomPub is an open          an image is changed or not for caching. This is
standard anyway. It's seems like it's been neglected        thinking about it in a different level entirely. It's very
but it's used in a lot of places. It's the alternative to   clever. So what's coming next, guys? Where are we
RSS, right?                                                 going to see this whole thing coming together?
                                                            Obviously you've got a few products already in line.
Brad Abrams:         Yeah and it's really the only          Are there other key products we're going to see in
thing we have under the OSP are the extensions that         play?
we've added because as you say, you know,
AtomPub and HTTP are just general standards out             Brad Abrams:            O b v i o u s l y w e 'r e s h i p p i n g
there...                                                    Silverlight 4.0 which does have -- it does ship RIA
                                                            Services in there with this oData support, and then I
Richard Campbell:      Yeah, they're out there.             think what we're doing or what we're thinking about in
                                                            kind of longer term is how can we take some of the
Brad Abrams:           We're just using them as they        innovations we've done in both Astoria and RIA
exist.                                                      Services and plumb those deep into the WCF stack
                                                            so that they can be more widely used. The things like
Richard Campbell: That was the whole point. So              validation or this queryable support at any WCF
the fact that you added to it and said here's how           Service is kind of a first class notion of query ability,
we've done the additions and we're not going to             or any argument can be validated in the same way
protect this, well, we're going to follow the OSP rules.    that RIA Services does validation.
Let's not say it's not protected. I just took a quick
glance through OSP and it's sort of "Hey, you don't         Bob Dimpsey:            On the WCF side, you'll see --
get anything from us, we don't get anything from you"       when .NET 4.0 and Dev 10, Visual Studio 10 is
kind of thing over that.                                    released later this year, you'll see a bunch of
                                                            enhancements to the whttp services or REST support
Lance Olson:          Yeah. We really just applied          for RESTful WCF Services including things like
things to those standards. So for example some of           content negotiations so you don't have to expose your
the systems that you might go against like if you're        endpoints differently for different content types and
going against the database, it would support                we'll negotiate that correctly for you. We've also
optimistic concurrency.                                     encapsulated a help page if you will. It's kind of a
                                                            poor man's metadata for RESTful Services, or if you
Richard Campbell:      Right.                               point your browser at a RESTful Service from WCF
                                                            you'll see some code snippets and proxies so that you
Lance Olson:           So what we did was we                can go on ahead and invoke those things. You'll
mapped, we created a way to map optimistic                  know that most people who expose things RESTfully
concurrency in with ETags. So you can use ETags to          have to go and kind of document offline somewhere
get concurrency and what that does is systems that          what the XML looks like when it comes back. In .NET
already understand each ETags don't have to come            4.0, we have a mechanism where you don't have to
up with a new mechanism for doing concurrent,               go and write that off to the sides and where when you
optimistic concurrent updates against their database.       point at that service you can actually get that back
                                                            and take a look at it.            So you see some
Richard Campbell:      Cool.                                enhancements for web HTTP Services in .NET 4.0.

Transcription by PWOP Productions, http://www.pwop.com                                                    Page 11 of 12
                                                            January 26, 2010

The other thing that they kind of throw on the mix
here, well, it's not a RESTful Service at all. We've
done quite a bit of work in .NET 4.0 and Dev 10,
which will come out later this year as I said, in writing
services as long running durable workflows and that's
interesting for a number of reasons. One is it's a
higher level abstraction for writing a service and
allows durability. You know, these services can run
for weeks or years and be put away in a database,
and also it allows the visual experience for creating
business logic. So you'll see that in Dev 10 as well.

Carl Franklin:       Excellent. So guys, can you
point us to some resources we can go to check this
stuff out?

Brad Abrams:         Sure. I mean for RIA Services,
you can do HTTP, Silverlight, .NET or whack RIA
Services. That's kind of our home for information
blogs or whatever about RIA Services.

Carl Franklin:         Okay.

Bob Dimpsey:        For Windows Communication
Foundation and WF, I would just go to the Dev
Centers off at msdn.microsoft.com and look for the
Windows, WCF and WF Development Centers.

Lance Olson:           For    the   Data    Services
resources I would go to msdn.microsoft.com, whack
Data, and then also to learn more about oData just go
to odata.org.

Carl Franklin:         Very good. Thank you, guys.

Lance Olson:           Thank you.

Brad Abrams:           Thank you.

Bob Dimpsey:           Thank you.

Carl Franklin:         And we'll see you next time on
.NET Rocks!


Carl Franklin:        .NET Rocks! is recorded and
produced by PWOP Productions, providing
professional audio, audio mastering, video, post
production, and podcasting services, online at
www.pwop.com. .NET Rocks! is a production of
Franklins.NET, training developers to work smarter
and offering custom onsite classes in Microsoft
development technology with expert developers,
online at www.franklins.net. For more .NET Rocks!
episodes and to subscribe to the podcast feeds, go to
our website at www.dotnetrocks.com.

Transcription by PWOP Productions, http://www.pwop.com        Page 12 of 12

To top