Developer Support

Advocacy and Innovation

Spotlight on ALM and TFS

Establishing good ALM practices and learning to take full advantage of ALM tools is one of the best investments you can make with your team. Premier Support for Developers works with many of Microsoft’s largest and most strategic customers to optimize the use of Team Foundation Server and Visual Studio ALM tools. Whether you are planning a ...

.NET Lifecycle, Roadmap, and Announcements

In this post, Application Developer Managers, Joe Irizarry and Reed Robison provide an update on .NET – spanning new announcements, roadmap updates, and important support lifecycle changes. With the release of Visual Studio 2015 and .NET Framework 4.6 last week, it might be a good time to review upcoming support lifecycle changes as ...

Universal App Development and IoT Training – Now Available

  Windows Universal App Development (Workshop and Briefing) We hope you’ve been able to watch some of the Build and Ignite sessions over the last few weeks. If the content on Windows 10 piqued your interest, Premier Developer has training materials available. Now you can build one app that runs on all Windows devices and design your ...

Controlling WebBrowser Control Compatibility

If you have an embedded browser in your Windows application, you may be encountering a rendering or some other kind of compatibility issue with the content you are trying to display. In his most recent blog post, Premier Developer Consultant Pat Altimore discusses some options to try to fix common problems with the WebBrowser control in .NET. ...

So many exceptions… but only one can throw

When a method may throw for more than one reason, the thoughtful programmer might ask “which exception should be thrown?”Consider a method which performs argument validation, is cancelable, and also might throw based on the state of the object. What order should these validations occur so that the best exception is thrown? Here is ...

Immutable Object Graph updates

In my last post, I introduced a T4 template that constructs efficient and quite capable immutable objects based on the simplest mutable type definition. I also mentioned that the published sample is (necessarily, ala T4 style) open source and hosted online. Two outsiders have already submitted pull requests that have been accepted. Some ...

Simple immutable objects

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? Suppose you would define the mutable version like this: An immutable version might be ...

Immutable collection algorithmic complexity

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 lookup and enumeration): A noteworthy trait to call out here is that where a List<...

The cost of context switches

Context switches are not free. But how expensive are they? I wrote a small program to find out, and I’m sharing the program and its results here. I focused on purely context switches (no work is actually performed between context switches). So it’s not a real-world scenario, but it really brings out the hidden costs. Below are the results...