Some comments on Visual Studio
Now, before I go on, these are based on Visual Studio 2005 (but I have just looked at Visual Studio 2008 and I have no reason to think these don’t apply). So what are my comments this time around on my Microsoft bashing merry go round
Well, first up, let me make one thing clear… people rave about Visual Studio and slag off Delphi… mostly it seems because Delphi is old. Well, old it may be, but from the perspective of the visual form designer, Delphi 5 is in my opinion still streets ahead of Visual Studios efforts. This could just be because I’ve not spent years learning all VS’s tricks, but I didn’t spend years learning Delphi’s either. Delphi 5 had some great tools which made laying out forms a snap.
As an example… tab order… when I layout a form, I very rarely stick the controls on it in the order I want the user to tab through them. So, in VS I have to select each control and tweak it’s tabIndex property… in Delphi, I right click the container, select ‘Tab order’ and up pops a dialog that allows me to simply drag and drop control names to set their tab order.
Alignment… why in gods name when I switch from Line layout to Grid layout in VS do I have to close the designer and then re-open it? Delphi can do that on the fly. And best of all, Delphi’s snap facilities at least appear to work well and make it a breeze to layout forms so they look nice.
Control overlap… why oh why when I layout a form in VS do the controls end up overlapping each other when I run the application? Why do things seemingly decide to change size on their own between when I design the form and when I execute it? These two issues alone have caused me numerous headaches and coupled with the appalling snapping in the designer… laying out forms in VS is a nightmare. I’ve never had this problem with Delphi, except when I start using the skinning facilities of the DevExpress controls… then they can change size, but just plain vanilla controls… if they don’t overlap at design time, they don’t overlap at runtime… unlike VS where they don’t overlap at design time, then at run time the controls overlap and render over one another.
Adding multiple instances of the same control… how do I add multiple instances of a control in VS, without having to go back to the toolbox and click it again and without using double click in the toolbox? In Delphi I simply select the component from the palette with Shift pressed and I can add a multitude of instances of that same control.
And that brings me nicely onto a major gripe… straight out of the box, the component set provided by VS is dire. I don’t use string grids very often, but just when I want to, I can’t because there isn’t one available in VS. Overall, the standard toolbox offering in VS is completely eclipsed by the good old Delphi VCL.
So, now I’ve used C# and Visual Studio for more than just a few minutes, do I have anything good to say? Well… not really no. I’m using it through necessity as I don’t want the headache of trying to get Delphi hooked up for writing PowerPoint add-ins. If Delphi provided an easy means of doing this I’d use it, but unfortunately it doesn’t, so I’m stuck with VS.
C# as a language is pretty good and fairly straight forward to switch to from Delphi, but there is one thing I really don’t like, and thats the fact there is no interface definition so it’s not so straight forward to see what your classes provide as you have to trawl through the actual functionality just to find out what methods are provided by the class.
So, that’s about all I have to say about VS and C#. I’m actually developing a product with it which I hope to release soon, so for the foreseeable future at least, I’m going to have to use VS, but given the choice between VS and C# or Delphi and Object Pascal… that requires only a split second to compute. Delphi would win most of the time, unless it’s tricky to achieve the desired result with it… for example, Windows Mobile development… that would be VS and C#.
I do find it quite interesting how most companies have gone down the VS and C# route when they could probably achieve the same results quicker with Delphi.
Disclaimer – These are my thoughts based on the short time I’ve been using VS and C#. As I’ve stated, it would be my weapon of choice for certain projects such as Office add-in and Windows Mobile development or building applications that need to be distributed on Win32 and Win64. But, overall, it’s just not my favourite tool.
Tags: C#, Microsoft, Visual Studio


