Are there any high level platform UI interfaces?

It's very common for business applications in the .net world to use third party controls like devxpress, componentOne, etc. They allow for skinning, rich controls, and more.

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

I couldn't find any, so at the lower level I was looking at:

  • raw Mono 2.0 winforms - unproven, maybe has some quirks, no rich controls, no skins

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

  • GTK - no rich controls, no skins, no natural windows.

  • Silverlight - no access to the file system

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

thanks for any suggestions

[EDIT] with advanced controls, I mean things like eg. hierarchical grid (with tree folding row)

+1


source to share


6 answers


Please 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?

+2


source


wxWidgets / wxWindows can 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 good luck with it on multiple platforms.



I would guess there are several .NET bindings available at this point.

+2


source


I am not aware of any truly cross-platform UI controls that could be used to effectively build rich enterprise applications.

The approach I've taken so far is to make the presentation layer as thin as possible and place it in separate presentation modules / assemblylies (separate from interfaces, controllers and other components). Then you can develop additional presentation modules for the target platforms using the best technologies available to it.

WCF can simplify things a bit, but will still be compatible with this approach.

+1


source


wx.NET ( http://wxnet.sourceforge.net/ ) can be used.

0


source


I would recommend wxWidgets too. If you are in Python, use wxPython. The best part is to write custom wx controls in whatever language you work with and render them correctly on all platforms.

0


source


Here's Eto.Forms (on github), which is an abstraction layer on top of WPF , WinForms , GTK and MonoMac / Cocoa - so you can get your own UI on all platforms without having to re-implement for each platform. You don't have to suffer from the lowest common denominator as you can implement platform specificity (if you want, but not necessarily).

As far as rich controls go, it has a TreeGridView, which is a tree-like hierarchical grid. This control (and all other controls) are fully functional on all platforms.

In terms of skinning, you can exchange controls for each platform. For example, WPF has very extensive skinning features that you can take advantage of, etc. Another way is to implement controls using the rich graphical / graphical interface capabilities.

This has the advantage of being pure .NET and only depends on OS dependent dependencies, as opposed to using GTK, QT, or WxWidgets where you have to link native binaries for different platforms.

0


source







All Articles