Domanda

Java e .NET sono due linguaggi mirati a rimuovere la dipendenza dalla piattaforma.Ciò si ottiene aggiungendo una macchina virtuale/framework tra il codice e il sistema operativo.

Allora, che senso ha usarlo lato server, dato che tutti i siti web sono accessibili tramite browser e questo è indipendente dalla piattaforma?C'è qualche motivo particolare per usarli?

È stato utile?

Soluzione

.NET si intende solo per la piattaforma Windows. Java è l'unico dei due che è destinata ad essere indipendente dalla piattaforma.

Queste lingue hanno una forte presenza sul lato server per molti motivi:

  1. Un sacco di librerie che gestiscono le attività secondarie del problema
  2. Entrambi i quadri sono costruiti pensando alla sicurezza
  3. Sono gestiti lingue, è molto più difficile da tirare fuori gli attacchi tipici sul software.
  4. Essi sono considerati tecnologie mature, sono stati messi a un po 'di abusi e hanno superato la prova.
  5. Hanno supporto del settore.
  6. Entrambi sono oggetto orientato
    1. Questo significa che non v'è la possibilità di uno sviluppo di un sito web attraverso l'uso di componenti riutilizzabili o di componenti di terze parti.
  7. Sia lingua permettere "sandboxing" di componenti non gestiti (Java: JNI NET: Boxe) [permette inserimento di componenti legacy]

Altri suggerimenti

Sono in realtà scelti per ragioni quasi del tutto opposti:

  • Piattaforma indipendenza del Java significa che non siete legati a una piattaforma e sono quindi più flessibile nella scelta della piattaforma più conveniente, o quello più affidabile. E si può mantenere le applicazioni in esecuzione anche quando si deve cambiare piattaforme server, perché quello vecchio non è più supportato.
  • .NET è scelto perché se avete intenzione di legare a voi stessi di un sistema operativo, Microsoft è il più grande giocatore e quindi l'opzione meno rischiosa - o semplicemente perché le aziende caddero nel "negozio All-Microsoft" trappola attraverso le droghe di gateway come Scambio. E una volta che ci sei, .NET è quello che Microsoft vuole che tu da usare e supporta e si integra con tutti i loro strumenti attuali.

Sia Java e .NET hanno i loro benefici per il lato server.

Ad esempio, con .NET si è liberi di scegliere il miglior linguaggio per la parte dell'applicazione che si sta lavorando, e tutti questi linguaggi .NET lavorare insieme.

Quindi, si consiglia di usare F # per le funzioni di data mining, C # a lavorare con il database, non gestito C ++ (passare attraverso un sottile strato gestita C ++) per le connessioni di rete veloci, o chiamate di sistema, e ci sono una serie di altre lingue. .NET è meno indipendente dalla piattaforma attualmente, ma il linguaggio indipendente.

Java può essere utilizzato su diversi sistemi operativi diversi, che è vantaggioso se si vende una soluzione, dal momento che non si cura quale sistema operativo sta usando il cliente.

Ora la JVM è sempre meno dipendente dalla lingua, con Clojure e Scala correre fuori di esso, in modo da Java è diventato più interessante ora, per la progettazione di applicazioni.

Si virtualizzare il sistema sottostante, in modo che possano essere eseguiti su diversi tipi di sistemi operativi server.

E, sono progettati per essere i sistemi di sviluppo delle applicazioni di uso generale, in modo che siano destinati ad essere eseguito su qualsiasi cosa con un processore.

Se ti stai chiedendo perché non si capisce il motivo per cui si dovrebbe accettare il sovraccarico di un livello di astrazione, di tenere presente che sia Java e .NET JIT verso il basso per il codice nativo.

Allora, che senso ha usarlo lato server, dato che tutti i siti web sono accessibili tramite browser e questo è indipendente dalla piattaforma?

Bene, le applicazioni web non rendono HTML solo per divertimento, lo fanno facendo cose sul lato server che può comportare la conversazione con i database, l'invio di messaggi a un MOM, ecc.

C'è qualche motivo particolare per usarli?

