I’m going to be at DevWeek next week, at the Developer Express booth. We’ll be demonstrating the eXpressApp Framework, possibly also some of the other upcoming Developer Express products/product versions, like XPO, XtraCharts, XtraLayout Control, … Anything really, I guess. Mark Miller will be there, so this is also a great chance to get some first-hand info or demos for CodeRush, Refactor! or the free DXCore. If you are there, drop by the Developer Express booth — I’m looking forward to a c …


Mark Miller demonstrates writing plugins for DXCore live in the latest episode of dnrTV. He sounds a bit hurried, but if you want to get into DXCore programming, this is definitely a Must View. And if you’re not yet convinced you want to get into DXCore programming, let me tell you of course you should. In either case, click here to view the show! …


It’s on June 10th, once more in Reading. Read all about it here. I think this date is a very bad idea, because it’s the Saturday right before TechEd 2006 in Boston starts. I don’t know whether I’ll be going to Boston or not, but I’m sure this will reduce the number of participants and potential speakers vastly. I was planning to suggest a talk for DDD day 3, but now this won’t be possible for me in case I’m going to be at TechEd. Oh well.


2006-02-08

A question I heard this morning made me remember this, and I thought it might be one of those improvements that many haven’t noticed yet. In VS 2005, the “Go to Definition” functionality has been improved an awful lot, in that VS creates a source code representation of class and interface definitions instead of showing some obscure information in Object Browser. Trying this on IList<T> gives me this output, for example:

gotodefinition1.png

The ellipsis …


2006-02-06
int GetCount(IEnumerable enumerable) {
  int count = 0;
  foreach (object o in enumerable)
    count++;
  return count;
}

It’s that simple, right? Well, no, it isn’t. What you have to realize is that in contrast to ICollection, IList or IBindingList, IEnumerable is not an interface that’s by definition used with some kind of list or collection. IEnumerable (or rather IEnumerator, to which IEnumerable gives you access) is an iteration interface, a small but potential …


2006-02-03

Can you help me? Don’t you love those newsgroup posts? Granted, this is not a real world example (at least I hope it’s not), but why do programming newbies always

  1. neglect to assess the complexity of the arbitrary problem they just came up with

  2. assess the complexity of the problem wrongly — far too low, that is

  3. assume it can’t be very difficult if only they find someone to “tell them how to do it”

I don’t want to rant, I find this really interesting. Maybe we’ll all be able to crea …


When installing add-ins for Visual Studio, a number of different paths can be used. One of them is C:\Documents and Settings\All Users\Application Data\Microsoft\MSEnvSharedAddins — in a default installation of a US English Windows. Obviously a proper installer would use Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData) to make sure the path is correct for the current system and for the current language. For example, for a German system the result would be `C:\Doku …


As I mentioned elsewhere, I’m working on a DXCore plugin to enable (Tablet PC) ink drawing on the Visual Studio editor surface. A problem I stumbled upon in this regard was the scrolling functionality. Generally this is really easy to implement, using a transformation with the ink renderer. So I had this method:

void UpdateScrollPosition(TextView textView) {
  Point p = new Point(textView.ColumnWidth * textView.HorizontalScrollPosition,
    textView.LineHeight * textView.VerticalScro ...