Welcome to Windows Communication Foundation (WCF)
Top Tasks :

WCF Team Bloggers

Monday, May 12, 2008 - Posts

  • VS2008 and .NET 3.5 SP1 Enhancements for Service Developers

    Today we released the betas for VS2008 sp1 and .NET 3.5 sp1. Scott did a good job (as usual :-)) running through the top-level enhancements, so I won't parrot it all here.. but I'd like to go through the next level of detail on what new goodies we have for service developers. The most interesting/exciting feature for service developers is what we call Data Services (previously known as "Astoria"). The best way to explain how Data Services fits into the overall "services platform" that .NET provides is through a picture: As a service developer, .NET offers me a layered stack - if I want to write "to the metal", I can build a service on top of System.Net and HttpListener (which is a managed wrapper on top of HTTP.SYS - our kernel HTTP driver). Not many people end up doing that, because there are lots of good pieces that we've already written for you.. WCF provides the next layer. WCF gives you some modular pieces, such as channels (HTTP, TCP, MSMQ, etc); Serialization, which is a fancy word for pouring objects into a serialized formats such as XML, binary, JSON, and deserializing back into objects; and what we call "Syndication", which are some classes that support various data publishing microformats such as RSS and ATOM. Finally, we have a layer called Service Model that ties all of this stuff together in a coherent, approachable programming model. WCF is a powerful but general framework, so the next layer up consists of particular scenarios that we wanted to significantly simplify. I think of two canonical scenarios for writing services: "resource-oriented" services, where you model your service as a bunch of resources and offer request/response, HTTP-based access to those resources; and "operation-oriented" services, where you want to create a new "operation" that wraps a more involved operation that often has to coordinate state changes across multiple resources. Operation-oriented services become more attractive the more asynchrony you need in your service implementation.. the canonical example is "book a trip" which in turn composes other asynchronous services, such as "book the airfare", "book the hotel", etc. We realized that most operation-oriented services are actually most easily modeled as workflows.. and that's why we invested heavily in .NET 3.5 in Workflow Services, which is a pretty deep integration between WCF and Workflow. Resource-oriented services became easier to write in .NET 3.5 via our REST support that we added to WCF. But we thought Read More...
  • We are pleased to bring you new features in .NET 3.5 SP1

    In case you haven't noticed yet, the bits for .NET 3.5 SP1 Beta 1 and Visual Studio 2008 SP1 Beta 1 are now available...take a minute and go grab them, and then you can finish reading this post while they install :) What's new? Looking at the platform holistically, the big-ticket features in SP1 are the ADO.NET Entity Framework (finally ;) ) and the ADO.NET Data Services (Astoria) . I'm sure lots of folks will be talking in-depth about those things, so I'll focus on some of the smaller (but no less interesting!) features that my team is delivering as part of this release. From the WCF/WF perspective, here's what you can look for in SP1. There's a lot here and each one of these probably merits an individual post but here are the bullet points: Core Framework Expanded UriTemplate syntax including support for compound template segments (like /{filename}.{ext} and /customers({id}) ), default values (like /customers/{id=0} ), and optional trailing slashes. Syndication OM for the Atom Publishing Protocol. We added strongly-typed OM for all of the constructs defined in the Atom Publishing Protocol specification (like ServiceDocument and Workspaces) and put them in the System.ServiceModel.Syndication namespace. Attribute-free Data Contract serialization. The DataContract serializer now supports a model that doesn't require you to put [DataContract]/[DataMember] on every serializable member. Interoperable Object References. The DataContract Serializer now supports an interoperable object reference scheme that allows it to serialize object graphs (not just trees). Thanks to this, Entity Framework types are also serializable via the DataContract serializer. Improved logging/tracing in Partial Trust. We added more of our diagnostic/tracing path to the partial trust sandbox to improve the debuggability of hosted applications running in partial trust. Scalability Improvements on IIS7: It's now possible to plug WCF into IIS7 asynchronously instead of synchronously, which can improve overall throughput and thread utilization on IIS7 for a class of high-latency scenarios. Tools Enhanced Service Test Client: The Test Client can now test services that use MessageContract/XmlSerializer types as well as Nullable<T>. Hosting Wizard: There's now some tooling support for deploying Service Library projects to a host environment Workflow Designer Performance Improvements: Auto-Save is faster now. A LOT faster. Silverlight Templates: Visual Studio templates for WCF services in Read More...
  • Disabling the Visual Studio Service Host

    When debugging a WCF project in Visual Studio the WCF Service Host starts up to host my service. How do I stop this from happening so that I can use my own service host? One of the new tools in Orcas is the WCF Service Host that allows you to automatically host and test a service that you've implemented. The WCF Service Host comes along with some of the specialized WCF project templates in Visual Studio, such as WCF Service Library and Syndication Service Library. If you've picked one of these project templates, then I don't know of a good way of disabling the service host. This should be fixed in SP1 by adding some user interface to toggle the service host on and off. In the meantime, you can perform some surgery on the project file to work around this. If you look inside the actual csproj file for your project, then you'll see a PropertyGroup section that defines the project. < PropertyGroup > < Configuration Condition =" '$(Configuration)' == '' " > Debug </ Configuration > < Platform Condition =" '$(Platform)' == '' " > AnyCPU </ Platform > < ProductVersion > 9.0.21022 </ ProductVersion > < SchemaVersion > 2.0 </ SchemaVersion > < ProjectGuid > {3CC71D2E-7EC2-46B5-B985-F889B65E3DCD} </ ProjectGuid > < OutputType > Library </ OutputType > < AppDesignerFolder > Properties </ AppDesignerFolder > < RootNamespace > WcfServiceLibrary1 </ RootNamespace > < AssemblyName > WcfServiceLibrary1 </ AssemblyName > < ProjectTypeGuids > {3D9AD99F-2412-4246-B90B-4EAA41C64699};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} </ ProjectTypeGuids > < StartArguments > /client:"WcfTestClient.exe" </ StartArguments > < TargetFrameworkVersion > v3.5 </ TargetFrameworkVersion > </ PropertyGroup > The ProjectTypeGuids list is what controls these special features of projects. Removing the {3D9AD99F-2412-4246-B90B-4EAA41C64699} entry from the list will disable automatic service hosting. Next time: Debugging Type Loading Read More...

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