I’m just starting with .NET data storage and I’m confused by so many different technologies… This is a learning project. You don’t need to go on reading, I need to make an architecture proposal first… Thanks so far
My scenario:
e.g. a local app that can store and tag images.
The user can choose if he want to
- store his data local only
- web based only
- or a mix of both
Conditions:
- No additional local db server installation
- The user can upload selected parts of his local data to make it public available for other users
- Other users can add this data to their local repository
- Later there should be the capability that so. acknowledges the upload before it is pubic available => WWF
As you can see many operations and data (transfer) objects are redundant no matter if the operation is local or web based. This is one of my main goals to make use out of this fact. I’m looking for programming comfort 🙂
I’m interested in:
- LINQ
- WCF
- WWF
Cloud could be an option but I would prefer a wcf service to access data (at least I think that I prefer this 🙂
Technologies I saw: XLinq, Entity framework, hibernate, Linq to …, WCF Data services, SQLite with Linq, web services, Entity SQL… what a hell
I read much about this topic but it is hard to estimate the consequense of architectural decisions. Also other posts didn’t help me on planning the project.
You make my day if you could point me in the right direction. THANKS!!!
You may want to consider SQL Server 2008 on the server and SQL Server Compact on the local machine. Each is optimised for that kind of environment, and the data storage and management features that they offer are quite similar. Abstracting out access mechanism from your code, as jasper suggests, should be extremely easy with this pair of technologies.
SQL Server Compact is an embedded database engine that runs in-process with your app, installs together with it as a “single DLL”, and does not need a separate database server installation.
In any case, I totally agree with jasper that you should focus on the architecture and design on the system, and think of technology as something secondary.