Questa è una risposta parziale ma volevo almeno coprire il caso di Java qui.Potrei iniziare sostenendo che Java è un linguaggio di programmazione sicuro, robusto, basato sulla raccolta dei rifiuti, orientato agli oggetti, ad alte prestazioni, multi-thread, interpretato, indipendente dall'architettura, multipiattaforma e compatibile con le parole d'ordine...ma questo non risponderebbe davvero alla tua domanda.In realtà, il grosso problema con Java sul lato server è, secondo me, che si beneficia di API aziendali standardizzate (ovvero J2EE) che consentono di fare "cose ​​aziendali" (JDBC, JTA, JMS, ecc.) in modo standard con hardware, operando indipendenza dal fornitore del sistema e del software (che è un grande vantaggio per la negoziazione del contratto).In altre parole, Java è perfetto per ambienti eterogenei, come quasi sempre accade nelle grandi organizzazioni, e non ti vincola.

Mentre l'indipendenza dalla piattaforma sono grandi a lottare per direi Java e .net sono comunemente utilizzati in quanto vi sono un grande numero quadri disponibili che lo rendono molto più facile da sviluppare a livello aziendale applicazioni. Questo è particolarmente vero con Java, in cui si dispone di un incredibile scelta delle tecnologie di alta qualità la maggior parte dei quali sono sufficientemente flessibile per soddisfare le esigenze della maggior parte dei progetti, consentendo di concentrarsi sulla funzionalità dell'applicazione.

Inoltre, senza alcun intento di iniziare una flame war, Java e .NET hanno un supporto migliore strumento di sviluppo e sono più facili / più veloce per sviluppare con per il vostro programmatore medio.

In giorni web early, è stato in gran parte Perl e occasionali anime coraggiose che non amava Perl o voleva di più le prestazioni utilizzato C ++. Poi Sun ha sviluppato JDBC e servlet per Java, e poi altri pezzi J2EE e Java è diventato un più alto alternativo di performance a Perl, e più facile di C ++. Con J2EE è venuto un sacco di prodotti server delle applicazioni da grandi aziende, e ora si dispone di una grande comunità web server / app Java.

Poi Microsoft è arrivato, dopo aver perso la guerra J ++ / Java con Sun, e ha creato una simile infrastruttura di applicazioni Web con .NET. Con .NET hai meno possibilità di scelta, con tutti i vantaggi e gli svantaggi che porta con sé.

Quindi, credo che la risposta è un mix di prestazioni decenti, caratteristiche di sicurezza e aziendali, e il maggiore supporto aziendale. C ++ è troppo difficile e pericoloso per la maggior parte delle persone. Perl, PHP, Python e Ruby hanno i loro fan, ma non il supporto aziendale. Io non credo che il fatto che Java / .NET sono in macchine virtuali è importante per il lato server. Java utilizzato una VM in origine per il cliente. Sun ha dovuto lavorare sodo per fare una veloce sever VM. Penso che Microsoft ha utilizzato una macchina virtuale per competere con Sun, e per rendere più facile per supportare più lingue. Sarà interessante vedere se il linguaggio Go Google si toglie, che può superare Java e C # per la sicurezza e potenza, ma non VM.

il browser non ha accesso alle risorse del server (database, file, ecc), che tali quadri hanno accesso. Non si potrebbe avere una domanda che è solo javascript (e fa cose significative)

ho capito la tua domanda in questo modo:? Perché scegliere Java o .NET, se ci sono più altri modi comodi per configurare un server perché i client utilizzano HTTP per accedere al server

Hai ragione che il sistema operativo del server o quadro fa in genere non importa al cliente.

Tuttavia, il lato client può anche contenere applet o codice che quindi ha bisogno di comunicare con la sua controparte sul server. Poi JSP o .NET diventa più interessante in quanto non si dispone di gestire diversi client OS. Poi il sito diventano facilmente estensibile.

Se si desidera integrare qualche bella grafica e le soluzioni di creazione di grafici (Telerik, Dundas, ... o qualsiasi altra cosa - non vuole essere pubblicità -) da 3 parti si avrebbe anche per selezionare un'infrastruttura server compatibile per eseguirli <. / p>

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top