DOMANDA Linguaggio C#

JDany

Utente Attivo
461
24
CPU
Ryzen 9 3900x
Scheda Madre
ASUS H170-Pro
RAM
Corsair Vengeance LPX 2x8 GB
GPU
ZOTAC RTX 3070 TWIN EDGE OC
Monitor
Philips Gaming Monitor 24"
PSU
Corsair CX450M
Case
Sharkoon VS4-V
OS
Windows 11 Pro
Salve. Vorrei chiedervi un consiglio. Vengo dal C e adesso ho bisogno di creare interfaccie grafiche per i miei programmi.

Ho cercato un po' su internet e la maggioranza consiglia Java o C#.

Vorrei iniziare con C#, dato che Java lo sto già facendo.

La mia domanda è come vi trovate in C#?
 

Andretti60

Utente Èlite
6,440
5,091
Lo uso per lavoro (da quando usci', in sostituzione di VB6) , mi trovo molto meglio che Java, ora come ora niente e' piu' conveniente che C# per creare GUI.
L'unico suo problema e' che e' ristretto al mondo Windows, lo ho provato su Mac ma non funziona bene per nulla. Non che sia un problema, praticamente ogni sistema operativo ha i suoi programmi e librerie di scelta per sviluppare GUI.
Ti consiglio la versione piu' recente, ha molti miglioramenti, quindi C# 7, qualsiasi framework superiore a .NET4, VisualStudio 2017 (ma attento, usa un sacco di memoria)
Ti avviso, se vieni da C imparare c# ha una curva piuttosto ripida.

Al momento ci sono due principali frameworks per scrivere GUI, la classica Windows Forms (ereditata da VB, ossia programmazione a eventi) e la piu' recente WPF (basata sul recente paradigma MVVM). La programmazione a eventi e' molto piu' facile, ma MVVM e' molto piu' flessibile. Se non hai mai sviluppato GUI ti consiglio nel stare nel classico, personalmente vedo i vantaggi di MVVM solo in medie e grandi applicazioni commerciali, perche' permette un piu' veloce e razionale approccio per fare cambiamenti radicali e fare lavorare nello stesso progetto allo stesso tempo.
 

JDany

Utente Attivo
461
24
CPU
Ryzen 9 3900x
Scheda Madre
ASUS H170-Pro
RAM
Corsair Vengeance LPX 2x8 GB
GPU
ZOTAC RTX 3070 TWIN EDGE OC
Monitor
Philips Gaming Monitor 24"
PSU
Corsair CX450M
Case
Sharkoon VS4-V
OS
Windows 11 Pro
Lo uso per lavoro (da quando usci', in sostituzione di VB6) , mi trovo molto meglio che Java, ora come ora niente e' piu' conveniente che C# per creare GUI.
L'unico suo problema e' che e' ristretto al mondo Windows, lo ho provato su Mac ma non funziona bene per nulla. Non che sia un problema, praticamente ogni sistema operativo ha i suoi programmi e librerie di scelta per sviluppare GUI.
Ti consiglio la versione piu' recente, ha molti miglioramenti, quindi C# 7, qualsiasi framework superiore a .NET4, VisualStudio 2017 (ma attento, usa un sacco di memoria)
Ti avviso, se vieni da C imparare c# ha una curva piuttosto ripida.

Al momento ci sono due principali frameworks per scrivere GUI, la classica Windows Forms (ereditata da VB, ossia programmazione a eventi) e la piu' recente WPF (basata sul recente paradigma MVVM). La programmazione a eventi e' molto piu' facile, ma MVVM e' molto piu' flessibile. Se non hai mai sviluppato GUI ti consiglio nel stare nel classico, personalmente vedo i vantaggi di MVVM solo in medie e grandi applicazioni commerciali, perche' permette un piu' veloce e razionale approccio per fare cambiamenti radicali e fare lavorare nello stesso progetto allo stesso tempo.

Si mi hanno avvertito dell'uso eccessivo di memoria. Però non mi devo preoccupare, ho 16 gb di RAM.

Comunque si, sono d'accordo. Sto incontrando serie difficoltà ad imparare questo linguaggio.

Uso Visual Studio Community 2017 e per ora sto studiando dalle doc di Microsoft, visto che nella mia scuola hanno smesso di insegnare C# per insegnare Java.
 

Andretti60

Utente Èlite
6,440
5,091
Se conosci gia' Java, o almeno i concetti base, non avresti difficolta' con C#, sono molto, molto simili (infatti io considero C# la risposta Microsoft a Java). Nelle scuole e' sensato insegnare Java, perche' e' gratis e disponibile in tutte le piattaforme.
Purtroppo non so consigliarti nessun tutorial per C#, e' passato ormai troppo tempo da quando lo imparai (e avevo pure una ventina di anni di programmazione alle spalle), devi trovare quello che piu' si adatta alle tue conoscenze.
 

JDany

Utente Attivo
461
24
CPU
Ryzen 9 3900x
Scheda Madre
ASUS H170-Pro
RAM
Corsair Vengeance LPX 2x8 GB
GPU
ZOTAC RTX 3070 TWIN EDGE OC
Monitor
Philips Gaming Monitor 24"
PSU
Corsair CX450M
Case
Sharkoon VS4-V
OS
Windows 11 Pro
Se conosci gia' Java, o almeno i concetti base, non avresti difficolta' con C#, sono molto, molto simili (infatti io considero C# la risposta Microsoft a Java). Nelle scuole e' sensato insegnare Java, perche' e' gratis e disponibile in tutte le piattaforme.
Purtroppo non so consigliarti nessun tutorial per C#, e' passato ormai troppo tempo da quando lo imparai (e avevo pure una ventina di anni di programmazione alle spalle), devi trovare quello che piu' si adatta alle tue conoscenze.

Si è vero è praticamente uguale per la maggior parte della roba.

Comunque Java non è più free. La nuova versione vuole essere pagata.

L'ambiente di sviluppo per C# è completamente gratis. Visual Studio Community è gratis per studenti e programmatori singoli quindi è il migliore secondo me. Poi per le guide sto chiedendo anche ai miei prof perché non so proprio quale libro comprare, quindi per ora su le Doc di Microsoft che comunque insegnano abbastanza bene.

Comunque grazie per queste informazioni.
 
  • Mi piace
Reazioni: Andretti60

pabloski

Utente Èlite
2,868
916
Comunque Java non è più free. La nuova versione vuole essere pagata.

Boh, e' da un po' che sta girando questa leggenda metropolitana, quando invece e' vero il contrario. Oracle ha affidato totalmente lo sviluppo alla comunita', tant'e' che OpenJDK e' diventata l'implementazione di riferimento.

E aggiungo anche che JavaFX e' maturo ormai e Graal ha aggiunto la capacita' di compilare AOT.
 

JDany

Utente Attivo
461
24
CPU
Ryzen 9 3900x
Scheda Madre
ASUS H170-Pro
RAM
Corsair Vengeance LPX 2x8 GB
GPU
ZOTAC RTX 3070 TWIN EDGE OC
Monitor
Philips Gaming Monitor 24"
PSU
Corsair CX450M
Case
Sharkoon VS4-V
OS
Windows 11 Pro
Boh, e' da un po' che sta girando questa leggenda metropolitana, quando invece e' vero il contrario. Oracle ha affidato totalmente lo sviluppo alla comunita', tant'e' che OpenJDK e' diventata l'implementazione di riferimento.

E aggiungo anche che JavaFX e' maturo ormai e Graal ha aggiunto la capacita' di compilare AOT.

No perché altrimenti noi si userebbe l'ultima versione. Invece si usa la ver. 10 perché la 11 è a pagamento. Non ricordo il motivo ma sta di fatto che tutta la sezione informatica lo ha detto (intendo i prof).
 

pabloski

Utente Èlite
2,868
916
No perché altrimenti noi si userebbe l'ultima versione. Invece si usa la ver. 10 perché la 11 è a pagamento. Non ricordo il motivo ma sta di fatto che tutta la sezione informatica lo ha detto (intendo i prof).

Ed e' una leggenda metropolitana. Ecco come stanno le cose https://blog.joda.org/2018/09/do-not-fall-into-oracles-java-11-trap.html

Il punto e' che dal sito Oracle si puo' solo scaricare la versione a pagamento. Prima invece pure quella free si trovava li'. Se non si sta attenti s'incappa nel trappolone.

Ma lo sviluppo di Java continua in open sotto l'ombrello del progetto OpenJDK. Ed esistono distribuzioni della OpenJDK gratis ( Amazon Corretto, Redhat OpenJDK, jdk.java.net di Oracle stessa ).

Per cui Java e' ancora open e gratis.
 

IlPunto

Nuovo Utente
9
6
Dovresti chiarire se parli di interfacce web o desktop.
Nel primo caso, normalmente queste si fanno in HTML5 + JavaScript e magari usando qualche framework come angular. In questo caso è abbastanza indifferente quale linguaggio usi per scrivere la parte logica. Sia C# che Java vanno benissimo.
Nel secondo caso, invece mi sento di consigliarti C#. Con WPF puoi fare cose molto interessanti anche se la curva di apprendimento è bella ripida. In passato ho provato a disegnare qualche UI anche con Java, ma non sono rimasto per niente soddisfatto.
 
  • Mi piace
Reazioni: Andretti60

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili