Click here to Skip to main content
15,881,172 members
Articles / Desktop Programming / Windows Forms

Review of DevExpress WinForms Controls

Rate me:
Please Sign up or sign in to vote.
4.95/5 (14 votes)
12 Nov 2013CPOL11 min read 138.3K   11   10
Are you looking for WinForms control libraries to improve productivity of your development team and provide a better user experience for your end-users?

This Review is from our sponsors at CodeProject. These reviews are intended to provide you with information on products and services that we consider useful and of value to developers.

(This article is cross-posted at dotnetspider.com. Click here to read Review of DevExpress WinForms Controls. A review of the newer version of DevExpress WinForms controls can be found here.)  

DXperience 2012 

DXperience 2012 is a modern and advanced next generation set of developer tools from DevExpress, the company which has a proven record in offering productivity tools for Visual Studio developers. 

There are various editions of the DevExpress available. Here is a list of available editions that you can choose:

  • DXperience Universal
  • DXperience Enterprise
  • DXperience WinForms
  • DXperience ASP.NET
  • DXperience WPF
  • DXperience Silverlight

If you are a professional developer and work on a wide range of .NET technologies, you may want to chooser DXperience Universal which includes all components for various .NET technologies.

Here I am going to discuss my experience in using DXperience Winforms controls. We all know Microsoft has made a lot of free .NET controls for Winforms application development. Remember the olden days of C or C++ where we had very few visual controls available and we had to build a lot of them ourselves. Microsoft has come a long way from there and we have a lot of controls available with Visual Studio to develop cool Windows applications. However, when it comes to developing advanced and sophisticated user interface, the default controls available with Visual Studio is not sufficient. Many times, I had to create my own custom user controls to develop intuitive user interface.

Of course I have the choice of developing my own controls, but it has a lot of drawbacks:

  1. I end up spending more time developing user controls than spending time on the business logic of the application.
  2. Newer versions of Visual Studio could have breaking changes and I will end up rebuilding my user controls, spending a lot more time on it.
  3. Since building user controls are time consuming, I would often compromise on the features and live with fewer features. This would result in a lower quality application.

How DevExpress helped us? 

DExperience is a set of productivity tools from DevExpress. It comes with a wide range of tools for various platforms including Winforms, ASP.NET, WPF and so on. I have used the Winforms controls and let us how the DXperience Winforms controls helped us develop advanced software applications for our clients and helped us generate more revenue for our business.

One of the cool things about DExperience is, it adds many new templates to your project templates. You can choose an appropriate template so that you can jumbo start your project with a lot of foundation work already done for you. Take a look at the project templates available for Windows project:

Image 1

If you like to create a standard Windows application, you can choose the DXperience Windows Forms Application which will provide you the platform to create intuitive Windows application for any general application development. After you create a DXperience template for your new project, you can customize how your application should look like. You can choose the controls you want to be placed at each command area of the application main window.

Image 2

One of the best things I like about the DXperience Winforms controls is, without writing a single line of code, you can get a basic application up and running. Here is a sample application I created just by going through the New Project wizard. Take a look at the customized project, which was done without referring to any help topics and without writing a single line of code:

Image 3

All I did was selecting the preferred controls during the new project creation wizard and it created a pretty cool application as shown above. DXperience has placed the advanced yet cool controls for me in the project and even loaded lot of images for the "Gallery control" from its image library.

Using DXperience Controls

DevExpress has made the application development easier by providing easy to use controls for Windows Forms. DevExpress controls use standard Visual Studio development methods. For example, you can right click on any control and set the standard properties for any DevExpress controls, just like you do it for Windows controls.

Consider the navigation control as an example. You can drag and drop the navigation control to your Winform window and press F4 to get the properties window. In the properties window, you will see the standard .NET properties. DevExpress has carefully chosen standard naming convention for the property names so that the .NET developers will not feel lost when they are working with the DXperience controls.

