Sign up ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

While researching Metro and WinRT I haven't been able to find anything regarding enterprise apps and database access. All I hear about is the front end development.

Does anyone have any idea of how a Metro app will access a database server? Will this still be done through ASP.Net and ADO.Net? If not, then does anyone have any idea or guess as to how?

share|improve this question

5 Answers 5

up vote 6 down vote accepted

It looks like Metro apps will be able acccess enterprise data via web/WCF (Windows Communication Foundation) services (at a minimum.). It looks like you can also use local databases like sqllite, as discussed in the stackexchange thread:

share|improve this answer
I'm about to learn ASP.Net, ADO.Net, LINQ, and the Entity Framework in a course I am taking. Do Web/WCF servies hold any place in that area of knowledge or are they something totally different? – Ein Doofus Feb 8 '12 at 21:21
WCF is a separate subject area. However, knowledge that you pick up that course will likely come into play when you start using WCF. – vjones Feb 8 '12 at 21:25
Is WCF capable of handling enterprise apps or is something more lightweight? – Ein Doofus Feb 8 '12 at 21:37
WCF was designed with enterprise apps in mind. It's great. – Ian May 25 '12 at 20:24

One of .Nets not so hidden gems is WCF Data Services, which in a nutshell allows you to query a Data Model over HTTP, in a very seemless LINQ type way using a protocol called odata. Data services are usually create with Entity Framework, but I believe there are other providers too.

share|improve this answer

On December 14th, 2011, Microsoft MVP Morten Nielsen said:

You can use HttpClient to download pretty much anything from the web. Why don't you configure your WCF service to return data as JSON, and use the DataContractJsonSerializer to deserialize the results?

And on September 14th, 2011, Microsoft employee Tim Heuer said:

...You cannot directly have a SQL db embedded in your app or use something like ADO.NET. This is more of an async/services infrastructure. So if your data was exposed via services...

Oh and forget about the System.Data namespace. It's not supported in WinRT.

On November 01, 2011, Microsoft employee Immo Landwerth wrote:

When I wrote that .NET for Metro style apps does not include database APIs I bascically meant System.Data. This also includes SqlConnection and SqlCommand, which you would probably need to communicate with the remote SQL Server.


  • You can use HttpClient to download pretty much anything from the web. Configure your WCF service to return data as JSON.
    • If you're developing a XAML application, use the DataContractJsonSerializer class to deserialize the results.
    • If you're developing an HTML5/JS application, use a Javascript library.
share|improve this answer

WinRT has NO and that has been confirmed by Microsoft. has ADO and SQLclient. No direct connect to SQL from WinRT. Need to get data from a service.

share|improve this answer

Just in case you're interested, you can resort to MySQL instead of SQL Server. The MySQL Connector/Net has a WinRT component (DLL) you can reference from your WinRT/UAP Application in order to access a MySQL database. Syntax is similar to "regular" ADO.Net and it's really easy to use.

In case you hold the database in your same machine, you have to enable "localhost" access to WinRT/Metro apps using the CheckNetIsolation cmdlet, as explained here:

I don't know why Microsoft tries to complicate WinRT development so much, maybe they just don't want LOB applications using WinRT paradigm, but at least with databases we still have an alternative to SQLite to use "real" databases...

share|improve this answer

protected by gnat Oct 2 at 12:38

Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site.

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.