Cominciare C# con conoscenze di c e java

Pubblicità

Dante93

Utente Attivo
Messaggi
15
Reazioni
0
Punteggio
25
Ciao, ultimamente mi sono messo in testa di creare un gioco e alla fine la scelta e' caduta sull'utilizzare l'engine unity3d che usa come linguaggio di programmazione il c#.

Premettendo che io conosco il C,Java,Visual Basic e Assembly 8086 volevo capire quanto il C# si discosti dal c e da java.

Oltretutto ho letto di una cosa chiamata .Net e che in teoria con il c# si possono fare anche siti web ma non ho capito molto questa cosa.

In pratica vorrei sapere quanto il C# differisce dai linguaggi da me conosciuti e oltre ad usarlo come linguaggio di scripting in unity3d cosa ci si puo' fare con questo linguaggio
 
Se hai conoscenze di java e c sei già avanti. Le differenze rispetto a java sono più o meno queste: C sharp - Wikipedia. IL c# è stato introdotto inizialmente assieme alle Windows Form (che permettono lo sviluppo di interfacce grafiche con textbox, botton,...) in modo semplice. E' poi stato affiancato alle classi Wpf che vanno a sostituire le Windows Form che sono ormai vecchie quindi con molte limitazioni. Hai quindi che tramite WPF vai a definire l'interfaccia grafica mentre tramite c# gestisci il programma. Se devi programmare qualche cosa per browser quindi devi vedere il linguaggio WPF e il C#.

Qui trovi il tool per sviluppare: Visual C# 2010 Express | Microsoft Visual Studio

Ti consiglio questi video per cominciare: Video per sviluppatori e professionisti IT - Microsoft BE IT
sono fatti molto bene!

:)
 
Ciao, ultimamente mi sono messo in testa di creare un gioco e alla fine la scelta e' caduta sull'utilizzare l'engine unity3d che usa come linguaggio di programmazione il c#.

No aspè chiariamo questo punto. Unity usa anche C# come linguaggio di scripting, però puoi usare boo ( python like ) e unityscript ( javascript like e quindi facilissimo da imparare ed usare ).

Il motore di scripting incorpora mono che è l'implementazione .net per sistemi linux/macos/unix.

Premettendo che io conosco il C,Java,Visual Basic e Assembly 8086 volevo capire quanto il C# si discosti dal c e da java.

le somiglianze con java sono parecchie, non a caso c# nasce proprio come alternativa/scopiazzatura di java

Oltretutto ho letto di una cosa chiamata .Net e che in teoria con il c# si possono fare anche siti web ma non ho capito molto questa cosa.

.net e mono sono due framework per l'esecuzione di codice managed

il fatto che sia possibile usare c# tramite asp all'interno di pagine web c'entra relativamente con .net

in ogni caso è possibile usare c# per scrivere programmi standalone, servizi web e script da incorporare nelle pagine web....ovviamente lo stesso si può fare pure con java, python e altri linguaggi

In pratica vorrei sapere quanto il C# differisce dai linguaggi da me conosciuti e oltre ad usarlo come linguaggio di scripting in unity3d cosa ci si puo' fare con questo linguaggio

da c parecchio, da java molto molto meno

occhio però quando usi c# per via di alcune limitazioni forti su altre piattaforme....

non so per quale piattaforma stai sviluppando il gioco, però tieni presente che se il target sono gli smartphone, è bene valutare il framework da usare attentamente

unity3d va benissimo su android e ios, c#/mono pure, programmare in c#/.net può metterti di fronte ad eseguibili che poi non gireranno sotto mono ( perchè quest'ultimo è indietro rispetto a .net in quanto a librerie, nuove api e funzionalità )
 
No aspè chiariamo questo punto. Unity usa anche C# come linguaggio di scripting, però puoi usare boo ( python like ) e unityscript ( javascript like e quindi facilissimo da imparare ed usare ).
Mmm pero' non e' meglio imparare il C# da usare in unity? in questo modo potrei usarlo anche per altre cose al di fuori di unity, invece con unityscript ad esempio non potrei fare altro oltre agli script per unity.
Considerando i linguaggi che conosco secondo te e' piu' sensato studiarmi il C# a questo scopo oppure dovrei orientarmi verso unityscript che dici essere molto facile da imparare?

