Azure offline SQL Lite DB store is very slow - c#

I am using Azure SDK for Sync local DB with a server in my mobile application. Local DB means it is MobileServiceSQLiteStore from Microsoft. Windows Azure. Mobile Services. SQLiteStore. Offline to Online sync is working as expected.I keep doing all the operations in local DB when the app is offline.Surprisingly all the offline crud operations (insertAsync, DeleteAsync, UpdateAsync, LookupAsync) are very slow in the local SQL lite db than online operations. It's supposed to be very speed on local comparing with Online. Anyone have any idea?
This is not duplicate of below question
Hideous performance using Azure mobile services MobileServiceSyncTable
I am talking about offline crud operations using the Azure Mobile SDK.I am not talking about offline "Sync" when app is online. I had to use the SDK since the app supports both Offline and Online mode. Theoretically if the app is offline all the offline operations should be equal to the operations we normally do with SQLite

Related

Auto-syncing two SQL Servers in ASP.NET/C# client/server apps

I have the following architecture: local C# desktop app with SQL Server Express and a central web app with SQL Server Enterprise, with db per local app.
I need to sync those two databases semi-automatically, but with some controls (and info) from an local desktop and web apps.
For example, I want for user to see when sync start, when it ended, etc. Also, if synced ok or there was an error.
What is the best solution for this problem ?
I see that there are two technologies: merge replication (works only on SQL Server level with no app interference), and discontinued Sync framework, with lots of problems. Should I create my app module for this?
Update: just to note, a web app will be fine without this, however, the reason for this sync is that as I need to have offline functionality, i.e., when network is offline app must work regulary.

SQL Azure and Power BI

I need to design some Power BI reports which will be hosted using Azure (at present we are thinking of using azure services, if the design doesn't solve then we have to go to on premise hosting)
We have a remote PC (at present runs windows OS) which will collect all the report data and store in either XML or CSV file on a daily basis (Challenge here, this PC is not connected online always, have a limited and timed connectivity, when we have the connection, we push the data to server)
We need to push this data from this remote PC to SQL Azure
Using Power BI (from azure) we need to generate reports using data from SQL Azure
Now, the challenge I am facing are
How to push the data (either in XML or CSV) from remote PC to SQL Azure
How to integrate SQL Azure and Power BI
If there is any other suggestion for this we are ok as we are yet to finalize the design for app development. Also, the design should be platform independent (in case we move to Linux based remote pc)
How to push the data (either in XML or CSV) from remote PC to SQL Azure
Many options..
1.Use SSIS to move data to azure and it supports SQLAzure as destination as well.
2.Write a C# executable which does the task for you ,if you require much customization..
How to integrate SQL Azure and Power BI
using Powerbi with SqlAzure is very simple,you just have to choose which your destination as shown in links below..
step by step steps: https://powerbi.microsoft.com/en-us/documentation/powerbi-azure-sql-database-with-direct-connect/
Powerbi has api's as well: https://powerbi.microsoft.com/en-us/documentation/powerbi-azure-and-power-bi/

Azure solution design guidelines

There are too many options to chose from in Microsoft Azure when planning application design. Azure itself not stands still, looks like many options added recently. I'm a pretty nooby solo developer so I need some entry points to choose architecture.
The application consists of next parts:
1. Database
Classic SQL database is already implemented with Azure SQL database.
2. Server-side application. (architecture refactor needed)
For now application is a .NET C#/WPF desktop application hosted on classic Azure Virtual Machine with Windows Server onboard.
This is an always-running scheduler that performs kind of tasks one by one.
Tasks are mainly long-running works getting some data from Web, CPU-bound proccessing with recieved data, working with the DB.
It feels like its kind of ancient and wrong design (having in mind amount of azure features):
a) The application really don't need a GUI, just ability to control scheduler's status required.
b) Logically some kind of tasks can be performed simultaneously, and some of them must wait others to finish before start. Now all of tasks performed one by one, that caused by virtual machine performance limit. I think there must be a way to achieve parallel working and control results on higher level of abstaction than inside desktop app. I wanna somehow move scheduling logic to level up. (Maybe IaaS->Paas goes here?)
3. Client applications.
Client applications. Registered users work with the DB.
Here questions:
Which server-side application design should be chosen in this case, what Azure features required?
Is there an Azure built-it abilities to manage registered users accounts, or only way is to implement it as a part of application?
Did you explore other storage options or SQL database is what you need?
lets start from scratch:
STORAGE:you can choose from
1. Storage - Blob, Table, Queue, and File storage and disks for VM
2. SQL database - relational database service in the cloud based on the market leading Microsoft SQL Server engine, with mission-critical capabilities
3. Document DB - schema-free NoSQL document database service designed for modern mobile and web applications
4. StorSimple- integrated storage solution that manages storage tasks between on-premises devices and Microsoft Azure cloud storage
5. SQL data Warehouse- enterprise-class distributed database capable of processing petabyte volumes of relational and non-relational data
6. Redis Cache- High throughput, consistent low-latency data access to build fast, scalable applications
7. Azure Search- Search-as-a-service for web and mobile app development
SCHEDULAR: You can pick from
1. Virtual Machine
2. Cloud Service (worker role): you have more control over the VMs. You can install your own software on Cloud Service VMs and you can remote into them.
3. Batch: Cloud-scale job scheduling and compute management
4. Service Fabric: distributed systems platform used to build scalable, reliable, and easily-managed applications for the cloud
5. App Service: Scalable Web Apps, Mobile Apps, API Apps, and Logic Apps for any device
CLIENT: you can try out
1. Web Apps
2. Cloud Service (web role)
Use this link as one stop shop for all Azure services beautifully categorized based on functionality. From here you can pick and choose various services and amp it to your app's requirement.
MASTER LIST: http://azure.microsoft.com/en-in/documentation/

Data Sync between local database and online database

I am developing a C# based window store app which has GUI developed using WPF.
The application's database is already on the Cloud through Windows Azure, but, I also want to have local copy of it through SQLite
Now, my question is:
How can I synchronize the data between Windows Azure and SQLite?
You can use Windows Azure Offline Sync. This tutorial may help you which states:
Offline support will allow you to interact with a local database when
your app is in an offline scenario. Once your app is online with the
backend database, you sync your local changes using the offline
features.
this video may also help support the tutorial

Microsoft Sync Framework - Sync SQL to/from a hard drive

I have a C# application that uses Microsoft Sync Framework to sync an SQL Server database from the server to the client across the internet.
I need to add a new feature, to allow clients to occasionally sync while offline via a portable hard drive.
This would mean that sometimes the client would sync over the internet with the server, and sometimes the client would instead grab data from a portable hard drive.
Does the sync framework offer a method for exporting the server database to a file, and then syncing that file to a client (or something similar)?
I'm having trouble finding any solid documentation on the topic.
if you want to sync from portable hard drive, have a look at generating a SQL Ce snapshot (via GenerateSnapshot), send the SQL CE db via portable media, have your app sync the SQL CE snapshot to your local database.

Categories

Resources