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 take a…

0

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’t be fully converted or…

0

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, Part 4…

0

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 ordinarily be supplied…

0

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 record type 0x09 we…

0

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 about 12 bytes…

2

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 message is small. Although we are shaving a few bytes off of…

0

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 it works. Here’s a very short but inefficiently encoded binary…

4

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 infoset being manipulated in memory as opposed…

2

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 records…

0