Il motore di scripting incorpora mono che è l'implementazione .net per sistemi linux/macos/unix.
Praticamente usando .net avrei un framework piu' aggiornato e migliore ma che funziona solo su windows e non su linux? invece usando mono svilupperei sia per mac e linux che per windows ma avendo meno strumenti a disposizione giusto?


occhio però quando usi c# per via di alcune limitazioni forti su altre piattaforme....

non so per quale piattaforma stai sviluppando il gioco, però tieni presente che se il target sono gli smartphone, è bene valutare il framework da usare attentamente

unity3d va benissimo su android e ios, c#/mono pure, programmare in c#/.net può metterti di fronte ad eseguibili che poi non gireranno sotto mono ( perchè quest'ultimo è indietro rispetto a .net in quanto a librerie, nuove api e funzionalità )

Bhe l'idea e' di fare il gioco per PC,Browser(tramite il player di unity) e poi in caso riesco a trovare i fondi portarlo anche su iOS e proprio in ultimo (considerando che servono altri fondi) lo porterei anche su android.
Facendo il gioco con unity credo che a priori io non possa sviluppare per linux (per mac non sono sicuro dovrei riguardarci) dunque il discorso c# con mono o .net si applica nel caso in cui io usi un engine nuovo creato da me giusto? comunque questa cosa di compatiblita' tra mono e .net non l'ho capita molto bene, vorrei capire i pro e i contro di entrambi se possibile ^^
 
Mmm pero' non e' meglio imparare il C# da usare in unity? in questo modo potrei usarlo anche per altre cose al di fuori di unity, invece con unityscript ad esempio non potrei fare altro oltre agli script per unity.

certamente c# è più completo, unityscript ti dà un vantaggio se e quando andrai a studiare javascript ( linguaggio onnipresente sul web )

Considerando i linguaggi che conosco secondo te e' piu' sensato studiarmi il C# a questo scopo oppure dovrei orientarmi verso unityscript che dici essere molto facile da imparare?

io penso che sono linguaggi che è importante conoscere entrambi

unityscript ti dà una buona infarinatura di ecmascript ( su cui è basato pure javascript )

c# è un linguaggio general purpose usato ovunque

però c'è da dire che mentre sul web c# è sostituibile con altri, javascript è presente ovunque

inoltre ms ultimamente sta promuovendo di nuovo c++ molto aggressivamente e non è chiaro quale strategia vogliano seguire per il futuro....non dico che c# e .net spariranno ma potrebbero ridiventare cittadini di seconda classe

Praticamente usando .net avrei un framework piu' aggiornato e migliore ma che funziona solo su windows e non su linux? invece usando mono svilupperei sia per mac e linux che per windows ma avendo meno strumenti a disposizione giusto?

si è così, però il problema di sviluppare solo per windows oggi giorno esiste...è finita l'epoca in cui c'era solo windows, oggi android vende a vagonate, gli iphone vanno a ruba, gli ipad pure

tra mono e .net, è conveniente sviluppare su mono, almeno sei sicuro che poi girerà tutto pure su windows....il viceversa non è sicuro


Bhe l'idea e' di fare il gioco per PC,Browser(tramite il player di unity) e poi in caso riesco a trovare i fondi portarlo anche su iOS e proprio in ultimo (considerando che servono altri fondi) lo porterei anche su android.
Facendo il gioco con unity credo che a priori io non possa sviluppare per linux (per mac non sono sicuro dovrei riguardarci) dunque il discorso c# con mono o .net si applica nel caso in cui io usi un engine nuovo creato da me giusto?

unity3d è supportato pure su linux però il plugin per il browser non lo è

per cui un gioco con unity3d in-browser funziona solo su windows e macos

trattandosi di un gioco in-browser non è una cattiva idea considerare unityscript non tanto per via della compatibilità ma perchè come linguaggio è mille volte più semplice di c#

