You know that Find text box in the toolbar of Visual Studio? Those of us who are keyboard-inclined probably never use it because Ctrl+F is quicker than moving your hand to the mouse. But there is a hidden gem of a feature inside it that really...

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

Many people have been asking about what subset of .NET 3.0's Windows Communication Foundation (WCF) will be supported by the .NET Compact Framework 3.5. In this post I present a table with an outline of WCF features and what NetCF supports....

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

Well this is my first post as a member of the Visual Studio Platform & Ecosystem team. My second full day on the job, and I've found some less-than-ideal areas of Visual Studio that I'm eager to improve for myself and for you, our customers...

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

In C++, TCHAR, LPCTSTR, CString, and other types discretely change to their char/WCHAR, CStringA/CStringW counterparts depending on whether UNICODE is defined in your source code. Cool. By conscientiously using _countof(x) instead of sizeof...

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

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

Hashtables are inherently unsorted, but when you're printing a hashtable's contents to the console, it can certainly be helpful to sort its contents by key. Although it's not obvious, the way to do it is pretty easy. Let's start with defining a hashtable...

Whether you're doing async work or not, accepting a CancellationToken as a parameter to your method is a great pattern for allowing your caller to express lost interest in the result.
Supporting cancelable operations comes with a little bit of extra...

I recently discovered a very impressive (and free) Silverlight slideshow control. I would recommend it over any Flash-based slideshow controls that I've seen so far (because this one's better--not just because I work here <g>) Here's a sample: Watch...

We’re all familiar with immutable collections now. But immutability is only as immutable as it is deep. And an immutable collection of mutable objects may not provide the depth you’re looking for. So how can one create an immutable object...

One would expect that the WPF ListBox control would have some kind of FocusedIndex property to find out which item has the keyboard focus (and that dashed border around it) -- but it's not there. It seems the workaround requires a few lines of code, which...

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 check backward compatibility. The .NET Framework (both desktop and CF) makes heavy use of internal classes to allow us the freedom to change the internals of the framework without breaking customer code. But there are still ways that customers can write apps that may break on future versions. This post covers these topics....

Writing Visual Studio add-ins gives you the power to do some impressive things within the IDE to enhance your productivity. Unfortunately getting your add-in to load into Visual Studio can sometimes be a pain. Here's just a tip you should...

I’ve previously posted on how to enable logging in the C++ project system in Visual Studio 2010 . In Visual Studio 2012 we’ve changed the way the Common Project System (aka “CPS”) emits trace messages so below I introduce an updated...

The .NET Compact Framework has had several releases: V1 + 4 service packs, V2 + 2 service packs, V3.5 (to date just betas). Which of these are installed on your device? Can you have multiple versions installed simultaneously? Which version will run your NetCF app if multiple versions are installed? This post addresses all these questions....

Everyone appreciates a fast and responsive UI, and Visual Studio is no exception. Extensions that run in Visual Studio play a significant role in how responsive the IDE will be for its users. Visual Studio has been evolving over the past few cycles to...

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

As much as I love to work with PowerShell, it was hard to give up the doskey macros I had defined for CMD.exe. But I just found out that doskey can work all its magic for PowerShell too, so here's the trick... Doskey defaults to working only with cmd...

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

I received some feedback from my recent BCL blog post on the prerelease of the immutable collections that my algorithm complexity table left a few important entries out. Here is the table again, with more data filled in (particularly around list indexer...

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

The iPhone was a hit, and people look to Microsoft to produce a ZunePhone in some future version of their Zune music player . But I ask you, "Why?!" What you may not be aware of is that Windows Smartphones already do everything that...