2010-08-19 20 views
18

Eventuali duplicati:
Tips for moving from C# to Java?Passando da .NET a Java

Come sviluppatore abbastanza esperto NET (dal 1,0), ho visto un bel po 'di posti di lavoro interessanti nel area locale focalizzata principalmente su Java EE, ESB, WebSphere, JSP, ecc. Ora conosco bene la maggior parte dei "tech" di .NET, ma Java è un mistero. Ho fatto un po 'di programmazione J2SE all'Università (2003 ish), ma non molto da allora.

Qualcuno ha fatto la stessa transizione (o quella opposta) e potrebbe condividere alcune informazioni, avvertenze, qualsiasi cosa davvero! Quanto sono comparabili gli skillset .NET e Java e quanto facilmente si può fare la transizione?

+0

Quali termini di ricerca hai utilizzato fino ad ora? –

+0

Correlati: http://stackoverflow.com/questions/295224/what-are-major-differences-between-c-and-java –

+0

Beh, in sostanza sto cercando differenze fondamentali tra l'intera cosa, piuttosto che le differenze di sintassi tra C# e Java. Ad esempio, che cosa correlano EJB in .NET? – Jamie

risposta

8

Ho affrontato lo stesso problema andando dall'altra parte: Java EE su .NET.

Non ho troppi problemi con il mapping dei costrutti del linguaggio tra le due lingue. Non è difficile capire l'accesso al database relazionale in una lingua o nell'altra. I loop sono loop, ifs ifs, kids. Nessun problema lì.

ho letto Jon Skeets "C# in profondità", così ho ottenuto un apprezzamento per alcune delle cose belle che sono state aggiunte al C# che vanno al di là di Java: LINQ, chiusure, delegati, ecc

I miei problemi avevano più a che fare con gli altri dettagli.

Visual Studio è un mistero per me. Sono abituato a IntelliJ. ReSharper aiuta. Ma come qualsiasi altro IDE, fino a quando non ci si diventa familiari, si inciamperanno, cercando di mappare qualcosa che si sa fare bene su un altro sistema verso il nuovo. Visual Studio Express non sembra essere la stessa cosa.

Sono anche ignorante di organizzazione, imballaggio e distribuzione di applicazioni. Sono al buio su moduli .NET, implementazione su IIS invece di un server di applicazioni Java EE come WebLogic, ecc.

L'utilizzo di JUnit e TestNG nei miei progetti Java è una seconda natura. Non ho lo stesso livello di comfort con NUnit.

Semplicemente non ce l'ho sulla punta delle dita. È come una persona in un paese straniero con una guida alla lingua: "Come posso dire?" Semplicemente non sono fluente in .NET.

Potrei davvero usare un buon progetto e un mese di abbinamento con una guida esperta per farmi superare la gobba. Ma non è il mio ruolo nei progetti, quindi sono bloccato.

Sono più a mio agio nello stesso percorso con Python. Ho PyCharm da JetBrains, quindi l'IDE è un non-problema. I moduli Python sono tanto abbondanti e facili da usare come roba open source di terze parti a cui sono abituato. Ho un grande libro "Core Python" che mi sta guidando. E più uso la lingua, più mi piace. Ho gli stessi problemi di packaging e distribuzione, ma sono più sicuro che li risolverò da solo con Python che con .NET.

+0

Solo una nota: il Full Visual Studio ha un ottimo test di unità integrato.Basta fare clic su un metodo, fare clic su "Crea test" e crea il test per te in un progetto separato. Se il metodo era privato, protetto o interno crea addirittura un oggetto accessor per esso che consente al test dell'unità di accedere a tutti i metodi come se fossero pubblici (che a volte è molto utile e ti risparmia la fatica di scrivere sottoclassi per testare metodi protetti) . Ho usato NUnit dopo aver iniziato con quei test unitari e NUnit si sente semplicemente maldestro nel confronto. – dbemerlin

+0

Anche con un mago, devi ancora mettere la carne nei metodi. E se il tuo mago ti dà solo prove di "percorso felice", direi che ti sta rendendo un disservizio. A volte le persone che si innamorano dei maghi dovrebbero fare un passo indietro. – duffymo