In my case, when I was developing the Cargo tracker project, we were able to create the new project using the wizard and then modify the controls according to our needs. Almost all of the changes we had to do was pretty obvious and we never had to refer to the help topics until we had to perform some advanced programming. Changing the navigation menu, removing/adding gallery items, adding event handlers to navigation items etc were very straight forward. For example, we could add an OnClick event handler to the CargoTracker toolbar items by double clicking on the navigation entry, just like we do it for any other standard Windows controls.

DXperience templates vs Visual Studio templates

If you don't want to start with a DXperience project template but want to use the default Winforms template, you can go for it. A typical example is, adding more intuitive user interface to existing applications. You can install DXperience and start modifying your existing Windows application by adding or replacing your existing controls.

DXperience Winforms pack comes with about 100 new controls. Some of them are similar to existing windows controls but adds lot of functionality to it. A typical example is the Tab control. The classic Tab control that comes with Visual Studio has very limited functionality and offers limited customization. You cannot even change the background color of the tab headers. But if you replace the default tab control with the DXperience tab control, you are opening doors to a wide range of features and options.

Some of the advanced features in the DXperience tab controls include:

  • Customize the appearance with various background and foreground colors
  • Use images as background for Tab control and tab headers
  • Customize the tab header however you want
  • Add a close button to the tab control
  • Add close buttons to active tab page or all tab pages.
  • Use gradient colors
  • Choose Skins to customize the control

Take a look at a sample screen where I have placed the DevExpress Tab Control and the default Winforms tab controls. Also, I have used the DevExpress label control and winforms label control. You can see that the DevExpress controls offer a lot more customizability to create very appealing user interface.

Image 4

My favorite DevExpress Controls

If I choose to write on all of the cool DevExpress controls, it may take weeks to cover them all. I am going to talk about some of my favorite controls here.

XtraTile Control

This is one of the new controls from DevExpress that imitates the new Windows 8 Tile controls. Tiles are a new concept in Windows 8. A tile represents an application icon in the desktop. More than just a shortcut icon, it represents the application itself. A tile can display a lot of information from the application, including current data and latest updates from the application. For example, if you have a Tile representing a chat application, it can show your buddies who are currently online, latest messages from your friends, new emails from your contacts and so on. So, basically, a Tile is a mini application running in the background.

The XtraTile is one of the latest controls from DevExpress that helps you build cool .NET applications that look like Windows 8 Metro UI. Using this control, you can create Tiles and Tile Groups in your application. You can drag and drop a tile control on your form and add Tile Groups and then Tiles in to the Tile Groups. You can configure the background image for the Tile, set text, change colors and so on.

Here is a screenshot of a Tile control on a Form which I created in a few minutes without writing any code:

Image 5

Just like Windows 8, you can have small tiles or double sized tiles. The XtraTile control gives you a lot more flexibility and options than the real Windows 8 Tiles.

Some of the cool features of XtraTile control I tried are:

  • Configure the size of the control, in addition to choosing small or large Tiles
  • Arrange the Tiles in to Tile Groups
  • Built in Drag & Arrange option which allows you to move around your tiles in the application at run time. This would allow the end users to re position the Tiles in the application according to their personal preferences. They can move the most used controls to the hot positions.
  • They are touch-friendly. It is easy to develop a touch based application using the XtraTile control, where users can control and navigate through the application with touch instead of traditional mouse and keyboard.
  • Tiles have lot of customization options. You can change the appearance of the Tile at various actions like hover, click, selected etc.
  • There is a "checked" state which allows you to show special state of the Tile.
  • Tiles can be animated. You can choose multiple images and animate them on the tile. For example, in case of a "Contacts" tile, you may animate the photos of the people are currently online. In case of a Stock Symbol tracker, you may animate and show the prices of various stock symbols configured.
  • Builtin support for ItemClick, ItemPress and ItemRightClick events.
  • Use Html with the text. Windows 8 supports HTML 5 to develop cool metro apps. The XtraTile is not there yet, but allow you to use basic HTML to format the text displayed in the Titles. Here is the HTML I used to set the .Text property of the Contacts Tile in the screenshot shown above:
