views:

171

answers:

3

I am building a c# winform app and the framework I inherited uses UI Controls from this library LumiSoft These seem fine but aged and buggy. The previous developer preferred them for the smaller sizes they allowed. I recently discovered these controls for free as well: DevExpress These are much newer and more full featured.

My question's are thus:

  1. What if any are the downfalls to having TWO ui controls attached to my project?
  2. Is it worth my time to replace all Lumisoft with the DevExpress?
  3. What are peoples general feelings towards using UI Library's like DevExpress?
+2  A: 

1) The downside here is that you end up distributing more assemblies and so taking up a larger hard drive footprint because you are using two sets of controls that are likely to overlap in functionality. Depending on your application and target users this might or might not be an issue. Second is the problem of keeping the user interface consistent. If both libraries offer an Office 2007 look and feel they might not match in colors exactly and so your application could look inconsistent.

2) Only you can know if the time it would take is worthwhile for your project. Take into account that replacing a control with another from a different vendor is unlikely to be a simple renaming of the control class. They probably have a different set of properties and so you need to spend time modifying the code so it compiles again and then retesting to ensure it works as expected. Unless your customers are demanding a change then it is unlikely to be worth the effort compared to the same time spent adding new features.

3) Unless you have a very trivial application you are almost certain to save time using a component library instead of writing everything yourself. This is why Infragistics, DevExpress, ComponentOne and many other vendors make a nice living from component marketplace. Plus then tend to keep their libraries up to date with the latest look and feel which makes it easier to update your own application to mimic that same appearance.

N.B There is another free control library called Krypton Toolkit but in the interests of disclosure I would point out that I wrote it myself! So I am biased in recommending it.

Phil Wright
A: 

When I have decided to leverage a third party control, what I do is create a custom control in my project that acts as a simple container for the third party control.

Then, I create my own properties that allow me to define how the setup and customization of the underlying control is done. Why go to all this trouble?

Because if I want to switch from 3rd party vendor A to 3rd party vendor B, I only have to change my custom control, and all the references to the vendor A controls are now gone and replaced with vendor B controls.

Depending on the complexity of the controls that you are wrapping this may not be a viable solution for you. However, if you're having to find all these old controls and switch them to something else anyway, maybe a little bit of time up front now can save you any future headaches as you find other controls that you like better (or even choose to implement yourself).

Good luck!

scwagner
A: 

So I am gathering that the risk is minimal. Size related. I shouldn't have to worry about conflicts etc. I am also gathering that it is an acceptable practice to utilize these types of controls?

Thanks!

Refracted Paladin
Well you didn't mention what your distribution of your application is, but I use third party controls because they end up being very cost effective (especially the free ones, but even commercial ones) in that they save you so much time and debugging and accomplish what you need.
scwagner