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?
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)
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.
Metabolix kirjoitti:
Ilmeisesti sinulla on jo Mono, kun kerran on csc. Aja ohjelma komennolla mono ohjelma.exe.
Joo. Tämä toimi. Kiitos.
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/
Toki jos tarkoitus on tehdä perinteistä desktop appia vaikka windows formsilla, core ei ole vaihtoehto.
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.
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.
Visual studion saa myös macille (https://visualstudio.microsoft.com/vs/mac).
Aihe on jo aika vanha, joten et voi enää vastata siihen.