Saturday, July 12, 2008

What are those prizes in the race? - Part 2

Next up in the list of pizes for the race to be evaluated is SmartInspect. I must be honest here: I'm a CodeSite user and quite satisfied. My evaluation will inevatably be influenced by my CodeSite experiences and there will be a couple of comparisions. This is my second easiest evaluation because I already know the concepts from CodeSite.

Installing
Installing was like it should be: no hassle and flawless. SmartInspect can be used in Delphi, Visual Studio and Java. I've only looked at the Delphi implementation: I guess VS and Java implementations will be compareble.

Using SmartInspect
Basically SmartInspect is an advanced logging tool. You start a session, send out information and that is caught by either a server, a file or in memory. When logging to a server (which is built in into the viewer) the logging information is displayed live while running your program. When logging to a file, you can later view the file with a viewer.

You can of course log a simple string, but more usefull things can be done. You can log objects, the properties of which are available in the viewer. You can log images, stacks traces, system memory information, a screendump of the current window or the desktop window. There's a lot too choose from.

For more advanced debugging tracing methods/functions can be quite helpfull. Now, it basically is a minor thing, but I found the TrackMethod statements vary valuable. The working is comparable to the EnterMethod/LeaveMethod combination. But, EnterMethod/LeaveMethod must be used in pairs. And that means you best add a try/finally construction to your code to make sure the LeaveMethod is executed alwas.

TrackMethod however works with an interface and relies on the reference counting of the interface. This means you only need to add one call at the beginning of amethod/function to track it. There's no need for the try/finally construction. To me, that is a good thing because it won't clutter the readabilty of your code as much. Nice.

The console
Until now CodeSite and SmartInspect are about equal. The only real difference I found was the TrackMethods in SmartInspect, but CodeSite has functionallity to log to the windows event logs. So, the scores are equal at half time. But the real difference is in the console. While the CodeSite viewer isn't bad at all and gives you good possibilities to view and filter log messages, I think SmartInspect wins on points in that department. You have various viewers (a watch pane, some detail panes) for information from you log file. There's plenty to filter and various ways of finding specific information in your log file.

Conclusion
SmartInspect is just a very good product. From experience I can tell you that having these kinds of logging capabilities out of the box helps you to debug your software immensely. I couldn't program without them anymore. CodeSite and SmartInspect are comparable products with (about) equal prices. Download the trial versions to see what's your favourite.

Bye,
Bart

Thursday, July 10, 2008

What are those prizes in the race? - Part 1

While the race is one I will write a little report about the prizes that the contenders are programming for. First up will be the DevExpress components. This one is easiest for me, as I am a current user of the VCL subscription package.

I've written about various parts of the DevExpress components before. If you've read those postings it's not a great surprise to you that I am a big fan of the DevExpress components. This posting is basically a song of praise. I've written before that the standard that DevExpress works on, is what we strive for in our company. That sums it up really...

DevExpress website
While technically not a part of any of their packages, the first thing that you experience is the DevExpress website. I thought I'd mentioned this because it can make a huge difference in the first opinion that you have about a company and their products. The DevExpress site is beautifully layed out (although a bit bombastic for my taste) and you can find any information that you like very quickly. Their support sections is up there with the best to be found on the web. All of this gives you great confidence about the products you are about to buy.

VCL subscription
Now, here's a tip that will actually save you money. Go for the VCL subscription package immediately instead of buying that one companent pack that you think you are looking for. I started with the navigation controls first, purchased the grid controls later and ended up buying the VCL subscription. Although you get some discounts of you ask for them, in the end you will pay more money. If you go for the VCL subscription in the first place, you get the lot immediately. And you will get all the beta releases of new components first, so you can immediately dig into those.

Overall quality
The overall quality of the controls is really excellent, with good online help and examples. All the components have plenty of properties to tweak them to your liking. Special attention is given to the look and feel of the controls. There's about nothing that you can't reconfigure with regards to the way the controls appear in your program.

However, a couple of things can be said. There are some components that haven't been updated in a while. I found myself using the navigation controls, the grid controls, the editors of course and the cxLayout components a lot. The other controls I don't use that much.

Look and feel
Recently DevExpress released the ExpressSkins libray which is used to apply skinning to your controls. That means you can give your application a very unique look and feel. There's a skinning editor to create your own skins and of course there are plenty of ready made skins to choose from. It took me about a day to add a user configurable skinning option to our software so each end user can select the look and feel of their choice. Great stuff.

Grid controls
I think DevExpress is best know for their incredibly good grid controls. DevExpress grids are very versatile, very fast, user friendly and offer unrivaled filtering and sorting capabilities. The only 'negative' thing that somebody told me once is that you can configure too much. True, it takes a bit of time to learn all the properties of the grids, but once you've got the concept behind the properties, it's not that difficult to find your way. And of course, a lot of properties also means that the control probably can do what you want.

