PDA

View Full Version : [C#] Mono su Linux(Ubuntu): si o no?


Vincenzo1968
23-12-2012, 11:53
Volevo installare Mono su Ubuntu ma:

http://linuxaria.com/article/mono-linux-good-bad?lang=it

Why free software shouldn't depend on Mono or C#:
http://www.fsf.org/news/dont-depend-on-mono

Perché il software libero non deve dipendere da Mono o dal C#:
http://www.fsf.org/it/mono-versione-italiana

Che debbo fare? :confused:

Installo Portable .NET?
http://www.gnu.org/software/dotgnu/pnet.html

The_ouroboros
23-12-2012, 12:56
Io lascerei perdere..

Inviato dal mio HUAWEI U8825-1 con Tapatalk 2

khelidan1980
23-12-2012, 13:13
Volevo installare Mono su Ubuntu ma:

http://linuxaria.com/article/mono-linux-good-bad?lang=it

Why free software shouldn't depend on Mono or C#:
http://www.fsf.org/news/dont-depend-on-mono

Perché il software libero non deve dipendere da Mono o dal C#:
http://www.fsf.org/it/mono-versione-italiana

Che debbo fare? :confused:

Installo Portable .NET?
http://www.gnu.org/software/dotgnu/pnet.html

Questione che si trascina da anni, imho da talebani del free softwate, .NET è uno dei migliori framework attuali, le api sono documentatissime, perchè te ne devi privare? Perche un capellone finto hippie ha detto di no? Mono è completamente open e MS non ha mai minimamente dato la sensazione che possa intraprendere una qualsiasi azione legale contro mono

Vincenzo1968
23-12-2012, 13:29
A me piace tantissimo C#. Se installassi Portable .NET? Qualcuno lo conosce? L'ha mai usato su Linux?

La cosa importante è poter usare C#; mono o portable.net dovrebbe essere indifferente. O no?

:confused:

Braccop
23-12-2012, 14:04
ma onestamente fregatene delle questioni etiche-estremiste... c# e' un linguaggio fantastico, mono e' open... tanto basta, imho.

Vincenzo1968
23-12-2012, 14:13
Si ma il problema è un altro. Io posso pure fregarmene. Ma i programmi che faccio non li uso solo per me stesso. Se faccio un programma in C# e la stragrande maggioranza degli utenti Linux non ha installato mono nel proprio sistema?

Per il momento mi pare che la soluzione migliore per scrivere software multipiattaforma sia C++/QT o Java o Python, Ruby, etc. Tutto tranne C#.

:cry:

cdimauro
28-12-2012, 11:43
Volevo installare Mono su Ubuntu ma:

http://linuxaria.com/article/mono-linux-good-bad?lang=it

Why free software shouldn't depend on Mono or C#:
http://www.fsf.org/news/dont-depend-on-mono

Perché il software libero non deve dipendere da Mono o dal C#:
http://www.fsf.org/it/mono-versione-italiana

Che debbo fare? :confused:

Installo Portable .NET?
http://www.gnu.org/software/dotgnu/pnet.html
Il solo fatto che esista un'implementazione di .NET che ha la benedizione della FSF e di Stallman, è la dimostrazione della bontà di .NET e delle stupidaggini ideologiche di certi personaggi e organizzazioni pseudoreligiose.

Mono è disponibile per diverse piattaforme, e supporta C# e qualche altro linguaggio della famiglia .NET (IronPython sicuramente).

Per cui... usalo(i), se ti va. Si tratta di linguaggi e ambienti molto produttivi.

Vincenzo1968
28-12-2012, 11:56
Ho capito Cesare, ma ho notato che non è molto apprezzato(a torto o a ragione) in ambiente Linux.

È un discorso di programmi multipiattaforma. A me piace C# e me lo sono installato nel mio sistema. Ma poi a chi li do i programmi(su Linux dico) se quasi nessuno ha installato mono?

cdimauro
28-12-2012, 12:41
Dipende dalla distro. Alcune hanno Mono installato.

Comunque non è che qualunque programma per Linux lo installi così com'è e funziona. Ognuno ha le proprie dipendenze, e quelle che non vengono trovate nel sistema vengono installate dal package manager.

Per il resto se Mono viene visto male in ambito Linux è perché il fanatismo è una brutta bestia, anche alle porte del 2013...

Braccop
28-12-2012, 15:12
Ho capito Cesare, ma ho notato che non è molto apprezzato(a torto o a ragione) in ambiente Linux.

È un discorso di programmi multipiattaforma. A me piace C# e me lo sono installato nel mio sistema. Ma poi a chi li do i programmi(su Linux dico) se quasi nessuno ha installato mono?

mah... ti rendi conto che ti stai ponendo un problema riguardo a una fascia di utenza che e' abituata dall'inizio dei tempi a dover tirar madonne con librerie, sottoversioni e dipendenze assurde?

Vincenzo1968
28-12-2012, 15:23
mah... ti rendi conto che ti stai ponendo un problema riguardo a una fascia di utenza che e' abituata dall'inizio dei tempi a dover tirar madonne con librerie, sottoversioni e dipendenze assurde?

Io mi sono avvicinato da pochi giorni al mondo Linux. Forse un tempo era così.
Vero è che ho avuto qualche problemino ad aggiornare GCC all'ultima versione ma questo m'è capitoto con la distro Debian. Con Ubuntu, invece, è andato tutto liscio come l'olio.
Per installare i programmi puoi farlo in modalità grafica con "Ubuntu Software Center". Ci pensa lui a gestire ed eventualmente scaricare tutte le dipendenze.
Anche gli strumenti a riga di comando(apt-get o aptitude) fanno lo stesso egregio lavoro.

Per me Linux(Ubuntu) è un gran bel sistema operativo così com'è un gran bel sistema Windows 8 che ho installato nell'altro computer e nel portatile.

http://www.youtube.com/watch?v=16Ocb8oNhM8

http://www.youtube.com/watch?v=okJbwLBCKhs

pabloski
28-12-2012, 23:14
Lascia perdere Dotgnu e Portable.net, troppo vecchi e ormai abbandonati.

La discussione che si faceva nel 2009 era valida all'epoca, ma oggi sono cambiate molte cose. In primo luogo un certo Ellison ha preso calci in bocca da un certo Google. Credo che Ballmer non sarebbe altrettano stupido.

Poi ms è ormai solo una delle tante aziende del settore e i suoi strumenti non sono più monopolisti ( addirittura gli analisti pensano che amazon, google, facebook e apple valgono più di ms in quanto a potere di imporsi sul mercato ).

Poi ci sono progetti in corso per tradurre l'IL di .net in altro ( vmkit è un esempio ). Addirittura ci sono altri progetti tipo Haxe che puntano ad usare un linguaggio javascript-like che poi può essere tradotto in altri linguaggi o fatto girare sotto un'apposita vm. Quello che voglio dire è che l'epoca del megalinguaggio che dominava è finita.

Semmai ms dovesse decidere di trascinare qualcuno in tribunale, si ritroverebbe solo con una figuraccia in più e il crollo della sua piattaforma.

L'unico problema reale è che ms si è dimostrata non proprio affidabile ultimamente ( buttare a mare silverlight e compagni per poi dirci che è html5 il top dei top ).

Comunque se ti piace c# usalo e non farti millemila problemi.

ingframin
29-12-2012, 09:51
Io mi sono avvicinato da pochi giorni al mondo Linux. Forse un tempo era così.
Vero è che ho avuto qualche problemino ad aggiornare GCC all'ultima versione ma questo m'è capitoto con la distro Debian. Con Ubuntu, invece, è andato tutto liscio come l'olio.
Per installare i programmi puoi farlo in modalità grafica con "Ubuntu Software Center". Ci pensa lui a gestire ed eventualmente scaricare tutte le dipendenze.
Anche gli strumenti a riga di comando(apt-get o aptitude) fanno lo stesso egregio lavoro.

Per me Linux(Ubuntu) è un gran bel sistema operativo così com'è un gran bel sistema Windows 8 che ho installato nell'altro computer e nel portatile.

http://www.youtube.com/watch?v=16Ocb8oNhM8

http://www.youtube.com/watch?v=okJbwLBCKhs
Ubuntu e' un bel sistema operativo (anche io lo tengo sul portatile) seppure con le sue pecche...
Stare li a preoccuparsi degli utenti linux comunque significa stare a preoccuparsi di una percentuale risibile del mercato. E' molto piu' importante che il tuo software giri su mac...
Per adesso (parlo per la mia limitatissima e personalissima esperienza, da non generalizzare, io scrivo software per hobby eh... non vendo nulla) l'unico linguaggio che finora non mi ha dato problemi di portabilita' e' Java.
Mono comunque e' installato di default su ubuntu perche' alcuni dei suoi componenti sono basati su mono. Non so che versione ma almeno il runtime e' sempre installato. Se vai di Mono+GTK# dovresti non avere alcun problema di portabilita', forse neanche su Mac. Altrimenti Java+swing (o SWT) e passa la paura. (o c++/Qt, Python/PySide, ecc...). Peccato che Mono non supporti WPF :cry:

The_ouroboros
29-12-2012, 09:56
Stare li a preoccuparsi degli utenti linux comunque significa stare a preoccuparsi di una percentuale risibile del mercato. E' molto piu' importante che il tuo software giri su mac...


l'8% di macchine nel mondo è cosi importante?

idoido
29-12-2012, 10:14
l'8% di macchine nel mondo è cosi importante?

di sicuro più degli utenti end-user linux.
e l'8% semmai considerato a livello globale, se andiamo per stati ad esempio negli usa la diffusione è del 15%, australia del 14%.
la regione sudamericana invece fa circa l'1%

ma da uno che scrive "lascerei perdere" parlando di mono (e da programmatore .net ti dico che è un ottimo framework, e chi afferma il contrario non l'ha mai usato) e ha il logo gnu come avatar non mi aspetto certo che sia obiettivo su certi argomenti.

ingframin
29-12-2012, 10:36
l'8% di macchine nel mondo è cosi importante?

Se il problema e' girare ovunque Java e' la risposta.
Se il problema e' vendere software bisogna andare dove va il mercato quindi a naso direi in ordine di priorita' Win8 -> Apple -> Linux.
http://gs.statcounter.com/#os-ww-monthly-201111-201211-bar
Tenendo sempre in conto che molte applicazioni per il mondo linux sono anche free == gratis, non solo free come free software e l'utenza media di linux non mi pare molto propensa a spendere.
Poi stiamo parlando di aria fritta comunque... Io ho supposto che si parlasse di realizzare programmi che girano su pc per un vasto pubblico di persone.
Nel mio settore, elettronica, molti programmi girano su linux, alcuni solo su linux e difatti i designer dove lavoro hanno Red Hat installato sulle loro macchine come OS principale.
Dipende dal target di utenza cui ci si rivolge. Nel mondo server i sistemi unix la fanno da padrone, sui pc, vogliamo o non vogliamo noi illuminati linuxari, windows la fa da padrone.

Oh alle perse ci sono sempre le applicazioni web che girano dovunque... :sofico:

The_ouroboros
29-12-2012, 10:37
Ammetto che le tue osservazioni sono valide ma cmq l'attuale Mac e' fondamentalmente uno smandruppamento di uno *nix.
Detto questo... .Net mi va anche bene... E Mono che non ritengo un progetto degno di nota.

Inviato dal mio HUAWEI U8825-1 con Tapatalk 2

Vincenzo1968
29-12-2012, 13:00
Ma il runtime .NET è pienamente compatibile?
Voglio dire, se sviluppo un'applicazione C# per Windows con Visual Studio posso far girare tranquillamente l'eseguibile anche su Linux con mono installato?

Con QT il sorgente si scrive una volta sola. Poi si compila per le varie piattaforme.

Se non ricordo male qualche tempo fa c'era una certa incompatibilità tra i runtime microsoft e mono. Oggi la situazione è cambiata? Posso scrivere il sorgente una volta sola? O debbo modificarlo e ricompilarlo con gli strumenti mono?

Braccop
29-12-2012, 13:01
non ho mai provato ma io direi che come minimo va ricompilato

Vincenzo1968
29-12-2012, 13:07
Ho dato un'occhiata al sito ufficiale. Sembrerebbe pienamente compatibile, a parte, come dice ingframin, le WPF:

http://www.mono-project.com/Compatibility

The current release version of Mono is 2.10.8. (Released December 19th, 2011)

The easiest way to describe what Mono currently supports is:
Everything in .NET 4.0 except WPF, WWF, and with limited WCF.


Quindi un eseguibile creato con Visual Studio dovrebbe girare tranquillamente su Linux/Mono.

Edit: Faccio qualche prova e vi faccio sapere.

Vincenzo1968
29-12-2012, 13:50
L'ambiente di sviluppo su Linux, MonoDevelop, è graziosino:

http://img211.imageshack.us/img211/6375/hellomono.jpg

Vincenzo1968
29-12-2012, 14:12
Come applicazioni console ci siamo. Ho compilato il classico hello world su linux e l'eseguibile funziona, senza ricompilare, anche su Windows:

http://img843.imageshack.us/img843/9270/monoconsole.jpg

Adesso prova a compilare un'applicazione WinForms e vedo se l'eseguibile funziona su entrambi i sistemi.

Vincenzo1968
29-12-2012, 14:41
Anche le applicazioni Windows Form funzionano su entrambi i sistemi senza necessità di dover ricompilare:

.Net Framework 4.0:

http://img13.imageshack.us/img13/4985/provawinformswindows.jpg

http://img211.imageshack.us/img211/1595/monowinforms.jpg

Manca, su Mono, il pieno supporto al .Net Framework 4.5 ma dovrebbe essere questione di tempo.

Braccop
29-12-2012, 15:22
buono a sapersi

cdimauro
29-12-2012, 21:17
Mono è un ottimo progetto, largamente compatibile con .NET. Purtroppo, come diceva qualcuno, manca un pezzo FA-VO-LO-SO, che è WPF: doppia libidine coi fiocchi. Comunque tolto WPF, rimane PARECCHIA altra roba.

Per com'è nato, infine, .NET non richiede nessuna ricompilazione. Si compila una volta, e poi funziona ovunque ci sia un runtime che copre tutte le "dipendenze" dell'applicazione o libreria.

gugoXX
30-12-2012, 09:57
Tanto alla fine a parte gli esperimenti, nel mondo professionale su Linux si usano componenti server.
Mai vista una finestra sui Linux al lavoro.
Le librerie per costruire componenti server sotto Mono sono ben supportate e i bug restanti pochi e ben documentati.
Quindi ben venga.

tomminno
31-12-2012, 14:41
Io mi sono avvicinato da pochi giorni al mondo Linux. Forse un tempo era così.
Vero è che ho avuto qualche problemino ad aggiornare GCC all'ultima versione ma questo m'è capitoto con la distro Debian. Con Ubuntu, invece, è andato tutto liscio come l'olio.
Per installare i programmi puoi farlo in modalità grafica con "Ubuntu Software Center". Ci pensa lui a gestire ed eventualmente scaricare tutte le dipendenze.
Anche gli strumenti a riga di comando(apt-get o aptitude) fanno lo stesso egregio lavoro.

Per me Linux(Ubuntu) è un gran bel sistema operativo così com'è un gran bel sistema Windows 8 che ho installato nell'altro computer e nel portatile.

http://www.youtube.com/watch?v=16Ocb8oNhM8

http://www.youtube.com/watch?v=okJbwLBCKhs

Fanno il loro egregio lavoro fino a che non ti trovi a dover installare un pacchetto che richiede una dipendenza non più inclusa nei repository.

L'ultima volta che ci ho dovuto bestemmiare dietro è stata per l'installazione di un server Socorro, le guide, pure aggiornate, sono del tutto inutili dato che la metà dei pacchetti elencati non sono più presenti (sia in Centos che Ubuntu) e vanno installati a manina prima di eseguire tutta la procedura...

Ah il vantaggio di usare Postgres al posto di MySql...

Vincenzo1968
31-12-2012, 14:59
Fanno il loro egregio lavoro fino a che non ti trovi a dover installare un pacchetto che richiede una dipendenza non più inclusa nei repository.

L'ultima volta che ci ho dovuto bestemmiare dietro è stata per l'installazione di un server Socorro, le guide, pure aggiornate, sono del tutto inutili dato che la metà dei pacchetti elencati non sono più presenti (sia in Centos che Ubuntu) e vanno installati a manina prima di eseguire tutta la procedura...

Ah il vantaggio di usare Postgres al posto di MySql...

Finora ho installato un fottìo di programmi ed è andato tutto liscio come l'olio(a parte qualche rogna legata all'installazione di gcc 4.7.2 ma dovuta soltanto a mie disattenzioni da niubbo).

Ho installato compilatori, database, editor, ide, TeX Live... un fottìo insomma.

:D

The_ouroboros
31-12-2012, 16:21
Ah il vantaggio di usare Postgres al posto di MySql...

amen :D

tomminno
31-12-2012, 17:16
amen :D

il ql è rimasto nella tastiera :fagiano:

ingframin
31-12-2012, 18:15
Mono è un ottimo progetto, largamente compatibile con .NET. Purtroppo, come diceva qualcuno, manca un pezzo FA-VO-LO-SO, che è WPF: doppia libidine coi fiocchi. Comunque tolto WPF, rimane PARECCHIA altra roba.

Per com'è nato, infine, .NET non richiede nessuna ricompilazione. Si compila una volta, e poi funziona ovunque ci sia un runtime che copre tutte le "dipendenze" dell'applicazione o libreria.

Non vorrei dire ma mi sa che GTK# gira sia su win che su linux... Non e' bello come WPF ma e' sicuramente meglio di una padellata in fronte :sofico:

The_ouroboros
31-12-2012, 18:17
il ql è rimasto nella tastiera :fagiano:

in genere si dice postgres o postgresql con la prima forma la più usata quindi... :cool:

cdimauro
31-12-2012, 23:14
Non vorrei dire ma mi sa che GTK# gira sia su win che su linux... Non e' bello come WPF ma e' sicuramente meglio di una padellata in fronte :sofico:
Le GTK sono peggio di una padellate in fronte, ma, comunque, sì: sono disponibili per tutte le piattaforme, anche se non so com'è fatto il loro wrapper in versione .NET.

Però visto che Mono supporta le WinForms, perché usare le GTK#?

[Kendall]
01-01-2013, 09:53
Le GTK sono peggio di una padellate in fronte, ma, comunque, sì: sono disponibili per tutte le piattaforme, anche se non so com'è fatto il loro wrapper in versione .NET.

Però visto che Mono supporta le WinForms, perché usare le GTK#?

Concordo, ma lo si fa solo per creare programmi che abbiano interfacce integrate nel sistema di destinazione (in questo caso si crea quindi tutta la parte logica comune, e poi per ogni piattaforma si riproduce l'interfaccia con le librerie dedicate, lavoro in più ovviamente).

Io comunque dopo aver usato le WPF e le WinRT non riesco più a trovare soddisfacente (come esperienza di design e utilizzo ma anche come risultato finale) l'utilizzo di altre librerie grafiche. C'è poco da dire: lì Microsoft ha fatto davvero un lavorone coi fiocchi.

Braccop
01-01-2013, 10:38
Però visto che Mono supporta le WinForms, perché usare le GTK#?

infatti

ps: bella firma :D

ingframin
01-01-2013, 21:48
Le GTK sono peggio di una padellate in fronte, ma, comunque, sì: sono disponibili per tutte le piattaforme, anche se non so com'è fatto il loro wrapper in versione .NET.

Però visto che Mono supporta le WinForms, perché usare le GTK#?

Era giusto per citare una libreria cross platform... Volendo ci sono pure Qyoto (wrapper di Qt) e wxNET(wrapper di wxWidgets).

Di winforms ne sento sempre parlare male ma non ho mai provato a usarlo quindi passo... Non ho idea ne' di come funzioni ne' di quanto sia buono.

cdimauro
02-01-2013, 10:05
Nemmeno io (sono WPF/Silverlight addicted :sbav:), ma visto che ci sono e Mono le implementa, a mio avviso non ha molto senso usare wrapper e binding addizionali.
Specialmente se derivano da un mostro come le GTK... :Puke: