Without any extra work on your part, your
application will run on Linux, Mac OS X, and Windows using any of the
following .NET runtimes: MS.NET,
Mono, or DotGNU Portable.NET.
Native UI, No Emulation
Unlike other toolkit approaches, WX.Net uses the native UI framework
on each platform. Under Windows the WIN32
API is used to create buttons, checkboxes, etc. On Linux, GTK+
2.0 is used (not really "native", but a look/feel users are familiar
with). On the Mac, the full aqua
look and feel is provided by using Quartz
window compositing and HIView
implementations for controls.
Other toolkits take the emulation route. This can cause look/feel
inconsistencies to end users and slower executing interfaces.
Native UI Without Compromise
Some native UI toolkits have to make
compromises by only providing those widgets and features that exist on all
target platforms. This is the so-called "lowest common denominator"
problem. WX.Net avoids this by either implementing missing widgets through
compositing of native controls or by using a platforms' native themeing
example, MDI is available on Windows and Linux and advanced tree and list
controls are available on all platforms.
WX.Net uses the concept of sizers
to layout a user-interface. This makes creating cross-platform and/or variable
font size UIs a breeze. You define your layout based on a hierarchy of widgets
and sizers, and let WX.Net worry about the geometry and placement at runtime.
Sizers can align their widgets vertically, horizontally, or in a grid. One or
more of your widgets can be declared such that they "grow" into the
available space in a window. As a window is resized, the sizers dynamically
adjust the layout to account for the new window size.
Rapid Application Development Using UI Editors
Who wants to code UI bits by hand? Not us! WX.Net provides three different
ways to design UIs graphically:
- The TowxNET utility included in WX.Net can convert XRC
or wxGlade WXG UI layout
files into C# or VB.NET source code. You can edit the output code, add
event handlers, etc. Similar to Visual Studio.NET's form editor, if you
update your design and re-run TowxNET, your modifications remain intact:
only the UI initialization code is affected.
- The XmlResource
class can be used to dynamically create dialogs and frames from XRC
resource files. This is a great way to add skinning support to your app or
to update parts of your UI without recompilation.
- At least one dialog editor, wxDesigner,
can generate C# code natively.
For more information see the WX.Net user's manual (TODO). XRC files can be
exported from DialogBlocks,
and many others.
No Restrictions on Commercial Use
WX.Net uses the wxWidgets license.
The license is essentially the L-GPL (Library General Public License), with
an exception stating that derived works in binary form may be distributed on
the user's own terms. This is a solution that satisfies those who wish to
produce GPL'ed software using wxWidgets, and also those producing
Completely Open Source
Not a single piece of WX.Net or wxWidgets
is controlled by a company or in any way proprietary.
HTML Rendering Widget
The HtmlWindow class provides a lightweight HTML 3.2 rendering engine that
is perfect for display rich text using a common API on all platforms. This
is a great way to spice up reports, display built-in documentation, and
provide micro-browser services.
There are also wx.Widgets interfaces to full-blown browser engines: wxIE
for Windows, wxMozilla for Linux, and wxWebKitCtrl for Mac. The wxWidgets team
is in the early stages of creating a unified wrapper around these. We plan on
providing a WX.Net wrapper as soon as it is available.
WX.Net has an active developer community. And more importantly, it's underlying base, wxWidgets, is
mature and actively maintained.
If any bugs are found, they are quickly fixed. Because source code to both
WX.Net and wxWidgets is available, you can easily compile a version of
WX.Net with fixes before they are available in a new WX.Net release.