View Full Version : [C#]alla faccia della portabilità
RaouL_BennetH
27-08-2005, 13:35
Il problema:
Linux -> Mono -> Monodevelop
Windows - .Net -> Sharp Develop (Visual studio non me lo posso comprare)
Il programma:
La mia solita connessione ad un database mysql
La considerazione:
Si usano e si scrive codice sostanzialmente diverso
Domanda:
Cos'ha di portabile quindi questo linguaggio?
Il problema:
Linux -> Mono -> Monodevelop
Windows - .Net -> Sharp Develop (Visual studio non me lo posso comprare)
Il programma:
La mia solita connessione ad un database mysql
La considerazione:
Si usano e si scrive codice sostanzialmente diverso
Domanda:
Cos'ha di portabile quindi questo linguaggio?
Per quanto ne so MS non ha MAI detto di voler fare di .Net e quindi C# un qualcosa di "portabile". La piattaforma ha il suo punto di forza nell'essere cross-language non cross-os. Mono è un lodevole progetto partito per i fatti suoi al quale tutto al più MS ha, in qualche occasione, strizzato l'occhio... sarebbe strano pretendere di più da zio Bill, ti pare? Io ho fatto in passato qualche test su semplici progettini a linea di comando ed ero riuscito a fare il porting, chiaro che su cose più complesse... eh......
RaouL_BennetH
27-08-2005, 15:23
Per quanto ne so MS non ha MAI detto di voler fare di .Net e quindi C# un qualcosa di "portabile". La piattaforma ha il suo punto di forza nell'essere cross-language non cross-os. Mono è un lodevole progetto partito per i fatti suoi al quale tutto al più MS ha, in qualche occasione, strizzato l'occhio... sarebbe strano pretendere di più da zio Bill, ti pare? Io ho fatto in passato qualche test su semplici progettini a linea di comando ed ero riuscito a fare il porting, chiaro che su cose più complesse... eh......
Uhm...io veramente non stavo accusando nessuno :)
Solo che mi aspettavo appunto meno complessità nel progettare in un ambiente o in un altro,in qualsiasi direzione.
Prendiamo un'applicazione da console.
A parte Hello World,una semplice connessione ad un db mysql in windows mi da delle cose,in linux, lo stesso codice mi da delle altre,senza quindi scomodare eventuali interfacce grafiche.Per evitare malintesi,non dico quale ambiente mi da la cosa corretta,altrimenti potrebbe sembrare "questo rulez quest'altro fa cchifo" :)
Il codice è lo stesso,poche righe,eccetto ovviamente la libreria per referenziare mysql che varia dai due sistemi.
Uhm...io veramente non stavo accusando nessuno :)
Solo che mi aspettavo appunto meno complessità nel progettare in un ambiente o in un altro,in qualsiasi direzione.
Prendiamo un'applicazione da console.
A parte Hello World,una semplice connessione ad un db mysql in windows mi da delle cose,in linux, lo stesso codice mi da delle altre,senza quindi scomodare eventuali interfacce grafiche.Per evitare malintesi,non dico quale ambiente mi da la cosa corretta,altrimenti potrebbe sembrare "questo rulez quest'altro fa cchifo" :)
Il codice è lo stesso,poche righe,eccetto ovviamente la libreria per referenziare mysql che varia dai due sistemi.
Ok, ok ;) Il problema però mi pare di natura più complessa: quanto Mono è allineato a .Net? O che problemi ci possono essere nelle librerie intermedie? Nel senso che il linguaggio in sè mi sembra al di sopra delle parti, anche se non conosco il tuo esempio, almeno in questo caso... tra l'altro quando c'è di mezzo un DB, qualunque, con altri strati in mezzo personalmente incrocio sempre le dita. Gli esempi su cui mi ero esercitato non prevedevano interazioni con DB...
end.is.forever
27-08-2005, 20:17
C# è assolutamente indipendente dalla piattaforma per cui lo si usa, ma .NET è esplicitamente un framework Windows.
La portabilità la stanno cercando di creare gli sviluppatori dei framework compatibili su altri sistemi operativi, ma in questo la Microsoft non c'entra nulla.
RaouL_BennetH
27-08-2005, 21:53
C# è assolutamente indipendente dalla piattaforma per cui lo si usa, ma .NET è esplicitamente un framework Windows.
La portabilità la stanno cercando di creare gli sviluppatori dei framework compatibili su altri sistemi operativi, ma in questo la Microsoft non c'entra nulla.
Scusate,ma non riesco a capire da dove si evince che io stia dando la colpa alla microsoft o a linux :confused:
cdimauro
28-08-2005, 06:04
Non penso che il supporto a MySQL sia incluso in .NET. Molto probabilmente sarà stato implementato in modo diverso.
La portabilità di C# / .NET sta nel fatto che, una volta generato l'assembly, dovrebbe poter girare indifferente su qualunque piattaforma supporti questo framework.
Scusate,ma non riesco a capire da dove si evince che io stia dando la colpa alla microsoft o a linux :confused:
E' chiaro che non stai dando la colpa a MS ;) ne a nessun altro d'altronde va specificato che in questo caso si tratta di un lavoro, mostruoso a parer mio, di adattamento ad una piattaforma diversa da quella nativa per il framework. Credo che il concetto fondamentale da chiarire sia che non è il linguaggio ad essere coinvolto nei problemi di portabilità quanto quello che sta in mezzo tra il codice ed il SO, in fondo vale anche per Java e la sua JVM.
RaouL_BennetH
28-08-2005, 13:07
Non penso che il supporto a MySQL sia incluso in .NET. Molto probabilmente sarà stato implementato in modo diverso.
La portabilità di C# / .NET sta nel fatto che, una volta generato l'assembly, dovrebbe poter girare indifferente su qualunque piattaforma supporti questo framework.
Per MySql potrebbe anche starci,dato che sui due SO si usano librerie diverse:
Mono -> ByteFx
Sharp Develop (e VS.Net) -> MySql Connector
IL fatto è che non mi aspettavo che non utilizzando librerie particolari,potessi avere risultati diversi con lo stesso codice,tipo come in un ambiente devo castare esplicitamente determinate cose per avere il risultato corretto,in un altro lo fa da solo.
Detto questo,faccio anche la considerazione che come sapete sono nuovo nel mondo della programmazione.E' piuttosto facile che il mio pensiero sia questo perchè dovuto ad una conoscenza ancora a livelli di base.
cdimauro
29-08-2005, 08:31
IL fatto è che non mi aspettavo che non utilizzando librerie particolari,potessi avere risultati diversi con lo stesso codice,tipo come in un ambiente devo castare esplicitamente determinate cose per avere il risultato corretto,in un altro lo fa da solo.
Succede proprio perché hai delle librerie diverse... :)
Detto questo,faccio anche la considerazione che come sapete sono nuovo nel mondo della programmazione.E' piuttosto facile che il mio pensiero sia questo perchè dovuto ad una conoscenza ancora a livelli di base.
No no: è "normale amministrazione". :p
Borland, ad esempio, ha dei suoi set di driver / architetture per accedere a database come MySQL, per cui è chiaro che il tuo codice sarà ancora una volta diverso, se vorrai utilizzare queste tecnologie.
RaouL_BennetH
29-08-2005, 11:41
Succede proprio perché hai delle librerie diverse... :)
No no: è "normale amministrazione". :p
Borland, ad esempio, ha dei suoi set di driver / architetture per accedere a database come MySQL, per cui è chiaro che il tuo codice sarà ancora una volta diverso, se vorrai utilizzare queste tecnologie.
Si :p però hai mancato di leggere un piccolo "non" però:
Mi quoto:
"Originariamente inviato da RaouL_BennetH
IL fatto è che non mi aspettavo che non utilizzando librerie particolari,potessi avere risultati diversi con lo stesso codice,tipo come in un ambiente devo castare esplicitamente determinate cose per avere il risultato corretto,in un altro lo fa da solo."
Difatti, per MySql ho capito che dovesse per forza di cose dipendere dalla libreria usata che è diversa.
Il fatto è che sto notando comportamenti diversi con il solo: using System.
Sarà che quello che racchiude appunto "System" è diverso sui due sistemi?!?
cdimauro
30-08-2005, 08:53
Ooops, scusa... Sarà lo stress da lavoro... :(
Comunque hai ragione su System: anche se l'implementazione è diversa, il "comportamento" dovrebbe essere esattamente lo stesso.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.