Is there a cross platform desktop framework that would utilize native libraries such at .NET and Cocoa? - graphics

I am starting a project that is heavily graphics related (think, paint app with layers).
Anyway, I have a long history in C#, Java, JavaScript and Ruby. This application will be open source.
But what I'm looking for is a "build once, use everywhere" framework. Most of the platforms I've looked into either seem to be far too outdated, too complicated, or just not a right fit.
I've looked into Swing, WindowBuilder, wxRuby, etc. So many choices and none seem modern enough, have good documentation, etc.
I was a C# desktop developer for years so if I were targeting Windows only, I would go that route easily. But I want my app to run on Macs too. But, I would like the Mac version to look like it was designed for a Mac and the Windows version designed for Windows, etc. I'm looking at the Mono Project currently. But the idea of my Mac users installing Mono doesn't appeal to me.
Anything Ruby based would be cool but not required.
Anyway, what are some recommendations? I use NetBeans, Eclipse and Visual Studio. So I'm not concerned with learning new IDE's if I had to. I even thought about doing it all in JavaScript and using the canvas but since I need to work with large, local binary files, I didn't know if that would be a good option.
Thanks for any suggestions.

Real Studio can create cross-platform desktop apps for OS X, Windows and Linux. It can also create Cocoa apps and you can use it to interface with Cocoa directly when needed.
However, Real Studio creates Win32 apps, not .NET apps so you cannot directly interface with .NET libraries.

Related

Can I port a cocoa app made in swift to Windows and Linux?

I have a Cocoa app that I wrote targeting OS X 10.11 using swift and storyboards. Is there a way to port it to Linux and Windows, or at least part of it? (e.g. moving some code a Cocoa framework and using a tool to port it etc.)
I saw this question that mentions Cocotron, but it's only for Objective-C and it seems it's not fully developed.
Thanks for you Advice
Apple has said that Swift will be open sourced "later this year" and ported to Linux, but they haven't said any such thing about Windows.
QT is one of the solutions for porting cocoa to windows, but even qt is limited... in a good way. i mean youre not gonna want to program a windows application with ios features in mind like screen shaking.
other solutions consist of devolpers porting cocoa functions and they as well as qt can be incomplete even within the realm of possibility like volume buttons and clicking to change views, etc.
this is the essence of toolchains and frameworks
research those as they are available on swift for windows etc
there are several ways that porting code is possible.
binary, compiler infrastructure are the things that come to mind
sorry if this answer seems uninformative, counter-methodical/"rebellious" or philosophical
Edit: cocoapods.org
Edit: https://swift.org/blog/swift-on-windows/
Edit: http://www.wxswift.org/
there are currently no libraries for writing swift apps on windows, and cocoa is currently only working on ios macos etc
Edit: I recently learned that you can port over existing code onto other platforms via simulation systems like sandboxes and the Wine application on mac which allows 32 bit windows apps to work on mac. if you want to make an app for everyone, then youll have to bundle it with one of those structures - as simple as possible
hope you find this useful
im a beginner swift programmer so this is new to me too
Apple have begun porting Foundation to Swift for use on other platforms:
https://github.com/apple/swift-corelibs-foundation?files=1
UIKit will be much harder but might happen eventually.

Can I use Visual Studio to develop Mono applications?

