Andrew Arnott

News from my corner of the Visual Studio Project & Build team, programming tips, and solutions to common programming issues.

GZip encoder for Compact WCF

The GZip encoder is not included in NetCF as it is on the desktop WCF, but it isn’t hard to build yourself and in fact we have released a sample of exactly how to add your own GZip encoder to NetCF: So many people have asked me for it lately I thought I’d better… Read more

Write a NetCF app that provisions your device from your device

My first post in the provisioning series introduced what provisioning of your Windows Mobile device means and the basics of why you would want to do it.  In future posts I’ll give some concrete examples of XML that accomplish a few common tasks.  But what good are XML examples if you can’t try them out… Read more

XmlSerializer compatibility between NetCF and the desktop

The XmlSerializer found in the .NET Compact Framework has a very different implementation than the one found in the full .NET Framework.  The reasons for the differences include size and performance constraints that make the desktop’s XmlSerializer inappropriate for devices.  As a result of the different implementation, there are inevitably going to be differences between… Read more

Using the XmlSerializer as an XmlObjectSerializer with WCF

The Windows Communication Foundation introduced the new DataContractSerializer to replace the XmlSerializer in many scenarios.  The DataContractSerializer is faster than the XmlSerializer, but has certain limitations.  For example it does not support serializing an object’s members as XML attributes.  When you write a WCF client that calls a service, WCF will generate a proxy class… Read more

.NET Compact Framework 3.5 Power Toys RTW

The .NET Compact Framework 3.5 Power Toys have been released.  You can download them from here. Tools included in this package: Remote Performance Monitor and GC Heap Viewer – Provides real time counter data (ranging from Garbage Collector activity to type loading info) on a running NETCF application. The GC Heap Viewer feature allows you… Read more

Provisioning smart devices: an introduction

A lot of questions on the MSDN forums center around how to customize a device or an app to prefer a specific network connection over another.  The correct way to accomplish this is by “provisioning” the device.  In fact a great many aspects of the device and the applications on it can be configured through… Read more

Why .NET Compact Framework fails to call some HTTPS web servers

A bug was discovered recently in the .NET Compact Framework version 2.0 (SP2 and earlier) and 3.5 that causes HttpWebRequest’s directed at some HTTPS servers to fail with this error: (for web services) System.Net.WebException: Unable to read data from the transport connection. —> System.Net.Sockets.SocketException: Unknown error (0x0).    at System.Net.HttpWebRequest.fillBuffer(HttpWebRequest request, Connection connection, CoreResponseData data)… Read more

Workaround for XmlSerializer T[] and List<T> bug

The XmlSerializer in NetCF 2.0 has a bug where if a single serialization requires reflecting into types that use a mixture of Collection<T>-like types for the same T the XmlSerializer will throw an exception.  Here an example where CF 2.0 would crash: public class SerializingType1 { public string[] FirstNames; public List<string> PhoneNumbers; } This type… Read more

What do you think of the new WCF ‘Store and forward’ Mail Transport?

With the .NET Compact Framework 3.5 release which comes with Visual Studio 2008, a new Windows Communication Foundation transport is introduced that uses email as the communication mechanism. Others have already blogged about this new transport including Roman Batoukov and David Kline. I’d like to take a poll of the audience to see how you… Read more

Calling WCF services from NetCF 3.5 using Compact WCF and NetCFSvcUtil.exe

The .NET Compact Framework 3.5 adds a subset of the Windows Communication Foundation (WCF or “Indigo”) to smart devices, allowing them to communicate with desktop WCF components with all the flexibility of multiple, interchangeable service bindings and endpoints.  Although it ships out of the box only with support for message-level communication (no service calls, per… Read more