Sync Framework Resources - microsoft-sync-framework

I am looking for resources on Microsoft Sync Framework. Although MSDN and Google Search gave me the brief overview, I want some demos and presentations.
Also, is Live Mesh based on Sync Framework?

Maybe those links will be helpful:
Sync101 - Getting Started with Sync
Tutorial - Microsoft Sync Framework Basics
SQL Express - Client Synchronization Sample
Sync Services for ADO.NET v2 - Download Only Sync
Sync Services for ADO.NET Adapter Builder

Live Mesh isn't based on the Sync Framework, although they both use FeedSync. There is collaboration between Live Mesh (Live Framework) and Sync Framework to develop a Live Framework provider for V2 of the Sync Framework. See the following presentation for details:
http://channel9.msdn.com/pdc2008/TL30/

Sync Framework 2.0 has been released and the related MSDN documentation includes lots of examples.

For using NoSQL DB, couchbase mobile supports sync with couchbase server through Sync Gateway. Very scalable solution. http://www.couchbase.com/mobile#sync-gateway.

Related

Can I integrate the Robot framework with AWS device farm? Does it support officially?

Can I integrate the Robot framework with AWS device farm? Previously it's not supported as I can see.
Yes, it is possible to use custom dependencies and frameworks (like Robot) when running mobile or desktop browser tests with AWS Device Farm. Please see our documentation here for more details: https://docs.aws.amazon.com/devicefarm/latest/developerguide/custom-test-environments.html

C++ Support from Firebase Realtime DB

Does Firebase support C++ for Realtime Database? I can't seem to find any documentation about it.
If there is, can you please point me out on the documentation? Please.
Thanks!
Since 2.0 version of Firebase C++ SDK it provides bindings for Realtime Database.
Also, in 2.1 version from (9 dec of 2016) Google adds the Firebase Storage bindings.
It does support C++.
This link has the guidelines for implementation of Firebase Realtime Database in C++:
https://firebase.google.com/docs/database/cpp/start
The Firebase Realtime Database Test Application (testapp) demonstrates Firebase Realtime Database operations with the Firebase Realtime Database C++ SDK. The application has no user interface and simply logs actions it's performing to the console.
https://github.com/firebase/quickstart-cpp/tree/master/database/testapp

Integration of Amazon Cognito with Ionic for offline sync

I have searched a lot but i cannot find any article on integrating amazon cognito with Ionic using cordova for offline sync , is it possible to integrate apache cordova with cognito for offline sync
In this blog post, the author goes over the main steps to submit events to Amazon Mobile Analytics using PhoneGap as an example. The same general steps can be applied to any framework built around JavaScript such as AppGyver(supersonic), Appcelerator, Ionic, Famo.us, Intel XDK, and web pages.
https://mobile.awsblog.com/post/TxCMBFPXR2XWOF/Use-Amazon-Mobile-Analytics-with-your-JavaScript-enabled-apps

WSO2 Stratos Live Services / APIs

currently I´m evaluating WSO2 Stratos LIVE as a public PaaS. I did much research but there are still some questions:
1.) Does WSO2 Stratos Live offer a "multi-tenancy-api" to make Java web applications multi-tenant-aware (something like the Google App Engine Namespace API)?
2.) Is the cartridge-based architecture available (like in WSO2 Stratos 2)?
3.) Are there official API documentations / code samples for all the cloud services? I just found blog posts and webinars. But an official api documentation and code samples would be very great (for example how to unse Identity Server for authentication in Java web applications).
4.) Based on WSO2 API Manager deployment on Stratos, I assume that the API manager is not available as cloud-service?
5.) Do I have hosting options on Stratos Live (e.g. Java Version, the country / Data Center where my app will be hosted)?
6.) Does exist a logs-api to access application logs from my application?
7.) Are there apis for data handling (for example Map Reduce, execution of cron jobs, CDN)?
8.) Do I have a local test environment? I know that there are IDE plugins for an easy deployment. But is it possible to test my app with all WSO2 Stratos Live cloud services local on my machine without connecting to the real services?
I know this is a lot but it would be more than helpful if the WSO2 professionals would help me to answer those questions. As I said, I did much research but those 8 questions are still open.
Thanks a lot and best regards
Ben
See the answers in-line.
1.) Does WSO2 Stratos Live offer a "multi-tenancy-api" to make Java web applications multi-tenant-aware (something like the Google App Engine Namespace API)?
Yes. Your web app can be multi-tenanted.
http://www.youtube.com/watch?v=_lEwm6VzAmo&noredirect=1
http://www.slideshare.net/afkham_azeez/building-a-multitenanted-cloudnative-appserver
2.) Is the cartridge-based architecture available (like in WSO2 Stratos 2)?
Not yet. But our plan is to make Stratos2.0 as the foundation of StratosLive. This will be done after the GA release of Stratos2.0 (it is now in beta stage)
3.) Are there official API documentations / code samples for all the cloud services? I just found blog posts and webinars. But an official api documentation and code samples would be very great (for example how to unse Identity Server for authentication in Java web applications).
All the documents and samples available for WSO2 products are valid for StratosLive. Reason is, we have deployed the very same product in the cloud. We are in the process of filling the documentation gap with regards to StratosLive at the moment.
4.) Based on WSO2 API Manager deployment on Stratos, I assume that the API manager is not available as cloud-service?
Not yet. It will be available in the future.
5.) Do I have hosting options on Stratos Live (e.g. Java Version, the country / Data Center where my app will be hosted)?
No. StratosLive uses shared instances to achieve multi-tenantcy (not like some other PaaSes which uses a JVM per tenant). Therefore, hosting options are not available.
6.) Does exist a logs-api to access application logs from my application?
Yes. We allow the tenants to view system logs and application logs. Unfortunately the API for log viewing is not documented yet.
http://sparkletechthoughts.blogspot.com/2012/09/how-distributed-logging-works-in-wso2.html
7.) Are there apis for data handling (for example Map Reduce, execution of cron jobs, CDN)?
Map reduce related tasks can be handled using toolboxes which can be deployed in WSO2 BAM (monitor.stratoslive.wso2.com). Please check the WSO2 BAM2 documentation for more info.
8.) Do I have a local test environment? I know that there are IDE plugins for an easy deployment. But is it possible to test my app with all WSO2 Stratos Live cloud services local on my machine without connecting to the real services?
You can download and use the Stratos local setup which can be found at http://wso2.com/cloud/stratos

