SQL Server Compact 4.0 è un database engine gratuito, realizzato da Microsoft, che per funzionare non richiede alcun tipo di installazione, se non la copia dei relativi assembly nella cartella \bin della nostra applicazione. Ciò lo rende la soluzione ideale in tutte quelle situazioni in cui non abbiamo un controllo totale dell'ambiente di deploy, come nel caso di siti web installati su shared hosting, in cui è in grado di svolgere egregiamente i propri compiti anche in scenari di medium trust. Come detto, SQL Server Compact 4.0 non è basato su un'architettura client-server, ma su una serie di librerie, eseguite all'interno dello stesso processo ASP.NET a cui appartiene l'applicazione, che vengono caricate in memoria in corrispondenza del primo accesso alla base dati.
Il supporto in Visual Studio 2010 verrà aggiunto nel prossimo Service Pack 1, atteso per la prima metà dell'anno, ma già con l'attuale versione Beta possiamo iniziare a sfruttare SQL Server Compact 4.0 come engine di database. I download necessari sono i seguenti:
- Le librerie di SQL Server Compact 4.0, che possono essere installate tramite Web Platform Installer, che si preoccupa anche della necessità di eventuali dipendenze;
- il già citato Visual Studio 2010 SP1 (beta), disponibile all'indirizzo http://u.aspitalia.com/su;
- SQL CE Tools for Visual Studio, disponibili all'indirizzo http://u.aspitalia.com/sv
Dopo aver provveduto ad installare queste componenti, siamo pronti ad aggiungere un nuovo database al progetto, e nello specifico all'interno della cartella AppData, utilizzando il nuovo template SQL Server Compact 4.0 Local Database.
Oltre a creare il file di database, Visual Studio 2010 si preoccuperà anche di aggiungere le oppurtune reference al nostro progetto, così che l'utilizzo di SQL Server Compact 4.0 risulti del tutto trasparente. Il database appena creato può essere modellato direttamente tramite Visual Studio 2010, facendo doppio click sul file, e sfruttando così i tool di accesso alla base dati per creare le tabelle o impostare indici e vincoli di foreing key.
Una volta che il nostro schema è pronto, possiamo ad esempio importarlo in un Entity Data Model per gestirlo tramite Entity Framework:
A questo punto non ci resta che interfacciarci con Entity Framework dalle nostre pagine, ad esempio sfruttando una EntityDataSource, in maniera del tutto analoga a quando utilizziamo i "fratelli maggiori" SQL Server Express Edition o SQL Server:
<asp:EntityDataSource ID="CustomerDataSource" runat="server" ConnectionString="name=TestDatabaseEntities" DefaultContainerName="TestDatabaseEntities" EnableFlattening="False" EntitySetName="Customers"> </asp:EntityDataSource>
Bastano questi pochi passi per ottenere un'applicazione già funzionante e immediatamente distribuibile sui server di produzione. Nel prossimo script vedremo quali sono gli accorgimenti necessari e gli assembly da includere in fase di deploy.
UPDATE
Tutti i componenti necessari per l'utilizzo di SQL Server Compact 4.0 con Visual Studio 2010 sono disponibili tramite Microsoft Web Platform Installer.http://www.microsoft.com/web/downloads/platform.aspx
In particolare, oltre al citato Visual Studio 2010 Service Pack 1, è richiesta l'installazione dei pacchetti:
- Microsoft SQL Server Compact 4.0
- Microsoft Visual Studio 2010 SP1 Tools for SQL Server Compact 4.0
Riferimenti utili
Dite addio ad Access con SQL Server Compact 4.0 (speciale)https://www.aspitalia.com/focuson/1207/Dite-Addio-Access-SQL-Server-Compact-4.0.aspx
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Usare le navigation property in QuickGrid di Blazor
Eseguire una GroupBy per entity in Entity Framework
Utilizzare gRPC su App Service di Azure
Utilizzare database e servizi con gli add-on di Container App
Utilizzare il nuovo modello GPT-4o con Azure OpenAI
Utilizzare politiche di resiliency con Azure Container App
Cancellare una run di un workflow di GitHub
Evitare (o ridurre) il repo-jacking sulle GitHub Actions
Sfruttare al massimo i topic space di Event Grid MQTT
Utilizzare l'operatore GroupBy come ultima istruzione di una query LINQ in Entity Framework
Eseguire i worklow di GitHub su runner potenziati
Evitare il flickering dei componenti nel prerender di Blazor 8