<b>Contacts</b><br><size=7>Phonebook</size>

It shows the word "Contacts" in bold and then there is a line break represented by

  • The word "Phonebook" is in a small font as specified by the attribute "size=7".

The reimagined Windows 8 is expected to change the way software applications are developed for Windows. The metro style UI is expected to gain traction once Windows 8 becomes the standard desktop OS. Many of the upcoming laptops, tablets and ultrabooks are Touch based instead of mouse and keyboard. I believe the future of Windows applications is "Touch Apps" and XtraTiles is a great choice to develop touch based applications without spending your valuable development time on implementing the Tile features.

Learning Curve

Even though most of the controls are easy to use and work very similar to default winforms controls, it may take some time to master the advanced features. However, once you get used to the terminology and property names of one or more controls, you will feel very comfortable working with any other DevExpress controls since they use a consistent naming pattern across all of their controls. For example, all DevExpress controls have a property named "Appearance" which can be used to customize how the control looks. Once you learn how to use this property for a control, the same knowledge can be applied to any other control.

Conclusion

During my past 15 years of career as a software developer, I have used various third party productivity tools including DevExpress tools. DevExpress controls are one of the most stable and easy to use tools that can cut down your development time up to 50%, depending on the advanced user interface you need. The no-non sense licensing model allows you to choose a single package which allow you to use any one platform like Winforms or an all-in-one package that allow you to work with all .NET platforms. With the extensive help & documentation, you will not need to look anywhere else to get answers for your question. Just in case you can't quickly find what you need, you have a lot more options like a friendly customer support and online community forums hosted by DevExpress and supported by some DevExpress engineers who are always eager to help the developers. The great set of video demos and tutorials will give you a glimpse of the unlimited possibilities with the DevExpress controls. If you are looking for up to date information on the latest news from DevExpress, the DevExpress Blog is a great place to keep an eye on. The Free Webinars by DevExpress are just another way to learn from the horse's mouth. With so many options to learn and a wide range of tools to develop intuitive user interface, DevExpress controls are an excellent choice to increase your productivity.

Disclosure of material connection: I received the DevExpress suite of controls for free in the hope that I would review and publish it. Regardless, I only recommend products I use personally and believe my readers would enjoy. I am disclosing this in accordance with the Federal Trade Commission's 16 CFR, part 255: Guides Concerning the Use of Endorsements and Testimonials in Advertising 

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Web Developer
India India
Tony is a seasoned .NET developer who recently switched his focus to Windows 8 and SEO. You may visit his technology websites: www.dotnetspider.com and www.techulator.com.

