Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 12 years ago.
Improve this question
I have been a developer for many years and have used several different programming languages. However, the one I love the most is C#. I think it and the .Net framework make development quick and enjoyable.
With that said .Net works, with MS full support, only on windows machines. I would love to natively use C# on android, iPhones, and other environments.
Why has Microsoft seemingly dropped the ball and restricted .Net only to windows?
Have you considered using Mono? This is an open source version of C# which is available on all of the platforms you listed. It has a great amount of community support and many popular applications are written on top of it.
I don't think it's really MS that's the culprit here, though they may be part of it. Android doesn't support .NET not because MS doesn't want to, but because Google doesn't. The story is similar with Apple.
Probably because Microsoft doesn't want to directly support competing operating systems. They are however nice enough to let projects like MONO exist. They just aren't going to do the support for other platforms themselves.
They even released the source for .NET, I'd say they're fairly open.
because MS developed Windows and their whole marketing strategy is built on it?
$$ runs the world, you know.
They only support Windows, but it has been made available on Linux via Mono. It is also available on the iPhone via MonoTouch.
.NET is Microsoft's CLI (Common Language Infrastructure) runtime. There are other runtimes that support CLI. There's Mono, which runs on Windows, Linux, and probably OS X too (I haven't really checked this). Actually, that's the only other one I know, but since the CLI language and platoform specs are open for all to see and read, anyone could implement their own runtime.
Related
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
When i developing by C# in Microsoft Windows, i use Microsoft Visual Studio with Microsoft Team Foundation Server. I need an ORM so Entity framework can help me, and so on. These tools can be named as Microsoft solutions for Windows Developers.
What is the Sun or Oracle solution for Java developers? Which IDE, Version control, ORM, Web developing tool, database and other programming tools suggested?
For IDE, I use IntelliJ IDEA Community Edition (there is a paid one with more features including a native bytecode viewer but chances are you won't need that), which has superb code completion, full Git (most popular version control system I know of) integration and a bunch of other features including Groovy, Scala, Android, PHP, Python and more. It has lots of plugins and there's also Eclipse (which has more plugins), Netbeans and more.
For version control you might have seen/heard of Github somewhere since it is by far the most popular one. I use it and there's a drag and drop version of it (Github for Windows) if you're not too comfortable with command-line.
For ORM you could try Hibernate which I've never used before but it looks popular. However more and more people are shifting away from ORMs because they provide a loss of a lot of control with few benefits.
IntelliJ has out of the box support for web development frameworks so if that's something you want check it out.
For databases you should use MySQL and if you're going to be connecting to your own databases on the internet you should get familiar with PHP.
My current config:
IDE is "Eclipse", Version control with "SVN", database is "MySQL" together with "spring" framework.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about programming within the scope defined in the help center.
Closed 7 years ago.
Improve this question
I am thinking about writing a program and distributing it through the Mac App Store. The Mono Project has a library called MonoMac that assists in interfacing native Mac libraries such as Cocoa, etc. Assuming I go through with this, I would need to distribute Mono with the program. The process has been streamlined quite nicely and the instructions can be found here. Unfortunately I seen nothing concerning licensing on this page. Any ideas where I can find more information?
You can contact Xamarin here and check with them whether you need a commercial license.
Take a look at this.
IANAL, but AFAIU you would be linking against LGPL libraries. So you can use a proprietary product with them fine, so long you provide to the user of your apps any modification that you did to the LGPL code that you used. (MonoMac is Apache/MIT so no problem there either.)
The only problem you would have is if you link to GPL libraries and you don't want to make your app GPL as well (the only ones licensed as GPL are the Mono tools... not sure if mkbundle is one of them but if you just use it to generate your executable, and you don't link to it in any way afterwards, I guess you're fine.)
Anyway, better to do as Strillo says, just in case.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 1 year ago.
Improve this question
all, I'm thinking of porting my application from VB.net to the C# based MONO project, so it can run on both Windows and Mac. However, I am in need of a Mac-friendly alternative to WPF. It has to have very similar functionality. QML (by QT) is not a viable option, as it costs far too much money for us.
There is also https://github.com/AvaloniaUI/Avalonia a multi-platform .NET UI framework inspired by WPF
Miguel de Icaza recommends MonoMac as a substitute to WPF for Mac as stated here. As he explains there is no plan to implement WPF in mono.
MonoMac is a work-in-progress. Some parts of the Cocoa APIs are not wrapped yet. You should start with the samples to get an idea of what is possible.
You will have to build two different UI on top of a common engine, but that's generally a good separation of concerns.
There is also a possible common code base for UI with GTK#.
Depending on your application's functionality, you could potentially port your application to Silverlight/Moonlight. Silverlight is supported on the MAC, but you'll need Moonlight for Linux. Of course, if you're doing a lot of work with the client machine's file system or what not, this is not an option.
tho I have accepted an answer a while back, I want to post what I am doing currently if anyone views this question.
I am currently using Python with PyGTK for the GUI, and GStreamer for the video. This is producing results almost identical to WPF (except some hardcoded animations). Furthermore, it runs on Windows, Mac, and Linux.
EDIT: GStreamer did not pan out for my purposes. While it works well for the most part, I could not layer transparent .png images over the video. I have switched finally to Adobe Flash (Adobe AIR).
EDIT 2: For anyone who comes across this later, when the future of SWF fell into question, my company started building our own animation system in C++, using some components of Gtk+/gtkmm and Cairo. Ultimately, that falls under the advice of the other answer...separate GUI from platform.
https://www.noesisengine.com/
Is another alternative to xaml/wpf that is also for video game engines. It currently has a Indie/Free tier up to 100k in revenue, and is cross platform.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
Was just wondering if there were any cross platform development platforms which would run great for corporate type apps on various mobile devices.
Would be ideal if the language was C# but feel free to suggest others.
If you're happy to re-use business logic and write device specific user interfaces (more work, but better user experience on each device) you could consider the various Mono frameworks.
Writing the core business logic as a class library, then writing specific user interfaces using MonoTouch, MonoDroid and Windows using .NET Framework you'll have a cross platform application (albeit with individual UIs) in C#.
have you checked out Titanium at http://www.appcelerator.com
And then there is the PhoneGap at http://www.phonegap.com/
Worth noting that you'd be writing once for the PLATFORM, but being certain that your app works on the DEVICES is a different kettle of fish due to the variety of handset providers, their customized platform implementations and the hardware specific to the device.
Check out these related questions... otherwise know as duplicates....
Developing cross platform mobile application
Are there any huge differences between objective-c and Java, or iPhone and Android?
What work has been done on cross-platform mobile development?
Titanium Mobile is a popular choice these days.
I strongly doubt that you'll find a C# option* that's cross-platform since C# is tied to the Microsoft stack.
You could also just write a mobile-centric webapp with jQuery Mobile or similar.
*For mobile. For desktop, there's Mono (whose site appears to be down right now).
well if you've got a mac, your best bet would be to go for phonegap which supports a wide range of platforms,
if not, you could go for titanium
Although there are many platforms that provide you the facility to write once and run on multiple platform but from my point of view its not a great idea for simple reason of performance just think of below example
A C code is far faster than a java code because java provides you the virtual machine to run that code and java is far more easier to write than that of C. The idea is the more you stick close to native API the more you will get performance.
So considering the above example just think what will be the performance of such application that is supported on so many platforms
Note: I have not worked on any of such platforms so I might be wrong but this just a simple conception that fits to all
If you are used to working with Visual Studio, you can try Teleric's http://www.icenium.com/ . Icenium does not support Windows Mobile 6 though
Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 7 years ago.
Improve this question
I'm a C# programmer and want to write an Android app. I'm a stubborn curmudgeon and refuse to write Java ever again (after switching to C# six years ago).
Besides Mono and MonoDroid (and writing Java), are there any options for me? Or should I just feel foolish for refusing to returning to my Java roots?
What's the advantages and disadvantages of Xamarin over others like Phonegap etc. ?
(Please refrain from Java-related vs. C# discussion. I was being rhetorical when I asked about returning to me Java roots.)
I believe that this is basically the only option for c# developers.
Developing a mobile application these days is an arduous task. You need to have a mobile app to get your business noticed and to gain market share with your audience, however which platform do you choose? Apple? Android? Windows Phone?
Cost of developing a mobile app is one of the biggest hurdles besides the choice of platform. To get an application developed natively in two of the three major mobile operating systems immediately doubles the cost of development.
Each mobile operating system is designed around development in a specific programming language and development environment.
3 different operating systems, 3 separate languages and development environments, and counting. To be able to cater to all of these operating systems natively, mobile app developers need to have someone able to be an expert in each of these programming languages and also be an expert in the nuances of how each mobile operating system works. Task lifecycles, multi-threading, memory limitations, garbage collection, etc.
More more about Xamarin :
http://devproconnections.com/mobile-development/product-review-xamarin-monotouch-and-mono-android
http://www.justinshield.com/2014/05/cross-platform-mobile-development-phonegap-vs-xamarin/
MonoDroid is worth the wait,
http://tirania.org/blog/archive/2010/May-21.html
Besides Mono and MonoDroid (and
writing Java), are there any options
for me?
Another option is Scala. I'm not sure what the tooling is like right now though.
Since you are a dedicated C# developer, I think that MonoDroid is the right answer for you. MonoDroid Preview 1 has been released 2 days ago, so there won't be long until the beta and full release.
Xamarin is another option, it is possible to create android as well as IOS apps with it and you can use Visual Studio or use our full featured MonoDevelop IDE.
http://xamarin.com/monoforandroid