Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Kuinka C#-ohjelma ajetaan Linuxissa?

Sivun loppuun

Jaska [29.08.2018 21:55:06]

#

Ajattelin opetella C#:a avoimessa yliopistossa. Kurssi ei ole vielä alkanut, mutta mietin, että voiko ohjelmointia tehdä Linuxilla. Kirjoitin Monodevelopilla seuraavan:

using System;

namespace Eka
{
    class MainClass
    {
        public static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
}

Käänsin komentorivillä:

csc Program.cs

ajoin sen

wine Program.exe

ja nyt tuli ilmoitus:

0009:err:mscoree:CLRRuntimeInfo_GetRuntimeHost Wine Mono is not installed

Miten tuo Wine Mono asennetaan, vai mikä on helpoin tapa opetella C#:a? Kannattaako siirtyä Windows 10:n puolelle?

groovyb [30.08.2018 01:31:04]

#

Kannattaa tehdä samantein ohjelma .net corella, se toimii kaikissa ympäristöissä.
Käytännössä on kaksi tapaa ajaa C#:ia linuksissa

A) Mono
B) .NET Core (uusi ja korvaava vaihtoehto.)

Suosittelen vaihtoehtoa B)

Metabolix [30.08.2018 18:08:00]

#

Ilmeisesti sinulla on jo Mono, kun kerran on csc. Aja ohjelma komennolla mono ohjelma.exe.

Wineä et tarvitse, jos et tee erityisesti Windows-ohjelmaa. Tarvittaessa Wine Mono löytyy yleensä paketinhallinnasta.

.NET Core on bloatti ja hankala harrastelijalle. Se vaatii omia kikkojaan projektin hallintaan, ja käännös ym. kestää ihmeen kauan. Varmaan ihan kiva jossain muussa käytössä.

groovyb kirjoitti:

Kannattaa tehdä samantein ohjelma .net corella, se toimii kaikissa ympäristöissä.

Outo väite. Testini perusteella .NET Corella tehty ohjelma vaatii kyseisen kirjaston ja ei siis toimi Monolla (ainakaan suoraan). Sen sijaan Monolla käännetty ohjelma toimii ihan suoraan myös Windowsilla.

Ehkä voit näyttää malliksi konfiguraation, jolla saa käännettyä ohjelman myös Monolla toimivaan muotoon.

Jaska [30.08.2018 21:31:39]

#

Metabolix kirjoitti:

Ilmeisesti sinulla on jo Mono, kun kerran on csc. Aja ohjelma komennolla mono ohjelma.exe.

Joo. Tämä toimi. Kiitos.

groovyb [31.08.2018 08:31:34]

#

Metabolix kirjoitti:

Testini perusteella .NET Corella tehty ohjelma vaatii kyseisen kirjaston ja ei siis toimi Monolla (ainakaan suoraan)

Tottakai vaatii kyseisen kirjaston, mutta monoa ei tarvitse erikseen asentaa enää lainkaan.Projektinhallinta menee mielestäni huomattavasti yksinkertaisemmin, samaan suuntaanhan koko pelkkä .Net on menossa ja uusi malli on opeteltava jokatapauksessa jos C#:ia meinaa vääntää.

.net core -sovellus käännetään dotnet -komennolla (projektikansiossa dotnet build, ajo ajamalla dotnet run,nugettien asennus dotnet restore).

yksittäinen tiedosto taasen käännetään roslynillä (defaultisti taitanee löytyä linuksissa asennuksen jälkeen /usr/local/share/dotnet/sdk/[versio]/Roslyn/RunCsc.sh). Lähtökohtaisesti kuitenkin, C#:ssa tehdään kaikki applikaation kautta eikä ykaittäisiä tiedostoja erikseen kääntelemällä. Muuten se on manuaalista kirjastojen linkittämistä ajokomentoon, mikä tapahtuu applikaatiossa projektitiedostojen kautta helpottaen elämää.

Toki jos tarkoitus on tehdä perinteistä desktop appia vaikka windows formsilla, core ei ole vaihtoehto.

Mariapori [06.09.2018 21:20:20]

#

Noh, kaikista parhain ympäristö C# on windows. Visual Studiota parempaa IDE:tä ei juurikaan ole. Tosin kyllä monodevelop ihan käypä IDE on jos ei mahdollisuutta windowsiin.

Jaska [06.09.2018 21:39:47]

#

Mariapori kirjoitti:

Noh, kaikista parhain ympäristö C# on windows.

No joo, tuskin kannattaa aloittaa sotaa käyttiksistä. Täytyy kokeilla eri vaihtoehtoja. Windows + Visual Studio ja Linuxin puolella monodevelopment ja Atomin opettelu voisi olla kokeilemisen arvoisia vaihtoehtoja.

groovyb [07.09.2018 10:56:34]

#

Visual studion saa myös macille (https://visualstudio.microsoft.com/vs/mac).


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta