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
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...
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
email@example.com, 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.
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
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?
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
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
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
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