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.