è una questione di complessità del linguaggio che costringe a perdere più tempo dietro c# piuttosto che unityscript


comunque questa cosa di compatiblita' tra mono e .net non l'ho capita molto bene, vorrei capire i pro e i contro di entrambi se possibile ^^

semplicemente mono rincorre .net, per cui è sempre indietro di qualche versione
 
piu' o meno credo di aver capito tutto, l'ultima domanda e': usando unity in pratica non devo scegliere tra mono e .net giusto?
 
piu' o meno credo di aver capito tutto, l'ultima domanda e': usando unity in pratica non devo scegliere tra mono e .net giusto?

unity implementa mono non .net

quindi quando fai girare uno script c# in unity, lui lo esegue via mono

il problema che dicevo è relativo ai programmi normali, dove magari sviluppi il programma sotto windows/.net e poi provi a farlo girare sotto mono e ti accorgi che un mucchio di classi che hai usato non sono implementate in mono
 
praticamente il problema non si pone si io usassi solo mono, a questo punto la domanda e' ovvia: .net hai detto che e' meglio di mono ma la differenza e' molta?
se tu dovessi fare qualcosa per windows useresti .net o useresti mono in modo da avere in caso in futuro la possibilita' di fare porting?
 
praticamente il problema non si pone si io usassi solo mono, a questo punto la domanda e' ovvia: .net hai detto che e' meglio di mono ma la differenza e' molta?

il problema è che mono viene sviluppato a partire dalle poche informazioni che ms fornisce su .net

ovviamente ad ogni versione nuova di .net, quelli di mono devono mettersi sotto e implementare le novità e chiaramente ci vuole tempo

che poi spesso si tratta di novità che comunque i programmatori non usano è un altro paio di maniche :D

praticamente con mono si può fare di tutto e si hanno le tecnologie .net più importanti....mancano alcune cose non esattamente vitali

se tu dovessi fare qualcosa per windows useresti .net o useresti mono in modo da avere in caso in futuro la possibilita' di fare porting?

preferei mono anche perchè oggi non si può più sviluppare solo per windows

non possiamo non considerare che ci sono milioni di smartphone che non usano windows, milioni di tablet che non usano windows e dispositivi embedded tra i più strani che usano qualche versione di linux o addirittura altri sistemi operativi più specializzati

mono gira ovunque, .net no
 
preferei mono anche perchè oggi non si può più sviluppare solo per windows

non possiamo non considerare che ci sono milioni di smartphone che non usano windows, milioni di tablet che non usano windows e dispositivi embedded tra i più strani che usano qualche versione di linux o addirittura altri sistemi operativi più specializzati

mono gira ovunque, .net no

omg aspetta, io pensavo che mono facesse windows+distro piu' famose di linux (tipo ubuntu)+mac+windows phone 7, invece te mi dici che oltre ai citati funziona pure su qualsiasi distro linux,android,iphone,symbian?

se e' cosi' comincio ad amarlo xD

ps. cosa sai di XNA? dovrebbe essere una libreria grafica giusto? e' implementabile sia su mono che .net?
 
omg aspetta, io pensavo che mono facesse windows+distro piu' famose di linux (tipo ubuntu)+mac+windows phone 7, invece te mi dici che oltre ai citati funziona pure su qualsiasi distro linux,android,iphone,symbian?

si, gira su windows, linux, macos, android e ios

ps. cosa sai di XNA? dovrebbe essere una libreria grafica giusto? e' implementabile sia su mono che .net?

xna è un framework per lo sviluppo di giochi

il problema è che funziona solo con directx, quindi solo windows

inoltre è basato su .net e non so se gira su mono

se si vuole fare qualcosa piattaforma è decisamente sconsigliabile....del resto per il 3d esistono framework decisamente migliori tipo unity, ogre, blender, unreal, spring, unigine

inoltre è importante guardare alla licenza, visto che ultimamente stanno un pò rompendo tutti con i brevetti, è meglio preferire qualcosa di opensource e sotto licenze apache, mit, bsd, gpl e simili
 
Pubblicità
Pubblicità
Indietro
Top