Desenvolvendo C # no Linux

107

Gostaria de saber se existem ferramentas eficazes e de código aberto para desenvolver aplicativos C # no Linux (Ubuntu). Em particular, tenho que desenvolver aplicativos Windows Forms.

Eu sei sobre o projeto Mono , mas nunca o usei. Quais são as melhores ferramentas (IDE, compilador, etc.) para configurar um ambiente de desenvolvimento .NET no Ubuntu?

O software desenvolvido em Linux pode ser executado no Windows? Existem diferentes comportamentos ou incompatibilidades?

davioooh
fonte
Sinta-se à vontade para verificar esta questão stackoverflow.com/questions/151350/…
NlightNFotis
Isso também pode ser útil de alguma forma stackoverflow.com/questions/716077/…
NlightNFotis
Isso também pode ser de interesse: mono-project.com/WinForms_Getting_Started_Guide
NlightNFotis

Respostas:

69

MonoDevelop, o IDE associado ao Projeto Mono deve ser suficiente para o desenvolvimento C # no Linux. Agora eu não conheço nenhum bom profilers e outras ferramentas para desenvolvimento C # no Linux. Mas lembre-se de que o C # é uma linguagem mais nativa do Windows. Você está desenvolvendo melhor aplicativos C # para Windows do que para Linux.

EDIT: Quando você baixa MonoDevelop do Ubuntu Software Center, ele contém praticamente tudo que você precisa para começar imediatamente (Compiler, Runtime Environment, IDE). Se desejar mais informações, consulte os seguintes links:

NlightNFotis
fonte
1
É um software desenvolvido em Linux que pode ser executado no Windows?
davioooh
2
O software desenvolvido em Windows ou Linux pode ser executado em cima do framework .Net. Portanto, desde que seja possível instalar o .Net framework no sistema operacional, ele pode executar o aplicativo. Você ficou sabendo da versão;)
Shiham
@nvr no entanto, eu queria saber se diferentes implementações de framework podem criar incompatibilidades
davioooh
4
A compatibilidade com versões anteriores está sempre lá, pelo que eu sei. Podem ocorrer problemas se você tentar executar um aplicativo no .Net 2.0 que é desenvolvido com .Net 3.5 ou qualquer versão posterior.
Shiham
Embora você deva notar que .Net é sempre capaz de mais no Windows. Mono é mais um projeto de compatibilidade do que uma implementação real de um kit de desenvolvimento de software. É assim que eu vejo, pelo menos.
NlightNFotis
28

Agora a Microsoft está migrando para o código-fonte aberto - consulte CoreFX (GitHub).

Henry H.
fonte
9

Eu sugeriria o uso do MonoDevelop.

Ele foi projetado explicitamente para uso com o Mono e todo configurado para ser desenvolvido em C #.

A maneira mais simples de instalá-lo no Ubuntu seria instalar o pacote monodevelop no Ubuntu. ( link no Mono em ubuntu.com ) (No entanto, se você deseja instalar uma versão mais recente, não tenho certeza de qual PPA seria apropriado)

No entanto, eu não recomendaria desenvolver com o kit de ferramentas WinForms - não espero que ele tenha o mesmo comportamento no Windows e no Mono (as implementações são bem diferentes). Para uma visão geral dos kits de ferramentas de IU que funcionam com o Mono, você pode ir para a página de informações no Mono-projeto .

Jean Hominal
fonte
8

Mono Develop é o que você deseja; se você já usou o Visual Studio, deve considerá-lo simples o suficiente para começar.

Se bem me lembro, você deve ser capaz de instalar com sudo apt-get install monodevelop

Chris Diver
fonte
O comando de instalação está correto, entretanto, você precisa se certificar de que adicionou o repositório monodevelop ao seu sistema antes de fazer isso. Aqui está um link em funcionamento: monodevelop.com/download E aqui está a maneira de adicionar o repositório: `` `sudo apt install apt-transport-https dirmngr sudo apt-key adv --keyserver hkp: //keyserver.ubuntu. com: 80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF echo "deb download.mono-project.com/repo/ubuntu vs-bionic main" | sudo tee /etc/apt/sources.list.d/mono-official-vs.list sudo apt update `` `
FreedomInChaos
6

Mono é um ambiente de execução que pode executar aplicativos .NET e que funciona tanto no Windows quanto no Linux. Inclui um compilador C #.

Como um IDE, você pode usar MonoDevelop e suponho que haja algo disponível para o Eclipse também.

Observe que o suporte a WinForms no Mono existe, mas falta um pouco. Geralmente, os desenvolvedores Mono parecem preferir diferentes kits de ferramentas de GUI, como Gtk #.

OR Mapper
fonte