If you had a webshop solution based on SQL Server relational DB what would be the reasons, if any, to move to NoSQL storage ? Does it even make sense to migrate datastores that rely on relations heavily to NoSQL? If starting from scratch, would you choose NoSQL solution over relational one for a webshop project, which will, after a while, again end up with a bunch of tables like Articles, Classifications, TaxRates, Pricelists etc. and a magnitude of relations between them?
What's the support like in .NET (4.0) for MongoDB or MongoDB's support for .NET 4.0? Can I count on rich code generation tools similar to EF wizard, L2SQL wizard etc. for MongoDB?
Because as what I have read so far, NoSQL's are mostly suited for document storage, simpler object models.
Your answer to this question will help me make the right infrastructure design decisions.
UPDATE: If I was developing my solution around ASP.NET MVC and rely heavily on Model classes, would it be the easiest way to go to choose DB4o to simply serialize and deserialize my objects to and from datastore?
Well quite a open-ended question.
Migration to a NoSQL-datastore for an existing software
Well often there's a lot of experience and knowledge for the existing relational technologies. When you're application runs fine, its probably not worth the effort. However when you have unsolvable issues with the current solution, then it's an option.
Does it even make sense to migrate datastores that rely on relations heavily to NoSQL?
Well you have to consider that the three technologies (Document-DB, RDBMS, Object Database) are very different from each other.
Here's a good blog-post which compares the design-difference of MongoDB (document database) and db4o (object-database)
In the end you model should fit to your database. For example, don't try to use a model for a relation database and store it 1:1 in a document database. See also Ayende's blog about modeling for a object-database.
What's the support like in .NET (4.0) for MongoDB or MongoDB's support for .NET 4.0?
Gates VP has already answered this for MongoDB. The .NET 4.0-version of db4o is in development. Meanwhile the 3.5 version also works fine on the 4.0 framework.
Can I count on rich code generation tools similar to EF wizard, L2SQL wizard etc. for MongoDB?
For both, MongoDB and db4o you don't need to generate code. Your classes are the schema. You just store you objects and the database takes care of the rest. See also Gates VP answer
Because as what I have read so far, NoSQL's are mostly suited for document storage, simpler object models.
Well the range is quite big. From really simple key-value-stores, to more advanced document-databases, colum-oriented-databases, graph-databases and object-databases.
Of course the document-database work excellent when you have store document-like data (for example a blog-software). While graph- and object-databases are good at handling extreme complex data structures.