Storage options for win 8/10 universal app? - sql-server

Assuming I want to develop a Win 8/10 universal app eg calendar, the user has a two devices tablet/phone.
How can my calendar share a local SQL database?
I don't want to maintain or administer an azure service or any other remote DB service ie AWS, VPS running SQL Express etc.. which is overkill for such a basic scenario.
I have considered SQLite and dumping the DB file in the users MS OneDrive folder but as we know this could result in sync/lock issues.
So using a purely self contained & free model, how can my two devices share this basic SQL data?

If the database is small you can save it in the RoamingFolder and let Windows take care of copying it to the other system.
See Quickstart: Roaming app data
Other than that storing the data in a cloud service such as an Azure Mobile App Service is the easiest and cleanest solution. Azure Mobile Services support offline sync to SQLite if you need to support both online and offline scenarios.
Saving app data on the user's OneDrive or dropbox and then explicitly downloading it to use is possible but more difficult and a bit dirtier since the data will be visible to the user and could be accidentally deleted, moved, etc. For a personal app it's not bad but I wouldn't do this in production.
If you're copying the database between systems (either via roaming or via a data storage site) you'll need to devise a way to handle conflicts. This is simpler if everything is kept in a single cloud database.

Related

What method is best for creating a online web accessible database?

I have been looking for a way to put a database like an microsoft access relational database shared among many people. You used to be able to create a web app but that's no longer supported.
I've heard powerapps is a solution but it looks like it is to be used only by phones or tablets?
I already have a office 365 account with access to multiple applications. Is there anything that can be used to create what I am asking using those services?
Or do I need to look into SQL databases?
You are correct that classic Microsoft Access is not web/browser based (after an attempt was stopped by Microsoft).
A browser based web database requires a back end database that supports the front end web server. In the Microsoft family that would be SQL Server behind IIS. This is all mainstream stuff - but an order of magnitude more complicated than classic Access. There are of course competing brands besides Microsoft - the most well known being the LAMP stack.
There exists a group of web database services, as an alternative: Knack, QuickBase, Zoho, etc. With these one must live with the User Interface and feature set they offer.
For a windows application (i.e. Access) with geographically separated users one would rely on the terminal services technology by deploying a Remote Desktop Server. This is primarily oriented towards internal users - not public facing.

Is it possible to secure local database data when selling an offline (local installation) web app?

A typical scenario: I have a database with very valuable information but need to offer an offline installation of the software (WAMP/LAMP). With MySQL you can easily copy/paste database files, also PHP script defines user db access in a readable format. Is there any way data can be protected from 'stealing'? If not what is the best platform (web app, desktop app, ...) to achieve such?
You cannot stop that user from stealing the data but it should be possible to encrypt the local data with JS in case the laptop is stolen etc. To do this you would need to prompt the user for the encryption key or use some other method... It should obviously not be stored in the local database itself

Database dot com database syncing

I am working on a phonegap project to build a cross platform mobile app, and came to know from a website that the app's database can be deployed/built with "database.com".
The procedure is well explained but I have one question -
how to sync the database available on database.com with a database on a local server?
i.e. for e.g., if a client has his database (of his desktop application) on his local server and he requires a mobile app of the same now, what is the procedure to be followed in "database.com" to sync his server's database with the database on "database.com"?
PS: I need to use "database.com" for my database because I want to maintain it on cloud, and I do not have capability to maintain a local server.
You might need a service for data syncing if it is to be more than once. I work on a project that does exactly this.
www.overcast-suite.com
Otherwise, model your tables to Salesforce Custom Objects, export the data on the local server to CVS and use the Data Loader to import.

Can I publish on Azure a web application with a non-relational database?

As I know SQL Azure uses a relational db, on the contrary Amazon SimpleDB is a non-relational one.
Ipotetically can I publish a web application with a non-relational database simply with the "publish to Win Azure" button, as I did with mine? Will Azure convert my db without any problem?
And more, are there any cases where I cannot use the "publish to Win Azure" button?
You'd have to include the database engine along with your deployment. For instance, you can run with MongoDB as your NoSQL database. You can download the Mongodb+Azure project here.
There's also Windows Azure Table Storage, which is a non-relational, schemaless data store with 100TB of capacity per storage account. The Windows Azure Platform Training Kit has a few labs around Storage that will help you understand how to use it.
In either case, there's no magic conversion from one data format to another.
For a non-relational data store with Windows Azure, you should consider Table Storage. Windows Azure Table Storage is the NoSQL storage option with Windows Azure.
Windows Azure does not "convert" any database or anything like that.

Hosting an Access DB

So I'm inexperienced in hosting DB's and I've always had the luxury of someone else getting the db setup.
I was going to help a friend out with getting a webpage setup, I've got experience in Asp.Net MVC so I'm going with that. They want to setup a search page to query a db and display the results. My question I have is in getting the DB setup and hosted. They currently just have the Access DB on a local computer. There is basically only one table that would need to be queried for the search.
What is the best approach to getting this table/db accessible? They would like to keep the main copy of the db on the local machine, so copying the entire db over to the hosted site would be time consuming, could the lone table needed be solely copied to the host? Should I try to convince them to make changes on the hosted db and just make copies of that for their local machines? Any suggestions are welcome, Again I'm a total noob when it comes to hosting databases.
Thanks
Added: They are using a MS Access 2000, and the page will have access restrictions. Thanks for the responses.
How about SQL Server Express? I think you can do a remote connect from Access and just push the data over from Access.
I wouldn't use Access on a web server in any case.
I would strongly recommend against access from web work, its just not designed for it and given that SQL server express is free there is no reason not to give it a go.
You can migrate the data over by using the SQL server upsizing wizard, here is a link for help on using that feature
http://support.microsoft.com/kb/237980
It depends on what you mean by web work? Access 2010 can build scalable browser neutral web applications. They can scale to 1000's to users. In fact, you can even park the web sites on Microsoft's new cloud hosting options, and scale out to as many users as you need.
Here is a video of an application I wrote in access 2010. Note how at the half way I run the same application including the Access forms in a standard web browser. This application was built 100% inside of the Access client. The end result needs no ActiveX or Silverlight to run.
http://www.youtube.com/watch?v=AU4mH0jPntI
So, the above shows that access can now be used to build scale web sites (you can ignore the confusing answers by the other two posters here they are not quite up to speed on how access works or functions).
However, for your case, I would continue to have the access database on the desktop. You can simply link to tables that are hosted on the web server. Those tables can exist in MySql, or sql server. As long as the web site supports external ODBC connections (many do), then you can thus have the desktop application use the live data from the web server. If connections to the live data at all times is a issue, then you could certainly setup something to send up new records (or the whole table) on some kind of interval or perhaps the reverse, and pull down new records on a interval from the web site (depends which way you need to go). So, connecting to MySql or sql server is quite easy as long as the web hosting and site permits external ODBC connections. I do this all the time, and it works quite well.
As mentioned, new for access 2010 is web site building ability but that does requite Access Web services running on SharePoint.
You don't need to upgrade to Access 2010. One option is to use the EQL Data plugin to sync the database up to the server. Then you can write an asp.net, php, or whatever application that queries the table using the EQL API and prints the results however you want. This kb article describes how to use the EQL API from a web app.
The nice thing is that the database is still totally usable (and at full speed) even when you're not online, and then you can sync the new data up to the web occasionally. It only uploads the changes, not the entire database every time, so it's fast.
Disclaimer: I work at EQL Data so I'm a bit biased. But this kind of use case is the whole reason the company exists.

Resources