{"id":106,"date":"2017-11-18T21:41:41","date_gmt":"2017-11-18T20:41:41","guid":{"rendered":"http:\/\/www.gaetanopaterno.it\/?p=106"},"modified":"2026-01-18T22:20:47","modified_gmt":"2026-01-18T21:20:47","slug":"common-data-access-patterns-for-xamarin-platforms","status":"publish","type":"post","link":"https:\/\/www.gaetanopaterno.it\/?p=106","title":{"rendered":"Common Data Access Patterns for Xamarin Platforms &#8211; Sql Saturday #675 Parma"},"content":{"rendered":"<p>La maggior parte delle applicazioni mobile richiedono l&#8217;accesso hai dati locali sul dispositivo. A meno che la quantit\u00e0 di dati sia banale, questo richiede solitamente un database e la gestione dell&#8217;accesso al database. Analizziamo come gestire un database Sqlite in un&#8217;applicazione sviluppata con Xamarin.<\/p>\n<h3>In breve:<\/h3>\n<p>Xamarin dispone di un supporto integrato per il database SQLite utilizzando:<\/p>\n<ul>\n<li>la sintassi familiare ADO.NET.<br \/>\nPer utilizzare l&#8217;accesso a SQLite tramite ADO.NET, \u00e8 necessario aggiungere<br \/>\nal progetto i riferimenti alle API System.Data e Mono.Data.Sqlite.<br \/>\nL&#8217;utilizzo di queste API richiede di scrivere istruzioni SQL elaborate da SQLite,<br \/>\nad esempio CREATE, INSERT, UPDATE, DELETE o SELECT.<\/li>\n<li>il consigliato pacchietto SQLite.NET.<br \/>\nSQLite.NET \u00e8 una libreria ORM (Object Relational Mapping) che consente di memorizzare e recuperare &#8220;oggetti&#8221; nel database SQLite locale sul dispositivo senza scrivere istruzioni SQL.<br \/>\nPer utilizzare l&#8217;accesso a SQLite tramite SQLite.NET, \u00e8 necessario aggiungere al progetto il pacchetto NuGet &#8220;sqlite.net pcl&#8221;.<\/li>\n<\/ul>\n<h3>Link utili:<\/h3>\n<table>\n<tbody>\n<tr>\n<td>Xamarin<\/td>\n<td><a href=\"https:\/\/docs.microsoft.com\/it-it\/visualstudio\/cross-platform\/visual-studio-and-xamarin\" target=\"_blank\" rel=\"noopener\">https:\/\/docs.microsoft.com\/it-it\/visualstudio\/cross-platform\/visual-studio-and-xamarin<\/a><\/td>\n<\/tr>\n<tr>\n<td>Visual Studio for Mac<\/td>\n<td><a href=\"https:\/\/docs.microsoft.com\/it-it\/visualstudio\/mac\/\" target=\"_blank\" rel=\"noopener\">https:\/\/docs.microsoft.com\/it-it\/visualstudio\/mac\/<\/a><\/td>\n<\/tr>\n<tr>\n<td>SQLite<\/td>\n<td><a href=\"https:\/\/www.sqlite.org\/\" target=\"_blank\" rel=\"noopener\">https:\/\/www.sqlite.org\/<\/a><\/td>\n<\/tr>\n<tr>\n<td>Xamarin Data Access<\/td>\n<td><a href=\"https:\/\/developer.xamarin.com\/guides\/cross-platform\/application_fundamentals\/data\/\" target=\"_blank\" rel=\"noopener\">https:\/\/developer.xamarin.com\/guides\/cross-platform\/application_fundamentals\/data\/<\/a><\/td>\n<\/tr>\n<tr>\n<td>Evento<\/td>\n<td><a href=\"http:\/\/www.sqlsaturday.com\/675\/Sessions\/Details.aspx?sid=69281\" target=\"_blank\" rel=\"noopener\">http:\/\/www.sqlsaturday.com\/675\/Sessions\/Details.aspx?sid=69281<\/a><\/td>\n<\/tr>\n<tr>\n<td>Demo<\/td>\n<td><a href=\"https:\/\/github.com\/xamarin\/mobile-samples\/tree\/master\/DataAccess\/Basic\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/xamarin\/mobile-samples\/tree\/master\/DataAccess\/Basic<\/a><a href=\"https:\/\/github.com\/xamarin\/mobile-samples\/tree\/master\/DataAccess\/Advanced\" target=\"_blank\" rel=\"noopener\">https:\/\/github.com\/xamarin\/mobile-samples\/tree\/master\/DataAccess\/Advanced<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>Slide:<\/h3>\n<a href=\"https:\/\/www.gaetanopaterno.it\/wp-content\/uploads\/2017\/11\/PASS_SQLSaturday_PowerPoint_Template.pdf\" class=\"pdfemb-viewer\" style=\"\" data-width=\"max\" data-height=\"max\" data-toolbar=\"bottom\" data-toolbar-fixed=\"off\">PASS_SQLSaturday_PowerPoint_Template<\/a>\n<h3>Video:<\/h3>\n<p><iframe title=\"Common Data Access Patterns for Xamarin Platforms - Sql Saturday #675 Parma\" width=\"800\" height=\"600\" src=\"https:\/\/www.youtube.com\/embed\/SDjXdee5-TE?start=1613&#038;feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe><\/p>\n<h3>Gallery<\/h3>\n<p>[Best_Wordpress_Gallery id=&#8221;4&#8243; gal_title=&#8221;Sql Saturday #675 Parma&#8221;]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>La maggior parte delle applicazioni mobile richiedono l&#8217;accesso hai dati locali sul dispositivo. A meno che la quantit\u00e0 di dati sia banale, questo richiede solitamente un database e la gestione dell&#8217;accesso al database. Analizziamo come gestire un database Sqlite in un&#8217;applicazione sviluppata con Xamarin. In breve: Xamarin dispone di un supporto integrato per il database SQLite utilizzando: la sintassi familiare ADO.NET. Per utilizzare l&#8217;accesso a SQLite tramite ADO.NET, \u00e8 necessario aggiungere al progetto i riferimenti alle API System.Data e Mono.Data.Sqlite. L&#8217;utilizzo di queste API richiede di scrivere istruzioni SQL elaborate da SQLite, ad esempio CREATE, INSERT, UPDATE, DELETE o SELECT.&hellip;<\/p>\n<p> <a class=\"more-link\" href=\"https:\/\/www.gaetanopaterno.it\/?p=106\">Leggi tutto<\/a><\/p>\n","protected":false},"author":1,"featured_media":126,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7,6,5],"tags":[61,27,63,54,31,60,28,57,26,62,64,59,9,33],"class_list":{"0":"post-106","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-evento","8":"category-slide","9":"category-video","10":"tag-ado-net","11":"tag-android","12":"tag-app","13":"tag-database","14":"tag-dotnetsicilia","15":"tag-forms","16":"tag-ios","17":"tag-mac","18":"tag-mobile","19":"tag-sql","20":"tag-sql-saturday","21":"tag-sqlite","22":"tag-visual-studio","23":"tag-xamarin"},"_links":{"self":[{"href":"https:\/\/www.gaetanopaterno.it\/index.php?rest_route=\/wp\/v2\/posts\/106","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.gaetanopaterno.it\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.gaetanopaterno.it\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.gaetanopaterno.it\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.gaetanopaterno.it\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=106"}],"version-history":[{"count":30,"href":"https:\/\/www.gaetanopaterno.it\/index.php?rest_route=\/wp\/v2\/posts\/106\/revisions"}],"predecessor-version":[{"id":1660,"href":"https:\/\/www.gaetanopaterno.it\/index.php?rest_route=\/wp\/v2\/posts\/106\/revisions\/1660"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.gaetanopaterno.it\/index.php?rest_route=\/wp\/v2\/media\/126"}],"wp:attachment":[{"href":"https:\/\/www.gaetanopaterno.it\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=106"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.gaetanopaterno.it\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=106"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.gaetanopaterno.it\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=106"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}