- Installa SQL Express sul sito del cliente
- Importa DB, crea utente DB, imposta permessi DB ecc.
- Installa il software sul sito del cliente (più pc)
Ti aspetti che l'utente finale sia abbastanza esperto da installare SQLExpress da solo? In caso contrario, potrebbe essere utile includerlo nel tuo programma di installazione (o scaricarlo da Microsoft se necessario) e installarlo per loro come parte del processo. Aspetti da considerare: l'installer SQLExpress può essere eseguito in modalità headless? È possibile pre-definire i parametri / le impostazioni richiesti dall'installazione in modo che l'utente non debba preoccuparsi? Il programma di installazione SQLExpress è scriptable? Se hanno già SQLExpress installato, puoi gestirlo se la loro configurazione di installazione è diversa da come lo faresti (potresti dare loro la possibilità di puntare il tuo programma di installazione a un'istanza esistente di SQLExpress e usando quello se è possibile)? ha per essere SQLExpress? Cosa succede se hanno SQL Server (li farai davvero installare SQLExpress se hanno già MS SQL Server)?
Il secondo passo non dovrebbe essere difficile. Dovresti già disporre di tutti i DDL e DML appropriati e una volta che SQLExpress ha una configurazione di lavoro minima, dovresti essere in grado di eseguire le tue istruzioni DDL e DML per ottenere il tuo database fino a un buon punto di partenza. Ancora una volta, il tuo processo di installazione dovrà essere in grado di farlo in background.
Il terzo punto dovrebbe già essere coperto da qualsiasi cosa tu stia facendo attualmente, ma dovrebbe essere l'ultimo passaggio del tuo programma di installazione generale dopo che questi altri passaggi sono riusciti.
Ho già lavorato su un'applicazione desktop prima che questo richiedesse all'utente di installare SQLExpress, ma la configurazione del DB e la configurazione post-installazione sono state eseguite tramite script. I futuri aggiornamenti del database (come le modifiche dello schema e i dati di riferimento DML) sono stati gestiti tramite un'applicazione "DB Update" separata che eseguiva solo script SQL.
Ogni scenario sarà leggermente diverso, ma spero che questo ti dia abbastanza informazioni ...