Thanks Microsoft!

Hey guys. Wow, one month has elapsed without any blog post here. Sorry for that… At the moment I’m really busy with some private, but also technical/conceptual topics. So here comes just a short sign of life :-) But stay tuned for more blog posts in some weeks…

Today I was really surprised when FedEx delivered a package from Microsoft (by air freight) to me. Inside was a Visual Studio 2010 surprise gift: A laser-engraved cube from the VS2010/.NET4-team with a nice statement from Soma. He and Microsoft say „Thank you“ (me), so it’s time for me to say: Thank you for that surprise as well!

Microsoft Thank You gift box Microsoft Thank You gift Somasegar's Thank You text

I don’t exactly know why I got this present but I think it’s because of my engagement and direct contact to the Code Contracts team in 2009. Thanks guys! I hope to see this technology improving further and becoming a first-level feature of Visual Studio (the tools!), .NET and perhaps C# as well. And I hope to give more support to evolving Microsoft technologies. There are some inspiring movements and a lot of innovation at the moment, which are really encouraging me.

My Top-3 development tools

Currently, MSDN Germany arranges a blog-parade and is asking developers to disclose their top-3 development tools. I will follow this request, so here are my current top 3 development tools, that make the developer’s life really easier. They are to see in addition to Visual Studio 2008. VS is a really wonderful tool and I do not want to miss Intellisense, TFS integration debugging support anymore. But it’s not perfect and here those tools come on stage:

  1. Jetbrains ReSharper:
    I just started with this brilliant tool and from the first moment on I loved this beautiful piece of software. ReSharper is a Visual Studio plugin, that helps you on managing, refactoring and navigating your code more easily. Visual Studio has a lack of functionality in these areas and ReSharper bridges the gap here. Some examples: if you are heavily using interfaces, you will have pain when navigating through your code with Visual Studio alone, because by pressing F12 you will only come to the interfaces, but not to the implementations. With Resharper you can press Ctrl+Alt+B and come to the direct implementation, if there is just one. If there are more, you will have the choice to navigate to one of them. Other nevigation features include: go to declaration, implementation, inheritors, find usages, … – it really increases productivity! Another example are the great refactorings. Visual Studio has to hide in shame in comparison. One remark: CodeRush Xpress is another nice refactoring tool, which supports you on code navigation, too. It’s kind of limited in the free Xpress edition, but it’s always nice to have, if there’s no chance for the ReSharper.
  2. NDepend Pro:
    As another great tool, NDepend helps you in analyzing your code or existing code bases from other developers. It shows you dependencies between solution projects and creates default queries on the code, while supporting many popular code metrics. NDepend can be run on projects without Visual Studio, but also smoothly integrates into VS context menus. Furthermore, you are able to freely define your own code queries, for example to find all classes, that have more than a certain number of lines or methods, that have a high degree on cyclomatic complexity. By supporting the CQL (code query language), such queries are very flexible and quickly created.
  3. GhostDoc:
    Document your code! Many programmers and even developers have problems with this demand. GhostDoc supports you in this task. It integrates into Visual Studio and if you press Shit+Ctrl+D on any piece of code, you get a documentation template, that’s created automatically by use of the component’s name and the data type (or return type). In some cases this default documentation is sufficient, but mostly you have to adapt it. GhostDoc helps you in giving you a template, but for documenting what your code does you are responsible on your own! Don’t rely on automatic docu, since this isn’t doing the job alone. Additionally, GhostDoc can assist you on changes of your code. If you change the signature of an earlier documented method, GhostDoc can look on the changes and include new parameters to the docu respectively delete old ones. I don’t wanna miss this brilliant tool and the best: it’s for free!

That’s it from my view. I really missed more tools like .NET Reflector, but those are just my top-3. I’m agog: what are your top-tools in development and why?

Playing around with… Silverlight 2

Halb beruflich, halb privat beschäftige ich mich derzeit mit Silverlight 2 und den Möglichkeiten, welche dieses bietet. Silverlight wird meiner Meinung nach in Zukunft eine verstärkte Rolle bei RIAs spielen und Microsoft hat mit Version 2 einen wichtigen Grundstein dafür gelegt. Endlich muss man sich als passionierter C#/.NET-Entwickler nicht mehr mit Javascript rumärgern, sondern bekommt eine integrierte Lösung an die Hand. Silverlight ist zweifelsohne auf einem aufsteigenden Ast, ob es wie mancherorts vermutet die Zukunft sein wird muss sich allerdings noch herausstellen.

Silverlight Toolkit

Ich spiele also derzeit ein wenig mit Silverlight rum und bin schon relativ begeistert, was die Möglichkeiten anbelangt. Ein Manko bisher waren die fehlenden Controls, doch mit dem Silverlight Toolkit und diversen Controls von Drittanbietern sind jetzt einige höchst interessante Lösungen verfügbar, welche die standardmäßig mangelhafte Funktionalität einbringen. Ich liebe die AutoCompleteBox und die Möglichkeiten des einfachen, aber mächtigen Item-Templatings. User Experience? Thumbs up!

Expression Blend AddIn-API

Weiterhin habe ich bereits eine frühe Version des Buches Hacking Silverlight 2 verfügbar und finde trotz einiger inhaltlicher Mängel die“Deep-Inside-Tipps“ (*Hacks*) wirklich gut. Zuvor war mir nicht bekannt, dass Expression Blend über eine AddIn-API verfügt, welche sich leicht ansprechen lässt um eigene Funktionalität zu Blend hinzuzufügen. Eine Einführung mit kleinem Beispiel dafür findet sich z.B. hier.

Intellisense in Expression Blend

Die AddIn-API von Blend macht es auch möglich, dass meine Gebete (oder zumindest eines) erhört wurden (wurde). Entwickler, die parallel mit VS 2008 und Blend arbeiten, kennen das Problem: in VS 2008 hat man keinen Design-Support (pfui Microsoft! wenigstens ein wenig Unterstützung in Form des Auswählen von Controls und Anzeigen von Properties wäre hilfreich gewesen… soll sich Silverlight auf diese Art durchsetzen? hier darf man sich auf VS 2010 freuen: „Also, the planned Visual Studio 2010 development platform will build further on Silverlight, featuring a fully interactive Silverlight designer.„). Dafür hat man im Visual Studio Intellisense für XAML. Genau anders herum ist es bei Expression Blend: schöner Design-Support, kein Intellisense. Des leidresistenten Entwicklers Lieblingstastenkombination wird Alt+Tab und alles ist schön… oder? Schöner geht’s mit XAML-Intellisense in Blend und genau das hat Stefan Dobrev von Telerik vorgestellt. Kaxaml (auch bei Codeplex gehostet) als AddIn für Expression Blend ist nicht perfekt, als Übergangslösung aber gut geeignet, bis Microsoft endlich mal mit einer eigenen Solution aufwartet…