Developing C# on Linux [closed] - c#

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.
The community reviewed whether to reopen this question 1 year ago and left it closed:
Original close reason(s) were not resolved
Improve this question
I'd like to know if there are effective and open source tools to develop C# applications on Linux (Ubuntu). In particular, I have to develop Windows Forms applications.
I know about the Mono project, but I've never used it. What are the best tools (IDE, compiler, etc.) to set up a .NET developing environment on Ubuntu?
Is software developed on Linux runnable on Windows? Are there different behaviors or incompatibilities?

MonoDevelop, the IDE associated with Mono Project should be enough for C# development on Linux. Now I don't know any good profilers and other tools for C# development on Linux. But then again mind you, that C# is a language more native to windows. You are better developing C# apps for windows than for linux.
EDIT: When you download MonoDevelop from the Ubuntu Software Center, it will contain pretty much everything you need to get started right away (Compiler, Runtime Environment, IDE). If you would like more information, see the following links:
http://monodevelop.com/
http://en.wikipedia.org/wiki/MonoDevelop
http://en.wikipedia.org/wiki/Mono_%28software%29
http://www.mono-project.com/Development_Environments

Now Microsoft is migrating to open-source - see CoreFX (GitHub).

This is an old question but it has a high view count, so I think some new information should be added: In the mean time a lot has changed, and you can now also use Microsoft's own .NET Core on linux. It's also available in ARM builds, 32 and 64 bit.

Mono Develop is what you want, if you have used visual studio you should find it simple enough to get started.
If I recall correctly you should be able to install with sudo apt-get install monodevelop

I would suggest using MonoDevelop.
It is pretty much explicitly designed for use with Mono, and all set up to develop in C#.
The simplest way to install it on Ubuntu would be to install the monodevelop package in Ubuntu. (link on Mono on ubuntu.com) (However, if you want to install a more recent version, I am not sure which PPA would be appropriate)
However, I would not recommend developing with the WinForms toolkit - I do not expect it to have the same behavior in Windows and Mono (the implementations are pretty different). For an overview of the UI toolkits that work with Mono, you can go to the information page on Mono-project.

Mono is a runtime environment that can run .NET applications and that works on both Windows and Linux. It includes a C# compiler.
As an IDE, you could use MonoDevelop, and I suppose there's something available for Eclipse, too.
Note that WinForms support on Mono is there, but somewhat lacking. Generally, Mono developers seem to prefer different GUI toolkits such as Gtk#.

You can also install it using conda (tested on Ubuntu):
conda create --name csharp
conda activate csharp
conda install -c conda-forge mono

Related

Which Android SDK packages needed for developing? [closed]

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 5 years ago.
Improve this question
I have previously asked about which version of the SDK do I need and was told that I only need the latest and the rest are included in it.
But looking through the Android SDK manager I see there are many other types of packages. So can someone please explain what is going on there?
More specifically:
Do I need system images if I don't use an emulator? (I tried it in
the past and it was too slow.)
Do I need the "android sdk build tools" for any but the latest
version? And how about the "android sdk tools" (only 25.2.5)? is that just a different name for the same thing? And what about "android sdk
platform tools" (only 27.0.1) - Same thing?
Do I need only the really latest "sdk platform" and not even the latest major version plus the latest minor version? e.g. Is 8.1.0 enough, or do I need 8.0.0 as well and the 8.1.0 is only an addition to the 8.0.0?
Any warning of pitfalls when uninstalling packages welcome. ("Oh. If you uninstall an already installed package, Xamarin will croak. Wasn't that obvious?!"...)
EDIT (in response to request below)
No you do not. However Android Emulator is really fast now-a-days given their 2.0 update, HAXM updates, and Quick Boot feature.
No, you only need the build-tools and platform-tools version relating to your major compileSdkVersion / $(TargetFrameworkVersion). i.e. If compiling against API 27 you need build-tools and platform-tools v27 or greater. A general rule of thumb is to keep all Android SDK tooling to the latest. If you cannot use latest, then ensure they are all on the same major version (i.e. v27).
Yes, you only need the latest SDK Platform that you will compile against.
Android APIs are additive in the sense that if you install Android 8.1, you will have APIs for every level up to 8.1.
You can install system-images of other SDK Platforms for testing purposes as you do not need to install the API level to deploy to them.
1) If you do not use an emulator you do not need any system image.
2) Yes and no. If you go with Android Studios Android SDK Manager instead of Visual Studios implementation than you are mostly good to go with the latest one. There might be circumstances that require an older version but that are rare situations. One that comes to my mind: Using the Xamarin Android Visual Designer instead of source view or the one from Android Studio.
3) It depends on the amount of devices you want to support. With the SDK-platform you define which set of apis you want to use. It also defines how many of the android marketshare you will reach. If you go with the latest chances are very high that you will only reach 1 or 2 percent of the market. See Android Dashboard

