PDA

View Full Version : [.NET] C# o VB.NET?


theUser
28-08-2008, 10:48
Ciao a tutti...ho delle basi di VB.NET e da un po' di tempo mi sto interessando al C#...voi quale scegliereste? Mi potete consigliare dei manuali?

RaouL_BennetH
28-08-2008, 12:00
Ciao a tutti...ho delle basi di VB.NET e da un po' di tempo mi sto interessando al C#...voi quale scegliereste? Mi potete consigliare dei manuali?

Io ho iniziato con C# e tutt'ora te lo consiglio.

Ho dovuto farmi delle basi anche in vb.net per delle esigenze particolari e, posso dirti la verità, ne sono rimasto piacevolmente sorpreso al punto in cui sto approfondendo lo studio di questo linguaggio.

Ti consiglio comunque di avere come linguaggio preferenziale C# dato che è più adeguato per i progetti più disparati sia come complessità che come dimensione.

Il vb.net, per progetti di dimensioni più modeste a mio avviso invece può tranquillamente essere una buona scelta.

Per i libri:

Se fai una ricerca in questa sezione troverai molti link :)

RaouL.

Kralizek
28-08-2008, 13:25
Io ho iniziato con C# e tutt'ora te lo consiglio.

Ho dovuto farmi delle basi anche in vb.net per delle esigenze particolari e, posso dirti la verità, ne sono rimasto piacevolmente sorpreso al punto in cui sto approfondendo lo studio di questo linguaggio.

Ti consiglio comunque di avere come linguaggio preferenziale C# dato che è più adeguato per i progetti più disparati sia come complessità che come dimensione.

Il vb.net, per progetti di dimensioni più modeste a mio avviso invece può tranquillamente essere una buona scelta.

Per i libri:

Se fai una ricerca in questa sezione troverai molti link :)

RaouL.

Puoi motivare le due affermazioni? Trovo che l'unica differenza tra C# e VB.NET sia la possibilità di programmare "unmanaged", cosa comunque rara di solito. Alla fine il codice IL prodotto è lo stesso. E se da un lato il C# è un po' più "veloce" nella scrittura dei cast, dall'altro VB.NET è più semplice per la gestione degli eventi (dichiarazione, esecuzione e gestione degli handler).
Ma è solo una mia impressione. La tua?

amedeoviscido
28-08-2008, 13:41
da un lato il C# è un po' più "veloce" nella scrittura dei cast

Mi spiace dire che non mi trovo assolutamente d'accordo.
Ho iniziato ad imparare C# da poco "sul campo": dovevo sviluppare una piccola applicazione ed ho scelto di partire col C# per impararlo. Devo dire che la qualità del software è decisamente migliore, grazie all'utilizzo che ho fatto della prog. ad oggetti, ma i casting sono stati un vero tormento, e ti spiego il perché: l'applicazione fa accesso tramite adodb ad un database postgres.
Per accedere ai campi boolean, ad esempio, dovevo fare qualcosa del tipo:

(decimal)(int) rs.fields["nomecampo"].value

Ti assicuro che è stato difficile da capire!!! Non ti dico il resto... tipo la scocciatura di dover forzare il ToString per poi fare il parseint perché a volte non mi riconosceva i campi come interi...

tomminno
28-08-2008, 14:11
Puoi motivare le due affermazioni? Trovo che l'unica differenza tra C# e VB.NET sia la possibilità di programmare "unmanaged", cosa comunque rara di solito. Alla fine il codice IL prodotto è lo stesso. E se da un lato il C# è un po' più "veloce" nella scrittura dei cast, dall'altro VB.NET è più semplice per la gestione degli eventi (dichiarazione, esecuzione e gestione degli handler).
Ma è solo una mia impressione. La tua?

Dipende dal background.
Io vengo dal C per me scrivere in C# è una passeggiata, scrivere in VB.NET è un vero incubo: Dim ... As ... per dichiarare le variabili, Then dopo l'If, End differenziati a seconda del costrutto, poi ancora sta storia di Sub e Function?
Tutte cose da cui l'Intellisense non ti salva, devi scriverle a mano ogni volta, ore ed ore perse per la prolissità del linguaggio.

Poi sebbene l'IL possa essere identico al VB.NET mancano diverse cose rispetto al C#, tra l'altro è pure case insensitive...
Insomma rimane pur sempre VB con una libreria di base differente.

Gestione degli handler?