Layoutcontrols
On different occasions I wrote about one of the frustrations of the last year or so. I started looking at the layoutcontrols once we got the VCL subscriptions. Before, I had read about the layoutcontrols, but to be honest, I didn't believe what DevExpress put up on their website. How could a set of controls relieve me from all the positioning that I was used to do on my dialogs? Not in a milion years a set of controls could do a better job than I did.
That was one of the biggest mistakes I made the last couple of years. I should have had a look before. If I had done, I would have started to use the Layoutcontrols ages ago. They are SO good that I still am amazed every time I use them. Positioning controls on a dialog has been removed from my tasks completely. The DevExpress layout controls take over all the hassle of making sure my dialogs look good.
The Layoutcontrols don't get much exposure but I honestly think those are the best controls that I ever worked with. You're a fool if you still are positioning your controls yourself. Go on, have a look at those and your life as a user interface programmer will change completely.

Schedular controls
Now, I haven't actually used the schedular controls yet from in demos and experiments. But, everytime I use them I am amazed at what I find. You can literally with adding one component implement a calendar feature to your application. There's not much more to it that adding the control and filling it with data. Of course to use the information in your software you would need to program a bit more, but the actual calendar and storing the calendar data is all taken care of. An excellent component that - if you have any use for it - will be much appreciated by your end users.

Navigation controls
The navigation controls (menu bars, navigation panes, ribbon controls) is what started me as a DevExpress user. Needless to say that using them is dream. Using the navigation controls means it's a no hassle, painless way of implementing a professional navigation interface to your software. One excellent thing is: there is a cxImageList control that supports PNG images. If you use PNG images (like http://www.famfamfam.com/lab/icons/silk/) you get excellent results. Much better than that old Win95 icons that you might be looking at in your software right now.

No trial version
I've seen comments on the web complaining that DevExpress doesn't offer trial versions of their software. That is true for the VCL components, although there are demos and there is a 'money back guarantee'. The .Net controls do come with a trial version though. To me, a money back guarantee is good enough but I think it would be better for DevExpress to see if they can implement a trial systems for their controls. Especially if you have large development teams, purchasing the controls means serious money and I think one is 'entitled' to be able to test the controls in real life. But that of course is a business decision DevExpress needs to make.

Summary
I'm not a dxExperience user, although I am using the ASPx packages. To summarize the C#/.NET packages: IMHO they are at least of equal quality to the VCL components, if not better. I think that the comments I have on the VCL package should be applicable to the dx components too. I've use the dx-components in their trial version and I really like what I saw. Very familiar way of working compared to the VCL controls.

All and all I couldn't give more praise to a company than what I did here. I truly believe (and not because they sponsor the race) that DevExpress has a great philosophy, offers unrivaled value for money and actually will save you a lot, a lot of time as a programmer. Their support is great and the VCL components still get their updates and new features. I only whish they had even more programmers working on the VCL components (it's quite obvious that their money is in the C#/.Net controls).

Bye,
Bart

Race on in its way: first reports are in...

The Race has started and the first progress reports are coming in. Go and read the website on a regular basis to see how the contenders are doing. Some don't publish their reports on the website, but on their own blog, like here: http://beauhinks.com/category/programming/darwin-race/

Bye,
Bart

Tuesday, July 08, 2008

DevExpress donates a great prize for the contest

DevExpress will give away a license to DXperience Enterprise or the VCL Subscription, the winner gets to pick either one. I think this is a great gesture and will be welcomed by the contenders. If ever you needed an incentive to make yours a last minute entry, now is the time.


For more information point to http://www.darwinraceoflanguages.com/.


Bye,

Bart

The race has started: 8 contenders rumble for the prizes

The race has started. 8 Contenders will program their tool of choice to win the prizes.

They will work on the problem that they picked and will keep a record of things that come up, documenting their experiences while programming. After two weeks (the duration of the race) their software and experiences will be published on the website for all of you to judge.

If you want to enter the race, you still can. You won't get more time, but if you think you are up for the challenge, please drop me a note.

Best of luck to all of them and I will post their notes when I get them during the race. So go check the website every now and then to read about their progress.

Bye,
Bart

Monday, July 07, 2008

6 contenders in the contest...

But, it is still the 7th of July, so you can still enter the race. The prices are good enough and you will help your fellow programmers in supplying valuable information about your tool of choice.

Tomorrow the race starts and the contenders start programming. After tomorrow you can still enter the race, but you will lose valuable time (the race ends at 22 July, no matter what).

So, go to http://www.darwinraceoflanguages.com and pick up the challenge.

Bye,
Bart