Does Firebase allow an app to start in offline mode?

I'm thinking of using firebase to write a mobile app using PhoneGap and the HTML5 Application Cache.
Lets suppose each user has a list of TODO items. If the app is started when the phone is offline, will it be able to load data from the previous session and sync when a connection is established? If so I'm wondering how this is implemented because I couldn't find a reference to localStorage in firebase.js.
The short answer is: not yet.
Once an app has connected to Firebase, the client will cache data locally and be able to access data where there is an outstanding "on" callback even after a network connection is lost. However, this data is not persisted to disk, the "offline mode" will only work while the app is still running.
Full offline support will be coming in the future.
edit 2016 : full offline support is now possible for native iOS and Android apps: https://www.firebase.com/blog/2015-05-29-announcing-mobile-offline-support.html
An alternative to Firebase that solves this problem for JS apps is CouchDb (server) <=> PouchDb (JS client). If you've implemented a nice clean client side service layer then porting to PouchDb should be fairly straight forward since both are NoSQL/JSON databases. CouchDb also supports indexed map/reduce views.
PouchDb is a Javascript API that implements a fully offline CouchDb client. It can auto detect and use either local storage, IndexDb or WebSQL to permanently persist local data while online or offline. The PouchDb API can be used to access either your local or remote databases (just change the URL) and wire up full syncing or filtered syncing between the two. There are many useful PouchDb plugins, code samples and a small wrapper library to support AngularJS's Q promises API.
Using PouchDb, you can safely start up your app while offline and then days later restart your app and sync all your CUD data changes to the server. This can result in update collisions so CouchDb supports record versioning that is designed to detect and track this. Consequently, you'll likely need server side logic to resolve these collisions. This is unavoidable for distributed systems with offline synchronization and a key feature of CouchDb. I'm not sure that Firebase supports this MVCC feature.
PouchDb is basically a reimplementation of Apache CouchDb including it's synchronization protocol. Both CouchDb and PouchDb are well tested, free and open source. Being open source means that a CouchDb server can also be deployed as an Intranet service - optionally syncing to an external cloud service. There are a number of CouchDb hosting providers.
IBM's Cloudant hosting team recently added their BigCouch clustering features to Apache CouchDb 2.0 project so now you can scale from Micro Db (PouchDb) => Single Server => Multi-Master (Replicated) => Big Couch Clustered / Geo Clustered. Unlike MongoDb, CouchDb safely supports single server deployment.
NOTE: PouchDb can also sync to CouchBase using the same protocol but Couchbase !== CouchDb. It's a commercial product.
Another cool trick is that PouchDb can be run inside a NodeJS server as a replacement for CouchDb. I think it's not (yet) ready for production use but very handy for unit testing. See express-pouchdb.
Links:
Apache CouchDb Project
Couch Db - The Definitive Guide - Free book.
Pouch Db
AngularJS wrapper for PouchDB
Couchbase
CouchDb Hosters (Updated July 2020)
Compare CouchDb Hosters
Cloudant
Hyve
DIY
How To Install CouchDB and Futon on Ubuntu 12.04 - Digital Ocean
Secure CouchDB by using SSL/HTTPS
Docker + CouchDb:
Dockerizing a CouchDB Service
GitHub: Yet Another Dockerized CouchDB
Dockerized CouchDB 1.6.0 with stud SSL terminator
Security Model
One issue you'll need to consider when migrating to CouchDb is that it has a more limited access control model. This is partly due to it's replication algorithm. This blog post covers this in detail (better than the real definitive guide).
Matt Woodward's Definitive Guide to CouchDB Authentication and Security
CouchDB Security Overview
superlogin is an excellent NodeJS Passport/Authentication API that wrappers CouchDb allowing PouchDb offline apps to support social OAuth logins or username/password accounts. Includes a fully working demo and client side ng-superlogin Angular API.
Adapters
In practice you'll probably want to use WebSQL for your PouchDB storage as it performs much better. - Here's the full details on the storage adapters
PouchDb Extras
There's a staggering array of new cool "Christmas Tree" goodies always poping out the open source door from the prolific PouchDb community.
One the best features of PouchDb is all the open source plugins (37) and UI framework adapters (12).
Very old question, yet problem still persists.
I have been using firebase only for a few days and I couldn't find a satisfactory solution to this problem myself, so I thought I would share what I ended up doing.
On app start I check if I am online navigator.onLine. If not, I read from local storage and restore the firebase ref from it.
export const firebaseFromLocalStorage = (local, storeRef) => {
// assuming data is array
const localData = JSON.parse(localStorage.getItem(local)) || []
localData.map(obj => {
const key = obj['.key']
delete obj['.key']
storeRef
.child(key)
.set(obj)
})
}
Then proceed as normal. When the app goes online it will sync its local state with the server just like when it starts online and loses connection momentarily.
Off course this implies that localStorage needs to be kept in sync with your firebase ref. I do this at each get operation.
Hope this helps