PDA

View Full Version : Confronto .NET e Java


gokan
16-10-2006, 18:44
Secondo voi, in linea di massima, il confronto .NET e Java (e quindi anche J2EE) descritto qui
http://www.microsoft.com/italy/msdn/library/net/migrazione/dotnet_MovingJavaApps.asp

è veritiero? Devo fare una relazione e siccome la fonte è MS non vorrei fosse troppo di parte!!

Gatz1980
16-10-2006, 19:27
Beh, basta pensare che indica solo quali vantaggi ha .NET rispetto a j2ee e non il contrario :D
Comunque quella è una guida per la migrazione, quindi, fossi in te, guarderei anche altrove.

In ogni caso, alcune differenze potrebbero essere queste.

1) .NET ha bisogno del suo framework (che poi è una virtual machine), che gira SOLO si sistemi operativi Microsoft (neanche tutti), mentre la java vm esiste per una grande quantità di architetture.

2) .NET, col fatto di essere un prodotto commerciale, non può essere aggiornato e modificato così velocemente rispetto al mondo j2ee, che è continuamente in evoluzione, per questo è tecnologicamente un po' "indietro", ma di contro, molte piattaforme commerciali j2ee sono ferme a versioni paleolitiche di java, quindi tutta questa innovazione è solo teorica.

3) Mentre j2ee si sposa con decine di framework, templates, librerie e quant'altro (struts, hibernate, log4j, ...) e quindi ci vuole una notevole esperienza anche solo per decidere cosa utilizzare per sviluppare il proprio applicativo, .NET è fatto per contenere praticamente tutti gli strumenti che ti servono.

4) Con j2ee si può utilizzare praticamente qualunque dbms che implementi un driver jdbc. Mentre questo è quasi vero anche per .NET, in realtà i risultati migliori si avranno solo con SQL server.

Sicuramente ce ne sono decine, ma diciamo che ti ho dato uno spunto iniziale.

Ciao

gokan
16-10-2006, 19:35
Grazie, ottimi spunti :)

Quello che mi ha stupito di più è che a quanto pare è vero che .NET sul piano della protezione e sicurezza abbia qualcosa di più, a quanto pare sono maestri nel fare tesoro delle falle e bug altrui ed sfruttare ciò per migliorare la propria piattaforma.
http://www.cs.virginia.edu/~nrp3d/papers/computers_and_security-net-java.pdf
Non l'avrei mai detto!

thebol
17-10-2006, 10:01
Grazie, ottimi spunti :)

Quello che mi ha stupito di più è che a quanto pare è vero che .NET sul piano della protezione e sicurezza abbia qualcosa di più, a quanto pare sono maestri nel fare tesoro delle falle e bug altrui ed sfruttare ciò per migliorare la propria piattaforma.
http://www.cs.virginia.edu/~nrp3d/papers/computers_and_security-net-java.pdf
Non l'avrei mai detto!
.NET prende java e lo migliora sfruttando il know-how di java degli ultimi anni.

alcuni pensano che abbia troppe feature, che si potrebbero rivelare mode passeggiere, ma intanto le ha(alcune cose sono carine, altre forse un po troppo prolisse...)

poi ha gli svantaggi di essere un linguaggio nuovo, cioe una minor esperienza della community e meno framework in giro, e si dovrà scontrare contro un linguaggio e soprattutto una piattaforma già affermata in molte realtà

gokan
17-10-2006, 11:59
Ho avuto l'impressione che la J2EE qualcosa di più complesso, devo dire che non ho ancora capito bene a cosa dovrebbero servire ad esempio i java bean, oppure cosa si intende per logica business. :D
Oppure sono stato molto facilitato dalle MSDN (molte anche in italiano) di MS :)

Gatz1980
17-10-2006, 12:10
Ho avuto l'impressione che la J2EE qualcosa di più complesso, devo dire che non ho ancora capito bene a cosa dovrebbero servire ad esempio i java bean, oppure cosa si intende per logica business. :D
Oppure sono stato molto facilitato dalle MSDN (molte anche in italiano) di MS :)
J2ee è sicuramente più complesso, ma dispone di un sacco di riferimenti online, guide, tutorial, forum e tutto ciò che ti serve. Per Microsoft, la conoscenza è molto più condensata in MSDN, ma diciamo che, dal punto di vista della documentazione, più o meno si equivalgono.
La business logic è costituita dai componenti che forniscono i servizi, cioè che "fanno il lavoro" e passano i dati allo strato di presentazione, che li visualizza.

(attenzione che ejb != java bean)

thebol
17-10-2006, 12:11
Ho avuto l'impressione che la J2EE qualcosa di più complesso, devo dire che non ho ancora capito bene a cosa dovrebbero servire ad esempio i java bean, oppure cosa si intende per logica business. :D
Oppure sono stato molto facilitato dalle MSDN (molte anche in italiano) di MS :)

nell'architettura j2ee si cerca di dividere fermamente la logica di business(il db, le operazioni che ci si fanno sopra, evenutali elaborazioni) dalla visualizzazione/spedizione dei dati.

