Sembra che altri stiano facendo domande simili sullo Microsoft Developer Forums.
Ecco cosa ho trovato:
According to Tim Heuer:
... Non si può avere direttamente un db SQL incorporato nel app o usare qualcosa come ADO.NET. Si tratta di un'infrastruttura asincrona/servizi . Quindi se i tuoi dati sono stati esposti tramite servizi, allora del corso potresti connetterti in questo modo. Esistono altri metodi leggeri che è possibile utilizzare anche per lo storage locale, ad esempio lo spazio dei nomi Windows.Storage (simile a Storage isolato in .NET).
Morten Nielsen agrees:
È possibile utilizzare HttpClient per scaricare praticamente qualsiasi cosa dal web. Perché non si configura il servizio WCF per restituire i dati come JSON e utilizzare DataContractJsonSerializer per deserializzare i risultati?
Inoltre, Tim Heuer cautions:
... Si prega di notare che, mentre impressionante, il progetto SQLWinRT su CodePlex è un wrapper per comunicare con il classico motore di SQLite ... che utilizza le API che avrebbe non superare la convalida del negozio attualmente.
Generic Object Storage Helper for WinRT e WinRTFile Based Database sembrano avere qualche promessa.
Ma Daniel Stolt raises some good points:
E 'impressionante che ci sia un buon supporto per la costruzione di clienti OData e altri client REST - ma questo solo gli indirizzi lo scenario in linea. La parte "strutturata" di Windows.Storage è un modello molto limitato, essenzialmente limitato a coppie nome/valore, insufficiente per tutti tranne gli scenari di base . Sì, c'è un archivio di file locale, che è ottimo ovviamente. Ma forzare tutti gli sviluppatori di app là fuori per creare il proprio DB2 in cima all'archiviazione di file locale semplicemente non lo taglierà, specialmente con tutti i System.Data che sono stati rimossi dal profilo. Se l'archiviazione locale del file era sufficiente per la maggior parte delle app del dispositivo, cose come lo SQLCE non avrebbero avuto alcuno scopo oggi. E SQLCE ha chiaramente uno scopo e ha giocato un ruolo molto importante per occasionalmente app di dispositivi connesse per un tempo molto lungo. C'è anche un enorme bisogno di sincronizzazione con un database lato server come SQL Azure, principalmente per poter effettuare il roaming dei dati tra dispositivi. Sì, c'è lo modello di archiviazione di roaming in WinRT, ma condivide le stesse limitazioni di memoria locale menzionate sopra, e in aggiunta è molto limitato nella capacità di (attualmente 30 KB se la memoria serve). È semplicemente insufficiente per tutti tranne i più semplici bisogni di dati di roaming. Ancora una volta, costringendo ogni sviluppatore di app a progettare e implementare la propria soluzione di sincronizzazione è pessima. Puoi fare molto meglio per abilitare gli sviluppatori di .
Molte persone sono delusi dal fatto che lo spazio dei nomi System.Data non è supportata in WinRT.
Richard Bethell said:
Non ho nemmeno ho parole per questo. Questo è sorprendente.Lasciare da parte per nel momento in cui vogliono forzare l'astrazione al middleware per la connettività del database - Non sono d'accordo, ma posso quasi capire una motivazione per lo . Posso persino vedere percorsi per lo sviluppo in questo modo.
Ma nessun System.Data .... a tutti? Capisci cosa hai fatto a ?
Cosa System.Data può fare, al di fuori del solo che hanno fornitori per SQL, OleDb e altri provider personalizzati come Oracle, è fornire una ricca astrazione della serie di dati XML che consentono di costruire rapidamente un data orientato Service Oriented Architettura.
Ad esempio, posso facilmente creare un servizio Web utilizzando SOAP o WCF che restituisce DataSet o DataTable e quindi li consumano facilmente e direttamente. Essere in grado di farlo consente una costruzione molto rapida delle architetture n-tier , anche senza connessioni dati dirette disponibili.
Senza System.Data e la potenza di DataView, DataTable, ecc. Questo diventa molto più difficile. Certo, puoi creare strutture personalizzate, inserire i dati in , e servire le strutture, e usare Linq per fare qualunque ordinamento, il filtro , ecc. Che vuoi fare .... ma finisce con il doppio del lavoro , e rende il riutilizzo del codice molto più difficile. E significa usando il nostro architettura orientata ai servizi esistenti è impossibile (senza un grande revisione.)
Il ritiro delle System.Data è grande cosa per gli sviluppatori a che fare con come la perdita dell'oggetto Printer in VB6 a vb.net 1.0 è stato. Ciò che è è più difficile da capire in questo caso è il motivo per cui è necessario - riattivarlo nel profilo Metro non può essere una difficoltà tecnica del prodotto , vero?
E 'abbastanza importante che vorrei seriamente in considerazione tra cui classi System.Data di Mono come parte di qualsiasi applicazione creo (che sarebbe ovviamente devono essere open source.)
Avere tutti i cambiamenti avvenuti dal momento che hai pubblicato la tua domanda e risposta? Potresti suggerire i riferimenti di eventuali cambiamenti significativi? Grazie. – NoChance