Developing for Windows 7 and above [closed]

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 5 years ago.
Improve this question
I want to make an Windows Desktop Application for Windows 7 and above.
Can someone tell me how can I start? I have tried searching on Google for developing apps for Windows; all I’ve found so far is UWP (Universal Windows Platform) which I believe works for Windows 10 and above. I have even checked the Microsoft docs and all they are telling is about Windows 10 apps, not a word about versions below it.
Can someone tell me if I make an app for Windows 10 will it work with earlier versions too? As the main requirement is developing for Windows 7.
I have been doing coding for 3-4 years so I know coding. I just want to start from right path. Please guide me.
Jason is right to a point, UWP is the modern way, but I would actually recommend WPF which was designed to replace Windows Forms.
It uses modern techniques and methods with C# like Caml for the UI layout, MVVM, View Model bindings etc, and it's all transferable skills into UWP and Xamarin mobile apps. As an aside Xamarin Forms are looking to build out WPF apps in future releases for true cross platform apps so it's a good framework to learn for Windows desktop.
Start here - https://learn.microsoft.com/en-us/dotnet/framework/wpf/getting-started/walkthrough-my-first-wpf-desktop-application
You are right that UWP is for Windows 10 and above, so I would stay away from that in your case.
What you should start with is a simple basic Windows Form development in C#.
Download and install Visual Studio 2017 Community Edition from here: https://www.visualstudio.com/downloads/
Then I suggest looking for tutorials online for Windows Form apps in C# which can guide you through it.
Here are a couple that could help.
http://www.guru99.com/c-windows-forms-application.html
https://www.youtube.com/watch?v=yGHzNunW8M8
There are more but they are for older VS Studio versions, but the principals are the same even if the UI is a bit different.
The DotNet Framework takes away a bit the dependency upon a specific windows version. As longer as your windows version can run the DotNet Framework version you are targetting (compiling for) then it will work in most cases.
Best to first find out which DotNet framework version is installed on your target PC and then build for that, or upgrade it.
It might look a bit different on different windows version, so if you are compiling on a different platform to what you are running on then it is best to make sure that you do testing on your target platform.
This shows how to change your target DotNet version in Visual Studio: https://www.youtube.com/watch?v=E36kiGWfGCQ

How to launch Mono? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 8 years ago.
Improve this question
I have downloaded Mono for Windows from This page. And installed it. Since I am very new to this program I even couldn't find how to launch it. All I can see in the start menu are those in the picture. So how can I launch this Mono software?
Mono is a cross-platform implementation of .NET (which you definitely don't need if you are targeting windows)
MonoDevelop is an IDE (integrated development environment) that builds Mono/.NET applications.
You only installed Mono (the framework) and you don't "run" a framework. To get the IDE, go to MonoDevlop. Also, since you are on Windows, I would recommend using Visual Studio (Microsoft's .NET IDE) instead. The express editions are free, and all editions will compile to something Mono would run (you should probably target .NET 4 just to be safe). Many (including myself) consider it to be a far superior product.
I am not sure what do you mean by "launch this Mono software". Mono just provides the runtime environment capable of executing other .net applications. You won't get much benefit from launching mono alone (it is just a command line application) exactly as you won't get much benefit from launching java runtime standalone (which is also just a command line application). However you can use mono to execute .NET applications exactly as you can use java runtime to execute java applications but since you are using Windows you should already have .NET framework installed which does exactly what Mono does - provides the runtime environment for .NET applications.