Comments and Discussions

 
QuestionXtraTiles, really?! Pin
DavL8118-Mar-13 2:47
DavL8118-Mar-13 2:47 
GeneralMy vote of 5 Pin
Mehul Harry16-Jul-12 9:21
Mehul Harry16-Jul-12 9:21 
GeneralBlinded by the light.... Pin
BruceL10-Jul-12 6:52
BruceL10-Jul-12 6:52 
This author gives DevExpress good marks, and I can understand how and why he does that - however, let me warn anyone considering DevExpress to NOT be baffled by the initial impression one gets from this package. Yes, DevExpress has good support people. Yes, DevExpress has extensive documentation and videos. And yes, they have some nice looking controls - but now, here's the truth from someone who has used DevExpress for a couple years now...
Their support people are polite and often knowledgeable, but its a hit or miss proposition and recently more misses than hits. That is, you might get a well-informed support person who understands your problem, but the chances are better you will get someone who is polite, yes, but has not got a clue how to help you. Yes, their documentation is expansive - SOOOOOO expansive that finding particular help is like trying to find one particular fish in the seven seas of the world. That is, its going to take you forever, IF you can even find it. The DevExpress controls DO look nice, but what you will learn very quickly is that these are slapped together with very little supporting code (you have to write most of it) and they simply missed the boat on very basic controls that any 3rd party should have. For example, a Tri-state treeview. This kind of control is used all over the software world - DevExpress never included one and when I asked them about it, they said I would have to write it myself. Worse, many of thier controls are "cool" to developers but end-users HATE them due to their complexity, difficulty in using them, and ineffective operation that does not speed their work, it slows them down.
I have been in this business for 33 years and used many 3rd party controls - DevExpress DOES have some of the "coolest" I have seen, yes, but DevExpress also has some of the worst, most useless, and most confusing controls I have ever seen - AND, I have NEVER seen any 3rd party company release controls in such an unfinished state. There are certain methods and properties that just are not there - and you have to write them where with any other company, they would be there for you already. After all, what is the point of using 3rd party controls if it only INCREASES your work???
DevExpress is also a company trying to do WAY too much. That means what YOU get are controls that are slapped together as fast as possible, and DevExpress seems to spend NO time thinking about what developers really need - instead just rushing out more and more silly controls to increase their package size.
Lastly, DevExpress controls are poorly laid out. Try something as simple as centering text in a textbox control. You would think to just look for the Alignment property right? Well, DevExpress BURYS that property about four levels down where you have to find "Appearance->Text->Text Options->Alignment"... Now think about that - EVERY other control in the Universe just adds the good old Aligment property, but not DevExpress. So when I first went searching for how to center text I then had to spend a good 10 minutes going through their MASSIVE help system, which is rather poorly organized, all to find a property I know well, and expected to appear where it does in 99% of other controls/development systems.
We originally purchased DevExpress largely for their Reporting tool - we had been using Crystal Reports and I didnt think any package could be worse than Crystal Reports. I was wrong - DevExpress XtraReports now makes me yearn for the days of Crystal. XtraReports lacks so many key features (formula fields, direct line to Stored Procedures, etc. etc.) that are already in Crystal - but somehow DevExpress came out with this confusing, confounding and (worst of all) memory hog of a reporting tool. Yes, the reports themselves do look nicer than Crystal! But putting them together took about 10 times the amount of time Crystal did, and though DevExpress' WYSWYG designer is nicer looking, it lacks many great features Crystal had.
I have tried to be patient with DevExpress but after a long time using it I must say I wish we had never gotten involved with it. I would rather go back to buying 3rd party controls from companies like DBITech and others where their controls are done and ready to use - because most of DevExpress is NOT ready for prime time.
Overall for us, DevExpress has been a real letdown and we have gotten orders from the bosses to stop using it - it just causes too many problems, and costs too much time for less of a return than expected.
You will read many reviews where people rave about DevExpress - Ive seen these a bit in the past year - but you have to use it for a while to realize how unready, unruly, and unproductive a package it is.
We now consider DevExpress to be the "Pam Anderson" of 3rd party products. That is, it looks very very nice, very tempting - but once you get to know it, its an idiot. For DevExpress, it looks nice, a couple controls are even useful, but overall its a lot of undone useless work that is not going to enhance your end product enough for the time and effort required to make it work.
GeneralRe: Blinded by the light.... Pin
Carlos190712-Nov-13 22:41
professionalCarlos190712-Nov-13 22:41 
GeneralRe: Blinded by the light.... Pin
SpArtA16-Nov-13 23:27
SpArtA16-Nov-13 23:27 
GeneralRe: Blinded by the light.... Pin
Niemand2517-Nov-13 23:46
professionalNiemand2517-Nov-13 23:46 
GeneralRe: Blinded by the light.... Pin
MainFrameMan_ALIVE_AND_WELL$$17-May-16 13:10
MainFrameMan_ALIVE_AND_WELL$$17-May-16 13:10 
SuggestionMore controls perhaps? Pin
Slacker00726-Jun-12 5:57
professionalSlacker00726-Jun-12 5:57 
GeneralRe: More controls perhaps? Pin
T Manjaly27-Jun-12 6:53
T Manjaly27-Jun-12 6:53 
GeneralRe: More controls perhaps? Pin
Slacker00727-Jun-12 7:14
professionalSlacker00727-Jun-12 7:14 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.