Developer Support

Advocacy and Innovation

Immutable collections with mutable performance

In my last post, I detailed the differences among read/write, read only, frozen and immutable collection types.  I described how immutable collections come with a hit to the garbage collector due to the garbage they generate during mutations.  I have a very positive update on that topic. My previous implementation for the ...

Read only, frozen, and immutable collections

[Update: a more recent post with new data on attainable performance of immutable collections] The topics of immutability and functional programming has fascinated me lately.  Mostly because of my work on the Visual Studio Common Project System (CPS) which is a large, highly multi-threaded code base that only remains sane because of its...

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: http://go.microsoft.com/fwlink/?LinkId=108652 So many people have asked me for it lately I thought I'd better just post the link.  Have...

OpenID and ASP.NET web sites

If you are a web developer I hope you've considered accepting OpenID credentials for logging in your users.  If you have an ASP.NET web site, the process of adding OpenID support to your web site couldn't be easier when you use the free C# DotNetOpenId library.  Supporting OpenID is a great idea...

Workaround for XmlSerializer T[] and List 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: This type would fail to serialize under NetCF 2.0 because T = string would ...

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 ...

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 ...

Power Toys for .NET Compact Framework 3.5 CTP released

The .NET Compact Framework team just released the Consumer Technology Preview (CTP) of the Power Toys for .NET Compact Framework 3.5.  These Power Toys are tools to help you build, debug and optimizie your NetCF 3.5 applications.  My personal favorite is the NetCF ServiceModel Metadata Tool (NetCFSvcUtil.exe) which allows NetCF ...

How to (not) write an especially precarious app on .NET (Compact Framework)

As the .NET Compact Framework developers work to add features, fix bugs, and refactor code, we often have to determine whether a given change could break existing customer code.  The ideal is that NetCF 3.5 will run all apps that ran on NetCF 2.0 and 1.0.  We run hundreds of apps and many, many tests before shipping each product to ...