3 ms·
I've been working on a project where we generate and synchronize view models (instead of full views like this proposal) between the server and web/app clients.
by Maarten88 11y ago
I've been working on a project where we generate and synchronize view models (instead of full views like this proposal) between the server and web/app clients. We maintain (view)state in an Actor based backend, pushing updates to the clients through websockets. The client only needs to databind and render the model. This gives a really nice realtime user experience and is quite efficient.
Like SyncNinja, our architecture moves a layer of clientside code into the server. This enables more code sharing, at the cost of tight coupling between client and server (which does not matter for web but is problematic for our app clients). For use cases that need to work offline it falls apart; for that you need api's that work at the business layer and duplicate the view logic in each client.
I think SyncNinja will share difficulties we found around offline/localStorage, besides high resource usage, support for non-web clients, and all the problems you'd expect from browser differences (i.e. input prefill).
- vladaionescu 11y agoVery interesting. Is your project open source by any chance?
- Maarten88 11y agoThis is a startup, the application is not open source but everything we use is. We are building on the Microsoft stack, which might make it uninteresting for most of the HN crowd. Our main framework components are Orleans, Nancy, SignalR, Knockout.js and Xamarin. I think one could get the same results using Akka, express, socket.io, flux and React (or Ionic with angular)
- centur 11y agoIt'd be interesting to hear about the issues you've found around SignalR and offline mode, as we are building on very similar stack so far and your experience can help others who are using Orleans
- ghuntley 11y agoa) Come introduce yourself over @ https://gitter.im/dotnet/orleans https://gitter.im/dotnet/orleans ! b) would you be interested in joining one of our virtual meetups (hangouts) to discuss how you are using orleans @ https://github.com/OrleansContrib/meetups https://github.com/OrleansContrib/meetups