Nicholas Allen's Indigo Blog

Windows Communication Foundation From the Inside

Browse by Tags

Tagged Content List
  • Blog Post: Channel Development Survey

    The WCF channels team has posted a short survey on channel development to collect some of your feedback about what to work on after .Net 4 is released. You can help them out if you've previously written or tried to write a layered channel, transport channel, or message encoder. The survey should only...
  • Blog Post: Fix to Allow an Encoder Fallback with UTF8

    This week I'll be running a series covering fixes for WCF that may be hard to find and explaining the details behind each problem. Encoding is the process of transforming a set of characters into a sequence of bytes. An encoder fallback is an error-handling mechanism invoked when a character can...
  • Blog Post: Binary Encoding, Part 7

    For the last part in the binary encoding series I'll cover how the use of the string table changes when the encoder is used in a sessionful manner. Here now are all of the past entries in the series: Binary Encoding, Part 1 Binary Encoding, Part 2 Binary Encoding, Part 3 Binary Encoding...
  • Blog Post: Binary Encoding Exercise Answers

    I've gone ahead and put the message in the exercise in a small test program to demonstrate how the server would handle it. To help you out I've reformatted the input to make the record boundaries clear although the server obviously wouldn't take notice of any formatting. The dictionary of strings would...
  • Blog Post: Binary Encoding Exercise

    Now that I've covered the essentials of the binary format, those interested might want to try their hand at translating an encoded message. This message uses many of the constructs you've seen plus a few more I'll outline here. The record type 0x0B is an XML namespace declaration similar to the...
  • Blog Post: Binary Encoding, Part 6

    Past parts in the series: Binary Encoding, Part 1 Binary Encoding, Part 2 Binary Encoding, Part 3 Binary Encoding, Part 4 Binary Encoding, Part 5 We looked last time at some of the patterns used in the binary format for reducing the size of a document. So far we'd managed to trim...
  • Blog Post: Binary Encoding, Part 5

    Past parts in the series: Binary Encoding, Part 1 Binary Encoding, Part 2 Binary Encoding, Part 3 Binary Encoding, Part 4 The problem we saw last time was that a structural reduction for message fragments does not create a significant savings when the...
  • Blog Post: Binary Encoding, Part 4

    Past parts in the series: Binary Encoding, Part 1 Binary Encoding, Part 2 Binary Encoding, Part 3 Now that you’ve gotten an introduction to the principles and capabilities of the binary encoding format, let’s jump into looking at some examples of messages to see how...
  • Blog Post: Binary Encoding, Part 3

    Past parts in the series: Binary Encoding, Part 1 Binary Encoding, Part 2 Today I’ll talk about the XML features that are and aren’t supported by the binary encoding format we use in WCF. Since the binary format was designed for a specific purpose, round-tripping essentially the XML...
  • Blog Post: Binary Encoding, Part 2

    The binary format we developed is based on a tokenized stream of records and a few Huffman-like coding strategies. Each record starts with a one byte record type value. The record type byte is then followed by binary content of variable format and size based on the type. Each record in the stream of...
  • Blog Post: Binary Encoding, Part 1

    This series on the .Net Binary Encoding protocol is going to be similar to the earlier series I did on .Net Message Framing . The two are also somewhat related as they’re used together frequently and the messaging framing protocol has direct knowledge of some options for binary encodings. The two are...
  • Blog Post: Top Down Binding Element Order

    Why does a message encoder have to be specified before the transport when constructing a binding? A message encoder doesn’t directly fit into a channel stack because the message encoder type doesn’t implement any of the channel shapes. Instead, a message encoder is an auxilliary piece used by one...
  • Blog Post: Binary Http Binding

    Do I need IIS7 to use binary with HTTP for WCF? No, all you need is a custom binding because we don’t include a standard binding with that configuration out of the box. Here’s a quick example of putting binary and HTTP together with either code or configuration: BinaryMessageEncodingBindingElement...
  • Blog Post: Default Message Encodings

    What message encoding do I get if I don't include one in the binding? A message encoding binding element is required for any binding that uses an encoding-aware transport. However, it turns out that most transport binding elements include a default message encoding if you don't specify one explicitly...
  • Blog Post: MTOM Boundary Markers

    What is the string "--uuid:…" doing embedded in MTOM messages? That string is a boundary marker that separates one part of the message from another. This scheme of separating message parts using a unique string is common to many types of multipart messages and is sometimes referred to as the MIME...
  • Blog Post: Message Framing, Part 3

    Past entries that you should have read by now: Next Week, a Series Message Framing, Part 1 Message Framing, Part 2 The next record at the start of every legal exchange in the framing format is a message encoding record. The message encoding specifies how the message...
  • Blog Post: Not Omitting the XML Declaration

    Why doesn't a message start with an XML declaration? The XML declaration is a processing instruction at the beginning of an XML document that gives information about the format and logical structure of the document. You've probably seen the most commonly used XML declaration on many documents...
  • Blog Post: Reader Quotas with Untyped Messages

    I have an operation contract that uses untyped messages. When using the message, I get an error telling me to change the quota settings on the XmlReader. Where are these quotas located? I'm not using an XmlReader. A message represents an XML InfoSet. While there are many different ways to access...
  • Blog Post: Adding HTTP Headers

    Why doesn't anything happen when I try to add HTTP headers from a message encoder? The problem here is a basic issue of timing. Recall the interface contract that a message encoder has with its transport. The transport receives a message from the next channel up in the channel stack, does some processing...
  • Blog Post: Binary Encodings and Addressing

    There are three types of message encodings that come with WCF: text, binary, and MTOM. Text is the traditional way of encoding an XML document; MTOM is an interoperable way to create messages with attachments; and binary is an optimized format. The binary message encoder requires you to use SOAP 1.2...
  • Blog Post: What a Binary Encoding Means

    There has always been some confusion about what it means to use a "binary encoding" with your web service. The word encoding is used in a very specific sense here, which should also help you figure out the implications of choosing an encoder in the future. There are two words, encoding and formatting...
  • Blog Post: Handling Message Encoder Errors

    This time it's two questions that have the same answer. What contract does the message encoder have for producing a message from ReadMessage? What should the transport do if the message encoder doesn't produce a message from the buffer you give it? The contract of the message encoder is...
  • Blog Post: The GetProperty Picture

    I drew this picture for myself while working on the guidelines for implementing GetProperty . I figured that other people might find it useful as well. One of the guidelines is that queryable properties on design time objects should flow to the corresponding run time objects. The black boxes show the...
  • Blog Post: Implementation Guidelines for GetProperty

    This post is just some quick thinking about guidelines for implementing the GetProperty method. These guidelines are still in development so think of this as a draft rather than real guidance at this time. Background: We provide an extensibility point called GetProperty on many of the components...
  • Blog Post: Some Changes for Channels and Transports in the June CTP, Part 3

    Today's look at recent changes covers two cool new features. Better support out-of-the-box for building applications in the POX/REST style. Back in March, I talked about the POX support we added for the February CTP and a bug we found in our implementation of HttpMappingMode . There were two problems...
Page 1 of 2 (34 items) 12