Wednesday 27 June 2007

Real-world tools #3: TMS Components

I'm not a fan of component packs. As I said before, I'm a conservative developer who (rightly or wrongly) believes that the less third-party tools I can get away with using the better, purely for future-proofing purposes. When a third-party vendor I already use provides a component similar to some other component I found somewhere, I'll switch to that one to reduce my dependencies. If Delphi then provides that same component as standard in its next version, I'll use that one and thus reduce my dependency again. But it's inevitable that eventually you do have to make use of the terrific toolsets out there because they're there to enhance your applications.

Some aren't so terrific.

For as long as I can remember, Woll2Woll Software ran the same Woll2Woll InfoPoweradvert in all of the published Delphi magazines with exactly the same screenshot of their InfoPower Suite of components. They have achieved the unenviable by managing to show a product that looks no better in 2007 as it did in 1997. Who in their right mind would buy this product when the screen shots look like this? Is this demo showing the best capability of their component suite?

To be fair, because of this I have never downloaded and trialled this package, and it may be that many of you are using it and couldn't live without it. If so, tell us about it, because I wouldn't go near this looking like a Windows 3.1 application and maybe I'm missing out.

On the other hand, TMS Software and its founder Bruno Fierens have produced some outstanding Delphi components for many many years. I have been using them before there was even a component pack, instead each component could be used and bought individually. The main draw back then was that for non-commercial use, the components were free, without source. I understand this is still the case. But of course I am using them for commercial use, plus I always support other software vendors, and so I have purchased the Component Pack which, quite simply, is outstanding. Especially when you get full source code too.

TMS AdvancedStringGridFor a staggeringly small €175 (just under £120 or $235 US), the pack contains over 275 components and a year of free updates when they're released, as well as direct email support. Again, I'm not here to promote someone else's business but I am prepared to acknowledge good work and good value for money when I come across it.

In fact it is great work. What started out as a series of Advanced components to replace the Delphi standard components has grown into a business that has seen TMS win award after accolade. The components are never left alone, they're constantly being improved and updated; whilst new components get added all the time to try and keep up with the style that Microsoft have decided to take on with each release of Office.

Whilst many may not care about this (I personally don't use them), and Nick Hodges recently said that CodeGear isn't going to try and play catch up with MS any more, to me it shows that Bruno and co are on the ball, always trying to be first to give you that new "look" should you want to keep your products looking in keeping with what Microsoft call the new standard. This isn't playing catch-up at the expense of the other components, this is simply good sense on their part. I'll talk about the moving-Microsoft-standard another day!

TMS also did themselves a lot of favours by supporting Intraweb almost as soon as it came out. Their Intraweb Pack contains over 70 components to enhance Intraweb applications in the same way they enhance Windows ones. We used them here for a while when we had a browser-based application and they achieved more than we could have done with Intraweb alone. Not only that but they've branched out into ASP.Net, CLX and PocketPC component sets too (although you can't use these with Delphi for .NET as it doesn't support the Compact Framework yet, if ever).

The component pack was runner-up for Best VCL Component Set in the 2002-2004 Delphi Informant Magazine awards, second each time to the ExpressPack by DeveloperExpress. I haven't used these components either but they do look good, and I suspect there is an even split between you regarding which one of these sets you use. Although to my eye they're not necessarily direct competitors as the DevExpress toolset is more about the visual whereas TMS also provides a lot of non-visual components to do donkey-work for you.

At any rate, at least both of them know how to market their products well.

Update: Milan & Paul have made valid points about the documentation and it has been remiss of me to not talk about that in any of my Real-World tools series so far. The documentation in TMS is poor, although sadly this isn't unusual in what I call professional components. ReportBuilder now has excellent documentation and for ODBCExpress, it is acceptable in that the Delphi Help is pretty much all you need. TMS have made the same mistake as Borland did with BDS2005/2006, and to some extent with Delphi 2007 for Win32: that is, not document all of the properties, methods and events. I'm not sure what is worse. TMS omitting them all together or CodeGear having the stub in the help file with no words.

As all of us developers know, documentation comes last but there are so many good tools out there now that can write your documentation for you if you have well-structure code commenting. The JEDI documentation is half missing too but that's free and open source so forgiveable and, in part, up to us to help them with that. It's not forgiveable when you've paid for the components and the technical support falls a bit short (although I've had some good feedback from Bruno via the groups and email in the past).

