Come viene eseguita la distribuzione su più piattaforme e diversi linguaggi di programmazione?

0

Sono interessato a sapere come avviene la distribuzione del software per piattaforme incrociate e diversi linguaggi di programmazione.

Come,

  1. I clienti sono attivi - linux e Windows
  2. Lingue - Java, .Net, Ruby e Python
  3. Volevo capire come i progetti / applicazioni / moduli Ruby e Python sono costruiti e integrati con Java o .Net e forniti come una singola applicazione al cliente.

Sono consapevole che, l'applicazione Java può essere costruita e implementata usando Maven mentre .Net può essere costruito usando MSBuild e l'imballaggio può essere fatto usando Install shield. Andranno come artefatti indipendenti ai clienti o saranno integrati / uniti per andare come un singolo prodotto. Non riesco davvero a capire come funziona.

Qualsiasi esempio in tempo reale sarebbe davvero utile qui.Kindly correggimi se la mia comprensione non è corretta.

    
posta dev 26.06.2018 - 08:54
fonte

1 risposta

1

Commento generale:

La distribuzione del software è un'area enorme e l'implementazione di software che combina più tecnologie / framework ha ulteriori complessità, quindi non esiste una risposta generale. Tuttavia, proverò a dare alcuni suggerimenti su cosa si può fare.

  • Esistono varie tecnologie di implementazione. Per lo più rientrano in due gruppi:
    • alcuni fanno parte di un framework o linguaggio / runtime (come Maven [vedi avvertenze sotto], JavaEE WARs o Web Deploy per Internet Information Server)
    • alcuni fanno parte di una piattaforma / sistema operativo (come pacchetti Debian o RPM su Linux o file di Windows Installer ( .msi ) su Microsoft Windows)
  • Solitamente si sceglie un approccio di implementazione da uno dei due gruppi precedenti - o si utilizza la tecnologia per la lingua / framework che si utilizza, o una per (ciascuna) delle piattaforme di destinazione. Per progetti di grandi dimensioni, a volte diversi compomenti utilizzeranno tecnologie diverse, ad esempio il rich client potrebbe utilizzare un file di Windows Installer, mentre il server è un pacchetto Debian.
  • Se l'intero progetto utilizza una lingua / struttura, spesso utilizzando la tecnologia di distribuzione corrispondente è la soluzione più semplice. Se utilizzi più lingue / framework, come nel tuo esempio, dovrai utilizzare una tecnologia di distribuzione per la tua piattaforma, quindi se desideri distribuire su più piattaforme, dovrai utilizzare uno strumento per piattaforma.

Per indirizzare i tuoi punti in dettaglio:

I'm aware that, Java application can be built and deployed using Maven

In realtà, non proprio - mentre Maven ha un passo "deploy", in Maven "deploy" significa copiare un artefatto nel repository interno di Maven, mentre in generale "deploy" significa installare un'applicazione finita in un modo che possa essere Usato. Sebbene Maven ti permetta di creare file (per lo più) pronti all'uso, non è una tecnologia di distribuzione completa.

while .Net can be built using MSBuild and packaging can be done using Install shield.

Sì, sarebbe un esempio di una tecnologia specifica della piattaforma, in questo caso InstallShield, che è per Microsoft Windows.

Will they go as independent artifacts to the customers or will they be integrated/merged to go as a single product. I really cant understand how it works.

Di nuovo, questo dipende, ma in genere i vari bit e pezzi saranno impacchettati come un unico file di installazione, per rendere la distribuzione il più semplice possibile. I componenti multipli di solito sono pacchetti separatamente (in particolare, di solito non ha senso raggruppare client e server insieme per un sistema client / server).

Tuttavia, nota che non tutti prestano la stessa attenzione a una bella esperienza di distribuzione. Alcuni software, anche costosi sistemi commerciali, sono notoriamente difficili da installare - ad esempio, i database Oracle e SAP sono (sono abituati a essere) noti per questo.

    
risposta data 26.06.2018 - 09:37
fonte