WCF Web APIs Roundup – Volume 1
A little over a month ago we launched our new WCF Web Apis on Codeplex. Since then a bunch of folks in the community (and some internal folks) have been posting about their own explorations / thoughts of the new bits.
Breaking news from around the world Get the Bing + MSN extension
Glenn Block – .NETFX Another ALT.NET guy at Microsoft
A little over a month ago we launched our new WCF Web Apis on Codeplex. Since then a bunch of folks in the community (and some internal folks) have been posting about their own explorations / thoughts of the new bits.
Recently I had a customer email me looking for information on how to send and receive large files with a WCF HTTP service. WCF supports streaming specifically for these types of scenarios. Basically with streaming support you can create a service operation which receives a stream as it’s incoming parameter and returns a stream as it’s return value (a few other types like Message and anything implementing IXmlSerializable are also supported).
Do you use WCF within your organization either for internal apis for exposing services and functionality to 3rd parties? We’re looking to connect with customers using our stuff in the real world so we can understand your use cases, the things you’ve liked about WCF and where you’d like to see us improve / go further.
At PDC in my session “Building Web APIs for the Highly Connected Web” we announced WCF Web APIs, new work we are doing to make HTTP first class in WCF. In this post I am going to describe what we are doing and why.
If you are building for the web and the cloud, then you know that HTTP is important. WCF is no stranger to HTTP. Since .NET 3.5, we’ve been continually delivering capabilities in the platform to enable developers to expose services as resources over HTTP. Now we’re looking to raise the bar several notches.
After my last post, I had quite a healthy discussion with Alex Hung (@alexhung) on you guessed it, testability and mocking. Alex’s observation was although my extension methods were easy to use, they were difficult to test. He had gone and implemented a similar user experience but through using a custom wrapper which added Publish and Subscribe methods but called to EA under the covers.
It’s been quite a while since I worked with Prism’s EventAggregator. Today however I need to use it. As soon as I started to write my code, I heard my friend Jeremy Miller in my head saying how much he hates the ceremony of
Tonite I came across this really nice post from Kelly (@kellabyte) on how passion drives her to continually learn and explore. She also talks about how a simple idea ends up igniting the fires and quickly spawns into putting in a lot of late nights 🙂 Kelly also talks about the challenge of finding an environment that lets you fulfill those desires as part of your day job rather than just in the off hours.
As I mentioned in my previous post, I am in the UK for the week. Sebastian Lambla (OpenRasta) has been kind enough to organize a dinner so I can meet all my geek friends from the Isles. If are in London near Victoria on Thursday eve,
Next week I’m coming to the UK where I’ll be spreading the MEF love at FEST 10 and in events in a few other cities. I’ll also be talking about REST and the new work we are doing in WCF to provide a better experience for building RESTful systems. In this post I share the event schedule.
Uncategorized
In my last post I talked about the new goodies we added to Powershell. Well I meant to get a follow up post to tell you about many of the same features which we also added to cross plat “azure” command line tool,
A few weeks ago we held an event in China called HuJS. This was an event that Troy Howard and I dreamed up when I landed in China in July (Yes I was living in China for 3 months, but that is for another post!). With the the help of a great team and with folks like Mikeal Rogers and Chris Williams advising us from the sidelines, we were able to make it happen.
Several folks have been complaining for a while about Action Links not being properly generated when MVC routes are mixed with Service Routes in the same site. It turns out there is a solution.....don't use ServiceRoute. Instead, create a derived route below and use it. [Kudos to Phil Haack and Clemens Vasters for this]
If you’ve watched any of my recent talks, one book you may have heard me mention quite a bit is “REST In Practice” by Jim Webber, Savas Parastatidas and Ian Robinson. The thing I really like about this book that differentiates it from others on REST is that it broaches the concept of REST in the enterprise. I share more in this post.
In WCF Web API we have 2 extensibility points which seem very similar. They both are designed for very different reasons. Recently the question of which to use when popped up on our forums. Below is some guidance.
Message Handlers
Message handlers (Currently DelegatingChannel but will be renamed to DelegatingHandler) only deal with http messages (hence the name),
A few folks have been asking if it is possible to serialize/deserialize using the DataContractSerializer. Rest assured, yes it is possible. Now whether or not it is the easiest/most intuitive model well that it is a different question.
If you read to the end the post you will see a bunch of extensions which have been pushed to webapicontrib and make this all MUCH easier (at least I think).
Updated (with a lot of new content)
One challenge when building REST based systems is how can the client determine what it can do next? There can be any number of clients each which need to interact with a system. How do they know HOW to interact?
MIX was indeed a busy time for the WCF Team. We delivered several talks, and released several shiny new toys to the community for folks that are building web-based systems. Learn more in this post.
REST is primarily about 2 things, Resources and Representations. If you’ve seen any of my recent talks you’ve probably seen me open Fiddler and how our ContactManager sample supports multiple representations including Form Url Encoded, Xml, Json and yes an Image.
Been a while since our last roundup and since my last blog post for that matter! Fortunately there’s been a bunch of cool stuff going on in the community with our Web APIs that I can point you to. Great to see the community momentum pick up as we cross the 5000 download mark on Codeplex!