Developing .Net Application on Mac? [closed]

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
I am .Net Developer who started using Mac OS. The only thing that I miss on this system is "VISUAL STUDIO".
I don't wanna use two systems, What do you think in order to develop .Net application
Do you think that I should install Virtual box and use Visual Studio
http://zeus.cs.pacificu.edu/chadd/InstallVisualStudioOnYourMac.html
Or Just use Mono Develop? Is Mono Powerful enough to develop application that is compatible with Windows and run on Mac ?
I am purely .NET developer, but lately also developing iOS applications with using Xamarin (new name for mono libraries) and Xamarin studio (rebranded Monodevelop).
So, if I understand you correctly and you still want to develop .NET applications but just working and "live" in MacOS, the I would say that you have no chances.
Even if consider, that you can have an ability to write code (and even to have some .NET libraries to use even there) in Monodevelop, that's just incomparable, how VisualStudio is amazingly convenient for developer (especially, for native .NET one) and how many plugins it has.
So, from my point of view, there is even no talk: you must use VisualStudio in any case! Even if you use it in Remote Desktop.
UPD: Time flows and things change. Currently .NET is really spread even to Mac. Visual Studio Code been released for coding and Xamarin became available for Free since the answer was asked.
However, one thing will probably never come true: I am doubting Visual Studio will ever be able to migrate from Windows. It will be rather some new product or extending of Visual Studio Code.
Of course you can use Mono to develop an application that is compatible with Windows, although Mono is nowhere near as robust/easy to use/ feature filled as VS.
That said depending on the type of application you plan to develop, it may make sense to install windows in a virtual box so that your application can actually run on your computer.
For example, if you are trying to make a Windows Forms application, your app ( which can be completely developed in Mono, but will not run on the native OS X. This will most likely make debugging a nightmare.
If you're on the fence it might make sense for you to download a 90 day free trial of a windows OS from microsoft, run that in a virtual box and try out visual studio.

C# application on Apple IOS [closed]

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 2 years ago.
Improve this question
I have got C# .Net based applications. Is there any way I can run these applications for Apple IOS. I don’t have resources to develop all applications from scratch.
Many Thanks,
Ni
First of all, you can not just run your existing .NET programs unmodified on the iOS platform.
The .NET runtime does not work on iOS, nor will it (in relation to current app guidelines regarding runtime compilation). Mono has the same fate and will not run on the iOS platform.
Your only option is to get the code compiled to native iOS executables, and this will involve 3rd party tools.
One of those is the MonoTouch product. It is not free.
Note that this is not a technical limitation. The .NET runtime could run on the iOS platform if Microsoft, or Mono made it for that platform, but Apple does not allow such runtimes (the ones that download/execute not-yet-100%-compiled code) on their platform at all.
This is the same problem that prevents Flash from executing on the platform. The way Flash has gone to solve this is to compile the Flash programs to native iOS executables.
You can use the tools made by the mono project.
These will not support all of the MS namespaces (non of the windows specific ones, such as WMI) and your application code needs to be written to be cross platform (so using Path.Combine for directory paths instead of concatenations).
Try the MoMA tools to see if your code is cross platform and get recommendations for fixing it if it is not.
Take a look at Xamarin for IOS. Integrates nicely with Visual Studio otherwise you can use its own IDE.
You can also reference .net assemblies. Hope this helps.

Categories