Is it possible to write a GUI desktop app in F# + mono on Mac and have it run without modification on Windows? - f#

I'm interested in developing desktop apps for Windows, but it would be most convenient if I could develop these apps on my Mac OS X Air laptop, without running a virtualization environment. How far can you get developing Windows GUI Desktop apps using mono and F# on OS X?

If you aim for WPF - not far. Sadly, you will have problems with WPF even in a virtualized Windows environment, as it uses 3D acceleration.
Sticking to the "traditional" Windows Forms works, but they are not the preferred way to create new applications nowadays.

You could use a cross-platform UI toolkit. Monodevelop uses GTK#, there are probably others. It'll run everywhere without modification but will look somewhat alien everywhere. That's the tradeoff you make for not having to make a different UI per platform.
Instructions for using F# from Monodevelop are detailed here. Hopefully with that you should be good to go!

Related

Advantage of using visual studio on windows for iphone app development over native environment

I am reading a way to setup iphone application development environment on my windows. It states that “A network-accessible Mac set up with Apple's build tool” is required. My confusion is that, if i need to buy a mac machine and need to setup an envionment then why i will use windows and visual studio?
I am exploring why it is advantageous for me to build ios app in xamarin when i need to buy mac machine and install xcode. Why i will use xamarin when i am new to both C# and swift?
Please ignore my limited knowledge and flaw in question.
Using Xamarin to build apps
enables C# developers (there are millions of them) to leverage the language and framework they already know instead of learning a completely new one
allows them to share code between existing C# apps written for the web or desktop (very important in an Enterprise environment)
using Xamarin Forms, allows you to create a single codebase that targets multiple platforms (iOS, Android, UWP, etc)
if all you care about is iOS and you don't already know C#, then Xamarin may be of limited benefit to you

How to use Xamarin in Visual Studio and Mac in the same time

I have just developed and android app using eclipse and now I want to develope its IOS version. I want to use Visual Studio and C# (I feel pretty much comfortable in these environments).
I read that, to achieve this I can use Xamarine. Everything is OK with configuring Xamarine on Visual Studio and using it in Visual Studio (I understood this part). I couldnt understant the "mac" part. They are saying that in order to build this app I need a mac running in my local network. Unfortunately I have no idea about Mac. Instead of using it in a local network, could I just install it in a Virtual Machine in windows and configure it on that way that I can see this mac from Visual Studio (How can I do this ?! :S).
I am sorry if my question is unclear but I would be greateful if any of you helps me understand these issues and help me develop my first IOS app in Visual Studio.
If you are going to do iOS development using Xamarin you need a Mac. A Mac will always be required to submit the app to the app store, and the way Xamarin works, you need to use a Mac to create the UI for iOS apps as well.
To get the most of the Xamarin, you ideally would develop your base code using Xamarin and C#, then build separate UI's for both Android and iOS. While your UIs are separate, your base core code is all the same for both apps.
It really does not make sense to have a native Android app all in Java, and then write the entire iOS app in C#. Either stick to completely native apps for both platforms, or use a wrapper like Xamarin for both.
Xamarin.iOS for Visual Studio makes it possible to develop iOS
applications on Windows, but you will still need a Mac in order to
compile and run the code.
Today, Xamarin.iOS integration in Visual Studio is focused on enabling
developers to develop in C#. Xamarin developers who write Xamarin.iOS
applications on Windows typically hand-code their user interfaces—or
they will need to switch to the Mac to use Xcode (or a beta version of
Xamarin’s new iOS Designer) to interactively design an iOS user
interface layout.
"or use a wrapper like Xamarin for both"
I have discovered the term wrapping is not correct for this product.
Unlike other products (Corona, Phonegap, Titanium, ...) that wrap up in a common, genericized library, Xamarin compiles at core level with no penalty. It is 100% native. All functionality in all it's supported platforms is 100% available and not watered down.
Wrappers can be faster to program in, in theory, but when you factor in the time you will spend looking for workarounds for the one piece of functionality that is available natively but not in your wrapper library. When you factor in the constant bugs because wrapping for 3 or more platforms is a constantly moving target and you can't count on it working from day to day.
When you factor all those things in, writing native in c# for all platforms is the better option.
I tried them all, and xamarin was my last choice as I was distracted chasing that perfect golden goose wrapper product.

Delphi XE4: target linux desktop? (gui application)

I am embarking on a cross platform app, but not mobile. It will be win/osx/linux. Would love to use Delphi + firemonkey, but it appears linux is not a possible target?
The GUI will not be extensive. Most of the code is non visual.
What are my options here? (Do I end up using lazerous for the linux side.... and then I have to have a special UI there?)
Please let me know my options here, how to solve this cross platform dev project (and hopefully avoid c++).
Linux is not currently one of the supported operating systems, as can clearly be seen from the product description on the Embarcadero web site. If you need Linux/Unix support, XE4 and FireMonkey aren't an option. (XE4 supports Win32, Win64, OSX, and iOS.)
There's support for Linux planned at some point in the future (after Android, which is currently being developed and slated for release later this year).

Any reason to run Grails on linux vs. windows?

I know that developing with Ruby on Rails in Windows is not always easy, and I read lots of complaints that it just isn't fully compatible with Windows.
Is grails the same? Does it matter whether I dev on Windows/Linux/OSX?
Thanks!
Use the OS that you prefer. I've been developing Grails apps on Windows at work (because I have to) for a few years. Outside of work I use Linux exclusively.
Where I am, people use Linux and Windows to develop in Grails. There has been no problem regarding OS specific stuff.
In fact you should be more concerned about the Java flavor and version you have (some linux distros have an open source implementation), and, of course, the Grails version.
My advices:
Pick any OS you want (I even use both on the same Grails project with no problems)
Try to use the Oracle JDK (for me openJDK is a bit slower)
Pick a Grails version and stick to it as much as you can (preferably don't change the version it can be painful to upgrade a project)
I developed Grails apps on Windows and Linux. IMHO, use the OS you'll be the most productive with and has the toolset you want. Linux is definitively more friendly to programmers in terms of available tools in general. Windows developer community is coming up with interesting project such as Chocolatey and Console2 among other things. I personally prefer Linux because it offers me a lot more to learn besides just learning Grails for example.

OpenCV lib and WM

I just made an application using the OpenCV lib, and will be great if I can use this computer vision application on my PDA, which has Windows Mobile 6.0 on it.
Do you have any idea about how can I do this?
If you have Visual Studio, just create an embedded project. Check out the Windows Mobile Development Center for more information. Unless it's a very simple application or you're working with very low resolution images I would be surprised if you were able to get acceptable performance though.

Resources