Deploy di App Demo con SqlServer Express

di il
3 risposte

Deploy di App Demo con SqlServer Express

Gentili,
in azienda sviluppiamo attualmente un CRM desktop che si appoggia a SqlServer; le installazioni e gli aggiornamenti vengono rilasciati tramite ClickOnce.
Il CRM si appoggia a EF Core per quanto riguarda l'accesso al db, facendo uso delle migrazioni per l'aggiornamento automatico del db dei clienti.
Il responsabile però vorrebbe adesso creare un pacchetto di setup autonomo non con ClickOnce ma con un installatore autonomo per creare un pacchetto DEMO da inserire nel sito dell'azienda.
Cosa consigliereste come installer? E' possibile far installare anche in automatico SqlServer Express, oppure magari sarebbe preferibile creare un db di accesso generale condiviso di prova ad esempio su Azure o su altro hosting?
Grazie per le sempre preziose dritte che vorrete darmi.
Saluti.
Lucius

3 Risposte

  • Re: Deploy di App Demo con SqlServer Express

    Ciao

    Perchè il responsabile chiede di abbandonare ClickOnce?
    Se lo scopo è quello di fare un pacchetto demo, a patto di rispettare i requisiti di LocalDB (es: no stored procedure), potresti benissimo ottenere lo stesso risultato con ClickOnce:
    - Nei requisiti dell'installazione metti LocalDB e il check di scaricarlo dal sito del produttore
    - In una cartella "Data" metti un file di database volendo con dei dati di esempio già precaricati (è il top per una demo)
    - Nella stringa di connessione specifichi di usare LocalDB e di accedere al file di database del punto precedente


    Così facendo dovresti ottenere quanto richiesto: ClickOnce, se necessario, installa LocalDB sulla macchina dell'utente (sono meno di 50MB) e l'istanza si avvia in automatico quando avvii l'app.

    Da quel che ricordo LocalDB dovrebbe essere compatibile con EntityFramework, però è sempre da provare. Sono anni che non uso questa configurazione
  • Re: Deploy di App Demo con SqlServer Express

    Salve,
    caspita proprio non ci avevo pensato alla soluzione LocalDB, penso che possa essere assolutamente fattibile ed ottimale.
    Appena ho un momento testo il tutto e ti/vi faccio sicuramente sapere a prove concluse.
    Grazie ancora per la dritta.
    Lucius
  • Re: Deploy di App Demo con SqlServer Express

    Gentili,
    torno sulla questione per comunicare che le prove eseguite sono andate a buon fine: si può utilizzare il localdb nel deploy con ClickOnce associandolo a EF Core.

    Per fare questo come riferisce correttamente @PiGi78 basta:
    1) inserire tra i prerequisiti: SqlServer 20XX Express LocalDB.
    2) Creare una cartella data inserendo i file nomefile.mdf e nomefile_log.ldf creati con la stessa versione di SqlServer indicata al punto 1.
    3) Per la stringa di configurazione e altre cosette metto un link che è più esplicativo: .

    Ho riscontrato due errori:
    1) Un possibile conflitto della versione di Sql Server risolvibile stoppando e cancellando l'istanza localdb già installata (quando si lancia l'app viene ricreata nella versione corretta):
    sqllocaldb stop MSSQLLocalDB
    sqllocaldb delete MSSQLLocalDB
    2) Uno strano errore: l'inizializzatore di tipo di microsoft.data.sqlclient.sninativemethodwrapper ha generato un'eccezione che esce soltanto usando l'app installata e non da debug/release di Visual Studio.
    Risolto installando la stessa versione del pacchetto Microsoft.Data.SqlClient sia nella libreria che contiene il context EF sia nel progetto principale.

    Ringrazio ancora @PiGi78 per la dritta.
    Lucius
Devi accedere o registrarti per scrivere nel forum
3 risposte