I have developed a .NET 4.5 application using WinForms. I want my application to run not only on Windows, but also on Linux, so I decided to port it to Mono.
However, I can't find any information on how to use Visual Studio for Mono. I don't want to switch to MonoDevelop, since VS provides much of the functionality I want and I am already familiar with it.
There apparently used to be something called Mono Tools for Visual Studio, which David Lively insists works on current VS editions, but I don't want to run an extension that was deprecated 3 years ago. I don't even know where to download the extension - it redirects to Xamarin, and Xamarin seems like not what I want because while it mentions VS integration, it forces me to install a bunch of Android and Java SDKs (why?).
As far as I can see, .NET and Mono code looks fairly similar, and there are 3 main concerns:
Making VS use the Mono compiler instead of the C# compiler, so I can tell if non-Windows users can compile my source, and also get notified about missing libraries
Making IntelliSense suggest only Mono-supported things
Making the "Run" command run the application using Mono, not .NET, so I can test it correctly
Is there really no easy way of accomplishing these?
Note: I want to develop Windows and Linux desktop apps, with a WinForms GUI or equivalent only. I am not interested in mobile.
In general, you can just target .NET 4.5 and compile with Visual Studio and the resulting assembly works as-is on Mono (assuming you don't use platform-specific stuff via p/invoke, etc).
Mono's WinForms support isn't perfect though (and nobody actively works on it), so you still need to test by running the app directly on Mono. Missing APIs aren't usually the problem, it's more that the Mono implementation has different behavior/bugs.
Another alternative to WinForms might be Xwt.

Develop Windows applications with Linux tools

I like the Linux operating system and vim editor, but there are many companies that develop under Windows environment in Visual studio etc. There is a possibility that I will have to work for such a company in about a month.
I'd like to do my work on my Linux system and copy the files to them. I have experience with both developments and I found out that I don't want to work with MS products but I like programming and writing MS code is not such a pain.
Are you a similar developer? Could you give me some advice about your methodology to be most of the time on Linux platform, to create code and debug everything in vim on Linux and only when neccessary open Visual Studio with Windows forms and similar things and test the things that weren't possible to test in Linux environment?
I would see the work in creating small peaces of code on Linux, testing them and then move it to MS platform and integrate to the whole system. How do you debug and test your code? The development will be probably in C# or C++. I can't imagine Visual Basic.
Please write here your experience, style of work, if this has sence or there are too many troubles and I should rather give up.
So the question is: How to develop applications that run on Windows with Linux tools, without touching Visual Studio and browsing with Windows file manager etc.
thank you
Not sure, if this will help you or not but there is a Vim Emulation layer for Visual Studio 2010 called VsVim.
Check out : http://visualstudiogallery.msdn.microsoft.com/59ca71b3-a4a3-46ca-8fe1-0e90e3f79329
If I were you I'd install MinGW or Cygwin on your windows machine and just use gvim/vim anyway (or maybe just use the Win32 vim).
VS is just a big editor. You'll be building with the microsoft compilers ( perhaps using msbuild or nmake ) but probably are going to have to accept that you can only debug windows things with VS ( unless you build for MinGW or Cygwin and use gcc and gdb)
You can use vim as a code editor, you can even stick on Linux when developing software for the .NET platform. The people behind the Mono make this happen. Mono is a software platform designed to allow developers to easily create cross platform applications. It is an open source implementation of Microsoft's .Net Framework based on the ECMA standards for C# and the Common Language Runtime.
You can stick to the editor of your liking and use the tools that come with Mono to compile your stuff. There is a IDE called Mono Develop, but compared to Visual Studio it is pretty basic... and compared to VIM it lacks simplicity.
C# projects are plain text files so it's easy enough to edit them over an SMB share in whatever editor you wish from anywhere the sysadmins let you.
Testing however will be difficult without going back to the windows machine, and while Mono implements the framework, it's still a different environment if you're targeting Windows.

How to run C# 4.0 app on Linux OS using mono?

I want to run my c# application with OS Linux using Mono. I am new to this cross platform migration? Please tell the procedure for doing that?
Thanks & Regards.
It very much depends on what type of application it is. For a console or WinForms app, it may be simple. Mono doesn't support WPF.
Well, the first think you'll need to do is install Mono of course. Then you probably want to run MoMA to determine your application's compatibility. There's a whole separate page about porting WinForms apps.
If all is well, you should just be able to run your application using:
mono MyApplication.exe
after copying the binaries over.
If your application is actually a web service or web application, you'll want to think about the various hosting options.
I suspect you'll want to read a lot of the pages on the Mono Start Page.
Check if your application is 100% compatible with Mono Framework using MoMA.
Remove or replace those unimplemented parts with Mono's implementation or third party libraries that works with Mono. Or if you think it should work fine, just execute it with Mono Framework 2.8 or higher. Better go with 2.10 which is default's profile is on 4.0.
There is an IDE, MonoDevelop that supports Web and Desktop applications. Open the project files (monodevelop supports visual studio project files) from monodevelop, compile and run.
you can browse mono website here, where you can find which features are supported and which are not supported and why.

How to create application for Mobile?

I have to create a mobile installable/client application...and I dnt know nothing abt this..
what SDK,language should I use?? if this will in .net will be fine(optional)... any Ideas
Will really appreciate this...
Thanks!!!
First you will need to decide what mobile platform or platforms you want to support. Often your choice of language and toolset will be completely dictated by that. For example, if you want to write software for the iPhone, you will need to use Objective C (and use a Mac) while Android-based phones and BlackBerry devices require Java. Windows Mobile and Symbian devices natively support C/C++ and their own proprietary APIs but you can use frameworks like Qt to make things easier (and portable between the two). Windows Mobile in particular also supports lots of other platforms that run on top of the base OS, such as slightly limited version .Net or Java (but bring-your-own-JVM).
The one common denominator between them all is web applications. If you want a single codebase that will work everywhere and that doesn't use a completely proprietary toolset, you can build a web app.
Programming languages: Objective-C, Java, C# .NET CF etc. It depends on what devices you application should be running.
You can use Visual studio to target Mobiles have Windows Mobile OS or Windows CE or Pocket PC, for other OSs you have to see the SDK that the Manufacture company provide.
I you got no clue to start with, I suggest you start with Java ME. Java Mobile Application is, in my opinion, the safest way to go for starters as they have the widest acceptance among mobile device platforms.
Good luck.

Resources