10 comments:

Anonymous said...

I share your belief in using as few third-party components as possible. Over time it really gets hard to maintain a product that relies on a lot of third-party dependencies.

That said, components from TMS Software and Developer Express have still found their way into every application I've written.

Anonymous said...

I purchased TMS component pack recently. I was very happy that my applications got a nice, modern look. However, problems started arising quickly. Most of those nice visual components had at least one problem, which was making me modifying the original source code very often. This became a nightmare with the first update released by TMS. I had to compare each unit manually and to make changes where necessary.
Installation procedure is a nightmare, especially with updates. If you manually do not delete all .bpl and .dcu files, you are in a great danger that some older libraries will remain. Recompiling the packages does not solve the problem, since search paths are not well defined and you end up with multiple .bpl files in multiple directories.
Furthermore, technical support for TMS components is lacking efficiency, it is very slow and it usually ends up by Bruno Ferens saying "Sorry, but we cannot reproduce the problem, make sure you are running the latest version of the components".
Tech. support is closed in a peer to peer newsgroup, which is optimized only for Microsoft Outlook news browser. For the rest of us who use different news readers it is impossible to add attachments or to download any. All the same, searching through such newsgroup is very slow and inefficient.
Moreover, documentation for TMS Component Package is very poor. Often, a component has a lot of properties and methods, but looking at field names, it is not possible to determine what the property is for. Normally, one should look in help for details, but most of the time, there is no such page.
Finaly, TMS component pack is a great looking product, but it is missing two most important features: 1. Useful and working techical support, ready to assist customers fully
2. Valid documentation, i.e. help system with examples which would answer many questions and give more comfort to users.
Therefore, TMS package is still immature, with danger to implode due to great attractive look, but with lack of support, documentation and customer care.

Milan Kovacevic
Deloitte UK

GreenparkPaul said...

I have to agree with Milan about the documentation. We have been using Advanced String Grid component from TMS for about 2 years now, although we haven't had any problems with them it has been an extremly steep learning curve trying to workout how best to use them. Documentation is near useless and the demo programs have really helpful names like asg1, asg25 etc.

Unknown said...

I could not get along without TMS components. Sometimes, trying to visualize a solution that would be intuitive to my user, I will browse the TMS website looking at the components and trying to mentally fit one to my problem. I have been able to rely on the components and the demos to handle some really tough problems.

I agree with anonymous that the TMS documentation could be improved. On the other hand, I have never been stuck for more than a couple of days on an issue involving a TMS component. If I cannot find how something works in a demo that exhibits the functionality I want, I put a message in the newsgroup and get a response usually overnight. Sometimes it is Bruno who provides the help, sometimes another user. Bruno has always been a first class professional and the user group is generally friendly. It is certainly not the best of all worlds, and I am sure Bruno could save himself and the rest of us a lot of time if he had someone spend time on the documentation, but all in all, it is workable and the components themselves are outstanding.

Anonymous said...

I have used TMS components extensively in commercial applications and have been more than happy. The price for a site wide developer licence is a steal and, having been previously caught out by lack of source code for another vendor's 3rd party product, we love having the source code. Of course we find bugs but having the source code allows us to fix and continue. However in these cases I always contact Bruno at TMS with my fix and it normally is included in the next release making ugrades simple.

Anonymous said...

I use the DevExpress component pack myself, they're good, but SERIOUS BLOATWARE. Add a grid and some other components and suddenly your EXE is 2MB larger :-(

Anonymous said...

Be glad you haven't looked or used woll2woll, we are in the process of moving away from there components.
which are unfortunately extremely well entrenched.
(On a project I took over earlier this year.)
Haven't used them before, will not use them ever again.
Dev Express and TMS are both great component sets, albeit a steep learning curve.(All components with great functionality do have a steep learning curve it seems).

Anonymous said...

I've been using TMS components for about 7 years now. They've gotten better and better which each passing year. The documentation barely catches up - and I've written to them about that. It's clearly not the biggest priority for them, but fortunately its typically easy to work out the answers by delving into the source code when the documentation is lacking. Their source is easy to follow.

Anonymous said...

Some good posts here - tms have been around for a while, and it's good to see they keep updating their suite. I'll have a look as there are some components we could well use.

Cleveland hotels cheap said...

Two Thumbs up! I am often to blogging and i really appreciate your content. The article has really peaks my interest. Thanks a lot for sharing this nice information.