Data Driver

Blog archive

Data Devs Demand Local Access in Windows Store Apps

Stop me if you've heard this one: Microsoft introduces a new technology and developers complain about lack of local database access.

Yes, it happened last year with Windows Phone. And Microsoft responded with SQL Server Compact Edition in its "Mango" update.

Now it's happening with Windows 8. "We should at least have the ability to connect to an embedded database like the one they added to the WP7 Mango update," said one developer on the customer feedback site for Visual Studio. This comment was under a heading of "Make System.Data available to Metro style apps," with 163 votes as of this writing. But there are plenty more likewise sentiments around the Web:

  • "I personally would have liked to have seen a desktop Metro app that could connect to a SQL Express Database for instance but it's not currently in the cards without jumping through hoops," said a reader on stackoverflow.com.
  • "I'm stunned to find out that there is no way [to communicate with *any* SQL Server instance]--how are people meant to build LoB apps if they can't communicate with their databases?" asked a reader on a Microsoft forum site.
  • "WinRT is moving in the *wrong* direction by *removing* the System.Data namespace," said a reader on itwriting.com.

Well, you get the idea.

Basically, in your Windows Store (formerly called Metro) apps, you get your database access via the cloud/network/service. But some developers complained about that model, citing intermittent connectivity problems and the like.

And there are some options for local access. For example, IndexedDB "provides Metro style apps using JavaScript with a way to easily store key-value pairs in a database."

And for non-JavaScript apps, there are a few other file-based options for local storage. You can also check out "siaqodb--local database for Metro style apps." And the Windows Dev Center lists some "data access and storage APIs [that] are supported for developing Metro style apps."

Those options certainly aren't on par with SQL Server, of course. As Microsoft's Rob Caplan explained on a forum posting, "There aren't any SQL-like databases provided in-box, but you can use a 3rd party database such as SQLite."

Indeed, SQLite seems to be the most popular option. Tim Heuer has written extensively on how to use it for Windows Store apps. Some developers worried about passing Windows Store muster with apps built with SQLite, but Heuer reported in June that, "Yes, SQLite will pass store certification as long as compiled correctly. The current binaries on the SQLite site aren't the ones built for WinRT, but you can build it yourself and use it." And that same month, the SQLite site reported "SQLite version 3.7.13 adds support for WinRT and metro style applications for Microsoft Windows 8."

So that's probably your best workaround for right now. But stay tuned. As one stackoverflow.com reader said: "an embedded Microsoft SQL CE is not supported. There has been no announcement yet as to its support--but like Windows Phone, we can only assume this support is in the pipeline."

What do you think? Is this a big problem? Do you know of other workarounds? Should data developers just be patient and wait for a "Mango"-like update to Windows 8? Comment here or drop me a line.

Posted by David Ramel on 09/05/2012 at 12:52 PM


comments powered by Disqus

Reader Comments:

Tue, Nov 13, 2012

The removal of System.Data was ridiculous. Someone should be fired over that.

Tue, Sep 11, 2012 80s Rocker

Win 8 applications are different than WP8 applicaitons so I do not see an issue with not being able to connect to a SQL database directly. If I want to do that then I can just write a WinForms application that runs in desktop mode. But I have not written a destop application or web application in years that needs direct access to a database. All my application whether web sites or desktop applications use web services on the back-end, so that will not change when I write Win8/Win7 applications. As far as WP8 applications are concerned no one knows what is supported in that yet becuase the SDK has not been released. I would be surprised if SQLCE is not supported just like it is in Mango. I think a lot of people are getting Win8 apps and WP8 applications confused.

Tue, Sep 11, 2012

If a WP7 app uses SQL Server CE, then it is no longer compatible with WP8 even though MS has said all WP7 apps are compatible with WP8 (however WP8 apps are not compatible with WP7). That would be a problem for me if I had created a WP7 app or used one that required SQL Server CE.

Fri, Sep 7, 2012 WP7

I can understand the frustration. However, I can also understand why Microsoft did this. In order to build scalable data-connected systems, one of the best ways is to use WCF services. The best way to encourage developers to use WCF services is to remove System.Data completely and force them to use WCF. That said, it would simplify things if system.data was still available for local DB access, just like it is in WP7. I think it will come eventually.

Thu, Sep 6, 2012 Carl Perkins Texas

Microsoft has lost its way. When SQLCE was added back to 7.5 I was all fired up - now- gonna looks at Android again. Good grief, what hoseheads are making these stupid decisions. Related to that bad decision is their decision to drop oledb for odbc! That is really gonna slow down ssis package executions! Fire Balmer and his idiots.

Thu, Sep 6, 2012

The removal of System.Data is ridiculous. Someone should be fired over that.

Thu, Sep 6, 2012

The removal of System.Data is ridiculous. Someone should be fired over that.

Thu, Sep 6, 2012

The removal of System.Data is ridiculous. Someone should be fired over that.

Thu, Sep 6, 2012

The removal of System.Data was ridiculous. Someone should be fired over that.

Thu, Sep 6, 2012

The removal of System.Data was ridiculous. Someone should be fired over that.

Add Your Comment:

Your Name:(optional)
Your Email:(optional)
Your Location:(optional)
Comment:
Please type the letters/numbers you see above