Blog Moving

As you may have noticed my blog has been a little stale over the last few years.  A large part of that is simply a result in my job change 4 years ago.  My daily developer life in Visual Studio always served as inspiration for posts: visual Studio is public, popular and relevant to many…

0

Interviewing College Candidates

Lately I’ve been reading a lot about peoples interview processes and it inspired me to share my process for interviewing college candidates.  I’ve been doing interviews at Microsoft for ~10 years now and developed this process over that time.  The format for the interviews are typically 1 hour with just me and the candidate.  Usually…

2

Round tripping a VSIX project

Visual Studio 2012 introduced project file round tripping feature.  This lets developers edit the same project in Visual Studio 2010, 2012 and 2013 without the need to upgrade the project file or modify it in any way.  This was a highly requested feature by customers that allowed them to edit their project no matter what…

1

Immutable isn’t just for parallel code

For the last 6 months the BCL team has been hard at work shipping an out of band release of immutable collections for .Net.  Most recently delivering an efficient implementation of ImmutableArray<T> http://blogs.msdn.com/b/dotnet/archive/2013/06/24/please-welcome-immutablearray.aspx Unfortunately with every announcement around these collections I keep seeing the following going past in my twitter feed. That looks neat.  Next…

5

Don’t mix await and compound assignment

The 5.0 release of C# introduced the await keyword which makes it extremely easy to use Task<T> in a non-blocking fashion.  This allows developers to replace either blocking calls to Task.Wait() or complicated combinations of ContinueWith and callbacks with a nice simple, straight forward expression Task<int> task = …; int local = await task; Use(local);…

7

Not all “true” are created equal

  During a review of some low level bit manipulation logic a developer raised a question about the correctness of a piece of code which allowed any arbitrary byte to be seen as a bool.  No one could recall if true was defined as not 0 or simply 1.  If it was the latter then…

8

Authoring a Utility Library for Visual Studio

As I’ve developed VsVim over the years I’ve authored quite a few reusable Visual Studio components.  For the last 6 months I’ve had many of these factored out to a separate utility library and this last week I decided to publish them as a separate NuGet package.  Even if no one else every uses the…

2

VsVim 1.0 Released

I just released an update to VsVim for Visual Studio 2010.  This is available on the extension manager in Visual Studio or can be downloaded directly at the following link.  [1] Link: http://visualstudiogallery.msdn.microsoft.com/en-us/59ca71b3-a4a3-46ca-8fe1-0e90e3f79329 GitHub: http://github.com/jaredpar/VsVim What does 1.0 mean? Several people asked me what 1.0 meant for VsVim?  From the first release of the project…

9

DebuggerDisplay attribute best practices

The DebuggerDisplayAttribute is a powerful way to customize the way values are displayed at debug time.  Instead of getting a simple type name display, interesting fields, properties or even custom strings can be surfaced to the user in useful combinations [DebuggerDisplay("Student: {FirstName} {LastName}")] public sealed class Student { public string FirstName { get; set; }…

1

VsVim Update Released (Version 0.9.5)

I just released an update to VsVim for Visual Studio 2010.  This is available on the extension manager in Visual Studio or can be downloaded directly at the following link. Link: http://visualstudiogallery.msdn.microsoft.com/en-us/59ca71b3-a4a3-46ca-8fe1-0e90e3f79329 GitHub: http://github.com/jaredpar/VsVim This update includes the following Lots of undo / redo issues Lots of caret positioning issues Support for tabs And of…

12