VB: AddHandler button.Click, AddressOf OnButtonClicked
C#: button.Click += new EventHandler(OnButtonClicked);

Dove in C# dopo aver scritto "+=" con la pressione di 2 tasti tab ti ritrovi anche il metodo se già non ci fosse, in VB te lo devi scrivere.

tomminno
28-08-2008, 14:13
Per accedere ai campi boolean, ad esempio, dovevo fare qualcosa del tipo:

(decimal)(int) rs.fields["nomecampo"].value

Ti assicuro che è stato difficile da capire!!! Non ti dico il resto... tipo la scocciatura di dover forzare il ToString per poi fare il parseint perché a volte non mi riconosceva i campi come interi...

Scusa ma un banale Convert.ToBoolean non andava bene?

Riordian
28-08-2008, 14:20
usandoli tutti e due posso dire che preferisco di gran lunga C#, trovo la scrittura di codice molto più veloce e pulita. Poi io ne venivo da c e c++ quindi magari sono più portato ad usare questo tipo di scrittura. :)

Kralizek
28-08-2008, 14:28
Dipende dal background.
Io vengo dal C per me scrivere in C# è una passeggiata, scrivere in VB.NET è un vero incubo: Dim ... As ... per dichiarare le variabili, Then dopo l'If, End differenziati a seconda del costrutto, poi ancora sta storia di Sub e Function?
Tutte cose da cui l'Intellisense non ti salva, devi scriverle a mano ogni volta, ore ed ore perse per la prolissità del linguaggio.

Poi sebbene l'IL possa essere identico al VB.NET mancano diverse cose rispetto al C#, tra l'altro è pure case insensitive...
Insomma rimane pur sempre VB con una libreria di base differente.

Gestione degli handler?

VB: AddHandler button.Click, AddressOf OnButtonClicked
C#: button.Click += new EventHandler(OnButtonClicked);

Dove in C# dopo aver scritto "+=" con la pressione di 2 tasti tab ti ritrovi anche il metodo se già non ci fosse, in VB te lo devi scrivere.

Mi trovo perfettamente con te. Io ho iniziato quando mio padre mi ha spiegato il BASIC e da lì ho proseguito fino a trovarmi su VB.NET. All'univ mi sono trovato bene con la sintassi C-like di C/C++/Java e C# ma con VS 2003+ scrivere in VB è irrilevante. La prolissità quasi non la senti grazie ad IntelliSense e all'autocompletamento (If => End If già messo e così via).

Per gli eventi... mi riferivo a Event/RaiseEvent e così via. A scriverlo ora mi sembra di dire una cazzata ma credevo che in C# non ci fossero.

Ad ogni modo è solo una questione di abitudine :)

cdimauro
28-08-2008, 14:56
Poi sebbene l'IL possa essere identico al VB.NET mancano diverse cose rispetto al C#, tra l'altro è pure case insensitive...
Questo invece lo trovo un pregio (e mi rammarico che anche Python non sia così): ha poco senso per un linguaggio di programmazione (come pure per un file system, un engine SQL, ecc.) avere gli identificatori case sensitive.

banryu79
28-08-2008, 15:09
Questo invece lo trovo un pregio (e mi rammarico che anche Python non sia così): ha poco senso per un linguaggio di programmazione (come pure per un file system, un engine SQL, ecc.) avere gli identificatori case sensitive.
Gran quotone :O

variabilepippo
28-08-2008, 15:13
tra l'altro è pure case insensitive...


Che :ciapet: ... :rolleyes:

theUser
28-08-2008, 16:02
quindi cosa mi consigliate? approfondire vb.net o imparare c#?

Kralizek
28-08-2008, 16:33
quindi cosa mi consigliate? approfondire vb.net o imparare c#?

entrambi. alla fine programmare in .net vuol dire al 90% conoscenza della piattaforma e 10% conoscenza del linguaggio. E poi su internet puoi trovare esempi sia in un linguaggio che nell'altro e, sebbene ci sia traduttori automatici, capire cosa c'è scritto ad una prima occhiata è importante :D

theUser
01-09-2008, 11:43
capito:)
per c# ho scelto accelerated c#... per vb.net quale manuale potrei scegliere(considerando che ho gia delle conoscenze base)?

stdecden
01-09-2008, 12:07
Io ti consiglio C#, perché ha una sintassi molto piú chiara e intuitiva secondo me...

Non sarebbe comunque una buona idea mettere un sondaggio su questo 3d?