Lsciare access per MySQL oppure MSSQL

lunedì 15 settembre 2014 - 14.05
Tag Elenco Tags  C#  |  .NET 4.0

paolo973 Profilo | Senior Member

Ciao a tutti,

lavoro con access asp.net e C# da molto tempo,
è venuta l'ora di migrare a MySQL oppure MSSQL

chi può intanto aiutarmi a scegliere?

cosa cambia nel codice scritto con asp.net e C#?

0v3rCl0ck Profilo | Guru

dipende .... da asp.net usi ado.net? come scrivi le query? parametrizzate? concatenazione di stringhe? usi entity framework o qualche altro ORM?



Michael Denny | Visual C# MVP
http://blogs.dotnethell.it/Regulator/
http://dennymichael.wordpress.com
http://mvp.microsoft.com/mvp/Michael%20Denny-5000735
Twitter: @dennymic

paolo973 Profilo | Senior Member

nella cartella App_Code ho un file mieprocedure.cs

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra


e dalle pagine.aspx

quando devo fare un accesso a database access, faccio così:

mieprocedure dm1 = new mieprocedure(); OleDbDataReader readerUffici = null; readerUffici = dm1.recuperaDataByQuery(querySelectUffici); if ((readerUffici != null) && (readerUffici.HasRows)) { while (readerUffici.Read()) { string idUfficio = readerUffici["ID"].ToString(); string idResponsabile = readerUffici["idResponsabile"].ToString(); ... etc



0v3rCl0ck Profilo | Guru

quindi passi direttamente la stringa query completa ad ado.net che poi sfrutta il driver per chiamare il db.

a questo punto dipende tutto dalle tue query, a livello di driver ado.net c'è per quasi tutti i db in circolazione, ovviamente per sql server (vabbe scontato e di default), ma anche per mysql (http://dev.mysql.com/downloads/connector/net/)

io ovviamente ti stra consiglio di andare su sql server, perchè ad oggi esistono anche le versione express, che sono complete, semplicemente limitati a tot GB di ram e di spazio su disco, ma hai pieno accesso a tutte le funzionalità a parte quelle strettamente dell'enterprise, ma proveniendo da access, sql express è un colosso. Per non parlare del supporto microsoft nativo.

quindi non ci penserei su due volte, dritto su sql, poi esistono le versioni stile access, per avere il database su file senza dovere installare sql server, e si chiama "Sql Server Compact" (http://msdn.microsoft.com/en-us/data/ff687142.aspx), qui trovi un overview di tutte le altri versioni: http://www.microsoft.com/en-us/server-cloud/products/sql-server-editions/

sql compact è comodo per piccoli sviluppi, o per sviluppi embedded dove il database deve essere installato insieme al client, invece per le versioni server, come nel tuo caso, ti consiglio comunque di avere un server (che poi può anche essere lo stesso del web server, ma ti consiglio un server a parte), ed installare la versione sql server express. Se pensi di utilizzare sql server express, in locale per lo sviluppo, puoi evitare di dovere installare sql express sulla tua macchina, ma di installare (da visual studio 2012 fa già parte dell'installer) sql server localdb, che in pratica è una versione completa di sql server, ma orientata agli sviluppatori e ti evita di fare l'installazione completa di sql server ed essere subito operativo con solo visual studio per lavorare con un database sql server, fa partire automaticamente il sql server e si spegne quando non lo usi più, in pratica mettendo la connection string giusta, sei già pronto a lavorare sul db, es.:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

|DataDirectory| è una keywork speciale per asp.net, che punta alla cartella speciale "App_Data" che già tu utilizzi.


Michael Denny | Visual C# MVP
http://blogs.dotnethell.it/Regulator/
http://dennymichael.wordpress.com
http://mvp.microsoft.com/mvp/Michael%20Denny-5000735
Twitter: @dennymic

paolo973 Profilo | Senior Member

di cosa fare l'upload nello spazio aruba?

c'è un file come access o altro?

0v3rCl0ck Profilo | Guru

ah se lavori su aruba, e non vuoi comprare lo spazio MSSQL, puoi sfruttare sql server compact, che è un database a tutti gli effetti su file, che non ha bisogno di altri eseguibili per essere letto, ma nelle dll dei driver ado.net c'è già tutta l'implementazione per accedervi e modificarli.

i database sql compact hanno estensione .sdf, e li puoi aprire con svariati editor, tra cui un plugin per visual studio: http://visualstudiogallery.msdn.microsoft.com/0e313dfd-be80-4afb-b5e9-6e74d369f7a1

le connection string le puoi trovare qui: http://www.connectionstrings.com/sql-server-compact/

dovrebbe essere sufficiente una connection string così: "Data Source=|DataDirectory|\MyData.sdf;Persist Security Info=False;"

per abilitare il progetto ad utilizzare sql compact solo con ado.net puoi installare i componenti necessari con nuget, installando il pacchetto "Microsoft SQL Server Compact Edition": https://www.nuget.org/packages/Microsoft.SqlServer.Compact/4.0.8876.1

il tuo codice potrebbe funzionare ancora se non hai usato sintassi particolari di access per eseguire le query.


Michael Denny | Visual C# MVP
http://blogs.dotnethell.it/Regulator/
http://dennymichael.wordpress.com
http://mvp.microsoft.com/mvp/Michael%20Denny-5000735
Twitter: @dennymic
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5