views:

183

answers:

5

Hi there It's very common for business applications in .net world to use third party control sets like devxpress, componentOne etc. They give possibility to apply skinning, use controls with rich functionality etc.

The problem arises when we want to port such application to other platforms - are there any controls that have their eg. linux counterparts (with similar API, functionality etc)?

I couldn't find any, so on lower level I was considering:

  • raw Mono 2.0 winforms - unproven, probably have some quirks, no rich controls, no skinning

  • QT - GPL (not all clients would like to publish the source), a bit of learning curve

  • GTK - no rich controls, no skinning, not native windows look and feel

  • Silverlight - no filesystem access

  • SWT - don't know how does it work with .NET, I guess "no rich controls and no skinning" also applies here

thanks for any suggestions

[EDIT] by rich controls I mean things like eg. hierarchical grid (with tree-like collapsible row)

+1  A: 

I do not know of any truly cross-platform UI controls that could be used in efficient building of feature-rich enterprise applications.

The approach that I've been taking so far is to make the presentation layer as thin as possible and host it within the separate presentation modules/assemblies (separate from the interfaces, controllers and other components). Then, you could develop additional presentation modules to target specific platforms using the best technology available for it.

WCF might simplify things a bit later, but it still would be interoperable with this approach.

Rinat Abdullin
+2  A: 

Note that QT is available with a commercial license.

There's also Java Swing. Tk is also cross-platform.

What is GTK missing for you?

dj_segfault
No rich controls, skinning support and awkward look and feel on windows
deadbeef
+2  A: 

wxWidgets/wxWindows might be a good alternative to GTK/Qt; I don't know if they have the specific controls you're looking for but I've had luck with it across several platforms.

I would imagine that by now there are several .NET bindings available for it.

A: 

wx.NET (http://wxnet.sourceforge.net/) might be usable.

ahy1
A: 

I too would recommend wxWidgets. If you're developing in Python then use wxPython. The best part about it is being able to write custom wx controls in whatever language you're working with, and having them display properly across all platforms.

Soviut