Asked by:
Looking for a SQL Server connection UI control for WinRT

General discussion
-
Hi there,
I'm on the lookout for a UI control that prompts the user for connection details to a SQL Server. Basically I want this: Data Connection Dialog but for WinRT.
This is ratehr speculative I know but has anyone considered building such a thing?
I'm basically posting this up here so that it cathes the eye of somebody who has built one, thought about buildig one, or buils one in the future and wants to tell people about it.
Here's hoping.
Regards
Jamiet
http://sqlblog.com/blogs/jamie_thomson/ | @jamiet | About me
- Edited by Jamie Thomson Monday, October 10, 2011 11:18 AM
- Changed type Matt SmallMicrosoft employee, Moderator Tuesday, October 11, 2011 3:34 PM Question for public.
Monday, October 10, 2011 11:13 AM
All replies
-
Hi Jamie,
Thank you for your feedback. May I ask what your scenarios for this dialog are? I am asking because .NET for Metro style apps does not include any database APIs.
Immo Landwerth | .NET Framework Team (BCL) | http://blogs.msdn.com/b/bclteam/Tuesday, November 1, 2011 4:59 PM -
Hi Immo,
Sure. Its pretty simple actually, I have an idea for a line of business app that needs to connect to a SQL Server DB. So yes, I don't need to connect to a DB on my Win8 machine, I need to connect to a remote SQL Server.
Regards
Jamie
ObjectStorageHelper<T> – A WinRT utility for Windows 8 | http://sqlblog.com/blogs/jamie_thomson/ | @jamiet | About me
Tuesday, November 1, 2011 5:12 PM -
Interesting. 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. Are you using a different way to communicate with the server then?
Immo Landwerth | .NET Framework Team (BCL) | http://blogs.msdn.com/b/bclteam/- Edited by Immo Landwerth [MSFT]Microsoft employee Tuesday, November 1, 2011 8:51 PM
Tuesday, November 1, 2011 8:45 PM -
Interesting. 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. Are you using a different way to communicate with the server then?
Immo Landwerth | .NET Framework Team (BCL) | http://blogs.msdn.com/b/bclteam/
Hi Immo,
Oh, I see. I thought when you said there were no database APIs I thought you meant there was no easy LINQ abstraction like there is for Windows Phone - having no way at all to communicate with *any* SQL Server instance is a much bigger issue.
I have to say...I'm stunned to find out that there is no way of doing this - how are people meant to build LoB apps if they can't communicate with their databases?
regards
Jamie
ObjectStorageHelper<T> – A WinRT utility for Windows 8 | http://sqlblog.com/blogs/jamie_thomson/ | @jamiet | About me
Tuesday, November 1, 2011 9:12 PM -
hello Immo,
After discussing with others I figured I should clarify exactly what it is I want to build here.
The next version of SQL Server will include a database called [SSISDB] that provides a logging infrastructure for SSIS. The schema of this DB is fixed and (importantly) known.
I want to build a Win8 app that provides a visualisation of that data and hence why I need to be able to hit that DB directly. Others have suggested that an intermediary OData service would provide the necessary interface for my Win8 app but that simply isn't an option. Enterprises that host [SSISDB] are not going to want to have to spin up and host an OData service just to satisfy a Win8 app. Moreover, SSIS developers that simply want to run the app against their own local [SSISDB] (which is where I think the sweet spot will be for this app) are not going to want to host an OData service on their laptop either (and in most cases would not know how to - we're not talking about .Net devs here).
To sum up, this app is intended for SSIS developers/admins to simply be able to download it from the app store and start to use it immediately - they can't do that if they have to build/host an OData service as well.
To be clear, I have nothing against OData as a technology per se - but in this situation I don't need or want the overhead.
I'm really hoping to have an open dialog with you about this as its of great concern to me. There's an opportunity to build something really valuable for SSIS developers but if I can't connect to a DB from a Win8 app then its over before its even begun.
Regards
Jamie
*SSIS is the ETL tool that is included with a SQL Server license.
ObjectStorageHelper<T> – A WinRT utility for Windows 8 | http://sqlblog.com/blogs/jamie_thomson/ | @jamiet | About me
- Edited by Jamie Thomson Wednesday, November 2, 2011 2:25 PM
Wednesday, November 2, 2011 1:36 PM -
Hi Immo,
Still hoping for a response here.
Regards
Jamie
ObjectStorageHelper<T> – A WinRT utility for Windows 8 | http://sqlblog.com/blogs/jamie_thomson/ | @jamiet | About me
Thursday, November 3, 2011 9:21 AM -
Where are we supposed to store data?Tuesday, December 6, 2011 3:52 PM
-
Where are we supposed to store data?
In files or in a database accessed via an OData service. Apparently.
ObjectStorageHelper<T> – A WinRT utility for Windows 8 | http://sqlblog.com/blogs/jamie_thomson/ | @jamiet | About me
Tuesday, December 6, 2011 3:59 PM -
I would suggest that instead of Metro, you go with Desktop WPF. Every LOB app I've considered in-house simply would be easier to construct with WPF instead of Metro, and sidesteps the issue of the app store.Wednesday, December 7, 2011 11:01 PM
-
I would suggest that instead of Metro, you go with Desktop WPF. Every LOB app I've considered in-house simply would be easier to construct with WPF instead of Metro, and sidesteps the issue of the app store.
Thanks, but the main reason that I want to build a metro app is BECAUSE of the app store, I have no desire to sidestep it.
ObjectStorageHelper<T> – A WinRT utility for Windows 8 | http://sqlblog.com/blogs/jamie_thomson/ | @jamiet | About me
Wednesday, December 7, 2011 11:18 PM -
The fact that MS has chosen not to reply would seem to indicate that this is a business model that they have decided not to support - either build a LoB app in WPF or go home. Typical. Their paint app in Win8 will probably have any color you want as well, as long as the hex code is #000000.Friday, December 9, 2011 8:14 PM
-
I don't even have words for this. This is astonishing. Leave aside for the moment they want to force you to abstract to middleware for database connectivity - I don't agree, but I can quasi understand a rationale for that. I can even see pathways for developing like that.
But no System.Data.... at all? Do you even understand what you've done to us?
Friday, December 16, 2011 1:47 PM -
I don't even have words for this. This is astonishing. Leave aside for the moment they want to force you to abstract to middleware for database connectivity - I don't agree, but I can quasi understand a rationale for that. I can even see pathways for developing like that.
But no System.Data.... at all? Do you even understand what you've done to us?
Thanks Richard, I'm glad I'm not the only one that thinks this :)
Unfortunately it seems Immo has stopped responding.
ObjectStorageHelper<T> – A WinRT utility for Windows 8 | http://sqlblog.com/blogs/jamie_thomson/ | @jamiet | About me
Friday, December 16, 2011 2:07 PM -
Stunning, really. I can imagine there must be some security issues, but you've given MS nothing but sound business and technical reasons for why you need this connectivity. It is also dismaying that no one from the company has seen fit to respond further.Tuesday, December 20, 2011 5:26 PM
-
Well guys, I agree 100 % with you on this db connectivity issue. I can only hope that we are not even using beta software yet. The direct access to the database solution will be coming in future releases.
Thanks, TerrenceWednesday, December 21, 2011 1:18 AM -
Bump. This deserves a response.Wednesday, December 21, 2011 4:27 PM
-
Bump. This deserves a response.
Don't hold your breath. At the General OS questions, we've been waiting for 3 months to find out what the multitasking story is with Win8 Metro:Wednesday, December 21, 2011 4:30 PM -
Hi all,
Thanks for your feedback. As Immo said, the Windows Developer Preview does not include any Database API for Metro style apps (this is not completely true: there are native Jet API available, but no managed wrappers). We are aware of your feedback here and in several previous threads, but we cannot comment on anything that hasn't shipped yet.
I-DotNet, see Your Metro style app, video and audio, Part 2 and Guidelines for developing audio-aware apps for information on background audio in HTML. This isn't the right forum for discussion of IE, so I don't know how or if it will deal with sites like Pandora that don't explicitly request to run in the background. At the OS level the capability is there.
As always, if you do have feedback please file it with the Feedback tool to make sure it is captured. There is a section there explicitly for missing API (Windows Kits/Software Development Kit/API missing). Please give details on your scenarios that cannot be reasonably achieved (like Jamie did): "I need X API because...." is much more helpful than "I want X API."
--Rob
Thursday, December 22, 2011 1:46 AMModerator -
Hi all,
Thanks for your feedback. As Immo said, the Windows Developer Preview does not include any Database API for Metro style apps (this is not completely true: there are native Jet API available, but no managed wrappers). We are aware of your feedback here and in several previous threads, but we cannot comment on anything that hasn't shipped yet.
I-DotNet, see Your Metro style app, video and audio, Part 2 and Guidelines for developing audio-aware apps for information on background audio in HTML. This isn't the right forum for discussion of IE, so I don't know how or if it will deal with sites like Pandora that don't explicitly request to run in the background. At the OS level the capability is there.
As always, if you do have feedback please file it with the Feedback tool to make sure it is captured. There is a section there explicitly for missing API (Windows Kits/Software Development Kit/API missing). Please give details on your scenarios that cannot be reasonably achieved (like Jamie did): "I need X API because...." is much more helpful than "I want X API."
--Rob
Rob,
Thank you very much for your reply. I wasn't aware of the feedback tool so I'll head over there right now and get this filed.
regards
Jamie
ObjectStorageHelper<T> – A WinRT utility for Windows 8 | http://sqlblog.com/blogs/jamie_thomson/ | @jamiet | About me
Thursday, December 22, 2011 8:58 AM -
Hi all,
Thanks for your feedback. As Immo said, the Windows Developer Preview does not include any Database API for Metro style apps (this is not completely true: there are native Jet API available, but no managed wrappers). We are aware of your feedback here and in several previous threads, but we cannot comment on anything that hasn't shipped yet.
I-DotNet, see Your Metro style app, video and audio, Part 2 and Guidelines for developing audio-aware apps for information on background audio in HTML. This isn't the right forum for discussion of IE, so I don't know how or if it will deal with sites like Pandora that don't explicitly request to run in the background. At the OS level the capability is there.
As always, if you do have feedback please file it with the Feedback tool to make sure it is captured. There is a section there explicitly for missing API (Windows Kits/Software Development Kit/API missing). Please give details on your scenarios that cannot be reasonably achieved (like Jamie did): "I need X API because...." is much more helpful than "I want X API."
--Rob
OK, I've been to that thread and am incredulous to discover that there are no links to the Connect site from where I can download the feedback tool. It says "information on how to join the Connect program is included on the download page where you installed Windows Developer Preview", the nearest match I can find to such a page is at Windows 8 Developer Preview Downloads but there is no mention there of a Feedback tool.Please can you tell me where the feedback tool is?
[You Microsoft guys don't half make it hard for us sometimes. the world has using the web for about 16 years now, how hard is to include a hyperlink in a forum thread? <sigh>]
ObjectStorageHelper<T> – A WinRT utility for Windows 8 | http://sqlblog.com/blogs/jamie_thomson/ | @jamiet | About me
Thursday, December 22, 2011 7:34 PM -
Since nobody here can figure out how to make this Feedback tool thing work, I'll give my answer here.
" Please give details on your scenarios that cannot be reasonably achieved (like Jamie did): "I need X API because...." is much more helpful than "I want X API."
What System.Data can do, outside of just having providers for Sql, OleDb and other custom providers like Oracle, is provide a rich abstraction of XML datasets that allow you to very quickly build a data oriented Service Oriented Architecture.
For instance, I can easily create a web service using SOAP or WCF that returns DataSets or DataTables, and then consume those objects easily and directly. Being able to do this allows very rapid construction of n-tier architectures, even without direct data connections available.
Without System.Data, and the power of DataViews, DataTables, etc. this gets a lot harder. Sure you can custom create structs, put data in there, and serve up structs, and use Linq to do whatever sorting, filtering, etc. you want to do.... but it ends up being twice the work, and makes code reuse a lot harder. And it means using our existing service oriented architecture is impossible (without a big overhaul.)
The withdrawal of System.Data is as big a thing for developers to deal with as the loss of the Printer object in VB6 to vb.net 1.0 was. What is harder to understand in this case is why it is necessary - re-enabling it in the Metro profile can't possibly be a technical difficulty of the product, can it?
It is valuable enough that I would seriously consider including Mono's System.Data classes as part of any app I create (which would obviously have to be open source.)
- Edited by Richard Bethell Thursday, December 22, 2011 8:09 PM
Thursday, December 22, 2011 8:06 PM -
You need to be logged into connect to download the Feedback tool. To join connect you'll need an invitation code.
If you're an MSDN subscriber go to your Product Keys page and you'll have a personal invitation code (where the red box is in the screenshot).
There isn't a direct link to connect that will give your code, so you're best off going through that to sign up.
If you aren't an MSDN subscriber then here is a direct link with a limited use code:
https://connect.microsoft.com/site1147/InvitationUse.aspx?ProgramID=7221&InvitationID=ADD1-RY34-K4T4
--Rob
- Edited by Rob Caplan [MSFT]Microsoft employee, Moderator Thursday, December 22, 2011 9:36 PM
Thursday, December 22, 2011 9:32 PMModerator -
OK, *I think* I have just managed to successfully submit some feedback although I'm disappointed that I have effectively just fired it off into the ether, I'm not expecting to ever see it again. I hate feedback systems that don't facilitate a 2-way dialogue - the fire-and-forget method used here is annoying in the extreme.
ObjectStorageHelper<T> – A WinRT utility for Windows 8 | http://sqlblog.com/blogs/jamie_thomson/ | @jamiet | About me
Monday, December 26, 2011 1:42 PM -
I guess this feedback went absolutely nowhere... http://blogs.msdn.com/b/windowsappdev/archive/2012/03/06/what-s-changed-for-app-developers-since-build-part-2.aspx?wa=wsignin1.0&CommentPosted=true#commentmessage
ObjectStorageHelper<T> – A WinRT utility for Windows 8 | http://sqlblog.com/blogs/jamie_thomson/ | @jamiet | About me
Tuesday, March 6, 2012 8:59 PM -
Are you sure connecting directly to database from your client application? That was good idea in last decade, maybe.
Nowadays you create a webservice, that connects to database and connect your client application to this webservice. WCF is working in WinRT.
So, I'm asuming MS wants you to go this way. And then, there is no need to SQL support in WinRT.
Wednesday, March 7, 2012 8:02 PM -
Are you sure connecting directly to database from your client application? That was good idea in last decade, maybe.
Nowadays you create a webservice, that connects to database and connect your client application to this webservice. WCF is working in WinRT.
So, I'm asuming MS wants you to go this way. And then, there is no need to SQL support in WinRT.
Hi falhar,
Thanks for the comment. In answer to your question, yes, i'm quite sure. Did you read the scenario I outlined above? Take a read of that and let us know your thoughts.
JT
ObjectStorageHelper<T> – A WinRT utility for Windows 8 | http://sqlblog.com/blogs/jamie_thomson/ | @jamiet | About me
Wednesday, March 7, 2012 8:26 PM -
Hi falhar,
Thanks for the comment. In answer to your question, yes, i'm quite sure. Did you read the scenario I outlined above? Take a read of that and let us know your thoughts.
- Edited by I-DotNET Wednesday, March 7, 2012 8:38 PM Trim.
Wednesday, March 7, 2012 8:38 PM -
What you're asking for simply ain't going to happen in Win8 Metro.
ObjectStorageHelper<T> – A WinRT utility for Windows 8 | http://sqlblog.com/blogs/jamie_thomson/ | @jamiet | About me
Wednesday, March 7, 2012 9:05 PM -
That's actually not for you to say.
Microsoft is positioning Windows 8 as something more than "consumerization forced on IT." Those of us in the business developer community are not wrong to call Microsoft out on that positioning and insist that - if nothing else - the ability to work with DataSets and DataTables remain an active part of C# programming style (whether those arrive from web services or a SQL query.)
Tuesday, March 20, 2012 1:46 PM -
That's actually not for you to say.
Microsoft is positioning Windows 8 as something more than "consumerization forced on IT." Those of us in the business developer community are not wrong to call Microsoft out on that positioning and insist that - if nothing else - the ability to work with DataSets and DataTables remain an active part of C# programming style (whether those arrive from web services or a SQL query.)
I agree that it's too early to stick Metro in a niche like that, Richard, but I don't think insisting is going to have much effect.
What we can do is continue to point out the things we would have built but can't. My list is getting long--the digital asset management tool that would have been a perfect fit for the Metro UI, but not without local structured data; the project notes tool that I would have loved to integrate with Metro, but I can't make the business model work without local structured data; hell, even the little tool I want to build mostly for myself for analyzing cooking recipes isn't feasible without local data. (I am soooo not going to pay for a Windows Azure account just to compare the leaveners in cake recipes!)
I love the Metro UI. It looks cool, but more than that, the paradigm makes a lot of sense to me. But I've spent months pondering, and I have yet to come up with a way to implement any of my current projects without local structured data. I feel like I'm being teased, "Look at all this UI goodness, but you can't have it, because your specialty is data management. Nyah nyah..." LOL. And aargh....
Rebecca M. Riordan
Tuesday, March 20, 2012 3:00 PM -
As a LOB developer I find this a major gap. Yes many business apps are two tier and the client does not connect directly to the db. Consider stand alone LOB applications and disconnected operation. I have a WPF application that I would like to migrate to Metro and sell in the App Store. The Metro UI fits this application and so do contracts. Syncing data to a local SQL for disconnected availability is essential to the application. It also makes the customer more comfortable with SAS model as they have a local copy of thier data. Also what I don't get is why this is hard as it does not deal with the UI. I got why SilverLight did not have this as it ran in a sandbox but Metro is supposed to be a native application. Right now Metro is the default interface with no option to change that. If you force Metro front and center and it is not a full LOB platform then business will pass on implementing Windows 8. In its current form need to let business disable Metro via group policy. P.S. personally I don't need DataSet and DataTable - collections have come so far. And I am OK with no DataGrid given there is ListView and GridView. Metro is not a LOB platform without System.Data. Metro is even limited as a personal app platform without System.Data.
joe developer
- Edited by Gymmie Dean Wednesday, April 18, 2012 10:43 PM
Tuesday, April 17, 2012 3:37 PM -
I agree with Rebecca Riordan and the main thrust of the comments here. We definitely won't see this in Win8, which has touch apps not robust business applications--but there is a great demand to get local and remote sql data access working in winrt/metro just as well and easily as on the regular desktop, including the UI (form and report controls, including datagrid). Why wouldn't Microsoft want to tap into the huge advantage they have over Apple (and google) in LoB (Sql Server and other enterprise software) by making it extremely easy to access and use all of that in metro and web (including js/jquery controls). That means support of interop with full enterprise framework, system.data etc. In the meantime, current .net desktop backend code will work fine in win8 and one can hope, perhaps vainly, that only the ui code will have to get changed for win9rt -- perhaps there may be some automation tools to ease the conversion (if wpf or silverlight was used for the ui).
After win8 is released and we get a sense of the success of winrt, appstore, ultrabooks, windows on arm, and ie10, and also the success of the cloud (office365/azure/skydrive/skype/facebook), we may finally get a true roadmap or direction from MS. (Maybe they will even sell some windows phones.)
- Edited by TechVsLife2 Tuesday, April 24, 2012 6:37 PM
Tuesday, April 24, 2012 6:36 PM -
Are you sure connecting directly to database from your client application? That was good idea in last decade, maybe.
Nowadays you create a webservice, that connects to database and connect your client application to this webservice. WCF is working in WinRT.
So, I'm asuming MS wants you to go this way. And then, there is no need to SQL support in WinRT.
Going farther than even using full SQL Server... there's no support for local databases like, SQL Compact. Having a middle tier web service is not always the best idea for real life reasons, like cost. What if you need a small database in an application? What if you want it to run offline? Sure, I can write code to deal with flat files, XML, etc. (but why when I'm well accusomed with any number of SQL platforms). The push to the cloud ignores the fact that sometimes, local databases make more sense and are cost efficient.
As of now, I'm waiting for a decent SQLite port to WinRT since Microsoft doesn't seem to want to provide or consider a database API in Metro apps (at least from anything I've read).
It's clear that "Metro" even though being forced on the desktop is a tablet technology in it's current form. If a Desktop has the power to run a SQL Express database, why shouldn't a Metro app be able to connect to it (without having to have an entire middle tier service running on that computer)? If it's an issue of now supporting ARM processors, why can't the app store be smart enough to know what a client's computer can/can't run when displaying items they can purchase? If it's so awful to connect to a local SQL Express or SQL Compact database, then why do the products even exist (answer is, they exist because they make sense given the situation)?
I love Metro on my Windows phone, and I'm sure it will be great on a tablet but I'm increasing becoming frustrated with it on the desktop (from a coding and a user perspective... it's become far more cumbersome to operate trying to use it and more difficult to do things that were easily done with tradtional apps). Tradtional WinForm, WPF apps are available... but as far as I've heard, not from the store. That's a shame.
- Edited by bpell Wednesday, April 25, 2012 11:41 PM
Wednesday, April 25, 2012 11:38 PM -
bpell: indeed. And Microsoft should be aware that their Android and Blackberry competitors do provide a means to work with SQL stores (in the form of SQL Lite.) The absence of any proper data tier in WinRT is little short of astonishing.Thursday, May 31, 2012 4:46 PM
-
I Agree with Gymmie Dean and bpell.
Our application also uses a local database to sync enterpise data when not connected to the enterprise lan.
We then sync back to the enterprise data on restoration of connectivity.
We have several years of investment in this infrastructure code which runs on BB , iOS , Android and Win 7 tablets.
But we wont be able to support Metro apps without a local db.
I am struggling to convince management we should contiue with Windows as a "mobile platform" not being able to implement on Metro using our tried and tested infrasturcture will just push us to focus on Android and iOS as a tablet based offering.
Furthermore, I have been developping client / server apps for almost 20 years , and there is an amazing investment in "legacy" apps which could be ported to Metro if a database access layer was made available.
Come on MS support the enterprise as well as the consumer market with Metro!
Friday, June 15, 2012 2:37 PM -
Look, I have to convince iPad freaks that Windows tablets are the way to go. If all I can do is develop ASP.net applications, then why would I need the powers that be to move away from their iPads? I have to be able to connect LOB applications to corporate SQL Server databases, PERIOD. If MS does not allow us to do that without going backward in time and functionality (having to use WCF), then the iZombies win the battle and we have to keep developing with a hammer and chisel using ASP.net.Wednesday, December 5, 2012 2:32 PM
-
I'm shocked!!!
i'm part way through writing an App that records test marks for teachers and this will need to be stored in a SQL database - are you telling me this isn't supported?
Crazy!!!
Nathan
Saturday, December 8, 2012 1:25 PM -
local database you can sql lite and you can connect through webservice with a database on another server. dont see the problem for your scenario
Microsoft Certified Solutions Developer - Windows Store Apps Using C#
Saturday, December 8, 2012 1:36 PM -
My two Cents,
1. I am too... upset on replies to use webservice to access data. When I want to sell one store app, which inturn would connect to its own data, where should I host this webservice? Certainly does not fit the Architecture of LOB.
2. On the other hand the datasets, datatables... are already gone case in Silverlight applications as they are not serializable and could take a big toll on wireless connectivity(this case tablets). Point taken and appreciated. But LOB apps are built in Silverlight and are even better in more than few cases than ASP counterparts. A hand held Win8 tablet is required to use light weight objects like Lists over datasets or datatables. Definitely agreed. That point does not convince us to completely get rid of System.Data/System.Data.Common. Main reason is that the LInQ to Entities/SQL objects still internally use System.Data.Common. Please don't tell me to forget LInQ to Entities...
With All due respect if Microsoft can SOOOON come with Windows.Data/Windows.Data.Common (as named for other namespaces like Windows.UI.XAML, Windows.System.Threading, Windows.UI.Xaml.Controls.Primitives,...) and support serializable data like List(of MyTable)...instead of Dataset, it will certainly fit in Metro zone!!!
That will help us all port LOB apps more easily with lesser reengineering/testing cost. Other DB vendors like IBM.Data.DB2, Oracle.Data would soon release their versions too. Of course the AppStore would REALLY see some killer apps.
Awaiting Windows.Data.Common...Please hear us Microsoft.
Venkat
Raja Venkatesh
Thursday, February 14, 2013 7:14 PM -
Meh....Surface isn't selling, PC shipments are down for the first time in over a decade, and even those who buy Windows 8 don't seem to like Metro.
Folks, unless MS does something drastic, we may be looking at a failed platform.
Thursday, February 14, 2013 7:20 PM -
Can we find another company other than Microsoft to provide fully functioning applications?Monday, August 25, 2014 3:01 PM