+0

Visual Studio è uno dei migliori editor del mondo, può essere un mistero per te perché sei molto nuovo per esso, e puoi anche aggiungere un plug-in di resharper, che aggiungerà un po 'di potenza techno ad esso, ma VS 2013 e ora VS 2014 sono caricati con la maggior parte degli strumenti extra. – Ambuj

2

Fintantoché non si interviene su complesse interazioni del classloader, il linguaggio e la libreria standard dovrebbero sentirsi a casa, ciò che può intimidire qualcuno che viene dai negozi Microsoft è la stragrande quantità di librerie e opzioni middleware, mentre il linguaggio è semplice , l'ecosistema è profondo, molto profondo e non esiste una vera scelta standard.

mi concentro sui tecnici 'standard' nel J2EE tutorial per la maggior parte dei negozi di impresa, ma se mai responsabile tecnico su un progetto, essere pronti a spendere un sacco di tempo alla ricerca del set ottimale di strumenti per il vostro stile.

4

A mio parere, la differenza tra Java e .NET (C#) non è così grande, dal punto di vista della lingua. Io stesso uso frequentemente entrambi, anche se sto usando più Java di C#.

Il problema è più la piattaforma di seguito e le librerie di classi che hanno una struttura diversa e forniscono concetti a volte diversi per la stessa cosa. La cosa principale secondo me è qui che .NET è più guidato dalle librerie bundle/vendor direttamente da Microsoft mentre sulla piattaforma Java la maggior parte delle librerie e dei framework provengono dalla piattaforma - fonti esterne.

Quindi la cosa migliore a tale riguardo è la ricerca di problemi frequenti risolti in .NET e provare a risolverli (parzialmente) in Java per avere un'idea delle librerie e dei framework utilizzati.

Un'altra cosa che è diversa tra le piattaforme potrebbe essere il concetto di un server delle applicazioni in un ambiente Java EE, poiché penso che .NET non abbia un concetto equivalente per ospitare le applicazioni.

Sidenote per quanto riguarda l'IDE

particolare per quanto riguarda refactoring supporta la Tooling Java che troverete in Eclipse, IntelliJ, NetBeans è molto più ricca in Visual Studio, fuori dalla scatola. Sebbene ReSharper sembra aggiungere gran parte delle funzionalità mancanti a Visual Studio.

+0

E IntelliJ è più ricco di Eclipse e NetBeans. ReSharper chiude quella lacuna per Visual Studio. – duffymo

+0

L'ho aggiunto alla mia risposta. –

1

Ho effettuato questa transizione di recente. Come te, ho programmato l'utilizzo di .NET da 1,0. Mi ci sono volute alcune settimane per sentirmi davvero a mio agio - ma alla fine, provenendo da C#, non era molto difficile. La cosa più confusa è stata la transizione dal paradigma di gestione degli eventi basato su delegati .NET al paradigma di gestione degli eventi basato su interfaccia di Java. Starai bene.

Per quanto riguarda l'IDE, preferisco ancora Visual Studio a Eclipse, ma ognuno avrà la propria opinione al riguardo. Eclipse ha un sacco di funzioni ed è espandibile in modo ridicolo, ma sono più interessato alle funzionalità di base che uso ogni giorno. Non ho mai realizzato quanto codice ho scritto usando il tasto TAB fino a quando non sono passato da Visual Studio ad Eclipse. Mi manca davvero il rapido completamento automatico. Se c'è un modo per attivare una funzione simile in Eclipse (invece di digitare CTRL-SPACE -> ENTER) fammi sapere. :)

Buona fortuna! :)

0

Ti suggerisco di iniziare con un piccolo progetto utilizzando un'architettura simile a .NET come JSP che è come ASP o JSF, che è simile a Java Server Faces. Quindi non è necessario preoccuparsi troppo del concetto che si otterrà di più in diferenze linguistiche e IDE, implementazione e queste cose. Quindi si può andare per una corretta applicazione J2EE.

Problemi correlati