gokan
17-10-2006, 12:25
Per capirci, in .NET esiste qualcosa di comparabile a Enterprise Java Bean?

Gatz1980
17-10-2006, 12:40
Per capirci, in .NET esiste qualcosa di comparabile a Enterprise Java Bean?
Per quel poco che conosco di .NET, direi proprio di no.
Questo è un punto fondamentale, a livello di architettura. Gli EJB sono componenti veramente potentissimi, se usati correttamente e non abusati. Permettono una grandissima scalabilità.

kalebbo
17-10-2006, 12:47
Ho avuto l'impressione che la J2EE qualcosa di più complesso, devo dire che non ho ancora capito bene a cosa dovrebbero servire ad esempio i java bean, oppure cosa si intende per logica business. :D
Oppure sono stato molto facilitato dalle MSDN (molte anche in italiano) di MS :)

La logica di business, detta in maniera spiccia, è la parte del sistema che si occupa di manipolare i dati chiave per l'applicazione stessa. Immagina una società che vende polizze assicurative e che usa un sistema informatico per gestire tutto il processo di vendita di queste polizze e anche di post-vendita. La logica di business qui si occuperebbe di manipolare concetti software come polizze, clienti, importi ecc.. , ovvero dati sui quali l'azienda fa i soldi, ovvero business.

gokan
17-10-2006, 12:55
Per quel poco che conosco di .NET, direi proprio di no.
Questo è un punto fondamentale, a livello di architettura. Gli EJB sono componenti veramente potentissimi, se usati correttamente e non abusati. Permettono una grandissima scalabilità.
E' proprio per questo che sto cercando di capire meglio questo punto.

Grazie a tutti per i consigli, non avete idea di quanto siano chiarificatori :)

Riguardo a cose ancora più concrete, sappiamo che .NET utilizza come unico tool Visual Studio..se voglio trovare qualcosa di simile in J2EE è corretto citare IBM websphere, oppure il prodotto ibm è da considerarsi "semplicemente" un application server alla pari di JBoss et similia?

Correggetemi se sbaglio !!

gokan
17-10-2006, 12:58
La logica di business, detta in maniera spiccia, è la parte del sistema che si occupa di manipolare i dati chiave per l'applicazione stessa. Immagina una società che vende polizze assicurative e che usa un sistema informatico per gestire tutto il processo di vendita di queste polizze e anche di post-vendita. La logica di business qui si occuperebbe di manipolare concetti software come polizze, clienti, importi ecc.. , ovvero dati sui quali l'azienda fa i soldi, ovvero business.
Dovunque abbia letto di J2EE, questo concetto viene sempre messo fortemente in luce!! Nella realizzazione di un software, in maniera logica, si può suddividere il progetto in più livelli:
CLIENT
WEB
BUSINESS
EIS

thebol
17-10-2006, 13:23
E' proprio per questo che sto cercando di capire meglio questo punto.

Grazie a tutti per i consigli, non avete idea di quanto siano chiarificatori :)

Riguardo a cose ancora più concrete, sappiamo che .NET utilizza come unico tool Visual Studio..se voglio trovare qualcosa di simile in J2EE è corretto citare IBM websphere, oppure il prodotto ibm è da considerarsi "semplicemente" un application server alla pari di JBoss et similia?

Correggetemi se sbaglio !!
sbagli :asd:
Visual studio e un ambiente di sviluppo al pari di WSAD(Websphere application studio) o eclipse(wsad e basato su eclipse)

webspehere è l'application server su cui gira l'applicazione server java(tipo tomcat o jboss)

gokan
18-10-2006, 17:59
Un'altra cosa ragazzi..nel mondo open-source si utilizza l'acronimo L.A.M.P
Linux
Apache
MySQL
Php

per identificare una piattaforma di sviluppo web totalmente libera. Posso considerarla (con le dovute misure) come un altra possibile alternativa ?
Ok che con .NET e J2EE si possono fare molte più cose (a cominciare dal software non necessariamente legato al web), ma,secondo voi, il paragone regge?

thebol
19-10-2006, 09:47
Un'altra cosa ragazzi..nel mondo open-source si utilizza l'acronimo L.A.M.P
Linux
Apache
MySQL
Php

per identificare una piattaforma di sviluppo web totalmente libera. Posso considerarla (con le dovute misure) come un altra possibile alternativa ?
Ok che con .NET e J2EE si possono fare molte più cose (a cominciare dal software non necessariamente legato al web), ma,secondo voi, il paragone regge?
anche j2ee è una piattaforma di sviluppo libera, visto che tomcat, jeronimo e jboss sono cmq free

Gatz1980
19-10-2006, 11:09
Inoltre l'acronimo j2ee è molto più legato al web di quanto non sia .NET in sè.
Comunque, utilizzando le piattaforme giuste, si può sfruttare j2ee in modo totalmente gratuito e beneficiare della sua infinita potenza, non solo perchè in grado di utilizzare client gui piuttosto che web, ma soprattutto per il suo eccellente supporto transazionale e la sua scalabilità. Sono quelle le caratteristiche che con php-mysql non potrai mai avere.