Painless Office Interop using Visual C#

I am going to explain how I managed to implement Microsoft Office Interop support for multiple Microsoft Office versions using C#.

Microsoft Office Logo

Requirements

Our solution should meet the following requirements:

  • support for different Microsoft Office versions
  • no Microsoft.Interop.dll deployment
  • dispose of all (unmanaged) resources
  • no use of dynamic keyword
  • no direct COM calls

Continue reading

Refactoring – A software craftsmen discipline

Finally on Christmas holidays, I started watching the Pluralsight course Refactoring Fundamentals by Steve Smith which has been released only days ago. To be honest, I haven’t made it through the entire eight hours lasting course yet, but what I’ve seen inspired me to write down my own refactoring experience.

Let me start with these words I recently posted on Twitter:

What most developers don’t know: Refactoring isn’t (only) for bad programmers or bad code. It’s a fundamental discipline in software development.

In this blog post I am going to explain what I mean by this sentence and what you should know about this software craftsmen discipline.

Continue reading

My favorite developer podcasts

This time I want to share my favorite podcasts with you. I started listening to podcasts only months ago.

During the last few weeks I was not able to watch television or sit in front of a monitor because of a concussion. Well, I shouldn’t do such a risky sport like Volleyball, I know. Because of that, the only thing I had left to do was listening to the local radio program or even better to some great developer podcasts.

And here they are, my favorite developer podcasts in no particular order:

Continue reading

Paste special – A hidden feature revealed

There is a new function since Visual Studio 2012, which means, that it is also available in the recently released Visual Studio 2013. This pretty tiny, but really cool feature allows you to generate C# classes based on XML or JSON input data.

I am not only going to show you where the function hides, I will also show you an example to make sure you realize the power behind the functionality. Well, to be honest, the only thing you’ll gain is time. But isn’t it always about efficiency?! Yes it is, there we go with the example:

Continue reading