New CodePlex project: a simple Undo/Redo framework

I just created a new CodePlex project: http://undo.codeplex.com What It’s a simple framework to add Undo/Redo functionality to your applications, based on the classical Command design pattern. It supports merging actions, nested transactions, delayed execution (execution on top-level transaction commit) and possible non-linear undo history (where you can have a choice of multiple actions to…

58

Interview question

Here’s a nice simple interview question: In a given .NET string, assume there are line breaks in standard \r\n form (basically Environment.NewLine). Write a method that inserts a space between two consecutive line breaks to separate any two line breaks from each other. Also, anyone venture a guess what is a practical application for such…

47

How to debug crashes and hangs

At my job on the C# IDE QA team I’ve learned some useful things about debugging in Visual Studio, which I’d like to summarize in this post. Although the screenshots were made using Visual Studio 2008 SP1, this pretty much applies to other versions of VS as well. Rich debugging support When you develop your…

40

Call Hierarchy Navigation in Visual Studio 2010

We’re currently designing a new IDE feature named Call Hierarchy. Essentially, it allows you to find places where a given method is called, which is similar to how Find All References currently works. However, unlike Find All References, the Call Hierarchy feature provides more deep understanding and more detailed information about calls. Invocation You can…

31

5 min. screencast: Live Geometry overview

Microsoft sponsored a usability study for my side project Live Geometry, and I have to say, it was awesome. It was a lot of fun watching the participants using the software and I got a ton of great and useful feedback. I have to confess, I didn’t realize that it’s not obvious how to use…

28

Naming Roslyn concepts

We have a rather central component in Roslyn and we’re looking how to name it best. I’d like to gather some advice and opinions that could potentially help us find a good name. I am intentionally not mentioning what is it called right now. Instead, I’m going to describe it. If you recognize this component…

28

Live Geometry with Silverlight 2

I’m happy to announce a project I started on CodePlex: http://codeplex.com/DynamicGeometry Live preview at: http://geometry.osenkov.com Dynamic geometry In a nutshell, it’s an interactive designer for ruler-and-compass constructions – it lets you plot points, connect them with lines, construct circles, intersection points, parallel lines – everything that you usually do with "plain" geometry. But then the…

24

Remote Desktop: /span across multiple monitors

I spent some time searching the web about Remote Desktop, fullscreen and multiple monitors, so I decided to write down my findings to avoid having to search for them again. /span for multiple monitors If you pass /span to mstsc.exe, the target session’s desktop will become a huge rectangle that equals to the summary area…

24

Visual Studio 2010 Beta 2 Known Issues – Part 2

This post continues my unofficial list of known issues in VS 2010 Beta 2 (see Part 1). As we continue getting Beta 2 feedback and investigating issues, it’s time for another update on the issues we’ve been seeing. Please keep in mind that due to the volume of the issues, I’m only mentioning the ones…

23

Copy Code in HTML format with Visual Studio 2010

Today Jason has announced the Visual Studio 2010 Productivity Power Tools – a set of VS 2010 extensions that we released to complement and enhance the built-in 2010 features. You can either install the Pro Power Tools from here or just go to the Tools –> Extension Manager and type "Pro Power Tools" in the…

23