Winforms for Mono on Mac, Linux and PC (Redux) - winforms

(I asked this question in another way, and got some interesting responses but I'm not too convinced.)
Is Mono's GtkSharp truly cross-platform? It seems to be Gnome based... how can that work with PC and Mac?
Can someone give me examples of a working Mac/PC/Linux app that is written with a single codebase in Microsoft .Net?

Realize this is now an old question, but Banshee fits the bill for being a cross-platform application that uses GTK#. It runs on Max, Linux and Windows.
http://banshee.fm/download/

Plastic SCM is supported on Windows, Linux, Solaris, and Mac OS X. The link includes screenshots on Windows and Linux.

The best example of a Gtk# app that runs on both Windows and Linux may be Medsphere's OpenVista. Granted, its not an app that many people need to run, but it is a very professional, polished, open-source Gtk# application. It shows how a professional Gtk# app can be written.
http://medsphere.org/community/project/openvista-cis

Gtk# is cross platform. However the only platform where it looks nice is Linux/BSD running GNOME. If possible somehow, separate frontend and backend and develop separate user interfaces for Linux, Windows and OS X. Even wx, which does a really good job in looking okay on all three platforms, has its limits.
Working Mac/PC/Linux app in Gtk#? Tomboy runs on all three I think.

It would be more correct to say that GNOME is GTK-based than it is to say that GTK is GNOME based. GTK is a toolkit that GNOME sits on top of, and you can get GTK for several platforms, including Windows. That's how GIMP works on Windows: you install GTK first.

Related

Desktop application for PC or MAC

I've had a quick look on the interweb and can't seem to easily find the answer to my question which is, what do I need to do differently to make a desktop application, WPF, function on both PC and MAC environments? I suppose I could buy a mac and try to run an app I've written but seems a bit expensive?
There are comments that WPF on mac is a no-go. I could convert to Silverlight with some effort but my question now is what would you develop a desktop app in for both PC and MAC, my guess is poor old WinForms? If so would the pitfalls simply be directory structure / accessing logged in user from WIN32 API commands, et cetera?
You can't run WPF on a mac.
The best you can get is Silverlight and its suitability depends on your needs.
Do you need OS level access?
As Scartag says, WPF is not compatible with OS X. However you might to consider Mono, which allows you to write cross-platform applications in C#. There are several GUI toolkits to choose from, but none are implementations of WPF. Further info on Mono/WPF can be found here.

Can the ARM version of Windows 8 only run Metro (WinRt) style apps?

See also: Is there any way to write a WinRt (Metro) app that will also work on Windows 7 and Vista?
I am trying to understand how to target both Windows 8 on Arm and Windows 7, given that Windows 7 cannot run WinRT apps. And as I understand it, apps can only be installed on ARM version of Windows 8 from the App Store.
So can Windows 8 on the Arm run none WinRT apps?
The definitive answer is out now. There will be a desktop, but you will not be able to install desktop apps. "WOA does not support running, emulating, or porting existing x86/64 desktop apps." All apps will come from the store and will have to abide by the Metro style app guidelines.
The only desktop apps appear to be Office (which seems to ship with the OS) and built-in apps like the control panel, Explorer, IE, etc. Everything else will be a new Metro-style app written against the Windows Runtime.
See this Building Windows 8 blog post for details.
"No legacy apps" is not the same as "no Desktop apps" though.
Nothing I've seen suggests that there won't be a regular Win32 with COM, IE, MSHTA, etc. on ARM along with an Explorer Desktop.
You may simply need to recompile C++ or .Net after some tweaking or "retargeting." Things like HTAs may even port with close to zero effort as long as they don't use any custom COM libraries. I'm surprised anyone ever expected any x86 code to run on ARM, even under some sort of WOW emulation. Microsoft has been pretty clear about that.
Whether it makes any sense to do much of this (desktop apps on ARM) is another matter, even if you can. The ARM-based devices are likely to be quite resource-constrained, which is the purpose in having them in the first place: cheap and portable.
Microsoft has made no statement about whether or not desktop apps will be supported on Arm processors. They have shown Microsoft Office running, but have not said whether that will be supported on the final platform.
For now the only statements have been about Metro style apps and those will be supported written in any language.

which development software should be used for VLC on mac?

i want to do some modification and development for VLC. i download its source code, vlc-1.1.5. and it is written by C. so usually which development environment should i use, xcode or some others?
thx...
I thought VLC was developed in Qt. Do you see the class names starting with Q? In case it is developed in Qt, Qt Creator or KDevelop would be a good choice of development environment.
The VideoLAN folks provide a wiki page with information about compiling their source on multiple platforms. The page relevant to OS X is here: http://wiki.videolan.org/OSXCompile
Compiling VLC media player on Mac OS X is different from normal linux compiling and OS X compiling. We do not use Xcode, but a simple ./configure and then make isn't enough either.
The page provides a step-by-step guide to setting up a machine running either OS X 10.5 or 10.6.
Any editor of choice should suffice. Looking at the code, it seems that VLC uses Unix-style building (autotools, make, etc). On Win32, it uses MinGW, so plain old gcc and make is probably used on OSX as well.

VS Studio 2008 VB.Net Winform - can it be run on a MAC?

Our company has a handful of Mac users. I recently built a Winform application and now my main user is using a Mac. Is it possible to run this application on a Mac? What would have to be done to convert it? If it is too much, I may just rebuild it is asp.net as a web application.
Thanks in advance!
JCC
Maybe. Many .Net programs can be compiled with mono as well, winforms usually is not a problem, but some libraries (e. g. MS Office libraries for editing Excel files). I am not sure about VB, as mono coders mostly use C#, but you can analyse your code with the Mono Migration Analyzer for portability to mono.
Depending a bit on features and controls used, it may run on Mono. Since you can run Mono on Windows as well it's rather easy to download and test it.
Your basic options are (from least intrusive to most intrusive, from the point of view of a Mac user):
Convert it to a web app.
Run it on a Terminal Server and have them use Remote Desktop.
Run the application in a virtual machine (VMWare or Parallels) that is running Windows.
Try to get it running under Mono.
If there isn’t a strong reason for it to be a desktop application, you really should be thinking in terms of web apps for new applications—at least, that’s an unwritten rule where I work.

WinForms vs GtkSharp with Mono

When developing with Mono for an app to be run on Windows and Mac OSX (and maybe Linux) which would you suggest, WinForms or GtkSharp for the GUI and why?
Specific examples and success/horror stories would be much appreciated.
Cross platform development is a nice idea, but to be completely honest I have never seen an application that looks really good outside of its native environment. That is why I think, that if you really want to offer good user experience you should use native toolkits on all platforms that you want to support.
Of course, if you just want a proof of concept, then WinForms on a Mac (or Linux) are alright but if you want an application that competes against other native solution then you really should consider writing a separate native frontend for each supported platform.
A good example how that was done is MindManager from Mindjet. Their Mac version is a full, from scratch rewrite of the interface. The result is an application that gives Mac users the experience that they learned to expect on their platform.
So, back to Mono. There are Cocoa bindings in Mono. Personally, I have never tried using them, but if you want to target Macs with your application, they are certainly worth a look. It would be really great if they could be regarded as a valid choice for UI development on a Mac.
When deciding whether or not to use a cross-platform architecture, gague your requirements of having a tight UI against agility toward change and development time. Using a platform-specific UI framework is (almost) always going to give you better looking and better performing results than you'll get from a cross-platform one.
GtkSharp requires X11 on Mac OS X. Mac users will find that off-putting. I haven't tried Winforms on OS X, but mono's Linux winforms support was pretty immature (buggy) and slow. I don't think there is a mature .net GUI toolkit for OS X at this point, at least nothing at the level of Swing or SWT.
What platform will most of the users of your app have? If most of the users will be Windows users, use Winforms, but if most of the users will be Linux users, use Gtk#. I wouldn't know which one works best on OSX.
Read this article also: http://www.mono-project.com/Gui_Toolkits

Resources