Welcome to Windows Communication Foundation (WCF)
Top Tasks :

WCF Team Bloggers

Browse by Tags

All Tags » MSDN   (RSS)

  • Good Morning. It's 2008 and I have a new job.

    2007 I've posted some 30 entries on my blog. That's what some of the "Whoa, listen to me, I am so awesome!" blogging crowd of today typically does in a day or two. 2008 promises to be so interesting that it would be a shame not to be blogging, and hence I do. There'll be lots of things going on in tech and in the world. Over the past year I've been very deeply involved in the still rather stealthy project ' Oslo ' about which we'll talk about in MUCH more detail throughout this year than we have at the recent conferences. When you are in a project with tight disclosure constraints there's really nothing of any substance to talk or blog about. Hence I didn't. However, since Wednesday I have a new job. I'm now getting my hands dirty by writing code for our Internet Service Bus infrastructure that's currently code-named 'BizTalk Services' . Here, the rules of the game are very different. We're actually building most of the stuff out in the open and are inviting people to play with it. That's really more in the spirit of how I've been working with the community in the past and therefore I'm looking forward to the fun that's to be had in this new team. Beware; since I gather that I've lost about 95% of my readership of my main at http://vasters.com/clemensv blog due to my inactivity I will use the opportunity to adjust the agenda and make it a "everything that I find interesting" place. Expect political opinion. My MSDN blog at http://blogs.msdn.com/clemensv will get mirrored copies of the tech topics as I've done that since I work here at MSFT. If you just care about the tech stuff read the MSDN mirror. Read More...
  • SOA and Business Process Conference 2007

    You are in North America and not in Europe ? You want more content than what fits into a track at TechEd? No problem! Just come to the SOA and Business Process Conference that we're running October 29 - November 2 at the Microsoft Conference Center here in Redmond. There'll be lots of very interesting new stuff from teams across our division here at Microsoft. And our boss speaks, too. If distributed systems and composite applications are your thing, you should be here for that conference. No debating, sign up and come! Read More...
  • Live again at TechEd Barcelona: The Steve & Clemens Show

    Even though the TechEd Europe Developer Website doesn't yet clearly say so, Steve Swartz and myself will "of course!" be back with a new set of Steve & Clemens talks in Barcelona for TechEd Europe Developer (November 5-9). And for the first time we'll stay for another week and also give a talk at TechEd Europe ITForum (November 12-16) this year. What will we talk about? Last year we've started with a history lesson, did a broad and mostly technology agnostic overview of distributed systems architecture across 4 talks and closed with a talk that speculated about the future. This year at the TechEd Developer show, we'll be significantly more concrete and zoom in on the technologies that make up the Microsoft SOA and Business Process platform and show how things are meant to fit together. We'll talk about the rise of declarative programming and composition and how that manifests in the .NET Framework and elsewhere. And as messaging dudes we'll also talk about messaging again. At TechEd ITForum we'll talk about the end-to-end lifecycle of composite applications and how to manage it effectively. And of course there'll be "futures". Much less handwavy futures than last year, actually. So .... We'll be in Barcelona for TechEd. You too? Read More...
  • LiveID + CardSpace

    Check this out . Read More...
  • Sin, Sin, Sin: How to do Simple, Webby, and Completely Insecure ASP.NET Membership Authentication and Role Authorization with WCF

    We're all sinners. Lots of the authentication mechanisms on the Web are not even "best effort", but rather just cleartext transmissions of usernames and passwords that are easily intercepted and not secure at all. We're security sinners by using them and even more so by allowing this. However, the reality is that there's very likely more authentication on the Web done in an insecure fashion and in cleartext than using any other mechanism. So if you are building WCF apps and you decide "that's good enough" what to do? WCF is - rightfully - taking a pretty hard stance on these matters. If you try to use any of the more advanced in-message authN and authZ mechnanisms such as the integration with the ASP.NET membership / role provider models, you'll find yourself in security territory and our security designers took very good care that you are not creating a config that results in the cleartext transmission of credentials. And for that you'll need certificates and you'll also find that it requires full trust (even in 3.5) to use that level of robust on-wire security. dasBlog has (we're sinners, too) a stance on authentication that's about as lax as everyone else's stance in blog-land. There are not many MetaWeblog API endpoints running over https (as they rather should) that I've seen. So what I need for a bare minimum dasBlog install where the user isn't willing to get an https certificate for their site is a very simple, consciously insecure , bare-bones authentication and authorization mechanism for WCF services that uses the ASP.NET membership/role model (dasBlog will use that model as we switch to the .NET Framework 3.5 later this year). The It also needs to get completely out of the way when the service is configured with any real AuthN/AuthZ mechanism. So here's a behavior (some C# 3.0 syntax, but easy to fix) that you can add to channel factories (client) and service endpoints (server) that will do just that. If you care about confidentiality of credentials on the wire don't use it . For this to work, you need to put the behavior on both ends. The behavior will do nothing (as intended) when the binding isn't the BasicHttpBinding with BasicHttpSecurityMode.None ). The header will not show up in WSDL. On the client, you simply add the behavior and otherwise set the credentials as you would usually do for UserName authentication. This makes sure that the client code stays compatible when you upgrade the wire protocol to a more secure (yet still username-based) binding via config. MyClient remoteService = new MyClient (); remoteService.ChannelFactory.Endpoint.Behaviors.Add( new SimpleAuthenticationBehavior ()); remoteService.ClientCredentials.UserName.UserName = "admin" ; remoteService.ClientCredentials.UserName.Password = "!adminadmin" ; On the server, you just configure your ASP.NET membership and role database. With that in place, you can even use role-based security attributes or any other authorization mechnanism you are accustomed to in ASP.NET. Read More...
  • XML-RPC with WCF

    I'm writing lots of code lately. I've rejoined the dasBlog community and I'm busy writing a prototype for the .NET Framework 3.5 version of dasBlog (we just released the 2.0 version, see http://www.dasblog.info/ ). One of the goals of the prototype, which we'll eventually merge into the main codebase once the .NET Framework 3.5 is available at hosting sites is to standardize on WCF for all non-HTML endpoints. Since lots of the relevant inter-blog and blogging tool APIs are still based on XML-RPC, that called for an implementation of XML-RPC on WCF. I've just isolated that code and put it up on wcf.netfx3.com . My XML-RPC implementation is a binding with a special encoder and a set of behaviors. The Service Model programming experience is completely "normal" with no special extension attributes. That means you can also expose the XML-RPC contracts as SOAP endpoints with all the advanced WCF bindings and features if you like. The binding supports client and service side and is completely config enabled. Here's a snippet from the MetaWeblog contract: [ ServiceContract (Namespace = http://www.xmlrpc.com/metaWeblogApi )] public interface IMetaWeblog : Microsoft.ServiceModel.Samples.XmlRpc.Contracts.Blogger. IBlogger { [ OperationContract (Action= "metaWeblog.editPost" )] bool metaweblog_editPost( string postid, string username, string password, Post post, bool publish); [ OperationContract (Action= "metaWeblog.getCategories" )] CategoryInfo [] metaweblog_getCategories( string blogid, string username, string password); ... } For your convenience I've included complete Blogger, MetaWeblog, and MovableType API contracts along with the respective data types in the test application. The test app is a small in-memory blog that you can use with the blogging function of Word 2007 as a client or some other blogging client for testing. Of the other interesting XML-RPC APIs, the Pingback API has the following contract: [ ServiceContract (Namespace= "http://www.hixie.ch/specs/pingback/pingback" )] public interface IPingback { [ OperationContract (Action= "pingback.ping" )] string ping( string sourceUri, string targetUri); } and the WeblogUpdates API looks like this: [ DataContract ] public struct WeblogUpdatesReply { [ DataMember ] public bool flerror; [ DataMember ] public string message; } [ ServiceContract ] public interface IWeblogUpdates { [ OperationContract (Action = "weblogUpdates.extendedPing" )] WeblogUpdatesReply ExtendedPing( string weblogName, string weblogUrl, string checkUrl, string rssUrl); [ OperationContract (Action= "weblogUpdates.ping" )] WeblogUpdatesReply Ping( string weblogName, string weblogUrl); } I'm expecting some interop bugs since I've done a clean implementation from the specs, so if you find any please let me know. The code is subject to the Microsoft samples license, which means that you can put it into your (blogging) apps. Enjoy. Read More...
  • TweetieBot - A BizTalk Services Experiment

    Having an Internet Service Bus up in the cloud is not very entertaining unless there are services in the bus. Therefore, I built one (and already showed some of the code basics ) that’s hopefully fun to play with and will soon share the first version with you after some scrubbing and pending a few updates to the ISB that will optimize the authentication process. It’s a 0.1 version and an experiment. The code download should be ready in the next two weeks, including those adjustments. But you can actually play with parts of it today without compiling or installing anything. The info is at the bottom of this post. To make matters really interesting, this sample not only shows how to plug a service into the cloud and call it from some Console app, but is a combo of two rather unusual hosts for WCF services: A Windows Live Messenger Add-In that acts as the server, and a Windows Vista Sidebar gadget that acts as the client. Since the Silicon Valley scene is currently all over Twitter and clones of Twitter are apparently popping up somewhere every day , I thought I could easily provide fodder to the proponents of the alleged Microsoft tradition of purely relying on copying other’s ideas and clone them as well ;-) Well, no, maybe not. This is a bit different. TweetieBot is an example of a simple personal service. If you choose to host it, you own it, you run it, you control it. The data is held nowhere but on your personal machine and it’s using the BizTalk Services ISB to stick its head up into the cloud and at a stable endpoint so that its easily reachable for a circle of friends, bridging the common obstacles of dynamic IPs, firewalls and NAT. No need to use UPnP or open up ports on your router. If you choose to do so, you can encrypt traffic so that there’s no chance that anyone looking at our ISB nor anyone else can see the what’s actually going across the wire. Right now, lots of the Web 2.0 world lives on the assumption that everything needs to live at central places and that community forms around ad-driven hubs. The mainframe folks had a similar stance in the 70s and 80s and then Personal Computers came along. The pendulum is always swinging and I have little doubt that it will swing back to “personal” once more and that the federation of personal services will seriously challenge the hub model once more. So what does the sample do? As indicated, TweetieBot is a bot that plugs into a Windows Live Messenger using a simple Add-In. Bart De Smet has a brilliant summary for how to build such Add-Ins. When the Add-In is active and someone chats the bot, it answers politely and remembers the chat line, time and sender. The bird has a leaky long term memory, though. It forgets everything past the last 40 lines. Where it gets interesting is that the Add-In can stick three endpoints into the BizTalk Services ISB: A Request/Response Web Service that allows retrieving the list of the last 40 (or less) “tweets” and also allows client to submit tweets programmatically. Read More...
  • Help Wanted

    After roughly 15 months of working for the firm I've got to say that while it was fun talking about the .NET Framework and BizTalk at conferences and in writing, it's quite a bit more fun to be part of building the .NET Framework and BizTalk. You could be part of it, too, if you have the Jedi skills it takes. [The listed Assistant job requires the mastering the art of coordinating the Jedi Council's schedule across the galaxy; you just believe me - and that's just a small part of the job]. The good news is that we're growing quite a bit: Job Title Job Category Product Location Product Manager Marketing .NET Framework WA - Redmond Group Program Manager Program Management .NET Framework WA - Redmond Software Development Engineer in Test Software Testing .NET Framework WA - Redmond Software Development Engineer in Test Software Testing .NET Framework WA - Redmond Software Development Engineer Software Development .NET Framework WA - Redmond Program Manager Program Management .NET Framework WA - Redmond Program Manager Program Management .NET Framework WA - Redmond Program Manager Program Management .NET Framework WA - Redmond Program Manager Program Management .NET Framework WA - Seattle Software Development Engineer Software Development .NET Framework WA - Redmond Product Manager Marketing Biz Talk Server WA - Redmond Software Development Engineer Software Development .NET Framework WA - Redmond Software Development Engineer in Test Software Testing .NET Framework WA - Redmond Software Development Engineer Software Development .NET Framework WA - Redmond Business Manager Software Development .NET Framework WA - Redmond Technical Writer User Assistance & Education Biz Talk Server WA - Redmond Program Manager Software Development .NET Framework WA - Redmond Assistant Administrative Services .NET Framework WA - Redmond Software Development Engineer in Test Software Development .NET Framework WA - Redmond Program Manager Program Management Biz Talk Server WA - Redmond Product Manager Marketing .NET Framework WA - Redmond Program Manager Program Management .NET Framework WA - Redmond Program Manager Program Management .NET Framework WA - Redmond Test Manager Software Testing .NET Framework WA - Redmond For privacy and other reasons, please do not send resumes or job applications to me! Go through the jobs site. I'm just pointing to the right place ... ;-) Read More...
  • Connected Systems @MIX: The Videos

    For those of you who couldn't make it to MIX, here are the (Silverlight-) videos of the talks from the Connected Systems Division deep-linked to sessions.visitmix.com Don Box, Steve Maine: Navigating the Programmable Web Garrett Serack, Mike Jones, Pat Felsted: Enable Windows CardSpace and Information Cards on Your Web Site Kim Cameron and Panel: Digital Identity and the Psychology of Security Read More...
  • Live at MIX: WCF and the Web (and Steve Maine, and Don Box)

    We love WS-* as much as we do love Web-Style services. I say "Web-style", full knowing that the buzzterm is REST. Since REST is an architectural style and not an implementation technology, it makes sense to make a distinction and, also, claiming complete RESTfulness for a system is actually a pretty high bar to aspire to. So in order to avoid monikers like POX or Lo-REST/Hi-REST, I just call it what it what this is all about to mere mortals whose don't have an advanced degree in HTTP Philosophy: Services that work like the Web - or Web-Style. That's not to say that a Web-Style service cannot be fully RESTful. It surely can be. But if all you want to do is GET to serve up data into mashups and manipulate your backend resources in some other way, that's up to you. Anyways.... Tomorrow at 10:00am (Session DEV03, Room Delfino 4101A), our resident Lo-REST/Hi-REST/POX/Web-Style Program Manager Steve Maine and our Architect Don Box will explain to you how to use the new Web-Style "Programmable Web" features that we're adding to the .NET Framework 3.5 to implement the server magic and the service-client magic to power all the user experience goodness you've seen here at MIX. Navigating the Programmable Web Speaker(s): Don Box - Microsoft , Steve Maine Audience(s): Developer RSS. ATOM. JSON. POX. REST. WS-*. What are all these terms, and how do they impact the daily life of a developer trying to navigate today’s programmable Web? Join us as we explore how to consume and create Web services using a variety of different formats and protocols. Using popular services (Flickr, GData, and Amazon S3) as case studies, we look at what it takes to program against these services using the Microsoft platform today and how that will change in the future. If you are in Vegas for MIX, come see the session. I just saw the demo, it'll be good. Read More...
  • BizTalk Services: Christian shuttling back and forth on the bus

    Christian Weyer shows off the few lines of pretty straightforward WCF code & config he needed to figure out in order to set up a duplex conversation through BizTalk Services. Read More...
  • Shuttling back and forth with the bus

    Christian Weyer shows off the few lines of pretty straightforward WCF code & config he needed to figure out in order to set up a duplex conversation through BizTalk Services. Read More...
  • Stephen Forte on what BizTalk Services means for his shop

    Steve has a great analysis of what BizTalk Services means for Corzen and how he views it in the broader industry context. Read More...
  • Internet Service Bus

    "ESB" (for "Enterprise Service Bus") is an acronym floating around in the SOA/BPM space for quite a while now. The notion is that you have a set of shared services in an enterprise that act as a shared foundation for discovering, connecting and federating services. That's a good thing and there's not much of a debate about the usefulness, except whether ESB is the actual term is being used to describe this service fabric or whether there's a concrete product with that name. Microsoft has, for instance, directory services, the UDDI registry, and our P2P resolution services that contribute to the discovery portion, we've got BizTalk Server as a scalable business process, integration and federation hub, we've got the Windows Communication Foundation for building service oriented applications and endpoints, we've got the Windows Workflow Foundation for building workflow-driven endpoint applications, and we have the Identity Platform with ILM/MIIS, ADFS, and CardSpace that provides the federated identity backplane. Today, the division I work in (Connected Systems Division) has announced BizTalk Services , which John Shewchuk explains here and Dennis Pilarinos drills into here . Two aspects that make the idea of a "service bus" generally very attractive are that the service bus enables identity federation and connectivity federation. This idea gets far more interesting and more broadly applicable when we remove the "Enterprise" constraint from ESB it and put "Internet" into its place, thus elevating it to an "Internet Services Bus", or ISB. If we look at the most popular Internet-dependent applications outside of the browser these days, like the many Instant Messaging apps, BitTorrent, Limewire, VoIP, Orb/Slingbox, Skype, Halo, Project Gotham Racing, and others, many of them depend on one or two key services must be provided for each of them: Identity Federation (or, in absence of that, a central identity service) and some sort of message relay in order to connect up two or more application instances that each sit behind firewalls - and at the very least some stable, shared rendezvous point or directory to seed P2P connections. The question "how does Messenger work?" has, from an high-level architecture perspective a simple answer: The Messenger "switchboard" acts as a message relay. The problem gets really juicy when we look at the reality of what connecting such applications means and what an ISV (or you!) were to come up with the next cool thing on the Internet: You'll soon find out that you will have to run a whole lot of server infrastructure and the routing of all of that traffic goes through your pipes. If your cool thing involves moving lots of large files around (let's say you'd want to build a photo sharing app like the very unfortunately deceased Microsoft Max ) you'd suddenly find yourself running some significant sets of pipes (tubes?) into your basement even though your users are just passing data from one place to the next. That's a killer Read More...
  • So how much faster is it really and is it? WCF performance in comparison.

    We just published a great whitepaper written by our WCF/WF Performance PM Saurabh Gupta on the relative performance of WCF compared to ASMX, WSE, Enterprise Services, and Remoting. This is material for your favorites folder. The summary says: To summarize the results, WCF is 25%—50% faster than ASP.NET Web Services, and approximately 25% faster than .NET Remoting. Comparison with .NET Enterprise Service is load dependant, as in one case WCF is nearly 100% faster but in another scenario it is nearly 25% slower. For WSE 2.0/3.0 implementations, migrating them to WCF will obviously provide the most significant performance gains of almost 4x . The one scenario where WCF is slower are some comparison scenarios with ES. I'd say that even getting within strinking distance of ES/COM+/DCOM/RPC performance for a V1 release that's based on Web services technology is quite an astonishing accomplishment. The ES/COM+/DCOM/RPC stack underneath had almost 15 years to get to where it's at. And the 4x should give you a really convincing reason to make the move from WSE to WCF. Read More...
More Posts Next page »

Copyright © 2006 Microsoft Corporation. All Rights Reserved. | Terms of Use | Privacy Statement | Contact Us